diff --git a/Justfile b/Justfile index c736b3be..e85618c9 100644 --- a/Justfile +++ b/Justfile @@ -112,13 +112,17 @@ js: --outdir={{BUILD_DIR}}/js/brain/ \ --splitting \ --alias:brain.elm.js={{BUILD_DIR}}/js/brain.elm.js \ - --inject:./system/Js/node-shims.js + --inject:./system/Js/node-shims.js \ + --alias:node:buffer=buffer/ \ + --alias:node:stream=stream # Main {{ESBUILD}} ./src/Javascript/UI/index.ts \ --outdir={{BUILD_DIR}}/js/ui/ \ --define:BUILD_TIMESTAMP=$build_timestamp \ - --splitting + --splitting \ + --alias:node:buffer=buffer/ \ + --alias:node:stream=stream js-prod: diff --git a/package-lock.json b/package-lock.json index 439726be..7048e3d8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "localforage": "^1.10.0", "lunr": "^2.3.8", "mediainfo.js": "^0.3.1", - "music-metadata-browser": "^2.5.10", + "music-metadata": "^8.3.0", "readable-stream": "^4.5.2", "remotestoragejs": "^2.0.0-beta.6", "serve": "^14.2.1", @@ -3971,21 +3971,49 @@ "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" }, "node_modules/file-type": { - "version": "16.5.4", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz", - "integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==", + "version": "18.7.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-18.7.0.tgz", + "integrity": "sha512-ihHtXRzXEziMrQ56VSgU7wkxh55iNchFkosu7Y9/S+tXHdKyrGjVK0ujbqNnsxzea+78MaLhN6PGmfYSAv1ACw==", "dependencies": { - "readable-web-to-node-stream": "^3.0.0", - "strtok3": "^6.2.4", - "token-types": "^4.1.1" + "readable-web-to-node-stream": "^3.0.2", + "strtok3": "^7.0.0", + "token-types": "^5.0.1" }, "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sindresorhus/file-type?sponsor=1" } }, + "node_modules/file-type/node_modules/peek-readable": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.0.0.tgz", + "integrity": "sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/file-type/node_modules/strtok3": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-7.0.0.tgz", + "integrity": "sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==", + "dependencies": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^5.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -5738,36 +5766,48 @@ } }, "node_modules/music-metadata": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/music-metadata/-/music-metadata-7.14.0.tgz", - "integrity": "sha512-xrm3w7SV0Wk+OythZcSbaI8mcr/KHd0knJieu8bVpaPfMv/Agz5EooCAPz3OR5hbYMiUG6dgAPKZKnMzV+3amA==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/music-metadata/-/music-metadata-8.3.0.tgz", + "integrity": "sha512-Mjt+Mqea2gooB+14XhJBxuGJVXrmAlWgeyBHlYRKSl7RfA92ktoJBz+fZ25zOa0yqKqg47ocNAngWE/WQOPYbw==", "dependencies": { "@tokenizer/token": "^0.3.0", "content-type": "^1.0.5", "debug": "^4.3.4", - "file-type": "^16.5.4", + "file-type": "^18.6.0", "media-typer": "^1.1.0", - "strtok3": "^6.3.0", - "token-types": "^4.2.1" + "strtok3": "^7.0.0", + "token-types": "^5.0.1" }, "engines": { - "node": ">=10" + "node": "^14.13.1 || >=16.0.0" }, "funding": { "type": "github", "url": "https://github.com/sponsors/Borewit" } }, - "node_modules/music-metadata-browser": { - "version": "2.5.10", - "resolved": "https://registry.npmjs.org/music-metadata-browser/-/music-metadata-browser-2.5.10.tgz", - "integrity": "sha512-03UnAmsSJoZZ5kK2BnEnd2zpH8LXRWQ6xlc7akKudhc2d9FT+yAiqapnmOzjW3g4cxxvIsSK5MVBO2Gi+Ymjfw==", + "node_modules/music-metadata/node_modules/peek-readable": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.0.0.tgz", + "integrity": "sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/music-metadata/node_modules/strtok3": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-7.0.0.tgz", + "integrity": "sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==", "dependencies": { - "buffer": "^6.0.3", - "debug": "^4.3.4", - "music-metadata": "^7.13.3", - "readable-stream": "^4.3.0", - "readable-web-to-node-stream": "^3.0.2" + "@tokenizer/token": "^0.3.0", + "peek-readable": "^5.0.0" + }, + "engines": { + "node": ">=14.16" }, "funding": { "type": "github", @@ -7470,15 +7510,15 @@ "integrity": "sha512-FXofUGAFcgEIEOS3m9Dk9URaY3x+JeerPfVFc8K820PjV0JcCsH98BFxrVOTANC8YvM4QTrmKMol2/818gFmCw==" }, "node_modules/token-types": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.2.1.tgz", - "integrity": "sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-5.0.1.tgz", + "integrity": "sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==", "dependencies": { "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" }, "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { "type": "github", @@ -10536,13 +10576,29 @@ "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" }, "file-type": { - "version": "16.5.4", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz", - "integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==", + "version": "18.7.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-18.7.0.tgz", + "integrity": "sha512-ihHtXRzXEziMrQ56VSgU7wkxh55iNchFkosu7Y9/S+tXHdKyrGjVK0ujbqNnsxzea+78MaLhN6PGmfYSAv1ACw==", "requires": { - "readable-web-to-node-stream": "^3.0.0", - "strtok3": "^6.2.4", - "token-types": "^4.1.1" + "readable-web-to-node-stream": "^3.0.2", + "strtok3": "^7.0.0", + "token-types": "^5.0.1" + }, + "dependencies": { + "peek-readable": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.0.0.tgz", + "integrity": "sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==" + }, + "strtok3": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-7.0.0.tgz", + "integrity": "sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==", + "requires": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^5.0.0" + } + } } }, "fill-range": { @@ -11781,29 +11837,33 @@ "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==" }, "music-metadata": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/music-metadata/-/music-metadata-7.14.0.tgz", - "integrity": "sha512-xrm3w7SV0Wk+OythZcSbaI8mcr/KHd0knJieu8bVpaPfMv/Agz5EooCAPz3OR5hbYMiUG6dgAPKZKnMzV+3amA==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/music-metadata/-/music-metadata-8.3.0.tgz", + "integrity": "sha512-Mjt+Mqea2gooB+14XhJBxuGJVXrmAlWgeyBHlYRKSl7RfA92ktoJBz+fZ25zOa0yqKqg47ocNAngWE/WQOPYbw==", "requires": { "@tokenizer/token": "^0.3.0", "content-type": "^1.0.5", "debug": "^4.3.4", - "file-type": "^16.5.4", + "file-type": "^18.6.0", "media-typer": "^1.1.0", - "strtok3": "^6.3.0", - "token-types": "^4.2.1" - } - }, - "music-metadata-browser": { - "version": "2.5.10", - "resolved": "https://registry.npmjs.org/music-metadata-browser/-/music-metadata-browser-2.5.10.tgz", - "integrity": "sha512-03UnAmsSJoZZ5kK2BnEnd2zpH8LXRWQ6xlc7akKudhc2d9FT+yAiqapnmOzjW3g4cxxvIsSK5MVBO2Gi+Ymjfw==", - "requires": { - "buffer": "^6.0.3", - "debug": "^4.3.4", - "music-metadata": "^7.13.3", - "readable-stream": "^4.3.0", - "readable-web-to-node-stream": "^3.0.2" + "strtok3": "^7.0.0", + "token-types": "^5.0.1" + }, + "dependencies": { + "peek-readable": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.0.0.tgz", + "integrity": "sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==" + }, + "strtok3": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-7.0.0.tgz", + "integrity": "sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==", + "requires": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^5.0.0" + } + } } }, "mz": { @@ -12972,9 +13032,9 @@ "integrity": "sha512-FXofUGAFcgEIEOS3m9Dk9URaY3x+JeerPfVFc8K820PjV0JcCsH98BFxrVOTANC8YvM4QTrmKMol2/818gFmCw==" }, "token-types": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.2.1.tgz", - "integrity": "sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-5.0.1.tgz", + "integrity": "sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==", "requires": { "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" diff --git a/package.json b/package.json index afd7ddf9..c6d6cfb8 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "postcss": "^8.4.34", "postcss-custom-properties": "^13.3.4", "postcss-import": "^16.0.0", - "stream": "^0.0.2", + "stream": "^0.0.3", "tailwindcss": "^3.4.1", "tailwindcss-animations": "^2.0.0", "tailwindcss-interaction-variants": "^5.0.0", @@ -51,7 +51,7 @@ "localforage": "^1.10.0", "lunr": "^2.3.8", "mediainfo.js": "^0.3.1", - "music-metadata-browser": "^2.5.10", + "music-metadata": "^8.3.0", "readable-stream": "^4.5.2", "remotestoragejs": "^2.0.0-beta.6", "serve": "^14.2.1", diff --git a/src/Javascript/Brain/processing.ts b/src/Javascript/Brain/processing.ts index 29992293..9a949da2 100644 --- a/src/Javascript/Brain/processing.ts +++ b/src/Javascript/Brain/processing.ts @@ -106,7 +106,7 @@ export async function getTags( filename: string, { covers }: { covers: boolean }, ) { - const musicMetadata = await import("music-metadata-browser").then((a) => a.default); + const musicMetadata = await import("music-metadata"); const httpTokenizer = await import("@tokenizer/http").then((a) => a.default); let tokenizer;