[READ-ONLY] Mirror of https://github.com/probablykasper/ferrum. Music library app for Mac, Linux and Windows ferrum.kasper.space
electron linux macos music music-library music-player napi windows
0

Configure Feed

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

Add Tailwind

Kasper (Sep 7, 2024, 12:00 PM +0200) a0da634a a2214585

+802 -109
+733 -89
package-lock.json
··· 10 10 "devDependencies": { 11 11 "@napi-rs/cli": "^2.18.4", 12 12 "@sveltejs/vite-plugin-svelte": "^3.1.2", 13 + "@tailwindcss/vite": "4.0.0-alpha.23", 13 14 "@tsconfig/svelte": "^5.0.4", 14 15 "concurrently": "^8.2.2", 15 16 "electron": "^28.3.3", 16 17 "electron-builder": "^25.0.5", 17 - "eslint": "^9.9.1", 18 + "eslint": "^9.10.0", 18 19 "eslint-config-prettier": "^9.1.0", 19 20 "eslint-plugin-svelte": "^2.43.0", 20 21 "fuzzysort": "^3.0.2", 21 22 "prettier": "^3.3.3", 22 23 "prettier-plugin-svelte": "^3.2.6", 23 - "sass": "^1.77.8", 24 + "prettier-plugin-tailwindcss": "^0.6.6", 25 + "sass": "^1.78.0", 24 26 "svelte": "^4.2.19", 25 - "svelte-check": "^4.0.0", 27 + "svelte-check": "^4.0.1", 26 28 "svelte-preprocess": "^6.0.2", 29 + "tailwindcss": "4.0.0-alpha.23", 27 30 "typescript": "~5.5.4", 28 - "typescript-eslint": "^8.3.0", 29 - "vite": "^5.4.2", 31 + "typescript-eslint": "^8.4.0", 32 + "vite": "^5.4.3", 30 33 "vite-plugin-electron": "^0.28.7" 31 34 } 32 35 }, ··· 879 882 } 880 883 }, 881 884 "node_modules/@eslint/js": { 882 - "version": "9.9.1", 883 - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.9.1.tgz", 884 - "integrity": "sha512-xIDQRsfg5hNBqHz04H1R3scSVwmI+KUbqjsQKHKQ1DAUSaUjYPReZZmS/5PNiKu1fUvzDd6H7DEDKACSEhu+TQ==", 885 + "version": "9.10.0", 886 + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.10.0.tgz", 887 + "integrity": "sha512-fuXtbiP5GWIn8Fz+LWoOMVf/Jxm+aajZYkhi6CuEm4SxymFM+eUWzbO9qXT+L0iCkL5+KGYMCSGxo686H19S1g==", 885 888 "dev": true, 886 889 "engines": { 887 890 "node": "^18.18.0 || ^20.9.0 || >=21.1.0" ··· 892 895 "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", 893 896 "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", 894 897 "dev": true, 898 + "engines": { 899 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 900 + } 901 + }, 902 + "node_modules/@eslint/plugin-kit": { 903 + "version": "0.1.0", 904 + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.1.0.tgz", 905 + "integrity": "sha512-autAXT203ixhqei9xt+qkYOvY8l6LAFIdT2UXc/RPNeUVfqRF1BV94GTJyVPFKT8nFM6MyVJhjLj9E8JWvf5zQ==", 906 + "dev": true, 907 + "dependencies": { 908 + "levn": "^0.4.1" 909 + }, 895 910 "engines": { 896 911 "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 897 912 } ··· 1516 1531 "node": ">=10" 1517 1532 } 1518 1533 }, 1534 + "node_modules/@tailwindcss/node": { 1535 + "version": "4.0.0-alpha.23", 1536 + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.0.0-alpha.23.tgz", 1537 + "integrity": "sha512-cijBaDwohFIHQ9miyzhONgvxMkTe7mRhH4QnPmszfD6dcqo3E/Vkm+RA1elKlWrAiSZo7LcwUSQALvMr0ENS9Q==", 1538 + "dev": true, 1539 + "dependencies": { 1540 + "jiti": "^2.0.0-beta.3" 1541 + } 1542 + }, 1543 + "node_modules/@tailwindcss/oxide": { 1544 + "version": "4.0.0-alpha.23", 1545 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.0.0-alpha.23.tgz", 1546 + "integrity": "sha512-MC1WuACDTUDxQPblqDNA3x67mmbADYhWbBFA0EgFd30MD2YT6MP9+VhvN9ZkBL2owu9CIcqjAED7/Wa4XtcOLg==", 1547 + "dev": true, 1548 + "engines": { 1549 + "node": ">= 10" 1550 + }, 1551 + "optionalDependencies": { 1552 + "@tailwindcss/oxide-android-arm64": "4.0.0-alpha.23", 1553 + "@tailwindcss/oxide-darwin-arm64": "4.0.0-alpha.23", 1554 + "@tailwindcss/oxide-darwin-x64": "4.0.0-alpha.23", 1555 + "@tailwindcss/oxide-freebsd-x64": "4.0.0-alpha.23", 1556 + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.0.0-alpha.23", 1557 + "@tailwindcss/oxide-linux-arm64-gnu": "4.0.0-alpha.23", 1558 + "@tailwindcss/oxide-linux-arm64-musl": "4.0.0-alpha.23", 1559 + "@tailwindcss/oxide-linux-x64-gnu": "4.0.0-alpha.23", 1560 + "@tailwindcss/oxide-linux-x64-musl": "4.0.0-alpha.23", 1561 + "@tailwindcss/oxide-win32-x64-msvc": "4.0.0-alpha.23" 1562 + } 1563 + }, 1564 + "node_modules/@tailwindcss/oxide-android-arm64": { 1565 + "version": "4.0.0-alpha.23", 1566 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.0.0-alpha.23.tgz", 1567 + "integrity": "sha512-NVpSsdw9u9zg52b7U+3JNSKsYuDnr0zWja4EaWOeyVFKAuNCIj0hkqe8PRxhaqH292a23CKgpqnpOa0y0r22kQ==", 1568 + "cpu": [ 1569 + "arm64" 1570 + ], 1571 + "dev": true, 1572 + "optional": true, 1573 + "os": [ 1574 + "android" 1575 + ], 1576 + "engines": { 1577 + "node": ">= 10" 1578 + } 1579 + }, 1580 + "node_modules/@tailwindcss/oxide-darwin-arm64": { 1581 + "version": "4.0.0-alpha.23", 1582 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.0.0-alpha.23.tgz", 1583 + "integrity": "sha512-4DvJqUhRfEYS61/LvmCvekszE+JX6tzsUKGTcd+AFKRpWlgVv3+U4GaSg7tT9Qw1lCcnvBMlfX6+uoy1PngGpQ==", 1584 + "cpu": [ 1585 + "arm64" 1586 + ], 1587 + "dev": true, 1588 + "optional": true, 1589 + "os": [ 1590 + "darwin" 1591 + ], 1592 + "engines": { 1593 + "node": ">= 10" 1594 + } 1595 + }, 1596 + "node_modules/@tailwindcss/oxide-darwin-x64": { 1597 + "version": "4.0.0-alpha.23", 1598 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.0.0-alpha.23.tgz", 1599 + "integrity": "sha512-sieWEozY+Ezk93ZocojMwIdTyI6C8F65UGNBJw2IXpYo6eA4/iJkCTNbSZRE36HJCfnaGxv0Ck2c8fLZjz6NXQ==", 1600 + "cpu": [ 1601 + "x64" 1602 + ], 1603 + "dev": true, 1604 + "optional": true, 1605 + "os": [ 1606 + "darwin" 1607 + ], 1608 + "engines": { 1609 + "node": ">= 10" 1610 + } 1611 + }, 1612 + "node_modules/@tailwindcss/oxide-freebsd-x64": { 1613 + "version": "4.0.0-alpha.23", 1614 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.0.0-alpha.23.tgz", 1615 + "integrity": "sha512-qYNSPJ5v1lfCE2nfiuYw71WOz7Ni/sVgIDc11jOs1W0MoQfChIQ9ylO0rSH72PrhJVdvwmPGHTUUAP07+CwAOQ==", 1616 + "cpu": [ 1617 + "x64" 1618 + ], 1619 + "dev": true, 1620 + "optional": true, 1621 + "os": [ 1622 + "freebsd" 1623 + ], 1624 + "engines": { 1625 + "node": ">= 10" 1626 + } 1627 + }, 1628 + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { 1629 + "version": "4.0.0-alpha.23", 1630 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.0.0-alpha.23.tgz", 1631 + "integrity": "sha512-7zXukEjz8i1fiR8cyA4Tta1IqjoLlc7TQWqkdE05C2ZYqrE+JTmTgE47JdcErU8XA16FBWmajIIyTv1FN78ZrQ==", 1632 + "cpu": [ 1633 + "arm" 1634 + ], 1635 + "dev": true, 1636 + "optional": true, 1637 + "os": [ 1638 + "linux" 1639 + ], 1640 + "engines": { 1641 + "node": ">= 10" 1642 + } 1643 + }, 1644 + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { 1645 + "version": "4.0.0-alpha.23", 1646 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.0.0-alpha.23.tgz", 1647 + "integrity": "sha512-UQ5vKDxYE4+8QwTEifXkjGJOS1tckomzfiQC++6hiH89dtg199thWLVWBsqbU8meleFaO3VGr/sPUKILbwX8IA==", 1648 + "cpu": [ 1649 + "arm64" 1650 + ], 1651 + "dev": true, 1652 + "optional": true, 1653 + "os": [ 1654 + "linux" 1655 + ], 1656 + "engines": { 1657 + "node": ">= 10" 1658 + } 1659 + }, 1660 + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { 1661 + "version": "4.0.0-alpha.23", 1662 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.0.0-alpha.23.tgz", 1663 + "integrity": "sha512-60cHuT660aeoHZ5Wpefxc3SRAdVdBVN1geypeKHzvnbdVDPzYj1XKQusrQ9tbNoknjn4182frqwd8a1RZaoeEw==", 1664 + "cpu": [ 1665 + "arm64" 1666 + ], 1667 + "dev": true, 1668 + "optional": true, 1669 + "os": [ 1670 + "linux" 1671 + ], 1672 + "engines": { 1673 + "node": ">= 10" 1674 + } 1675 + }, 1676 + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { 1677 + "version": "4.0.0-alpha.23", 1678 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.0.0-alpha.23.tgz", 1679 + "integrity": "sha512-1IhD1/kVZZIrpI/Z+i8KsirrEo0aO6WN/NRprYzNvMhj0d2+Aqy4RRqlj++vtvPFpesT8CqsZP1wLexM/6cK2Q==", 1680 + "cpu": [ 1681 + "x64" 1682 + ], 1683 + "dev": true, 1684 + "optional": true, 1685 + "os": [ 1686 + "linux" 1687 + ], 1688 + "engines": { 1689 + "node": ">= 10" 1690 + } 1691 + }, 1692 + "node_modules/@tailwindcss/oxide-linux-x64-musl": { 1693 + "version": "4.0.0-alpha.23", 1694 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.0.0-alpha.23.tgz", 1695 + "integrity": "sha512-Bqbr17np6qE41gbnVMkpRSYJhwGv1PGz7cU+8upuQWx6b8uNptwcCJLOLLt3dQFqfieK/2NEs2QZZevxLsq5ng==", 1696 + "cpu": [ 1697 + "x64" 1698 + ], 1699 + "dev": true, 1700 + "optional": true, 1701 + "os": [ 1702 + "linux" 1703 + ], 1704 + "engines": { 1705 + "node": ">= 10" 1706 + } 1707 + }, 1708 + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { 1709 + "version": "4.0.0-alpha.23", 1710 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.0.0-alpha.23.tgz", 1711 + "integrity": "sha512-N31hPSK1Uxo17dWwn6fQEMWqvFBxMUZWRoHOZG7qbHe6NTTC69wFMDzdxCY1nbRnvx5ObAiWzRFuZoNES7AzSg==", 1712 + "cpu": [ 1713 + "x64" 1714 + ], 1715 + "dev": true, 1716 + "optional": true, 1717 + "os": [ 1718 + "win32" 1719 + ], 1720 + "engines": { 1721 + "node": ">= 10" 1722 + } 1723 + }, 1724 + "node_modules/@tailwindcss/vite": { 1725 + "version": "4.0.0-alpha.23", 1726 + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.0.0-alpha.23.tgz", 1727 + "integrity": "sha512-JEllYp6YKOl3mMpKZ4UGf9E32HBCxf/tZ1jrFORB+Sj7ng69rDHOkYyQREezPIHguHj2yeREeShIivAcLnu5tQ==", 1728 + "dev": true, 1729 + "dependencies": { 1730 + "@tailwindcss/node": "4.0.0-alpha.23", 1731 + "@tailwindcss/oxide": "4.0.0-alpha.23", 1732 + "lightningcss": "^1.26.0", 1733 + "postcss": "^8.4.41", 1734 + "postcss-import": "^16.1.0", 1735 + "tailwindcss": "4.0.0-alpha.23" 1736 + }, 1737 + "peerDependencies": { 1738 + "vite": "^5.2.0" 1739 + } 1740 + }, 1519 1741 "node_modules/@tootallnate/once": { 1520 1742 "version": "2.0.0", 1521 1743 "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", ··· 1589 1811 "dev": true 1590 1812 }, 1591 1813 "node_modules/@types/node": { 1592 - "version": "18.19.48", 1593 - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.48.tgz", 1594 - "integrity": "sha512-7WevbG4ekUcRQSZzOwxWgi5dZmTak7FaxXDoW7xVxPBmKx1rTzfmRLkeCgJzcbBnOV2dkhAPc8cCeT6agocpjg==", 1814 + "version": "18.19.50", 1815 + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.50.tgz", 1816 + "integrity": "sha512-xonK+NRrMBRtkL1hVCc3G+uXtjh1Al4opBLjqVmipe5ZAaBYWW6cNAiBVZ1BvmkBhep698rP3UM3aRAdSALuhg==", 1595 1817 "dev": true, 1596 1818 "dependencies": { 1597 1819 "undici-types": "~5.26.4" ··· 1635 1857 } 1636 1858 }, 1637 1859 "node_modules/@typescript-eslint/eslint-plugin": { 1638 - "version": "8.3.0", 1639 - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.3.0.tgz", 1640 - "integrity": "sha512-FLAIn63G5KH+adZosDYiutqkOkYEx0nvcwNNfJAf+c7Ae/H35qWwTYvPZUKFj5AS+WfHG/WJJfWnDnyNUlp8UA==", 1860 + "version": "8.4.0", 1861 + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.4.0.tgz", 1862 + "integrity": "sha512-rg8LGdv7ri3oAlenMACk9e+AR4wUV0yrrG+XKsGKOK0EVgeEDqurkXMPILG2836fW4ibokTB5v4b6Z9+GYQDEw==", 1641 1863 "dev": true, 1642 1864 "dependencies": { 1643 1865 "@eslint-community/regexpp": "^4.10.0", 1644 - "@typescript-eslint/scope-manager": "8.3.0", 1645 - "@typescript-eslint/type-utils": "8.3.0", 1646 - "@typescript-eslint/utils": "8.3.0", 1647 - "@typescript-eslint/visitor-keys": "8.3.0", 1866 + "@typescript-eslint/scope-manager": "8.4.0", 1867 + "@typescript-eslint/type-utils": "8.4.0", 1868 + "@typescript-eslint/utils": "8.4.0", 1869 + "@typescript-eslint/visitor-keys": "8.4.0", 1648 1870 "graphemer": "^1.4.0", 1649 1871 "ignore": "^5.3.1", 1650 1872 "natural-compare": "^1.4.0", ··· 1668 1890 } 1669 1891 }, 1670 1892 "node_modules/@typescript-eslint/parser": { 1671 - "version": "8.3.0", 1672 - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.3.0.tgz", 1673 - "integrity": "sha512-h53RhVyLu6AtpUzVCYLPhZGL5jzTD9fZL+SYf/+hYOx2bDkyQXztXSc4tbvKYHzfMXExMLiL9CWqJmVz6+78IQ==", 1893 + "version": "8.4.0", 1894 + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.4.0.tgz", 1895 + "integrity": "sha512-NHgWmKSgJk5K9N16GIhQ4jSobBoJwrmURaLErad0qlLjrpP5bECYg+wxVTGlGZmJbU03jj/dfnb6V9bw+5icsA==", 1674 1896 "dev": true, 1675 1897 "dependencies": { 1676 - "@typescript-eslint/scope-manager": "8.3.0", 1677 - "@typescript-eslint/types": "8.3.0", 1678 - "@typescript-eslint/typescript-estree": "8.3.0", 1679 - "@typescript-eslint/visitor-keys": "8.3.0", 1898 + "@typescript-eslint/scope-manager": "8.4.0", 1899 + "@typescript-eslint/types": "8.4.0", 1900 + "@typescript-eslint/typescript-estree": "8.4.0", 1901 + "@typescript-eslint/visitor-keys": "8.4.0", 1680 1902 "debug": "^4.3.4" 1681 1903 }, 1682 1904 "engines": { ··· 1696 1918 } 1697 1919 }, 1698 1920 "node_modules/@typescript-eslint/scope-manager": { 1699 - "version": "8.3.0", 1700 - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.3.0.tgz", 1701 - "integrity": "sha512-mz2X8WcN2nVu5Hodku+IR8GgCOl4C0G/Z1ruaWN4dgec64kDBabuXyPAr+/RgJtumv8EEkqIzf3X2U5DUKB2eg==", 1921 + "version": "8.4.0", 1922 + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.4.0.tgz", 1923 + "integrity": "sha512-n2jFxLeY0JmKfUqy3P70rs6vdoPjHK8P/w+zJcV3fk0b0BwRXC/zxRTEnAsgYT7MwdQDt/ZEbtdzdVC+hcpF0A==", 1702 1924 "dev": true, 1703 1925 "dependencies": { 1704 - "@typescript-eslint/types": "8.3.0", 1705 - "@typescript-eslint/visitor-keys": "8.3.0" 1926 + "@typescript-eslint/types": "8.4.0", 1927 + "@typescript-eslint/visitor-keys": "8.4.0" 1706 1928 }, 1707 1929 "engines": { 1708 1930 "node": "^18.18.0 || ^20.9.0 || >=21.1.0" ··· 1713 1935 } 1714 1936 }, 1715 1937 "node_modules/@typescript-eslint/type-utils": { 1716 - "version": "8.3.0", 1717 - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.3.0.tgz", 1718 - "integrity": "sha512-wrV6qh//nLbfXZQoj32EXKmwHf4b7L+xXLrP3FZ0GOUU72gSvLjeWUl5J5Ue5IwRxIV1TfF73j/eaBapxx99Lg==", 1938 + "version": "8.4.0", 1939 + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.4.0.tgz", 1940 + "integrity": "sha512-pu2PAmNrl9KX6TtirVOrbLPLwDmASpZhK/XU7WvoKoCUkdtq9zF7qQ7gna0GBZFN0hci0vHaSusiL2WpsQk37A==", 1719 1941 "dev": true, 1720 1942 "dependencies": { 1721 - "@typescript-eslint/typescript-estree": "8.3.0", 1722 - "@typescript-eslint/utils": "8.3.0", 1943 + "@typescript-eslint/typescript-estree": "8.4.0", 1944 + "@typescript-eslint/utils": "8.4.0", 1723 1945 "debug": "^4.3.4", 1724 1946 "ts-api-utils": "^1.3.0" 1725 1947 }, ··· 1737 1959 } 1738 1960 }, 1739 1961 "node_modules/@typescript-eslint/types": { 1740 - "version": "8.3.0", 1741 - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.3.0.tgz", 1742 - "integrity": "sha512-y6sSEeK+facMaAyixM36dQ5NVXTnKWunfD1Ft4xraYqxP0lC0POJmIaL/mw72CUMqjY9qfyVfXafMeaUj0noWw==", 1962 + "version": "8.4.0", 1963 + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.4.0.tgz", 1964 + "integrity": "sha512-T1RB3KQdskh9t3v/qv7niK6P8yvn7ja1mS7QK7XfRVL6wtZ8/mFs/FHf4fKvTA0rKnqnYxl/uHFNbnEt0phgbw==", 1743 1965 "dev": true, 1744 1966 "engines": { 1745 1967 "node": "^18.18.0 || ^20.9.0 || >=21.1.0" ··· 1750 1972 } 1751 1973 }, 1752 1974 "node_modules/@typescript-eslint/typescript-estree": { 1753 - "version": "8.3.0", 1754 - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.3.0.tgz", 1755 - "integrity": "sha512-Mq7FTHl0R36EmWlCJWojIC1qn/ZWo2YiWYc1XVtasJ7FIgjo0MVv9rZWXEE7IK2CGrtwe1dVOxWwqXUdNgfRCA==", 1975 + "version": "8.4.0", 1976 + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.4.0.tgz", 1977 + "integrity": "sha512-kJ2OIP4dQw5gdI4uXsaxUZHRwWAGpREJ9Zq6D5L0BweyOrWsL6Sz0YcAZGWhvKnH7fm1J5YFE1JrQL0c9dd53A==", 1756 1978 "dev": true, 1757 1979 "dependencies": { 1758 - "@typescript-eslint/types": "8.3.0", 1759 - "@typescript-eslint/visitor-keys": "8.3.0", 1980 + "@typescript-eslint/types": "8.4.0", 1981 + "@typescript-eslint/visitor-keys": "8.4.0", 1760 1982 "debug": "^4.3.4", 1761 1983 "fast-glob": "^3.3.2", 1762 1984 "is-glob": "^4.0.3", ··· 1805 2027 } 1806 2028 }, 1807 2029 "node_modules/@typescript-eslint/utils": { 1808 - "version": "8.3.0", 1809 - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.3.0.tgz", 1810 - "integrity": "sha512-F77WwqxIi/qGkIGOGXNBLV7nykwfjLsdauRB/DOFPdv6LTF3BHHkBpq81/b5iMPSF055oO2BiivDJV4ChvNtXA==", 2030 + "version": "8.4.0", 2031 + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.4.0.tgz", 2032 + "integrity": "sha512-swULW8n1IKLjRAgciCkTCafyTHHfwVQFt8DovmaF69sKbOxTSFMmIZaSHjqO9i/RV0wIblaawhzvtva8Nmm7lQ==", 1811 2033 "dev": true, 1812 2034 "dependencies": { 1813 2035 "@eslint-community/eslint-utils": "^4.4.0", 1814 - "@typescript-eslint/scope-manager": "8.3.0", 1815 - "@typescript-eslint/types": "8.3.0", 1816 - "@typescript-eslint/typescript-estree": "8.3.0" 2036 + "@typescript-eslint/scope-manager": "8.4.0", 2037 + "@typescript-eslint/types": "8.4.0", 2038 + "@typescript-eslint/typescript-estree": "8.4.0" 1817 2039 }, 1818 2040 "engines": { 1819 2041 "node": "^18.18.0 || ^20.9.0 || >=21.1.0" ··· 1827 2049 } 1828 2050 }, 1829 2051 "node_modules/@typescript-eslint/visitor-keys": { 1830 - "version": "8.3.0", 1831 - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.3.0.tgz", 1832 - "integrity": "sha512-RmZwrTbQ9QveF15m/Cl28n0LXD6ea2CjkhH5rQ55ewz3H24w+AMCJHPVYaZ8/0HoG8Z3cLLFFycRXxeO2tz9FA==", 2052 + "version": "8.4.0", 2053 + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.4.0.tgz", 2054 + "integrity": "sha512-zTQD6WLNTre1hj5wp09nBIDiOc2U5r/qmzo7wxPn4ZgAjHql09EofqhF9WF+fZHzL5aCyaIpPcT2hyxl73kr9A==", 1833 2055 "dev": true, 1834 2056 "dependencies": { 1835 - "@typescript-eslint/types": "8.3.0", 2057 + "@typescript-eslint/types": "8.4.0", 1836 2058 "eslint-visitor-keys": "^3.4.3" 1837 2059 }, 1838 2060 "engines": { ··· 3027 3249 } 3028 3250 }, 3029 3251 "node_modules/debug": { 3030 - "version": "4.3.6", 3031 - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", 3032 - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", 3252 + "version": "4.3.7", 3253 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", 3254 + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", 3033 3255 "dev": true, 3034 3256 "dependencies": { 3035 - "ms": "2.1.2" 3257 + "ms": "^2.1.3" 3036 3258 }, 3037 3259 "engines": { 3038 3260 "node": ">=6.0" ··· 3650 3872 } 3651 3873 }, 3652 3874 "node_modules/eslint": { 3653 - "version": "9.9.1", 3654 - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.9.1.tgz", 3655 - "integrity": "sha512-dHvhrbfr4xFQ9/dq+jcVneZMyRYLjggWjk6RVsIiHsP8Rz6yZ8LvZ//iU4TrZF+SXWG+JkNF2OyiZRvzgRDqMg==", 3875 + "version": "9.10.0", 3876 + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.10.0.tgz", 3877 + "integrity": "sha512-Y4D0IgtBZfOcOUAIQTSXBKoNGfY0REGqHJG6+Q81vNippW5YlKjHFj4soMxamKK1NXHUWuBZTLdU3Km+L/pcHw==", 3656 3878 "dev": true, 3657 3879 "dependencies": { 3658 3880 "@eslint-community/eslint-utils": "^4.2.0", 3659 3881 "@eslint-community/regexpp": "^4.11.0", 3660 3882 "@eslint/config-array": "^0.18.0", 3661 3883 "@eslint/eslintrc": "^3.1.0", 3662 - "@eslint/js": "9.9.1", 3884 + "@eslint/js": "9.10.0", 3885 + "@eslint/plugin-kit": "^0.1.0", 3663 3886 "@humanwhocodes/module-importer": "^1.0.1", 3664 3887 "@humanwhocodes/retry": "^0.3.0", 3665 3888 "@nodelib/fs.walk": "^1.2.8", ··· 3682 3905 "is-glob": "^4.0.0", 3683 3906 "is-path-inside": "^3.0.3", 3684 3907 "json-stable-stringify-without-jsonify": "^1.0.1", 3685 - "levn": "^0.4.1", 3686 3908 "lodash.merge": "^4.6.2", 3687 3909 "minimatch": "^3.1.2", 3688 3910 "natural-compare": "^1.4.0", ··· 4191 4413 "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", 4192 4414 "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", 4193 4415 "dev": true, 4194 - "optional": true, 4195 4416 "funding": { 4196 4417 "url": "https://github.com/sponsors/ljharb" 4197 4418 } ··· 4490 4711 "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", 4491 4712 "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", 4492 4713 "dev": true, 4493 - "optional": true, 4494 4714 "dependencies": { 4495 4715 "function-bind": "^1.1.2" 4496 4716 }, ··· 4723 4943 "is-ci": "bin.js" 4724 4944 } 4725 4945 }, 4946 + "node_modules/is-core-module": { 4947 + "version": "2.15.1", 4948 + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", 4949 + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", 4950 + "dev": true, 4951 + "dependencies": { 4952 + "hasown": "^2.0.2" 4953 + }, 4954 + "engines": { 4955 + "node": ">= 0.4" 4956 + }, 4957 + "funding": { 4958 + "url": "https://github.com/sponsors/ljharb" 4959 + } 4960 + }, 4726 4961 "node_modules/is-extglob": { 4727 4962 "version": "2.1.1", 4728 4963 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", ··· 4887 5122 "node": "*" 4888 5123 } 4889 5124 }, 5125 + "node_modules/jiti": { 5126 + "version": "2.0.0-beta.3", 5127 + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.0.0-beta.3.tgz", 5128 + "integrity": "sha512-pmfRbVRs/7khFrSAYnSiJ8C0D5GvzkE4Ey2pAvUcJsw1ly/p+7ut27jbJrjY79BpAJQJ4gXYFtK6d1Aub+9baQ==", 5129 + "dev": true, 5130 + "bin": { 5131 + "jiti": "lib/jiti-cli.mjs" 5132 + } 5133 + }, 4890 5134 "node_modules/js-yaml": { 4891 5135 "version": "4.1.0", 4892 5136 "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", ··· 5040 5284 "node": ">= 0.8.0" 5041 5285 } 5042 5286 }, 5287 + "node_modules/lightningcss": { 5288 + "version": "1.26.0", 5289 + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.26.0.tgz", 5290 + "integrity": "sha512-a/XZ5hdgifrofQJUArr5AiJjx26SwMam3SJUSMjgebZbESZ96i+6Qsl8tLi0kaUsdMzBWXh9sN1Oe6hp2/dkQw==", 5291 + "dev": true, 5292 + "dependencies": { 5293 + "detect-libc": "^1.0.3" 5294 + }, 5295 + "engines": { 5296 + "node": ">= 12.0.0" 5297 + }, 5298 + "funding": { 5299 + "type": "opencollective", 5300 + "url": "https://opencollective.com/parcel" 5301 + }, 5302 + "optionalDependencies": { 5303 + "lightningcss-darwin-arm64": "1.26.0", 5304 + "lightningcss-darwin-x64": "1.26.0", 5305 + "lightningcss-freebsd-x64": "1.26.0", 5306 + "lightningcss-linux-arm-gnueabihf": "1.26.0", 5307 + "lightningcss-linux-arm64-gnu": "1.26.0", 5308 + "lightningcss-linux-arm64-musl": "1.26.0", 5309 + "lightningcss-linux-x64-gnu": "1.26.0", 5310 + "lightningcss-linux-x64-musl": "1.26.0", 5311 + "lightningcss-win32-arm64-msvc": "1.26.0", 5312 + "lightningcss-win32-x64-msvc": "1.26.0" 5313 + } 5314 + }, 5315 + "node_modules/lightningcss-darwin-arm64": { 5316 + "version": "1.26.0", 5317 + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.26.0.tgz", 5318 + "integrity": "sha512-n4TIvHO1NY1ondKFYpL2ZX0bcC2y6yjXMD6JfyizgR8BCFNEeArINDzEaeqlfX9bXz73Bpz/Ow0nu+1qiDrBKg==", 5319 + "cpu": [ 5320 + "arm64" 5321 + ], 5322 + "dev": true, 5323 + "optional": true, 5324 + "os": [ 5325 + "darwin" 5326 + ], 5327 + "engines": { 5328 + "node": ">= 12.0.0" 5329 + }, 5330 + "funding": { 5331 + "type": "opencollective", 5332 + "url": "https://opencollective.com/parcel" 5333 + } 5334 + }, 5335 + "node_modules/lightningcss-darwin-x64": { 5336 + "version": "1.26.0", 5337 + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.26.0.tgz", 5338 + "integrity": "sha512-Rf9HuHIDi1R6/zgBkJh25SiJHF+dm9axUZW/0UoYCW1/8HV0gMI0blARhH4z+REmWiU1yYT/KyNF3h7tHyRXUg==", 5339 + "cpu": [ 5340 + "x64" 5341 + ], 5342 + "dev": true, 5343 + "optional": true, 5344 + "os": [ 5345 + "darwin" 5346 + ], 5347 + "engines": { 5348 + "node": ">= 12.0.0" 5349 + }, 5350 + "funding": { 5351 + "type": "opencollective", 5352 + "url": "https://opencollective.com/parcel" 5353 + } 5354 + }, 5355 + "node_modules/lightningcss-freebsd-x64": { 5356 + "version": "1.26.0", 5357 + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.26.0.tgz", 5358 + "integrity": "sha512-C/io7POAxp6sZxFSVGezjajMlCKQ8KSwISLLGRq8xLQpQMokYrUoqYEwmIX8mLmF6C/CZPk0gFmRSzd8biWM0g==", 5359 + "cpu": [ 5360 + "x64" 5361 + ], 5362 + "dev": true, 5363 + "optional": true, 5364 + "os": [ 5365 + "freebsd" 5366 + ], 5367 + "engines": { 5368 + "node": ">= 12.0.0" 5369 + }, 5370 + "funding": { 5371 + "type": "opencollective", 5372 + "url": "https://opencollective.com/parcel" 5373 + } 5374 + }, 5375 + "node_modules/lightningcss-linux-arm-gnueabihf": { 5376 + "version": "1.26.0", 5377 + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.26.0.tgz", 5378 + "integrity": "sha512-Aag9kqXqkyPSW+dXMgyWk66C984Nay2pY8Nws+67gHlDzV3cWh7TvFlzuaTaVFMVqdDTzN484LSK3u39zFBnzg==", 5379 + "cpu": [ 5380 + "arm" 5381 + ], 5382 + "dev": true, 5383 + "optional": true, 5384 + "os": [ 5385 + "linux" 5386 + ], 5387 + "engines": { 5388 + "node": ">= 12.0.0" 5389 + }, 5390 + "funding": { 5391 + "type": "opencollective", 5392 + "url": "https://opencollective.com/parcel" 5393 + } 5394 + }, 5395 + "node_modules/lightningcss-linux-arm64-gnu": { 5396 + "version": "1.26.0", 5397 + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.26.0.tgz", 5398 + "integrity": "sha512-iJmZM7fUyVjH+POtdiCtExG+67TtPUTer7K/5A8DIfmPfrmeGvzfRyBltGhQz13Wi15K1lf2cPYoRaRh6vcwNA==", 5399 + "cpu": [ 5400 + "arm64" 5401 + ], 5402 + "dev": true, 5403 + "optional": true, 5404 + "os": [ 5405 + "linux" 5406 + ], 5407 + "engines": { 5408 + "node": ">= 12.0.0" 5409 + }, 5410 + "funding": { 5411 + "type": "opencollective", 5412 + "url": "https://opencollective.com/parcel" 5413 + } 5414 + }, 5415 + "node_modules/lightningcss-linux-arm64-musl": { 5416 + "version": "1.26.0", 5417 + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.26.0.tgz", 5418 + "integrity": "sha512-XxoEL++tTkyuvu+wq/QS8bwyTXZv2y5XYCMcWL45b8XwkiS8eEEEej9BkMGSRwxa5J4K+LDeIhLrS23CpQyfig==", 5419 + "cpu": [ 5420 + "arm64" 5421 + ], 5422 + "dev": true, 5423 + "optional": true, 5424 + "os": [ 5425 + "linux" 5426 + ], 5427 + "engines": { 5428 + "node": ">= 12.0.0" 5429 + }, 5430 + "funding": { 5431 + "type": "opencollective", 5432 + "url": "https://opencollective.com/parcel" 5433 + } 5434 + }, 5435 + "node_modules/lightningcss-linux-x64-gnu": { 5436 + "version": "1.26.0", 5437 + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.26.0.tgz", 5438 + "integrity": "sha512-1dkTfZQAYLj8MUSkd6L/+TWTG8V6Kfrzfa0T1fSlXCXQHrt1HC1/UepXHtKHDt/9yFwyoeayivxXAsApVxn6zA==", 5439 + "cpu": [ 5440 + "x64" 5441 + ], 5442 + "dev": true, 5443 + "optional": true, 5444 + "os": [ 5445 + "linux" 5446 + ], 5447 + "engines": { 5448 + "node": ">= 12.0.0" 5449 + }, 5450 + "funding": { 5451 + "type": "opencollective", 5452 + "url": "https://opencollective.com/parcel" 5453 + } 5454 + }, 5455 + "node_modules/lightningcss-linux-x64-musl": { 5456 + "version": "1.26.0", 5457 + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.26.0.tgz", 5458 + "integrity": "sha512-yX3Rk9m00JGCUzuUhFEojY+jf/6zHs3XU8S8Vk+FRbnr4St7cjyMXdNjuA2LjiT8e7j8xHRCH8hyZ4H/btRE4A==", 5459 + "cpu": [ 5460 + "x64" 5461 + ], 5462 + "dev": true, 5463 + "optional": true, 5464 + "os": [ 5465 + "linux" 5466 + ], 5467 + "engines": { 5468 + "node": ">= 12.0.0" 5469 + }, 5470 + "funding": { 5471 + "type": "opencollective", 5472 + "url": "https://opencollective.com/parcel" 5473 + } 5474 + }, 5475 + "node_modules/lightningcss-win32-arm64-msvc": { 5476 + "version": "1.26.0", 5477 + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.26.0.tgz", 5478 + "integrity": "sha512-X/597/cFnCogy9VItj/+7Tgu5VLbAtDF7KZDPdSw0MaL6FL940th1y3HiOzFIlziVvAtbo0RB3NAae1Oofr+Tw==", 5479 + "cpu": [ 5480 + "arm64" 5481 + ], 5482 + "dev": true, 5483 + "optional": true, 5484 + "os": [ 5485 + "win32" 5486 + ], 5487 + "engines": { 5488 + "node": ">= 12.0.0" 5489 + }, 5490 + "funding": { 5491 + "type": "opencollective", 5492 + "url": "https://opencollective.com/parcel" 5493 + } 5494 + }, 5495 + "node_modules/lightningcss-win32-x64-msvc": { 5496 + "version": "1.26.0", 5497 + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.26.0.tgz", 5498 + "integrity": "sha512-pYS3EyGP3JRhfqEFYmfFDiZ9/pVNfy8jVIYtrx9TVNusVyDK3gpW1w/rbvroQ4bDJi7grdUtyrYU6V2xkY/bBw==", 5499 + "cpu": [ 5500 + "x64" 5501 + ], 5502 + "dev": true, 5503 + "optional": true, 5504 + "os": [ 5505 + "win32" 5506 + ], 5507 + "engines": { 5508 + "node": ">= 12.0.0" 5509 + }, 5510 + "funding": { 5511 + "type": "opencollective", 5512 + "url": "https://opencollective.com/parcel" 5513 + } 5514 + }, 5515 + "node_modules/lightningcss/node_modules/detect-libc": { 5516 + "version": "1.0.3", 5517 + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", 5518 + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", 5519 + "dev": true, 5520 + "bin": { 5521 + "detect-libc": "bin/detect-libc.js" 5522 + }, 5523 + "engines": { 5524 + "node": ">=0.10" 5525 + } 5526 + }, 5043 5527 "node_modules/lilconfig": { 5044 5528 "version": "2.1.0", 5045 5529 "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", ··· 5427 5911 } 5428 5912 }, 5429 5913 "node_modules/ms": { 5430 - "version": "2.1.2", 5431 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 5432 - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 5914 + "version": "2.1.3", 5915 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 5916 + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 5433 5917 "dev": true 5434 5918 }, 5435 5919 "node_modules/nanoid": { ··· 5779 6263 "node": ">=8" 5780 6264 } 5781 6265 }, 6266 + "node_modules/path-parse": { 6267 + "version": "1.0.7", 6268 + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 6269 + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 6270 + "dev": true 6271 + }, 5782 6272 "node_modules/path-scurry": { 5783 6273 "version": "1.11.1", 5784 6274 "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", ··· 5842 6332 } 5843 6333 }, 5844 6334 "node_modules/picocolors": { 5845 - "version": "1.0.1", 5846 - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", 5847 - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", 6335 + "version": "1.1.0", 6336 + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", 6337 + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", 5848 6338 "dev": true 5849 6339 }, 5850 6340 "node_modules/picomatch": { ··· 5859 6349 "url": "https://github.com/sponsors/jonschlinkert" 5860 6350 } 5861 6351 }, 6352 + "node_modules/pify": { 6353 + "version": "2.3.0", 6354 + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 6355 + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", 6356 + "dev": true, 6357 + "engines": { 6358 + "node": ">=0.10.0" 6359 + } 6360 + }, 5862 6361 "node_modules/plist": { 5863 6362 "version": "3.1.0", 5864 6363 "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz", ··· 5874 6373 } 5875 6374 }, 5876 6375 "node_modules/postcss": { 5877 - "version": "8.4.44", 5878 - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.44.tgz", 5879 - "integrity": "sha512-Aweb9unOEpQ3ezu4Q00DPvvM2ZTUitJdNKeP/+uQgr1IBIqu574IaZoURId7BKtWMREwzKa9OgzPzezWGPWFQw==", 6376 + "version": "8.4.45", 6377 + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.45.tgz", 6378 + "integrity": "sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==", 5880 6379 "dev": true, 5881 6380 "funding": [ 5882 6381 { ··· 5899 6398 }, 5900 6399 "engines": { 5901 6400 "node": "^10 || ^12 || >=14" 6401 + } 6402 + }, 6403 + "node_modules/postcss-import": { 6404 + "version": "16.1.0", 6405 + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-16.1.0.tgz", 6406 + "integrity": "sha512-7hsAZ4xGXl4MW+OKEWCnF6T5jqBw80/EE9aXg1r2yyn1RsVEU8EtKXbijEODa+rg7iih4bKf7vlvTGYR4CnPNg==", 6407 + "dev": true, 6408 + "dependencies": { 6409 + "postcss-value-parser": "^4.0.0", 6410 + "read-cache": "^1.0.0", 6411 + "resolve": "^1.1.7" 6412 + }, 6413 + "engines": { 6414 + "node": ">=18.0.0" 6415 + }, 6416 + "peerDependencies": { 6417 + "postcss": "^8.0.0" 5902 6418 } 5903 6419 }, 5904 6420 "node_modules/postcss-load-config": { ··· 5985 6501 "node": ">=4" 5986 6502 } 5987 6503 }, 6504 + "node_modules/postcss-value-parser": { 6505 + "version": "4.2.0", 6506 + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", 6507 + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", 6508 + "dev": true 6509 + }, 5988 6510 "node_modules/prelude-ls": { 5989 6511 "version": "1.2.1", 5990 6512 "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", ··· 6019 6541 "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0" 6020 6542 } 6021 6543 }, 6544 + "node_modules/prettier-plugin-tailwindcss": { 6545 + "version": "0.6.6", 6546 + "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.6.6.tgz", 6547 + "integrity": "sha512-OPva5S7WAsPLEsOuOWXATi13QrCKACCiIonFgIR6V4lYv4QLp++UXVhZSzRbZxXGimkQtQT86CC6fQqTOybGng==", 6548 + "dev": true, 6549 + "engines": { 6550 + "node": ">=14.21.3" 6551 + }, 6552 + "peerDependencies": { 6553 + "@ianvs/prettier-plugin-sort-imports": "*", 6554 + "@prettier/plugin-pug": "*", 6555 + "@shopify/prettier-plugin-liquid": "*", 6556 + "@trivago/prettier-plugin-sort-imports": "*", 6557 + "@zackad/prettier-plugin-twig-melody": "*", 6558 + "prettier": "^3.0", 6559 + "prettier-plugin-astro": "*", 6560 + "prettier-plugin-css-order": "*", 6561 + "prettier-plugin-import-sort": "*", 6562 + "prettier-plugin-jsdoc": "*", 6563 + "prettier-plugin-marko": "*", 6564 + "prettier-plugin-multiline-arrays": "*", 6565 + "prettier-plugin-organize-attributes": "*", 6566 + "prettier-plugin-organize-imports": "*", 6567 + "prettier-plugin-sort-imports": "*", 6568 + "prettier-plugin-style-order": "*", 6569 + "prettier-plugin-svelte": "*" 6570 + }, 6571 + "peerDependenciesMeta": { 6572 + "@ianvs/prettier-plugin-sort-imports": { 6573 + "optional": true 6574 + }, 6575 + "@prettier/plugin-pug": { 6576 + "optional": true 6577 + }, 6578 + "@shopify/prettier-plugin-liquid": { 6579 + "optional": true 6580 + }, 6581 + "@trivago/prettier-plugin-sort-imports": { 6582 + "optional": true 6583 + }, 6584 + "@zackad/prettier-plugin-twig-melody": { 6585 + "optional": true 6586 + }, 6587 + "prettier-plugin-astro": { 6588 + "optional": true 6589 + }, 6590 + "prettier-plugin-css-order": { 6591 + "optional": true 6592 + }, 6593 + "prettier-plugin-import-sort": { 6594 + "optional": true 6595 + }, 6596 + "prettier-plugin-jsdoc": { 6597 + "optional": true 6598 + }, 6599 + "prettier-plugin-marko": { 6600 + "optional": true 6601 + }, 6602 + "prettier-plugin-multiline-arrays": { 6603 + "optional": true 6604 + }, 6605 + "prettier-plugin-organize-attributes": { 6606 + "optional": true 6607 + }, 6608 + "prettier-plugin-organize-imports": { 6609 + "optional": true 6610 + }, 6611 + "prettier-plugin-sort-imports": { 6612 + "optional": true 6613 + }, 6614 + "prettier-plugin-style-order": { 6615 + "optional": true 6616 + }, 6617 + "prettier-plugin-svelte": { 6618 + "optional": true 6619 + } 6620 + } 6621 + }, 6022 6622 "node_modules/process-nextick-args": { 6023 6623 "version": "2.0.1", 6024 6624 "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", ··· 6117 6717 "read-binary-file-arch": "cli.js" 6118 6718 } 6119 6719 }, 6720 + "node_modules/read-cache": { 6721 + "version": "1.0.0", 6722 + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", 6723 + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", 6724 + "dev": true, 6725 + "dependencies": { 6726 + "pify": "^2.3.0" 6727 + } 6728 + }, 6120 6729 "node_modules/read-config-file": { 6121 6730 "version": "6.4.0", 6122 6731 "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.4.0.tgz", ··· 6215 6824 "url": "https://github.com/sponsors/jet2jet" 6216 6825 } 6217 6826 }, 6827 + "node_modules/resolve": { 6828 + "version": "1.22.8", 6829 + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", 6830 + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", 6831 + "dev": true, 6832 + "dependencies": { 6833 + "is-core-module": "^2.13.0", 6834 + "path-parse": "^1.0.7", 6835 + "supports-preserve-symlinks-flag": "^1.0.0" 6836 + }, 6837 + "bin": { 6838 + "resolve": "bin/resolve" 6839 + }, 6840 + "funding": { 6841 + "url": "https://github.com/sponsors/ljharb" 6842 + } 6843 + }, 6218 6844 "node_modules/resolve-alpn": { 6219 6845 "version": "1.2.1", 6220 6846 "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", ··· 6423 7049 } 6424 7050 }, 6425 7051 "node_modules/sass": { 6426 - "version": "1.77.8", 6427 - "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.8.tgz", 6428 - "integrity": "sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==", 7052 + "version": "1.78.0", 7053 + "resolved": "https://registry.npmjs.org/sass/-/sass-1.78.0.tgz", 7054 + "integrity": "sha512-AaIqGSrjo5lA2Yg7RvFZrlXDBCp3nV4XP73GrLGvdRWWwk+8H3l0SDvq/5bA4eF+0RFPLuWUk3E+P1U/YqnpsQ==", 6429 7055 "dev": true, 6430 7056 "dependencies": { 6431 7057 "chokidar": ">=3.0.0 <4.0.0", ··· 6759 7385 "url": "https://github.com/chalk/supports-color?sponsor=1" 6760 7386 } 6761 7387 }, 7388 + "node_modules/supports-preserve-symlinks-flag": { 7389 + "version": "1.0.0", 7390 + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 7391 + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 7392 + "dev": true, 7393 + "engines": { 7394 + "node": ">= 0.4" 7395 + }, 7396 + "funding": { 7397 + "url": "https://github.com/sponsors/ljharb" 7398 + } 7399 + }, 6762 7400 "node_modules/svelte": { 6763 7401 "version": "4.2.19", 6764 7402 "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.19.tgz", ··· 6785 7423 } 6786 7424 }, 6787 7425 "node_modules/svelte-check": { 6788 - "version": "4.0.0", 6789 - "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.0.0.tgz", 6790 - "integrity": "sha512-QgKO6OQbee9B2dyWZgrGruS3WHKrUZ718Ug53nK45vamsx93Al3on6tOrxyCMVX+OMOLLlrenn7b2VAomePwxQ==", 7426 + "version": "4.0.1", 7427 + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.0.1.tgz", 7428 + "integrity": "sha512-AuWnCZdREoOzMhoptHPUUPYUxLNdXSkoZnPnlv19SZJJimRzLmjjZLKsOiRB4AnhgX+56/WSEdvkWXI/q2BSsA==", 6791 7429 "dev": true, 6792 7430 "dependencies": { 6793 7431 "@jridgewell/trace-mapping": "^0.3.25", ··· 6974 7612 } 6975 7613 } 6976 7614 }, 7615 + "node_modules/tailwindcss": { 7616 + "version": "4.0.0-alpha.23", 7617 + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.0-alpha.23.tgz", 7618 + "integrity": "sha512-5dy4L1icQUYkG2Fa427QG3fKGkNqMi6V4bJE0DoxBZkR4e550w7uxYJ7vBXINWrRmDd4LHmQInkgsHza3lwONg==", 7619 + "dev": true 7620 + }, 6977 7621 "node_modules/tar": { 6978 7622 "version": "6.2.1", 6979 7623 "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", ··· 7173 7817 } 7174 7818 }, 7175 7819 "node_modules/typescript-eslint": { 7176 - "version": "8.3.0", 7177 - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.3.0.tgz", 7178 - "integrity": "sha512-EvWjwWLwwKDIJuBjk2I6UkV8KEQcwZ0VM10nR1rIunRDIP67QJTZAHBXTX0HW/oI1H10YESF8yWie8fRQxjvFA==", 7820 + "version": "8.4.0", 7821 + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.4.0.tgz", 7822 + "integrity": "sha512-67qoc3zQZe3CAkO0ua17+7aCLI0dU+sSQd1eKPGq06QE4rfQjstVXR6woHO5qQvGUa550NfGckT4tzh3b3c8Pw==", 7179 7823 "dev": true, 7180 7824 "dependencies": { 7181 - "@typescript-eslint/eslint-plugin": "8.3.0", 7182 - "@typescript-eslint/parser": "8.3.0", 7183 - "@typescript-eslint/utils": "8.3.0" 7825 + "@typescript-eslint/eslint-plugin": "8.4.0", 7826 + "@typescript-eslint/parser": "8.4.0", 7827 + "@typescript-eslint/utils": "8.4.0" 7184 7828 }, 7185 7829 "engines": { 7186 7830 "node": "^18.18.0 || ^20.9.0 || >=21.1.0" ··· 7271 7915 } 7272 7916 }, 7273 7917 "node_modules/vite": { 7274 - "version": "5.4.2", 7275 - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.2.tgz", 7276 - "integrity": "sha512-dDrQTRHp5C1fTFzcSaMxjk6vdpKvT+2/mIdE07Gw2ykehT49O0z/VHS3zZ8iV/Gh8BJJKHWOe5RjaNrW5xf/GA==", 7918 + "version": "5.4.3", 7919 + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.3.tgz", 7920 + "integrity": "sha512-IH+nl64eq9lJjFqU+/yrRnrHPVTlgy42/+IzbOdaFDVlyLgI/wDlf+FCobXLX1cT0X5+7LMyH1mIy2xJdLfo8Q==", 7277 7921 "dev": true, 7278 7922 "dependencies": { 7279 7923 "esbuild": "^0.21.3", 7280 - "postcss": "^8.4.41", 7924 + "postcss": "^8.4.43", 7281 7925 "rollup": "^4.20.0" 7282 7926 }, 7283 7927 "bin": {
+18 -6
package.json
··· 64 64 "devDependencies": { 65 65 "@napi-rs/cli": "^2.18.4", 66 66 "@sveltejs/vite-plugin-svelte": "^3.1.2", 67 + "@tailwindcss/vite": "4.0.0-alpha.23", 67 68 "@tsconfig/svelte": "^5.0.4", 68 69 "concurrently": "^8.2.2", 69 70 "electron": "^28.3.3", 70 71 "electron-builder": "^25.0.5", 71 - "eslint": "^9.9.1", 72 + "eslint": "^9.10.0", 72 73 "eslint-config-prettier": "^9.1.0", 73 74 "eslint-plugin-svelte": "^2.43.0", 74 75 "fuzzysort": "^3.0.2", 75 76 "prettier": "^3.3.3", 76 77 "prettier-plugin-svelte": "^3.2.6", 77 - "sass": "^1.77.8", 78 + "prettier-plugin-tailwindcss": "^0.6.6", 79 + "sass": "^1.78.0", 78 80 "svelte": "^4.2.19", 79 - "svelte-check": "^4.0.0", 81 + "svelte-check": "^4.0.1", 80 82 "svelte-preprocess": "^6.0.2", 83 + "tailwindcss": "4.0.0-alpha.23", 81 84 "typescript": "~5.5.4", 82 - "typescript-eslint": "^8.3.0", 83 - "vite": "^5.4.2", 85 + "typescript-eslint": "^8.4.0", 86 + "vite": "^5.4.3", 84 87 "vite-plugin-electron": "^0.28.7" 85 88 }, 86 89 "prettier": { ··· 88 91 "semi": false, 89 92 "singleQuote": true, 90 93 "plugins": [ 91 - "prettier-plugin-svelte" 94 + "prettier-plugin-svelte", 95 + "prettier-plugin-tailwindcss" 96 + ], 97 + "overrides": [ 98 + { 99 + "files": "*.svelte", 100 + "options": { 101 + "parser": "svelte" 102 + } 103 + } 92 104 ] 93 105 } 94 106 }
+21
src/app.css
··· 1 + @import 'tailwindcss'; 2 + 3 + input:focus-visible { 4 + outline: none; 5 + } 6 + 7 + .ease-out-cubic { 8 + transition-timing-function: cubic-bezier(0.33, 1, 0.68, 1); 9 + } 10 + 11 + @theme { 12 + --color-background: hsl(0, 0%, 100%); 13 + --color-foreground: black; 14 + --color-edges: hsla(215, 16%, 47%, 0.6); 15 + } 16 + @media (prefers-color-scheme: dark) { 17 + :root { 18 + --color-background: hsl(120, 11%, 7%); 19 + --color-foreground: white; 20 + } 21 + }
+1
src/components/Button.svelte
··· 24 24 outline: none 25 25 z-index: 1 26 26 user-select: none 27 + line-height: normal 27 28 &::before 28 29 content: '' 29 30 position: absolute
+1 -1
src/components/Filter.svelte
··· 16 16 on:keydown 17 17 bind:this={filterInput} 18 18 type="text" 19 - class="search" 19 + class="search text-[13px] leading-none" 20 20 class:on={$filter} 21 21 bind:value={$filter} 22 22 placeholder="Filter"
+1 -1
src/components/Modal.svelte
··· 41 41 42 42 <!-- svelte-ignore a11y-no-noninteractive-element-interactions --> 43 43 <dialog 44 - class="modal" 44 + class="modal m-auto" 45 45 bind:this={dialogEl} 46 46 on:click|self={() => { 47 47 if (clickable) {
+2 -2
src/components/Player.svelte
··· 157 157 <input 158 158 type="range" 159 159 tabindex="-1" 160 - class="time" 160 + class="time border-none" 161 161 min="0" 162 162 max={sliderSteps} 163 163 bind:value={sliderValue} ··· 220 220 <input 221 221 type="range" 222 222 tabindex="-1" 223 - class="volume" 223 + class="volume border-none" 224 224 min="0" 225 225 max="1" 226 226 step="0.01"
+1
src/components/PlaylistInfo.svelte
··· 56 56 margin-bottom: 15px 57 57 input, textarea 58 58 resize: none 59 + line-height: normal 59 60 width: 300px 60 61 margin: 2px 0px 61 62 flex-grow: 1
+1
src/components/QueueItem.svelte
··· 51 51 .text 52 52 overflow: hidden 53 53 white-space: nowrap 54 + line-height: normal 54 55 p 55 56 margin: 0px 56 57 font-size: 14px
+2 -2
src/components/SidebarItems.svelte
··· 361 361 margin-left: 2px 362 362 margin-right: -8px 363 363 padding: 6px 364 - width: 7px 365 - height: 7px 364 + width: 19px 365 + height: 19px 366 366 z-index: 1 367 367 flex-shrink: 0 368 368 fill: white
+3
src/components/TrackInfo.svelte
··· 558 558 padding: 2px 0px 559 559 display: flex 560 560 align-items: center 561 + line-height: normal 562 + height: 27px 561 563 input 562 564 flex-grow: 1 563 565 font-size: 13px ··· 593 595 display: inline-block 594 596 width: 20px 595 597 text-align: center 598 + line-height: normal 596 599 </style>
+8 -8
src/components/TrackList.svelte
··· 214 214 > 215 215 <div class="header"> 216 216 <div class:dragbar={$modalCount === 0 && isMac} class:queue-visible={$queueVisible} /> 217 - <h3 class="title"> 217 + <h3 class="title pb-0.5 text-[19px] leading-none"> 218 218 {#if $page.tracklist.id === 'root'} 219 219 Songs 220 220 {:else if $page.tracklist.type !== 'special'} 221 221 {$page.tracklist.name} 222 222 {/if} 223 223 </h3> 224 - <div class="info">{$page.length} songs</div> 224 + <div class="info leading-none">{$page.length} songs</div> 225 225 {#if 'description' in $page.tracklist && $page.tracklist.description !== ''} 226 226 <div class="description">{$page.tracklist.description}</div> 227 227 {/if} ··· 361 361 <div class="c index"> 362 362 {#if track.id === $playingId} 363 363 <svg 364 - class="playing-icon" 364 + class="playing-icon inline" 365 365 xmlns="http://www.w3.org/2000/svg" 366 366 height="24" 367 367 viewBox="0 0 24 24" ··· 472 472 fill: var(--icon-color) 473 473 .index 474 474 width: 0px 475 - min-width: 36px 475 + min-width: 46px 476 476 text-align: right 477 477 svg.playing-icon 478 478 fill: #00ffff ··· 482 482 width: 170% 483 483 .playCount 484 484 width: 0px 485 - min-width: 42px 485 + min-width: 52px 486 486 text-align: right 487 487 .duration 488 488 width: 0px 489 - min-width: 40px 489 + min-width: 50px 490 490 text-align: right 491 491 .artist 492 492 width: 120% ··· 498 498 width: 65% 499 499 .dateAdded 500 500 width: 130px 501 - min-width: 130px 501 + min-width: 140px 502 502 .year 503 503 width: 0px 504 - min-width: 37px 504 + min-width: 47px 505 505 .drag-line 506 506 position: absolute 507 507 width: 100%
+1
src/main.ts
··· 1 + import './app.css' 1 2 import App from './App.svelte' 2 3 3 4 const app = new App({
+7
svelte.config.mjs
··· 1 + import { vitePreprocess } from '@sveltejs/vite-plugin-svelte' 2 + 3 + export default { 4 + // Consult https://svelte.dev/docs#compile-time-svelte-preprocess 5 + // for more information about preprocessors 6 + preprocess: vitePreprocess(), 7 + }
+2
vite.config.mjs
··· 2 2 import { defineConfig } from 'vite' 3 3 import { svelte, vitePreprocess } from '@sveltejs/vite-plugin-svelte' 4 4 import electron from 'vite-plugin-electron' 5 + import tailwindcss from '@tailwindcss/vite' 5 6 6 7 export default defineConfig({ 7 8 clearScreen: false, ··· 19 20 svelte({ 20 21 preprocess: vitePreprocess(), 21 22 }), 23 + tailwindcss(), 22 24 electron({ 23 25 entry: ['./src/electron/main.ts', './src/electron/preload.ts'], 24 26 vite: {