A music player that connects to your cloud/distributed storage.
5
fork

Configure Feed

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

chore: Move from music-metadata-browser to music-metadata, closes #418

+124 -60
+6 -2
Justfile
··· 112 112 --outdir={{BUILD_DIR}}/js/brain/ \ 113 113 --splitting \ 114 114 --alias:brain.elm.js={{BUILD_DIR}}/js/brain.elm.js \ 115 - --inject:./system/Js/node-shims.js 115 + --inject:./system/Js/node-shims.js \ 116 + --alias:node:buffer=buffer/ \ 117 + --alias:node:stream=stream 116 118 117 119 # Main 118 120 {{ESBUILD}} ./src/Javascript/UI/index.ts \ 119 121 --outdir={{BUILD_DIR}}/js/ui/ \ 120 122 --define:BUILD_TIMESTAMP=$build_timestamp \ 121 - --splitting 123 + --splitting \ 124 + --alias:node:buffer=buffer/ \ 125 + --alias:node:stream=stream 122 126 123 127 124 128 js-prod:
+115 -55
package-lock.json
··· 20 20 "localforage": "^1.10.0", 21 21 "lunr": "^2.3.8", 22 22 "mediainfo.js": "^0.3.1", 23 - "music-metadata-browser": "^2.5.10", 23 + "music-metadata": "^8.3.0", 24 24 "readable-stream": "^4.5.2", 25 25 "remotestoragejs": "^2.0.0-beta.6", 26 26 "serve": "^14.2.1", ··· 3971 3971 "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" 3972 3972 }, 3973 3973 "node_modules/file-type": { 3974 - "version": "16.5.4", 3975 - "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz", 3976 - "integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==", 3974 + "version": "18.7.0", 3975 + "resolved": "https://registry.npmjs.org/file-type/-/file-type-18.7.0.tgz", 3976 + "integrity": "sha512-ihHtXRzXEziMrQ56VSgU7wkxh55iNchFkosu7Y9/S+tXHdKyrGjVK0ujbqNnsxzea+78MaLhN6PGmfYSAv1ACw==", 3977 3977 "dependencies": { 3978 - "readable-web-to-node-stream": "^3.0.0", 3979 - "strtok3": "^6.2.4", 3980 - "token-types": "^4.1.1" 3978 + "readable-web-to-node-stream": "^3.0.2", 3979 + "strtok3": "^7.0.0", 3980 + "token-types": "^5.0.1" 3981 3981 }, 3982 3982 "engines": { 3983 - "node": ">=10" 3983 + "node": ">=14.16" 3984 3984 }, 3985 3985 "funding": { 3986 3986 "url": "https://github.com/sindresorhus/file-type?sponsor=1" 3987 + } 3988 + }, 3989 + "node_modules/file-type/node_modules/peek-readable": { 3990 + "version": "5.0.0", 3991 + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.0.0.tgz", 3992 + "integrity": "sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==", 3993 + "engines": { 3994 + "node": ">=14.16" 3995 + }, 3996 + "funding": { 3997 + "type": "github", 3998 + "url": "https://github.com/sponsors/Borewit" 3999 + } 4000 + }, 4001 + "node_modules/file-type/node_modules/strtok3": { 4002 + "version": "7.0.0", 4003 + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-7.0.0.tgz", 4004 + "integrity": "sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==", 4005 + "dependencies": { 4006 + "@tokenizer/token": "^0.3.0", 4007 + "peek-readable": "^5.0.0" 4008 + }, 4009 + "engines": { 4010 + "node": ">=14.16" 4011 + }, 4012 + "funding": { 4013 + "type": "github", 4014 + "url": "https://github.com/sponsors/Borewit" 3987 4015 } 3988 4016 }, 3989 4017 "node_modules/fill-range": { ··· 5738 5766 } 5739 5767 }, 5740 5768 "node_modules/music-metadata": { 5741 - "version": "7.14.0", 5742 - "resolved": "https://registry.npmjs.org/music-metadata/-/music-metadata-7.14.0.tgz", 5743 - "integrity": "sha512-xrm3w7SV0Wk+OythZcSbaI8mcr/KHd0knJieu8bVpaPfMv/Agz5EooCAPz3OR5hbYMiUG6dgAPKZKnMzV+3amA==", 5769 + "version": "8.3.0", 5770 + "resolved": "https://registry.npmjs.org/music-metadata/-/music-metadata-8.3.0.tgz", 5771 + "integrity": "sha512-Mjt+Mqea2gooB+14XhJBxuGJVXrmAlWgeyBHlYRKSl7RfA92ktoJBz+fZ25zOa0yqKqg47ocNAngWE/WQOPYbw==", 5744 5772 "dependencies": { 5745 5773 "@tokenizer/token": "^0.3.0", 5746 5774 "content-type": "^1.0.5", 5747 5775 "debug": "^4.3.4", 5748 - "file-type": "^16.5.4", 5776 + "file-type": "^18.6.0", 5749 5777 "media-typer": "^1.1.0", 5750 - "strtok3": "^6.3.0", 5751 - "token-types": "^4.2.1" 5778 + "strtok3": "^7.0.0", 5779 + "token-types": "^5.0.1" 5752 5780 }, 5753 5781 "engines": { 5754 - "node": ">=10" 5782 + "node": "^14.13.1 || >=16.0.0" 5783 + }, 5784 + "funding": { 5785 + "type": "github", 5786 + "url": "https://github.com/sponsors/Borewit" 5787 + } 5788 + }, 5789 + "node_modules/music-metadata/node_modules/peek-readable": { 5790 + "version": "5.0.0", 5791 + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.0.0.tgz", 5792 + "integrity": "sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==", 5793 + "engines": { 5794 + "node": ">=14.16" 5755 5795 }, 5756 5796 "funding": { 5757 5797 "type": "github", 5758 5798 "url": "https://github.com/sponsors/Borewit" 5759 5799 } 5760 5800 }, 5761 - "node_modules/music-metadata-browser": { 5762 - "version": "2.5.10", 5763 - "resolved": "https://registry.npmjs.org/music-metadata-browser/-/music-metadata-browser-2.5.10.tgz", 5764 - "integrity": "sha512-03UnAmsSJoZZ5kK2BnEnd2zpH8LXRWQ6xlc7akKudhc2d9FT+yAiqapnmOzjW3g4cxxvIsSK5MVBO2Gi+Ymjfw==", 5801 + "node_modules/music-metadata/node_modules/strtok3": { 5802 + "version": "7.0.0", 5803 + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-7.0.0.tgz", 5804 + "integrity": "sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==", 5765 5805 "dependencies": { 5766 - "buffer": "^6.0.3", 5767 - "debug": "^4.3.4", 5768 - "music-metadata": "^7.13.3", 5769 - "readable-stream": "^4.3.0", 5770 - "readable-web-to-node-stream": "^3.0.2" 5806 + "@tokenizer/token": "^0.3.0", 5807 + "peek-readable": "^5.0.0" 5808 + }, 5809 + "engines": { 5810 + "node": ">=14.16" 5771 5811 }, 5772 5812 "funding": { 5773 5813 "type": "github", ··· 7470 7510 "integrity": "sha512-FXofUGAFcgEIEOS3m9Dk9URaY3x+JeerPfVFc8K820PjV0JcCsH98BFxrVOTANC8YvM4QTrmKMol2/818gFmCw==" 7471 7511 }, 7472 7512 "node_modules/token-types": { 7473 - "version": "4.2.1", 7474 - "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.2.1.tgz", 7475 - "integrity": "sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==", 7513 + "version": "5.0.1", 7514 + "resolved": "https://registry.npmjs.org/token-types/-/token-types-5.0.1.tgz", 7515 + "integrity": "sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==", 7476 7516 "dependencies": { 7477 7517 "@tokenizer/token": "^0.3.0", 7478 7518 "ieee754": "^1.2.1" 7479 7519 }, 7480 7520 "engines": { 7481 - "node": ">=10" 7521 + "node": ">=14.16" 7482 7522 }, 7483 7523 "funding": { 7484 7524 "type": "github", ··· 10536 10576 "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" 10537 10577 }, 10538 10578 "file-type": { 10539 - "version": "16.5.4", 10540 - "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz", 10541 - "integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==", 10579 + "version": "18.7.0", 10580 + "resolved": "https://registry.npmjs.org/file-type/-/file-type-18.7.0.tgz", 10581 + "integrity": "sha512-ihHtXRzXEziMrQ56VSgU7wkxh55iNchFkosu7Y9/S+tXHdKyrGjVK0ujbqNnsxzea+78MaLhN6PGmfYSAv1ACw==", 10542 10582 "requires": { 10543 - "readable-web-to-node-stream": "^3.0.0", 10544 - "strtok3": "^6.2.4", 10545 - "token-types": "^4.1.1" 10583 + "readable-web-to-node-stream": "^3.0.2", 10584 + "strtok3": "^7.0.0", 10585 + "token-types": "^5.0.1" 10586 + }, 10587 + "dependencies": { 10588 + "peek-readable": { 10589 + "version": "5.0.0", 10590 + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.0.0.tgz", 10591 + "integrity": "sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==" 10592 + }, 10593 + "strtok3": { 10594 + "version": "7.0.0", 10595 + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-7.0.0.tgz", 10596 + "integrity": "sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==", 10597 + "requires": { 10598 + "@tokenizer/token": "^0.3.0", 10599 + "peek-readable": "^5.0.0" 10600 + } 10601 + } 10546 10602 } 10547 10603 }, 10548 10604 "fill-range": { ··· 11781 11837 "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==" 11782 11838 }, 11783 11839 "music-metadata": { 11784 - "version": "7.14.0", 11785 - "resolved": "https://registry.npmjs.org/music-metadata/-/music-metadata-7.14.0.tgz", 11786 - "integrity": "sha512-xrm3w7SV0Wk+OythZcSbaI8mcr/KHd0knJieu8bVpaPfMv/Agz5EooCAPz3OR5hbYMiUG6dgAPKZKnMzV+3amA==", 11840 + "version": "8.3.0", 11841 + "resolved": "https://registry.npmjs.org/music-metadata/-/music-metadata-8.3.0.tgz", 11842 + "integrity": "sha512-Mjt+Mqea2gooB+14XhJBxuGJVXrmAlWgeyBHlYRKSl7RfA92ktoJBz+fZ25zOa0yqKqg47ocNAngWE/WQOPYbw==", 11787 11843 "requires": { 11788 11844 "@tokenizer/token": "^0.3.0", 11789 11845 "content-type": "^1.0.5", 11790 11846 "debug": "^4.3.4", 11791 - "file-type": "^16.5.4", 11847 + "file-type": "^18.6.0", 11792 11848 "media-typer": "^1.1.0", 11793 - "strtok3": "^6.3.0", 11794 - "token-types": "^4.2.1" 11795 - } 11796 - }, 11797 - "music-metadata-browser": { 11798 - "version": "2.5.10", 11799 - "resolved": "https://registry.npmjs.org/music-metadata-browser/-/music-metadata-browser-2.5.10.tgz", 11800 - "integrity": "sha512-03UnAmsSJoZZ5kK2BnEnd2zpH8LXRWQ6xlc7akKudhc2d9FT+yAiqapnmOzjW3g4cxxvIsSK5MVBO2Gi+Ymjfw==", 11801 - "requires": { 11802 - "buffer": "^6.0.3", 11803 - "debug": "^4.3.4", 11804 - "music-metadata": "^7.13.3", 11805 - "readable-stream": "^4.3.0", 11806 - "readable-web-to-node-stream": "^3.0.2" 11849 + "strtok3": "^7.0.0", 11850 + "token-types": "^5.0.1" 11851 + }, 11852 + "dependencies": { 11853 + "peek-readable": { 11854 + "version": "5.0.0", 11855 + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.0.0.tgz", 11856 + "integrity": "sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==" 11857 + }, 11858 + "strtok3": { 11859 + "version": "7.0.0", 11860 + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-7.0.0.tgz", 11861 + "integrity": "sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==", 11862 + "requires": { 11863 + "@tokenizer/token": "^0.3.0", 11864 + "peek-readable": "^5.0.0" 11865 + } 11866 + } 11807 11867 } 11808 11868 }, 11809 11869 "mz": { ··· 12972 13032 "integrity": "sha512-FXofUGAFcgEIEOS3m9Dk9URaY3x+JeerPfVFc8K820PjV0JcCsH98BFxrVOTANC8YvM4QTrmKMol2/818gFmCw==" 12973 13033 }, 12974 13034 "token-types": { 12975 - "version": "4.2.1", 12976 - "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.2.1.tgz", 12977 - "integrity": "sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==", 13035 + "version": "5.0.1", 13036 + "resolved": "https://registry.npmjs.org/token-types/-/token-types-5.0.1.tgz", 13037 + "integrity": "sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==", 12978 13038 "requires": { 12979 13039 "@tokenizer/token": "^0.3.0", 12980 13040 "ieee754": "^1.2.1"
+2 -2
package.json
··· 33 33 "postcss": "^8.4.34", 34 34 "postcss-custom-properties": "^13.3.4", 35 35 "postcss-import": "^16.0.0", 36 - "stream": "^0.0.2", 36 + "stream": "^0.0.3", 37 37 "tailwindcss": "^3.4.1", 38 38 "tailwindcss-animations": "^2.0.0", 39 39 "tailwindcss-interaction-variants": "^5.0.0", ··· 51 51 "localforage": "^1.10.0", 52 52 "lunr": "^2.3.8", 53 53 "mediainfo.js": "^0.3.1", 54 - "music-metadata-browser": "^2.5.10", 54 + "music-metadata": "^8.3.0", 55 55 "readable-stream": "^4.5.2", 56 56 "remotestoragejs": "^2.0.0-beta.6", 57 57 "serve": "^14.2.1",
+1 -1
src/Javascript/Brain/processing.ts
··· 106 106 filename: string, 107 107 { covers }: { covers: boolean }, 108 108 ) { 109 - const musicMetadata = await import("music-metadata-browser").then((a) => a.default); 109 + const musicMetadata = await import("music-metadata"); 110 110 const httpTokenizer = await import("@tokenizer/http").then((a) => a.default); 111 111 112 112 let tokenizer;