This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

feat: unify iframe embeds, add bandcamp support

+125 -145
+73 -142
package-lock.json
··· 1125 1125 "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.4.tgz", 1126 1126 "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==", 1127 1127 "dev": true, 1128 + "peer": true, 1128 1129 "dependencies": { 1129 1130 "@babel/code-frame": "^7.27.1", 1130 1131 "@babel/generator": "^7.28.3", ··· 1782 1783 "url": "https://opencollective.com/csstools" 1783 1784 } 1784 1785 ], 1786 + "peer": true, 1785 1787 "engines": { 1786 1788 "node": ">=18" 1787 1789 }, ··· 1804 1806 "url": "https://opencollective.com/csstools" 1805 1807 } 1806 1808 ], 1809 + "peer": true, 1807 1810 "engines": { 1808 1811 "node": ">=18" 1809 1812 } ··· 4575 4578 "version": "3.1.1", 4576 4579 "resolved": "https://registry.npmjs.org/@mdx-js/loader/-/loader-3.1.1.tgz", 4577 4580 "integrity": "sha512-0TTacJyZ9mDmY+VefuthVshaNIyCGZHJG2fMnGaDttCt8HmjUF7SizlHJpaCDoGnN635nK1wpzfpx/Xx5S4WnQ==", 4581 + "peer": true, 4578 4582 "dependencies": { 4579 4583 "@mdx-js/mdx": "^3.0.0", 4580 4584 "source-map": "^0.7.0" ··· 4632 4636 "version": "3.1.1", 4633 4637 "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.1.tgz", 4634 4638 "integrity": "sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw==", 4639 + "peer": true, 4635 4640 "dependencies": { 4636 4641 "@types/mdx": "^2.0.0" 4637 4642 }, ··· 5004 5009 "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", 5005 5010 "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", 5006 5011 "devOptional": true, 5012 + "peer": true, 5007 5013 "engines": { 5008 5014 "node": ">=8.0.0" 5009 5015 } ··· 5401 5407 "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.9.3.tgz", 5402 5408 "integrity": "sha512-4KlM1Zr/jpsqWuMXr2zmGsaOUs1zMMFh9vfCNKRZkptf+uk8I3sugHbNdo+F5B+4e2yMuOEb1zgAmvJLeuH6ww==", 5403 5409 "dev": true, 5410 + "peer": true, 5404 5411 "dependencies": { 5405 5412 "@mischnic/json-sourcemap": "^0.1.0", 5406 5413 "@parcel/cache": "2.9.3", ··· 7313 7320 "os": [ 7314 7321 "android" 7315 7322 ], 7316 - "peer": true, 7317 7323 "engines": { 7318 7324 "node": ">= 10.0.0" 7319 7325 }, ··· 7334 7340 "os": [ 7335 7341 "darwin" 7336 7342 ], 7337 - "peer": true, 7338 7343 "engines": { 7339 7344 "node": ">= 10.0.0" 7340 7345 }, ··· 7355 7360 "os": [ 7356 7361 "darwin" 7357 7362 ], 7358 - "peer": true, 7359 7363 "engines": { 7360 7364 "node": ">= 10.0.0" 7361 7365 }, ··· 7376 7380 "os": [ 7377 7381 "freebsd" 7378 7382 ], 7379 - "peer": true, 7380 7383 "engines": { 7381 7384 "node": ">= 10.0.0" 7382 7385 }, ··· 7397 7400 "os": [ 7398 7401 "linux" 7399 7402 ], 7400 - "peer": true, 7401 7403 "engines": { 7402 7404 "node": ">= 10.0.0" 7403 7405 }, ··· 7418 7420 "os": [ 7419 7421 "linux" 7420 7422 ], 7421 - "peer": true, 7422 7423 "engines": { 7423 7424 "node": ">= 10.0.0" 7424 7425 }, ··· 7439 7440 "os": [ 7440 7441 "linux" 7441 7442 ], 7442 - "peer": true, 7443 7443 "engines": { 7444 7444 "node": ">= 10.0.0" 7445 7445 }, ··· 7460 7460 "os": [ 7461 7461 "linux" 7462 7462 ], 7463 - "peer": true, 7464 7463 "engines": { 7465 7464 "node": ">= 10.0.0" 7466 7465 }, ··· 7481 7480 "os": [ 7482 7481 "linux" 7483 7482 ], 7484 - "peer": true, 7485 7483 "engines": { 7486 7484 "node": ">= 10.0.0" 7487 7485 }, ··· 7502 7500 "os": [ 7503 7501 "linux" 7504 7502 ], 7505 - "peer": true, 7506 7503 "engines": { 7507 7504 "node": ">= 10.0.0" 7508 7505 }, ··· 7523 7520 "os": [ 7524 7521 "win32" 7525 7522 ], 7526 - "peer": true, 7527 7523 "engines": { 7528 7524 "node": ">= 10.0.0" 7529 7525 }, ··· 7544 7540 "os": [ 7545 7541 "win32" 7546 7542 ], 7547 - "peer": true, 7548 7543 "engines": { 7549 7544 "node": ">= 10.0.0" 7550 7545 }, ··· 7565 7560 "os": [ 7566 7561 "win32" 7567 7562 ], 7568 - "peer": true, 7569 7563 "engines": { 7570 7564 "node": ">= 10.0.0" 7571 7565 }, ··· 8236 8230 "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", 8237 8231 "dev": true, 8238 8232 "hasInstallScript": true, 8233 + "peer": true, 8239 8234 "bin": { 8240 8235 "esbuild": "bin/esbuild" 8241 8236 }, ··· 8400 8395 "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", 8401 8396 "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", 8402 8397 "dev": true, 8398 + "peer": true, 8403 8399 "bin": { 8404 8400 "tsc": "bin/tsc", 8405 8401 "tsserver": "bin/tsserver" ··· 9816 9812 "resolved": "https://registry.npmjs.org/@storybook/core/-/core-8.6.14.tgz", 9817 9813 "integrity": "sha512-1P/w4FSNRqP8j3JQBOi3yGt8PVOgSRbP66Ok520T78eJBeqx9ukCfl912PQZ7SPbW3TIunBwLXMZOjZwBB/JmA==", 9818 9814 "dev": true, 9819 - "peer": true, 9820 9815 "dependencies": { 9821 9816 "@storybook/theming": "8.6.14", 9822 9817 "better-opn": "^3.0.2", ··· 9848 9843 "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-8.6.14.tgz", 9849 9844 "integrity": "sha512-r4y+LsiB37V5hzpQo+BM10PaCsp7YlZ0YcZzQP1OCkPlYXmUAFy2VvDKaFRpD8IeNPKug2u4iFm/laDEbs03dg==", 9850 9845 "dev": true, 9851 - "peer": true, 9852 9846 "funding": { 9853 9847 "type": "opencollective", 9854 9848 "url": "https://opencollective.com/storybook" ··· 10183 10177 "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz", 10184 10178 "integrity": "sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==", 10185 10179 "dev": true, 10180 + "peer": true, 10186 10181 "dependencies": { 10187 10182 "@babel/core": "^7.19.6", 10188 10183 "@svgr/babel-preset": "^6.5.1", ··· 10418 10413 "os": [ 10419 10414 "darwin" 10420 10415 ], 10421 - "peer": true, 10422 10416 "engines": { 10423 10417 "node": ">=10" 10424 10418 } ··· 10435 10429 "os": [ 10436 10430 "darwin" 10437 10431 ], 10438 - "peer": true, 10439 10432 "engines": { 10440 10433 "node": ">=10" 10441 10434 } ··· 10452 10445 "os": [ 10453 10446 "linux" 10454 10447 ], 10455 - "peer": true, 10456 10448 "engines": { 10457 10449 "node": ">=10" 10458 10450 } ··· 10469 10461 "os": [ 10470 10462 "linux" 10471 10463 ], 10472 - "peer": true, 10473 10464 "engines": { 10474 10465 "node": ">=10" 10475 10466 } ··· 10486 10477 "os": [ 10487 10478 "linux" 10488 10479 ], 10489 - "peer": true, 10490 10480 "engines": { 10491 10481 "node": ">=10" 10492 10482 } ··· 10503 10493 "os": [ 10504 10494 "linux" 10505 10495 ], 10506 - "peer": true, 10507 10496 "engines": { 10508 10497 "node": ">=10" 10509 10498 } ··· 10520 10509 "os": [ 10521 10510 "linux" 10522 10511 ], 10523 - "peer": true, 10524 10512 "engines": { 10525 10513 "node": ">=10" 10526 10514 } ··· 10537 10525 "os": [ 10538 10526 "win32" 10539 10527 ], 10540 - "peer": true, 10541 10528 "engines": { 10542 10529 "node": ">=10" 10543 10530 } ··· 10554 10541 "os": [ 10555 10542 "win32" 10556 10543 ], 10557 - "peer": true, 10558 10544 "engines": { 10559 10545 "node": ">=10" 10560 10546 } ··· 10571 10557 "os": [ 10572 10558 "win32" 10573 10559 ], 10574 - "peer": true, 10575 10560 "engines": { 10576 10561 "node": ">=10" 10577 10562 } ··· 10658 10643 "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz", 10659 10644 "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", 10660 10645 "dev": true, 10661 - "peer": true, 10662 10646 "dependencies": { 10663 10647 "@babel/code-frame": "^7.10.4", 10664 10648 "@babel/runtime": "^7.12.5", ··· 10678 10662 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 10679 10663 "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 10680 10664 "dev": true, 10681 - "peer": true, 10682 10665 "engines": { 10683 10666 "node": ">=8" 10684 10667 } ··· 10688 10671 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", 10689 10672 "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", 10690 10673 "dev": true, 10691 - "peer": true, 10692 10674 "engines": { 10693 10675 "node": ">=10" 10694 10676 }, ··· 10701 10683 "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", 10702 10684 "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", 10703 10685 "dev": true, 10704 - "peer": true, 10705 10686 "dependencies": { 10706 10687 "dequal": "^2.0.3" 10707 10688 } ··· 10711 10692 "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", 10712 10693 "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", 10713 10694 "dev": true, 10714 - "peer": true, 10715 10695 "dependencies": { 10716 10696 "ansi-regex": "^5.0.1", 10717 10697 "ansi-styles": "^5.0.0", ··· 10725 10705 "version": "17.0.2", 10726 10706 "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", 10727 10707 "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", 10728 - "dev": true, 10729 - "peer": true 10708 + "dev": true 10730 10709 }, 10731 10710 "node_modules/@testing-library/jest-dom": { 10732 10711 "version": "6.9.1", ··· 10805 10784 "version": "5.0.4", 10806 10785 "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", 10807 10786 "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", 10808 - "dev": true, 10809 - "peer": true 10787 + "dev": true 10810 10788 }, 10811 10789 "node_modules/@types/babel__core": { 10812 10790 "version": "7.20.5", ··· 10971 10949 "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.3.tgz", 10972 10950 "integrity": "sha512-wGA0NX93b19/dZC1J18tKWVIYWyyF2ZjT9vin/NRu0qzzvfVzWjs04iq2rQ3H65vCTQYlRqs3YHfY7zjdV+9Kw==", 10973 10951 "dev": true, 10952 + "peer": true, 10974 10953 "dependencies": { 10975 10954 "@types/body-parser": "*", 10976 10955 "@types/express-serve-static-core": "^5.0.0", ··· 11151 11130 "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.23.tgz", 11152 11131 "integrity": "sha512-yIdlVVVHXpmqRhtyovZAcSy0MiPcYWGkoO4CGe/+jpP0hmNuihm4XhHbADpK++MsiLHP5MVlv+bcgdF99kSiFQ==", 11153 11132 "dev": true, 11133 + "peer": true, 11154 11134 "dependencies": { 11155 11135 "undici-types": "~6.21.0" 11156 11136 } ··· 11166 11146 "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.15.5.tgz", 11167 11147 "integrity": "sha512-LF7lF6zWEKxuT3/OR8wAZGzkg4ENGXFNyiV/JeOt9z5B+0ZVwbql9McqX5c/WStFq1GaGso7H1AzP/qSzmlCKQ==", 11168 11148 "dev": true, 11149 + "peer": true, 11169 11150 "dependencies": { 11170 11151 "@types/node": "*", 11171 11152 "pg-protocol": "*", ··· 11188 11169 "version": "19.1.8", 11189 11170 "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.8.tgz", 11190 11171 "integrity": "sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==", 11172 + "peer": true, 11191 11173 "dependencies": { 11192 11174 "csstype": "^3.0.2" 11193 11175 } ··· 11379 11361 "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.46.2.tgz", 11380 11362 "integrity": "sha512-BnOroVl1SgrPLywqxyqdJ4l3S2MsKVLDVxZvjI1Eoe8ev2r3kGDo+PcMihNmDE+6/KjkTubSJnmqGZZjQSBq/g==", 11381 11363 "dev": true, 11364 + "peer": true, 11382 11365 "dependencies": { 11383 11366 "@typescript-eslint/scope-manager": "8.46.2", 11384 11367 "@typescript-eslint/types": "8.46.2", ··· 11958 11941 "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz", 11959 11942 "integrity": "sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==", 11960 11943 "dev": true, 11944 + "peer": true, 11961 11945 "dependencies": { 11962 11946 "@vitest/utils": "3.2.4", 11963 11947 "pathe": "^2.0.3", ··· 12242 12226 "version": "8.15.0", 12243 12227 "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", 12244 12228 "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", 12229 + "peer": true, 12245 12230 "bin": { 12246 12231 "acorn": "bin/acorn" 12247 12232 }, ··· 12261 12246 "version": "1.7.1", 12262 12247 "resolved": "https://registry.npmjs.org/aframe/-/aframe-1.7.1.tgz", 12263 12248 "integrity": "sha512-dcc7PWI5z8pyJ0s2W0mUd8d83339frgMXhUvWr1yxkdgg6zSExkuQwsSJjiNn7XWKMUUqKYDvV/WzQQRA+OBXA==", 12264 - "peer": true, 12265 12249 "dependencies": { 12266 12250 "buffer": "^6.0.3", 12267 12251 "debug": "^4.3.4", ··· 12309 12293 "name": "super-three", 12310 12294 "version": "0.173.5", 12311 12295 "resolved": "https://registry.npmjs.org/super-three/-/super-three-0.173.5.tgz", 12312 - "integrity": "sha512-ecjojbhUg/5QrixwqF4s6gvtJap9XQz7TcnFUX/J8Yosgb2eE2ZUqsyqr/JczFG//6hwIaZPeAa9M5DNaM1dmQ==", 12313 - "peer": true 12296 + "integrity": "sha512-ecjojbhUg/5QrixwqF4s6gvtJap9XQz7TcnFUX/J8Yosgb2eE2ZUqsyqr/JczFG//6hwIaZPeAa9M5DNaM1dmQ==" 12314 12297 }, 12315 12298 "node_modules/agent-base": { 12316 12299 "version": "7.1.4", ··· 12340 12323 "node_modules/an-array": { 12341 12324 "version": "1.0.0", 12342 12325 "resolved": "https://registry.npmjs.org/an-array/-/an-array-1.0.0.tgz", 12343 - "integrity": "sha512-M175GYI7RmsYu24Ok383yZQa3eveDfNnmhTe3OQ3bm70bEovz2gWenH+ST/n32M8lrwLWk74hcPds5CDRPe2wg==", 12344 - "peer": true 12326 + "integrity": "sha512-M175GYI7RmsYu24Ok383yZQa3eveDfNnmhTe3OQ3bm70bEovz2gWenH+ST/n32M8lrwLWk74hcPds5CDRPe2wg==" 12345 12327 }, 12346 12328 "node_modules/ansi-escapes": { 12347 12329 "version": "4.3.2", ··· 12526 12508 "version": "1.0.1", 12527 12509 "resolved": "https://registry.npmjs.org/array-shuffle/-/array-shuffle-1.0.1.tgz", 12528 12510 "integrity": "sha512-PBqgo1Y2XWSksBzq3GFPEb798ZrW2snAcmr4drbVeF/6MT/5aBlkGJEvu5A/CzXHf4EjbHOj/ZowatjlIiVidA==", 12529 - "peer": true, 12530 12511 "engines": { 12531 12512 "node": ">=0.10.0" 12532 12513 } ··· 12657 12638 "node_modules/as-number": { 12658 12639 "version": "1.0.0", 12659 12640 "resolved": "https://registry.npmjs.org/as-number/-/as-number-1.0.0.tgz", 12660 - "integrity": "sha512-HkI/zLo2AbSRO4fqVkmyf3hms0bJDs3iboHqTrNuwTiCRvdYXM7HFhfhB6Dk51anV2LM/IMB83mtK9mHw4FlAg==", 12661 - "peer": true 12641 + "integrity": "sha512-HkI/zLo2AbSRO4fqVkmyf3hms0bJDs3iboHqTrNuwTiCRvdYXM7HFhfhB6Dk51anV2LM/IMB83mtK9mHw4FlAg==" 12662 12642 }, 12663 12643 "node_modules/asap": { 12664 12644 "version": "2.0.6", ··· 13314 13294 "version": "1.2.1", 13315 13295 "resolved": "https://registry.npmjs.org/browser-assert/-/browser-assert-1.2.1.tgz", 13316 13296 "integrity": "sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==", 13317 - "dev": true, 13318 - "peer": true 13297 + "dev": true 13319 13298 }, 13320 13299 "node_modules/browserslist": { 13321 13300 "version": "4.27.0", ··· 13336 13315 "url": "https://github.com/sponsors/ai" 13337 13316 } 13338 13317 ], 13318 + "peer": true, 13339 13319 "dependencies": { 13340 13320 "baseline-browser-mapping": "^2.8.19", 13341 13321 "caniuse-lite": "^1.0.30001751", ··· 13407 13387 "version": "0.0.1", 13408 13388 "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", 13409 13389 "integrity": "sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==", 13410 - "peer": true, 13411 13390 "engines": { 13412 13391 "node": ">=0.4.0" 13413 13392 } ··· 13695 13674 "version": "2.7.0", 13696 13675 "resolved": "https://registry.npmjs.org/centra/-/centra-2.7.0.tgz", 13697 13676 "integrity": "sha512-PbFMgMSrmgx6uxCdm57RUos9Tc3fclMvhLSATYN39XsDV29B89zZ3KA89jmY0vwSGazyU+uerqwa6t+KaodPcg==", 13698 - "peer": true, 13699 13677 "dependencies": { 13700 13678 "follow-redirects": "^1.15.6" 13701 13679 } ··· 14139 14117 "version": "1.0.3", 14140 14118 "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", 14141 14119 "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", 14142 - "peer": true, 14143 14120 "dependencies": { 14144 14121 "mimic-response": "^1.0.0" 14145 14122 }, ··· 14151 14128 "version": "1.0.1", 14152 14129 "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", 14153 14130 "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", 14154 - "peer": true, 14155 14131 "engines": { 14156 14132 "node": ">=4" 14157 14133 } ··· 14882 14858 "version": "3.0.0", 14883 14859 "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", 14884 14860 "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", 14861 + "peer": true, 14885 14862 "engines": { 14886 14863 "node": ">=12" 14887 14864 } ··· 15042 15019 "node_modules/dayjs": { 15043 15020 "version": "1.11.18", 15044 15021 "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.18.tgz", 15045 - "integrity": "sha512-zFBQ7WFRvVRhKcWoUh+ZA1g2HVgUbsZm9sbddh8EC5iv93sui8DVVz1Npvz+r6meo9VKfa8NyLWBsQK1VvIKPA==" 15022 + "integrity": "sha512-zFBQ7WFRvVRhKcWoUh+ZA1g2HVgUbsZm9sbddh8EC5iv93sui8DVVz1Npvz+r6meo9VKfa8NyLWBsQK1VvIKPA==", 15023 + "peer": true 15046 15024 }, 15047 15025 "node_modules/debug": { 15048 15026 "version": "4.4.3", ··· 15123 15101 "version": "2.0.0", 15124 15102 "resolved": "https://registry.npmjs.org/deep-assign/-/deep-assign-2.0.0.tgz", 15125 15103 "integrity": "sha512-2QhG3Kxulu4XIF3WL5C5x0sc/S17JLgm1SfvDfIRsR/5m7ZGmcejII7fZ2RyWhN0UWIJm0TNM/eKow6LAn3evQ==", 15126 - "peer": true, 15127 15104 "dependencies": { 15128 15105 "is-obj": "^1.0.0" 15129 15106 }, ··· 15463 15440 "version": "0.5.16", 15464 15441 "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", 15465 15442 "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", 15466 - "dev": true, 15467 - "peer": true 15443 + "dev": true 15468 15444 }, 15469 15445 "node_modules/dom-helpers": { 15470 15446 "version": "5.2.1", ··· 15501 15477 "node_modules/dom-walk": { 15502 15478 "version": "0.1.2", 15503 15479 "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", 15504 - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", 15505 - "peer": true 15480 + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" 15506 15481 }, 15507 15482 "node_modules/domelementtype": { 15508 15483 "version": "2.3.0", ··· 15728 15703 "version": "2.0.0", 15729 15704 "resolved": "https://registry.npmjs.org/dtype/-/dtype-2.0.0.tgz", 15730 15705 "integrity": "sha512-s2YVcLKdFGS0hpFqJaTwscsyt0E8nNFdmo73Ocd81xNPj4URI4rj6D60A+vFMIw7BXWlb4yRkEwfBqcZzPGiZg==", 15731 - "peer": true, 15732 15706 "engines": { 15733 15707 "node": ">= 0.8.0" 15734 15708 } ··· 15749 15723 "node_modules/duplexer3": { 15750 15724 "version": "0.1.5", 15751 15725 "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", 15752 - "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", 15753 - "peer": true 15726 + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==" 15754 15727 }, 15755 15728 "node_modules/eastasianwidth": { 15756 15729 "version": "0.2.0", ··· 15776 15749 "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", 15777 15750 "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", 15778 15751 "dev": true, 15752 + "peer": true, 15779 15753 "dependencies": { 15780 15754 "jake": "^10.8.5" 15781 15755 }, ··· 15864 15838 "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", 15865 15839 "dev": true, 15866 15840 "optional": true, 15867 - "peer": true, 15868 15841 "dependencies": { 15869 15842 "prr": "~1.0.1" 15870 15843 }, ··· 16089 16062 "integrity": "sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==", 16090 16063 "dev": true, 16091 16064 "hasInstallScript": true, 16065 + "peer": true, 16092 16066 "bin": { 16093 16067 "esbuild": "bin/esbuild" 16094 16068 }, ··· 16167 16141 "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.38.0.tgz", 16168 16142 "integrity": "sha512-t5aPOpmtJcZcz5UJyY2GbvpDlsK5E8JqRqoKtfiKE3cNh437KIqfJr3A3AKf5k64NPx6d0G3dno6XDY05PqPtw==", 16169 16143 "dev": true, 16144 + "peer": true, 16170 16145 "dependencies": { 16171 16146 "@eslint-community/eslint-utils": "^4.8.0", 16172 16147 "@eslint-community/regexpp": "^4.12.1", ··· 16253 16228 "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", 16254 16229 "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", 16255 16230 "dev": true, 16231 + "peer": true, 16256 16232 "bin": { 16257 16233 "eslint-config-prettier": "bin/cli.js" 16258 16234 }, ··· 16348 16324 "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", 16349 16325 "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", 16350 16326 "dev": true, 16327 + "peer": true, 16351 16328 "dependencies": { 16352 16329 "@rtsao/scc": "^1.1.0", 16353 16330 "array-includes": "^3.1.9", ··· 17369 17346 "url": "https://github.com/sponsors/RubenVerborgh" 17370 17347 } 17371 17348 ], 17372 - "peer": true, 17373 17349 "engines": { 17374 17350 "node": ">=4.0" 17375 17351 }, ··· 17751 17727 "version": "4.4.0", 17752 17728 "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", 17753 17729 "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", 17754 - "peer": true, 17755 17730 "dependencies": { 17756 17731 "min-document": "^2.19.0", 17757 17732 "process": "^0.11.10" ··· 17890 17865 "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", 17891 17866 "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", 17892 17867 "dev": true, 17868 + "peer": true, 17893 17869 "dependencies": { 17894 17870 "minimist": "^1.2.5", 17895 17871 "neo-async": "^2.6.2", ··· 18345 18321 "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", 18346 18322 "dev": true, 18347 18323 "optional": true, 18348 - "peer": true, 18349 18324 "bin": { 18350 18325 "image-size": "bin/image-size.js" 18351 18326 }, ··· 18553 18528 "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", 18554 18529 "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", 18555 18530 "dev": true, 18556 - "peer": true, 18557 18531 "dependencies": { 18558 18532 "call-bound": "^1.0.2", 18559 18533 "has-tostringtag": "^1.0.2" ··· 18653 18627 "node_modules/is-buffer": { 18654 18628 "version": "1.1.6", 18655 18629 "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", 18656 - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", 18657 - "peer": true 18630 + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" 18658 18631 }, 18659 18632 "node_modules/is-bun-module": { 18660 18633 "version": "2.0.0", ··· 18785 18758 "node_modules/is-function": { 18786 18759 "version": "1.0.2", 18787 18760 "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", 18788 - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", 18789 - "peer": true 18761 + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" 18790 18762 }, 18791 18763 "node_modules/is-generator-fn": { 18792 18764 "version": "2.1.0", ··· 18896 18868 "version": "1.0.1", 18897 18869 "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", 18898 18870 "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", 18899 - "peer": true, 18900 18871 "engines": { 18901 18872 "node": ">=0.10.0" 18902 18873 } ··· 19268 19239 "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", 19269 19240 "dev": true, 19270 19241 "license": "MIT", 19242 + "peer": true, 19271 19243 "dependencies": { 19272 19244 "@jest/core": "^29.7.0", 19273 19245 "@jest/types": "^29.6.3", ··· 19975 19947 "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.8.0.tgz", 19976 19948 "integrity": "sha512-iZ8Bdb84lWRuGHamRXFyML07r21pcwBrLkHEuHgEY5UbCouBwv7ECknDRKzsQIXMiqpPymqtIf8TC/shYKB5rw==", 19977 19949 "dev": true, 19978 - "peer": true, 19979 19950 "engines": { 19980 19951 "node": ">=12.0.0" 19981 19952 } ··· 19985 19956 "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-26.1.0.tgz", 19986 19957 "integrity": "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==", 19987 19958 "dev": true, 19959 + "peer": true, 19988 19960 "dependencies": { 19989 19961 "cssstyle": "^4.2.1", 19990 19962 "data-urls": "^5.0.0", ··· 20218 20190 "version": "1.3.4", 20219 20191 "resolved": "https://registry.npmjs.org/layout-bmfont-text/-/layout-bmfont-text-1.3.4.tgz", 20220 20192 "integrity": "sha512-mceomHZ8W7pSKQhTdLvOe1Im4n37u8xa5Gr0J3KPCHRMO/9o7+goWIOzZcUUd+Xgzy3+22bvoIQ0OaN3LRtgaw==", 20221 - "peer": true, 20222 20193 "dependencies": { 20223 20194 "as-number": "^1.0.0", 20224 20195 "word-wrapper": "^1.0.7", ··· 20305 20276 "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", 20306 20277 "dev": true, 20307 20278 "optional": true, 20308 - "peer": true, 20309 20279 "dependencies": { 20310 20280 "pify": "^4.0.1", 20311 20281 "semver": "^5.6.0" ··· 20320 20290 "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", 20321 20291 "dev": true, 20322 20292 "optional": true, 20323 - "peer": true, 20324 20293 "bin": { 20325 20294 "mime": "cli.js" 20326 20295 }, ··· 20334 20303 "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", 20335 20304 "dev": true, 20336 20305 "optional": true, 20337 - "peer": true, 20338 20306 "bin": { 20339 20307 "semver": "bin/semver" 20340 20308 } ··· 20345 20313 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 20346 20314 "dev": true, 20347 20315 "optional": true, 20348 - "peer": true, 20349 20316 "engines": { 20350 20317 "node": ">=0.10.0" 20351 20318 } ··· 20413 20380 "os": [ 20414 20381 "android" 20415 20382 ], 20416 - "peer": true, 20417 20383 "engines": { 20418 20384 "node": ">= 12.0.0" 20419 20385 }, ··· 20434 20400 "os": [ 20435 20401 "darwin" 20436 20402 ], 20437 - "peer": true, 20438 20403 "engines": { 20439 20404 "node": ">= 12.0.0" 20440 20405 }, ··· 20455 20420 "os": [ 20456 20421 "darwin" 20457 20422 ], 20458 - "peer": true, 20459 20423 "engines": { 20460 20424 "node": ">= 12.0.0" 20461 20425 }, ··· 20476 20440 "os": [ 20477 20441 "freebsd" 20478 20442 ], 20479 - "peer": true, 20480 20443 "engines": { 20481 20444 "node": ">= 12.0.0" 20482 20445 }, ··· 20497 20460 "os": [ 20498 20461 "linux" 20499 20462 ], 20500 - "peer": true, 20501 20463 "engines": { 20502 20464 "node": ">= 12.0.0" 20503 20465 }, ··· 20518 20480 "os": [ 20519 20481 "linux" 20520 20482 ], 20521 - "peer": true, 20522 20483 "engines": { 20523 20484 "node": ">= 12.0.0" 20524 20485 }, ··· 20539 20500 "os": [ 20540 20501 "linux" 20541 20502 ], 20542 - "peer": true, 20543 20503 "engines": { 20544 20504 "node": ">= 12.0.0" 20545 20505 }, ··· 20560 20520 "os": [ 20561 20521 "linux" 20562 20522 ], 20563 - "peer": true, 20564 20523 "engines": { 20565 20524 "node": ">= 12.0.0" 20566 20525 }, ··· 20581 20540 "os": [ 20582 20541 "linux" 20583 20542 ], 20584 - "peer": true, 20585 20543 "engines": { 20586 20544 "node": ">= 12.0.0" 20587 20545 }, ··· 20602 20560 "os": [ 20603 20561 "win32" 20604 20562 ], 20605 - "peer": true, 20606 20563 "engines": { 20607 20564 "node": ">= 12.0.0" 20608 20565 }, ··· 20623 20580 "os": [ 20624 20581 "win32" 20625 20582 ], 20626 - "peer": true, 20627 20583 "engines": { 20628 20584 "node": ">= 12.0.0" 20629 20585 }, ··· 20705 20661 "version": "1.4.2", 20706 20662 "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.2.tgz", 20707 20663 "integrity": "sha512-qElWkmjW9Oq1F9EI5Gt7aD9zcdHb9spJCW1L/dmPf7KzCCEJxq8nhHz5eCgI9aMf7vrG/wyaCqdsI+Iy9ZTlog==", 20708 - "peer": true, 20709 20664 "dependencies": { 20710 20665 "buffer-equal": "0.0.1", 20711 20666 "mime": "^1.3.4", ··· 20721 20676 "version": "1.6.0", 20722 20677 "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 20723 20678 "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", 20724 - "peer": true, 20725 20679 "bin": { 20726 20680 "mime": "cli.js" 20727 20681 }, ··· 20763 20717 "version": "4.17.21", 20764 20718 "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 20765 20719 "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", 20766 - "dev": true 20720 + "dev": true, 20721 + "peer": true 20767 20722 }, 20768 20723 "node_modules/lodash-es": { 20769 20724 "version": "4.17.23", ··· 20906 20861 "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", 20907 20862 "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", 20908 20863 "dev": true, 20909 - "peer": true, 20910 20864 "bin": { 20911 20865 "lz-string": "bin/bin.js" 20912 20866 } ··· 20965 20919 "version": "0.0.1", 20966 20920 "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz", 20967 20921 "integrity": "sha512-pJpcfLPnIF/Sk3taPW21G/RQsEEirGaFpCW3oXRwH9dnFHPHNGjNyvh++rdmC2fNqEaTw2MhYJraoJWAHx8kEg==", 20968 - "peer": true, 20969 20922 "dependencies": { 20970 20923 "once": "~1.3.0" 20971 20924 } ··· 20974 20927 "version": "1.3.3", 20975 20928 "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", 20976 20929 "integrity": "sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w==", 20977 - "peer": true, 20978 20930 "dependencies": { 20979 20931 "wrappy": "1" 20980 20932 } ··· 21871 21823 "version": "2.19.2", 21872 21824 "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.2.tgz", 21873 21825 "integrity": "sha512-8S5I8db/uZN8r9HSLFVWPdJCvYOejMcEC82VIzNUc6Zkklf/d1gg2psfE79/vyhWOj4+J8MtwmoOz3TmvaGu5A==", 21874 - "peer": true, 21875 21826 "dependencies": { 21876 21827 "dom-walk": "^0.1.0" 21877 21828 } ··· 22083 22034 "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", 22084 22035 "dev": true, 22085 22036 "optional": true, 22086 - "peer": true, 22087 22037 "dependencies": { 22088 22038 "iconv-lite": "^0.6.3", 22089 22039 "sax": "^1.2.4" ··· 22112 22062 "node_modules/new-array": { 22113 22063 "version": "1.0.0", 22114 22064 "resolved": "https://registry.npmjs.org/new-array/-/new-array-1.0.0.tgz", 22115 - "integrity": "sha512-K5AyFYbuHZ4e/ti52y7k18q8UHsS78FlRd85w2Fmsd6AkuLipDihPflKC0p3PN5i8II7+uHxo+CtkLiJDfmS5A==", 22116 - "peer": true 22065 + "integrity": "sha512-K5AyFYbuHZ4e/ti52y7k18q8UHsS78FlRd85w2Fmsd6AkuLipDihPflKC0p3PN5i8II7+uHxo+CtkLiJDfmS5A==" 22117 22066 }, 22118 22067 "node_modules/next": { 22119 22068 "version": "15.4.10", 22120 22069 "resolved": "https://registry.npmjs.org/next/-/next-15.4.10.tgz", 22121 22070 "integrity": "sha512-itVlc79QjpKMFMRhP+kbGKaSG/gZM6RCvwhEbwmCNF06CdDiNaoHcbeg0PqkEa2GOcn8KJ0nnc7+yL7EjoYLHQ==", 22071 + "peer": true, 22122 22072 "dependencies": { 22123 22073 "@next/env": "15.4.10", 22124 22074 "@swc/helpers": "0.5.15", ··· 22230 22180 "version": "3.0.0", 22231 22181 "resolved": "https://registry.npmjs.org/nice-color-palettes/-/nice-color-palettes-3.0.0.tgz", 22232 22182 "integrity": "sha512-lL4AjabAAFi313tjrtmgm/bxCRzp4l3vCshojfV/ij3IPdtnRqv6Chcw+SqJUhbe7g3o3BecaqCJYUNLswGBhQ==", 22233 - "peer": true, 22234 22183 "dependencies": { 22235 22184 "got": "^9.2.2", 22236 22185 "map-limit": "0.0.1", ··· 22245 22194 "version": "0.14.0", 22246 22195 "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", 22247 22196 "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", 22248 - "peer": true, 22249 22197 "engines": { 22250 22198 "node": ">=6" 22251 22199 } ··· 22254 22202 "version": "1.1.2", 22255 22203 "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", 22256 22204 "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", 22257 - "peer": true, 22258 22205 "dependencies": { 22259 22206 "defer-to-connect": "^1.0.1" 22260 22207 }, ··· 22266 22213 "version": "6.1.0", 22267 22214 "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", 22268 22215 "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", 22269 - "peer": true, 22270 22216 "dependencies": { 22271 22217 "clone-response": "^1.0.2", 22272 22218 "get-stream": "^5.1.0", ··· 22284 22230 "version": "5.2.0", 22285 22231 "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", 22286 22232 "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", 22287 - "peer": true, 22288 22233 "dependencies": { 22289 22234 "pump": "^3.0.0" 22290 22235 }, ··· 22299 22244 "version": "2.0.0", 22300 22245 "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", 22301 22246 "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", 22302 - "peer": true, 22303 22247 "engines": { 22304 22248 "node": ">=8" 22305 22249 } ··· 22308 22252 "version": "3.3.0", 22309 22253 "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", 22310 22254 "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", 22311 - "peer": true, 22312 22255 "dependencies": { 22313 22256 "mimic-response": "^1.0.0" 22314 22257 }, ··· 22319 22262 "node_modules/nice-color-palettes/node_modules/defer-to-connect": { 22320 22263 "version": "1.1.3", 22321 22264 "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", 22322 - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", 22323 - "peer": true 22265 + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" 22324 22266 }, 22325 22267 "node_modules/nice-color-palettes/node_modules/get-stream": { 22326 22268 "version": "4.1.0", 22327 22269 "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", 22328 22270 "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", 22329 - "peer": true, 22330 22271 "dependencies": { 22331 22272 "pump": "^3.0.0" 22332 22273 }, ··· 22338 22279 "version": "9.6.0", 22339 22280 "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", 22340 22281 "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", 22341 - "peer": true, 22342 22282 "dependencies": { 22343 22283 "@sindresorhus/is": "^0.14.0", 22344 22284 "@szmarczak/http-timer": "^1.1.2", ··· 22359 22299 "node_modules/nice-color-palettes/node_modules/json-buffer": { 22360 22300 "version": "3.0.0", 22361 22301 "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", 22362 - "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", 22363 - "peer": true 22302 + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==" 22364 22303 }, 22365 22304 "node_modules/nice-color-palettes/node_modules/keyv": { 22366 22305 "version": "3.1.0", 22367 22306 "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", 22368 22307 "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", 22369 - "peer": true, 22370 22308 "dependencies": { 22371 22309 "json-buffer": "3.0.0" 22372 22310 } ··· 22375 22313 "version": "1.0.1", 22376 22314 "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", 22377 22315 "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", 22378 - "peer": true, 22379 22316 "engines": { 22380 22317 "node": ">=0.10.0" 22381 22318 } ··· 22384 22321 "version": "1.0.1", 22385 22322 "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", 22386 22323 "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", 22387 - "peer": true, 22388 22324 "engines": { 22389 22325 "node": ">=4" 22390 22326 } ··· 22393 22329 "version": "4.5.1", 22394 22330 "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", 22395 22331 "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", 22396 - "peer": true, 22397 22332 "engines": { 22398 22333 "node": ">=8" 22399 22334 } ··· 22402 22337 "version": "1.1.0", 22403 22338 "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", 22404 22339 "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", 22405 - "peer": true, 22406 22340 "engines": { 22407 22341 "node": ">=6" 22408 22342 } ··· 22411 22345 "version": "1.0.2", 22412 22346 "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", 22413 22347 "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", 22414 - "peer": true, 22415 22348 "dependencies": { 22416 22349 "lowercase-keys": "^1.0.0" 22417 22350 } ··· 23077 23010 "node_modules/parse-bmfont-ascii": { 23078 23011 "version": "1.0.6", 23079 23012 "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", 23080 - "integrity": "sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA==", 23081 - "peer": true 23013 + "integrity": "sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA==" 23082 23014 }, 23083 23015 "node_modules/parse-bmfont-binary": { 23084 23016 "version": "1.0.6", 23085 23017 "resolved": "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz", 23086 - "integrity": "sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==", 23087 - "peer": true 23018 + "integrity": "sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==" 23088 23019 }, 23089 23020 "node_modules/parse-bmfont-xml": { 23090 23021 "version": "1.1.6", 23091 23022 "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.6.tgz", 23092 23023 "integrity": "sha512-0cEliVMZEhrFDwMh4SxIyVJpqYoOWDJ9P895tFuS+XuNzI5UBmBk5U5O4KuJdTnZpSBI4LFA2+ZiJaiwfSwlMA==", 23093 - "peer": true, 23094 23024 "dependencies": { 23095 23025 "xml-parse-from-string": "^1.0.0", 23096 23026 "xml2js": "^0.5.0" ··· 23122 23052 "node_modules/parse-headers": { 23123 23053 "version": "2.0.6", 23124 23054 "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.6.tgz", 23125 - "integrity": "sha512-Tz11t3uKztEW5FEVZnj1ox8GKblWn+PvHY9TmJV5Mll2uHEwRdR/5Li1OlXoECjLYkApdhWy44ocONwXLiKO5A==", 23126 - "peer": true 23055 + "integrity": "sha512-Tz11t3uKztEW5FEVZnj1ox8GKblWn+PvHY9TmJV5Mll2uHEwRdR/5Li1OlXoECjLYkApdhWy44ocONwXLiKO5A==" 23127 23056 }, 23128 23057 "node_modules/parse-json": { 23129 23058 "version": "5.2.0", ··· 23312 23241 "resolved": "https://registry.npmjs.org/pg/-/pg-8.16.3.tgz", 23313 23242 "integrity": "sha512-enxc1h0jA/aq5oSDMvqyW3q89ra6XIIDZgCX9vkMrnz5DFTw/Ny3Li2lFQ+pt3L6MCgm/5o2o8HW9hiJji+xvw==", 23314 23243 "dev": true, 23244 + "peer": true, 23315 23245 "dependencies": { 23316 23246 "pg-connection-string": "^2.9.1", 23317 23247 "pg-pool": "^3.10.1", ··· 23401 23331 "resolved": "https://registry.npmjs.org/phin/-/phin-3.7.1.tgz", 23402 23332 "integrity": "sha512-GEazpTWwTZaEQ9RhL7Nyz0WwqilbqgLahDM3D0hxWwmVDI52nXEybHqiN6/elwpkJBhcuj+WbBu+QfT0uhPGfQ==", 23403 23333 "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", 23404 - "peer": true, 23405 23334 "dependencies": { 23406 23335 "centra": "^2.7.0" 23407 23336 }, ··· 23432 23361 "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", 23433 23362 "dev": true, 23434 23363 "optional": true, 23435 - "peer": true, 23436 23364 "engines": { 23437 23365 "node": ">=6" 23438 23366 } ··· 24197 24125 "url": "https://github.com/sponsors/ai" 24198 24126 } 24199 24127 ], 24128 + "peer": true, 24200 24129 "dependencies": { 24201 24130 "nanoid": "^3.3.11", 24202 24131 "picocolors": "^1.1.1", ··· 24371 24300 "version": "3.4.7", 24372 24301 "resolved": "https://registry.npmjs.org/postgres/-/postgres-3.4.7.tgz", 24373 24302 "integrity": "sha512-Jtc2612XINuBjIl/QTWsV5UvE8UHuNblcO3vVADSrKsrc6RqGX6lOW1cEo3CM2v0XG4Nat8nI+YM7/f26VxXLw==", 24303 + "peer": true, 24374 24304 "engines": { 24375 24305 "node": ">=12" 24376 24306 }, ··· 24423 24353 "resolved": "https://registry.npmjs.org/posthog-js/-/posthog-js-1.351.4.tgz", 24424 24354 "integrity": "sha512-vLSYHMN31FGs1cTJ/SCW0aCLiV6K6ZW63Q1K3B16iWRBVTwz/kg6sJZi6Z/oFeKOuy9I5K/LbVLDBCaTTlcESA==", 24425 24355 "dev": true, 24356 + "peer": true, 24426 24357 "dependencies": { 24427 24358 "@opentelemetry/api": "^1.9.0", 24428 24359 "@opentelemetry/api-logs": "^0.208.0", ··· 24516 24447 "version": "2.0.0", 24517 24448 "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", 24518 24449 "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", 24519 - "peer": true, 24520 24450 "engines": { 24521 24451 "node": ">=4" 24522 24452 } ··· 24526 24456 "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", 24527 24457 "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", 24528 24458 "dev": true, 24459 + "peer": true, 24529 24460 "bin": { 24530 24461 "prettier": "bin/prettier.cjs" 24531 24462 }, ··· 24718 24649 "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", 24719 24650 "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", 24720 24651 "dev": true, 24721 - "optional": true, 24722 - "peer": true 24652 + "optional": true 24723 24653 }, 24724 24654 "node_modules/pstree.remy": { 24725 24655 "version": "1.1.8", ··· 24779 24709 "version": "2.0.1", 24780 24710 "resolved": "https://registry.npmjs.org/quad-indices/-/quad-indices-2.0.1.tgz", 24781 24711 "integrity": "sha512-6jtmCsEbGAh5npThXrBaubbTjPcF0rMbn57XCJVI7LkW8PUT56V+uIrRCCWCn85PSgJC9v8Pm5tnJDwmOBewvA==", 24782 - "peer": true, 24783 24712 "dependencies": { 24784 24713 "an-array": "^1.0.0", 24785 24714 "dtype": "^2.0.0", ··· 24899 24828 "version": "19.1.0", 24900 24829 "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", 24901 24830 "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", 24831 + "peer": true, 24902 24832 "engines": { 24903 24833 "node": ">=0.10.0" 24904 24834 } ··· 24949 24879 "version": "19.1.0", 24950 24880 "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", 24951 24881 "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", 24882 + "peer": true, 24952 24883 "dependencies": { 24953 24884 "scheduler": "^0.26.0" 24954 24885 }, ··· 25710 25641 "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.5.tgz", 25711 25642 "integrity": "sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==", 25712 25643 "dev": true, 25644 + "peer": true, 25713 25645 "dependencies": { 25714 25646 "@types/estree": "1.0.8" 25715 25647 }, ··· 25897 25829 "resolved": "https://registry.npmjs.org/sass/-/sass-1.93.2.tgz", 25898 25830 "integrity": "sha512-t+YPtOQHpGW1QWsh1CHQ5cPIr9lbbGZLZnbihP/D/qZj/yuV68m8qarcV17nvkOX81BCrvzAlq2klCQFZghyTg==", 25899 25831 "devOptional": true, 25832 + "peer": true, 25900 25833 "dependencies": { 25901 25834 "chokidar": "^4.0.0", 25902 25835 "immutable": "^5.0.2", ··· 25915 25848 "node_modules/sax": { 25916 25849 "version": "1.4.1", 25917 25850 "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", 25918 - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", 25919 - "peer": true 25851 + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" 25920 25852 }, 25921 25853 "node_modules/saxes": { 25922 25854 "version": "6.0.0", ··· 26460 26392 "resolved": "https://registry.npmjs.org/storybook/-/storybook-9.1.13.tgz", 26461 26393 "integrity": "sha512-G3KZ36EVzXyHds72B/qtWiJnhUpM0xOUeYlDcO9DSHL1bDTv15cW4+upBl+mcBZrDvU838cn7Bv4GpF+O5MCfw==", 26462 26394 "dev": true, 26395 + "peer": true, 26463 26396 "dependencies": { 26464 26397 "@storybook/global": "^5.0.0", 26465 26398 "@testing-library/jest-dom": "^6.6.3", ··· 27002 26935 "node_modules/super-animejs": { 27003 26936 "version": "3.1.0", 27004 26937 "resolved": "https://registry.npmjs.org/super-animejs/-/super-animejs-3.1.0.tgz", 27005 - "integrity": "sha512-6MFAFJDRuvwkovxQZPruuyHinTa4rgj4hNLOndjcYYhZLckoXtVRY9rJPuq8p6c/tgZJrFYEAYAfJ2/hhNtUCA==", 27006 - "peer": true 26938 + "integrity": "sha512-6MFAFJDRuvwkovxQZPruuyHinTa4rgj4hNLOndjcYYhZLckoXtVRY9rJPuq8p6c/tgZJrFYEAYAfJ2/hhNtUCA==" 27007 26939 }, 27008 26940 "node_modules/superagent": { 27009 26941 "version": "10.2.3", ··· 27067 26999 "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.2.tgz", 27068 27000 "integrity": "sha512-My2tytF2e2NnHSpn2M7/3VdXT4JdTglYVUuSuK/mXL2XtulPYbeBfl8Dm1QiaKRn0zoULRnL+EtfZHHP0k4H3A==", 27069 27001 "devOptional": true, 27002 + "peer": true, 27070 27003 "dependencies": { 27071 27004 "@ampproject/remapping": "^2.2.1", 27072 27005 "@jridgewell/sourcemap-codec": "^1.4.15", ··· 27324 27257 "node_modules/three": { 27325 27258 "version": "0.183.2", 27326 27259 "resolved": "https://registry.npmjs.org/three/-/three-0.183.2.tgz", 27327 - "integrity": "sha512-di3BsL2FEQ1PA7Hcvn4fyJOlxRRgFYBpMTcyOgkwJIaDOdJMebEFPA+t98EvjuljDx4hNulAGwF6KIjtwI5jgQ==" 27260 + "integrity": "sha512-di3BsL2FEQ1PA7Hcvn4fyJOlxRRgFYBpMTcyOgkwJIaDOdJMebEFPA+t98EvjuljDx4hNulAGwF6KIjtwI5jgQ==", 27261 + "peer": true 27328 27262 }, 27329 27263 "node_modules/three-bmfont-text": { 27330 27264 "version": "3.0.0", 27331 27265 "resolved": "git+ssh://git@github.com/dmarcos/three-bmfont-text.git#eed4878795be9b3e38cf6aec6b903f56acd1f695", 27332 27266 "integrity": "sha512-JcaccaRCcK/A4c0igPQ9RCw91cil7pLhogDVmrThEvP20B/vbFaaNlmn3frF7pWeo3lATUiNrxVfgxm9qfr9GA==", 27333 - "peer": true, 27334 27267 "dependencies": { 27335 27268 "array-shuffle": "^1.0.1", 27336 27269 "layout-bmfont-text": "^1.2.0", ··· 27498 27431 "version": "1.0.0", 27499 27432 "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", 27500 27433 "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", 27501 - "peer": true, 27502 27434 "engines": { 27503 27435 "node": ">=6" 27504 27436 } ··· 28019 27951 "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", 28020 27952 "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", 28021 27953 "dev": true, 27954 + "peer": true, 28022 27955 "bin": { 28023 27956 "tsc": "bin/tsc", 28024 27957 "tsserver": "bin/tsserver" ··· 28332 28265 "version": "3.0.0", 28333 28266 "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", 28334 28267 "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", 28335 - "peer": true, 28336 28268 "dependencies": { 28337 28269 "prepend-http": "^2.0.0" 28338 28270 }, ··· 28428 28360 "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", 28429 28361 "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", 28430 28362 "dev": true, 28431 - "peer": true, 28432 28363 "dependencies": { 28433 28364 "inherits": "^2.0.3", 28434 28365 "is-arguments": "^1.0.4", ··· 28530 28461 "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz", 28531 28462 "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", 28532 28463 "dev": true, 28464 + "peer": true, 28533 28465 "dependencies": { 28534 28466 "esbuild": "^0.25.0", 28535 28467 "fdir": "^6.4.4", ··· 28676 28608 "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz", 28677 28609 "integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==", 28678 28610 "dev": true, 28611 + "peer": true, 28679 28612 "dependencies": { 28680 28613 "@types/chai": "^5.2.2", 28681 28614 "@vitest/expect": "3.2.4", ··· 28748 28681 "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz", 28749 28682 "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==", 28750 28683 "devOptional": true, 28684 + "peer": true, 28751 28685 "dependencies": { 28752 28686 "@vue/compiler-dom": "3.3.4", 28753 28687 "@vue/compiler-sfc": "3.3.4", ··· 28964 28898 "node_modules/word-wrapper": { 28965 28899 "version": "1.0.7", 28966 28900 "resolved": "https://registry.npmjs.org/word-wrapper/-/word-wrapper-1.0.7.tgz", 28967 - "integrity": "sha512-VOPBFCm9b6FyYKQYfn9AVn2dQvdR/YOVFV6IBRA1TBMJWKffvhEX1af6FMGrttILs2Q9ikCRhLqkbY2weW6dOQ==", 28968 - "peer": true 28901 + "integrity": "sha512-VOPBFCm9b6FyYKQYfn9AVn2dQvdR/YOVFV6IBRA1TBMJWKffvhEX1af6FMGrttILs2Q9ikCRhLqkbY2weW6dOQ==" 28969 28902 }, 28970 28903 "node_modules/wordwrap": { 28971 28904 "version": "1.0.0", ··· 29135 29068 "version": "2.6.0", 29136 29069 "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", 29137 29070 "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", 29138 - "peer": true, 29139 29071 "dependencies": { 29140 29072 "global": "~4.4.0", 29141 29073 "is-function": "^1.0.1", ··· 29155 29087 "node_modules/xml-parse-from-string": { 29156 29088 "version": "1.0.1", 29157 29089 "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", 29158 - "integrity": "sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==", 29159 - "peer": true 29090 + "integrity": "sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==" 29160 29091 }, 29161 29092 "node_modules/xml2js": { 29162 29093 "version": "0.5.0", 29163 29094 "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", 29164 29095 "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", 29165 - "peer": true, 29166 29096 "dependencies": { 29167 29097 "sax": ">=0.6.0", 29168 29098 "xmlbuilder": "~11.0.0" ··· 29175 29105 "version": "11.0.1", 29176 29106 "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", 29177 29107 "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", 29178 - "peer": true, 29179 29108 "engines": { 29180 29109 "node": ">=4.0" 29181 29110 } ··· 29524 29453 "version": "8.3.1", 29525 29454 "resolved": "https://registry.npmjs.org/@mantine/core/-/core-8.3.1.tgz", 29526 29455 "integrity": "sha512-OYfxn9cTv+K6RZ8+Ozn/HDQXkB8Fmn+KJJt5lxyFDP9F09EHnC59Ldadv1LyUZVBGtNqz4sn6b3vBShbxwAmYw==", 29456 + "peer": true, 29527 29457 "dependencies": { 29528 29458 "@floating-ui/react": "^0.27.16", 29529 29459 "clsx": "^2.1.1", ··· 29594 29524 "version": "8.3.1", 29595 29525 "resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-8.3.1.tgz", 29596 29526 "integrity": "sha512-lQutBS+Q0iz/cNFvdrsYassPWo3RtWcmDGJeOtKfHigLzFOhxUuLOkQgepDbMf3WcVMB/tist6Px1PQOv57JTw==", 29527 + "peer": true, 29597 29528 "peerDependencies": { 29598 29529 "react": "^18.x || ^19.x" 29599 29530 }
+17 -1
src/webapp/features/cards/components/urlCardContent/UrlCardContent.tsx
··· 104 104 <IframeEmbed 105 105 url={platform.url} 106 106 cardContent={props.cardContent} 107 - height={200} 107 + height={152} 108 + radius={'lg'} 108 109 /> 109 110 ); 110 111 } ··· 118 119 url={platform.url} 119 120 cardContent={props.cardContent} 120 121 height={200} 122 + /> 123 + ); 124 + } 125 + 126 + if ( 127 + (platform.type === SupportedPlatform.BANDCAMP_ALBUM || 128 + platform.type === SupportedPlatform.BANDCAMP_TRACK) && 129 + settings.cardView !== 'list' 130 + ) { 131 + return ( 132 + <IframeEmbed 133 + url={platform.url} 134 + cardContent={props.cardContent} 135 + height={120} 136 + radius={0} 121 137 /> 122 138 ); 123 139 }
+11 -2
src/webapp/features/platforms/common/components/IframeEmbed/IframeEmbed.tsx
··· 1 1 import { getDomain } from '@/lib/utils/link'; 2 - import { Anchor, Text, Card, Stack, Tooltip, AspectRatio } from '@mantine/core'; 2 + import { 3 + Anchor, 4 + Text, 5 + Card, 6 + Stack, 7 + Tooltip, 8 + AspectRatio, 9 + MantineRadius, 10 + } from '@mantine/core'; 3 11 import { UrlCard } from '@semble/types'; 4 12 import Link from 'next/link'; 5 13 import { Fragment } from 'react'; ··· 9 17 cardContent: UrlCard['cardContent']; 10 18 height?: number | string; 11 19 aspectRatio?: number; 20 + radius?: MantineRadius; 12 21 } 13 22 14 23 export default function IframeEmbed(props: IframeEmbedProps) { ··· 16 25 const height = props.height ?? 200; 17 26 18 27 const iframeElement = ( 19 - <Card p={0}> 28 + <Card p={0} radius={props.radius ?? 'md'}> 20 29 <iframe 21 30 src={props.url} 22 31 height={props.aspectRatio ? '100%' : height}
+24
src/webapp/lib/utils/link.ts
··· 47 47 SPOTIFY = 'spotify', 48 48 PLYRFM_TRACK = 'plyr.fm', 49 49 YOUTUBE_VIDEO = 'youtube video', 50 + BANDCAMP_ALBUM = 'bandcamp album', 51 + BANDCAMP_TRACK = 'bandcamp track', 50 52 DEFAULT = 'default', 51 53 } 52 54 ··· 182 184 type: SupportedPlatform.PLYRFM_TRACK, 183 185 url: `https://plyr.fm/embed/track/${id}`, 184 186 }; 187 + } 188 + } 189 + 190 + // bandcamp 191 + const bandcampRegex = /^[a-z\d][a-z\d-]{2,}[a-z\d]\.bandcamp\.com$/i; 192 + if (bandcampRegex.test(parsedUrl.hostname)) { 193 + const pathComponents = parsedUrl.pathname.split('/'); 194 + switch (pathComponents[1]) { 195 + case 'album': 196 + return { 197 + type: SupportedPlatform.BANDCAMP_ALBUM, 198 + url: `https://bandcamp.com/EmbeddedPlayer/url=${encodeURIComponent( 199 + parsedUrl.href, 200 + )}/size=medium/minimal=true/transparent=true/`, 201 + }; 202 + case 'track': 203 + return { 204 + type: SupportedPlatform.BANDCAMP_TRACK, 205 + url: `https://bandcamp.com/EmbeddedPlayer/url=${encodeURIComponent( 206 + parsedUrl.href, 207 + )}/size=medium/minimal=true/transparent=true/`, 208 + }; 185 209 } 186 210 } 187 211