[Dev] Bundle music-metadata-browser with deps to a single file (#1820)

This commit is contained in:
Alexander Zinchuk 2022-04-08 20:59:49 +02:00
parent 1da41443ca
commit 439e78ad82
7 changed files with 19448 additions and 232 deletions

View File

@ -10,6 +10,8 @@ src/lib/gramjs/tl/schemaTl.js
src/lib/lovely-chart
src/lib/music-metadata-browser
webpack.config.js
jest.config.js
src/lib/secret-sauce/

262
package-lock.json generated
View File

@ -16,12 +16,10 @@
"emoji-data-ios": "git+https://github.com/korenskoy/emoji-data-ios#54443d1938ec1c157e74d2a95e9103dcb3f5c6dd",
"events": "^3.3.0",
"idb-keyval": "^6.1.0",
"music-metadata-browser": "^2.5.5",
"opus-recorder": "github:Ajaxy/opus-recorder",
"os-browserify": "^0.3.0",
"pako": "^2.0.4",
"path-browserify": "^1.0.1",
"process": "^0.11.10",
"qr-code-styling": "github:zubiden/qr-code-styling#10f7cf3",
"websocket": "^1.0.34"
},
@ -3316,11 +3314,6 @@
"node": ">=8"
}
},
"node_modules/@tokenizer/token": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz",
"integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A=="
},
"node_modules/@tootallnate/once": {
"version": "1.1.2",
"dev": true,
@ -4756,6 +4749,7 @@
},
"node_modules/base64-js": {
"version": "1.5.1",
"dev": true,
"funding": [
{
"type": "github",
@ -4928,6 +4922,7 @@
},
"node_modules/buffer": {
"version": "6.0.3",
"dev": true,
"funding": [
{
"type": "github",
@ -5459,6 +5454,7 @@
},
"node_modules/content-type": {
"version": "1.0.4",
"dev": true,
"license": "MIT",
"engines": {
"node": ">= 0.6"
@ -5951,6 +5947,7 @@
},
"node_modules/debug": {
"version": "4.3.3",
"dev": true,
"license": "MIT",
"dependencies": {
"ms": "2.1.2"
@ -7482,22 +7479,6 @@
"node": "^10.12.0 || >=12.0.0"
}
},
"node_modules/file-type": {
"version": "16.5.3",
"resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.3.tgz",
"integrity": "sha512-uVsl7iFhHSOY4bEONLlTK47iAHtNsFHWP5YE4xJfZ4rnX7S1Q3wce09XgqSC7E/xh8Ncv/be1lNoyprlUH/x6A==",
"dependencies": {
"readable-web-to-node-stream": "^3.0.0",
"strtok3": "^6.2.4",
"token-types": "^4.1.1"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sindresorhus/file-type?sponsor=1"
}
},
"node_modules/fill-range": {
"version": "7.0.1",
"dev": true,
@ -8293,6 +8274,7 @@
},
"node_modules/ieee754": {
"version": "1.2.1",
"dev": true,
"funding": [
{
"type": "github",
@ -8390,6 +8372,7 @@
},
"node_modules/inherits": {
"version": "2.0.4",
"dev": true,
"license": "ISC"
},
"node_modules/ini": {
@ -11514,6 +11497,7 @@
},
"node_modules/ms": {
"version": "2.1.2",
"dev": true,
"license": "MIT"
},
"node_modules/multicast-dns": {
@ -11533,51 +11517,6 @@
"dev": true,
"license": "MIT"
},
"node_modules/music-metadata": {
"version": "7.12.2",
"resolved": "https://registry.npmjs.org/music-metadata/-/music-metadata-7.12.2.tgz",
"integrity": "sha512-KO1L6q30b6HfGlDQk1VAdrZqCKi4Gy7pN7eZOZ0YZQkhF/KCLHxKCjKKli9ao9kIBC/9s+uXHvjW3bDIBWuGew==",
"dependencies": {
"@tokenizer/token": "^0.3.0",
"content-type": "^1.0.4",
"debug": "^4.3.3",
"file-type": "16.5.3",
"media-typer": "^1.1.0",
"strtok3": "^6.2.4",
"token-types": "^4.2.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/Borewit"
}
},
"node_modules/music-metadata-browser": {
"version": "2.5.5",
"resolved": "https://registry.npmjs.org/music-metadata-browser/-/music-metadata-browser-2.5.5.tgz",
"integrity": "sha512-38A/q1fz7LOIDxpi2fAzPGMNZQ0YyQUfErizK/rbWRIKC7E4N2BQpqCHq38nHlb7+Iv/wEHgwVoIwbUAXtphEA==",
"dependencies": {
"buffer": "^6.0.3",
"debug": "^4.3.3",
"music-metadata": "^7.12.0",
"readable-stream": "^3.6.0",
"readable-web-to-node-stream": "^3.0.2"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/Borewit"
}
},
"node_modules/music-metadata/node_modules/media-typer": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz",
"integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/nanoid": {
"version": "3.3.1",
"dev": true,
@ -12077,7 +12016,8 @@
},
"node_modules/path-browserify": {
"version": "1.0.1",
"license": "MIT"
"resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
"integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g=="
},
"node_modules/path-exists": {
"version": "3.0.0",
@ -12121,18 +12061,6 @@
"node": ">=8"
}
},
"node_modules/peek-readable": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz",
"integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==",
"engines": {
"node": ">=8"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/Borewit"
}
},
"node_modules/picocolors": {
"version": "1.0.0",
"dev": true,
@ -13019,14 +12947,6 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
"node_modules/process": {
"version": "0.11.10",
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
"integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
"engines": {
"node": ">= 0.6.0"
}
},
"node_modules/process-nextick-args": {
"version": "2.0.1",
"dev": true,
@ -13349,6 +13269,7 @@
},
"node_modules/readable-stream": {
"version": "3.6.0",
"dev": true,
"license": "MIT",
"dependencies": {
"inherits": "^2.0.3",
@ -13359,21 +13280,6 @@
"node": ">= 6"
}
},
"node_modules/readable-web-to-node-stream": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz",
"integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==",
"dependencies": {
"readable-stream": "^3.6.0"
},
"engines": {
"node": ">=8"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/Borewit"
}
},
"node_modules/readdirp": {
"version": "3.6.0",
"dev": true,
@ -14332,6 +14238,7 @@
},
"node_modules/string_decoder": {
"version": "1.3.0",
"dev": true,
"license": "MIT",
"dependencies": {
"safe-buffer": "~5.2.0"
@ -14339,6 +14246,7 @@
},
"node_modules/string_decoder/node_modules/safe-buffer": {
"version": "5.2.1",
"dev": true,
"funding": [
{
"type": "github",
@ -14517,22 +14425,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/strtok3": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz",
"integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==",
"dependencies": {
"@tokenizer/token": "^0.3.0",
"peek-readable": "^4.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/Borewit"
}
},
"node_modules/style-loader": {
"version": "3.3.1",
"dev": true,
@ -15488,22 +15380,6 @@
"node": ">=0.6"
}
},
"node_modules/token-types": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/token-types/-/token-types-4.2.0.tgz",
"integrity": "sha512-P0rrp4wUpefLncNamWIef62J0v0kQR/GfDVji9WKY7GDCWy5YbVSrKUTam07iWPZQGy0zWNOfstYTykMmPNR7w==",
"dependencies": {
"@tokenizer/token": "^0.3.0",
"ieee754": "^1.2.1"
},
"engines": {
"node": ">=10"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/Borewit"
}
},
"node_modules/tough-cookie": {
"version": "4.0.0",
"dev": true,
@ -15830,6 +15706,7 @@
},
"node_modules/util-deprecate": {
"version": "1.0.2",
"dev": true,
"license": "MIT"
},
"node_modules/utila": {
@ -18836,11 +18713,6 @@
}
}
},
"@tokenizer/token": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz",
"integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A=="
},
"@tootallnate/once": {
"version": "1.1.2",
"dev": true
@ -19825,7 +19697,8 @@
"dev": true
},
"base64-js": {
"version": "1.5.1"
"version": "1.5.1",
"dev": true
},
"batch": {
"version": "0.6.1",
@ -19938,6 +19811,7 @@
},
"buffer": {
"version": "6.0.3",
"dev": true,
"requires": {
"base64-js": "^1.3.1",
"ieee754": "^1.2.1"
@ -20269,7 +20143,8 @@
}
},
"content-type": {
"version": "1.0.4"
"version": "1.0.4",
"dev": true
},
"convert-source-map": {
"version": "1.8.0",
@ -20576,6 +20451,7 @@
},
"debug": {
"version": "4.3.3",
"dev": true,
"requires": {
"ms": "2.1.2"
}
@ -21583,16 +21459,6 @@
"flat-cache": "^3.0.4"
}
},
"file-type": {
"version": "16.5.3",
"resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.3.tgz",
"integrity": "sha512-uVsl7iFhHSOY4bEONLlTK47iAHtNsFHWP5YE4xJfZ4rnX7S1Q3wce09XgqSC7E/xh8Ncv/be1lNoyprlUH/x6A==",
"requires": {
"readable-web-to-node-stream": "^3.0.0",
"strtok3": "^6.2.4",
"token-types": "^4.1.1"
}
},
"fill-range": {
"version": "7.0.1",
"dev": true,
@ -22081,7 +21947,8 @@
}
},
"ieee754": {
"version": "1.2.1"
"version": "1.2.1",
"dev": true
},
"ignore": {
"version": "5.2.0",
@ -22128,7 +21995,8 @@
}
},
"inherits": {
"version": "2.0.4"
"version": "2.0.4",
"dev": true
},
"ini": {
"version": "1.3.8",
@ -24088,7 +23956,8 @@
}
},
"ms": {
"version": "2.1.2"
"version": "2.1.2",
"dev": true
},
"multicast-dns": {
"version": "6.2.3",
@ -24102,39 +23971,6 @@
"version": "1.1.0",
"dev": true
},
"music-metadata": {
"version": "7.12.2",
"resolved": "https://registry.npmjs.org/music-metadata/-/music-metadata-7.12.2.tgz",
"integrity": "sha512-KO1L6q30b6HfGlDQk1VAdrZqCKi4Gy7pN7eZOZ0YZQkhF/KCLHxKCjKKli9ao9kIBC/9s+uXHvjW3bDIBWuGew==",
"requires": {
"@tokenizer/token": "^0.3.0",
"content-type": "^1.0.4",
"debug": "^4.3.3",
"file-type": "16.5.3",
"media-typer": "^1.1.0",
"strtok3": "^6.2.4",
"token-types": "^4.2.0"
},
"dependencies": {
"media-typer": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz",
"integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw=="
}
}
},
"music-metadata-browser": {
"version": "2.5.5",
"resolved": "https://registry.npmjs.org/music-metadata-browser/-/music-metadata-browser-2.5.5.tgz",
"integrity": "sha512-38A/q1fz7LOIDxpi2fAzPGMNZQ0YyQUfErizK/rbWRIKC7E4N2BQpqCHq38nHlb7+Iv/wEHgwVoIwbUAXtphEA==",
"requires": {
"buffer": "^6.0.3",
"debug": "^4.3.3",
"music-metadata": "^7.12.0",
"readable-stream": "^3.6.0",
"readable-web-to-node-stream": "^3.0.2"
}
},
"nanoid": {
"version": "3.3.1",
"dev": true
@ -24446,7 +24282,9 @@
}
},
"path-browserify": {
"version": "1.0.1"
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
"integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g=="
},
"path-exists": {
"version": "3.0.0",
@ -24472,11 +24310,6 @@
"version": "4.0.0",
"dev": true
},
"peek-readable": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz",
"integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg=="
},
"picocolors": {
"version": "1.0.0",
"dev": true
@ -24993,11 +24826,6 @@
}
}
},
"process": {
"version": "0.11.10",
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
"integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI="
},
"process-nextick-args": {
"version": "2.0.1",
"dev": true
@ -25207,20 +25035,13 @@
},
"readable-stream": {
"version": "3.6.0",
"dev": true,
"requires": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
"util-deprecate": "^1.0.1"
}
},
"readable-web-to-node-stream": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz",
"integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==",
"requires": {
"readable-stream": "^3.6.0"
}
},
"readdirp": {
"version": "3.6.0",
"dev": true,
@ -25845,12 +25666,14 @@
},
"string_decoder": {
"version": "1.3.0",
"dev": true,
"requires": {
"safe-buffer": "~5.2.0"
},
"dependencies": {
"safe-buffer": {
"version": "5.2.1"
"version": "5.2.1",
"dev": true
}
}
},
@ -25952,15 +25775,6 @@
"version": "3.1.1",
"dev": true
},
"strtok3": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz",
"integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==",
"requires": {
"@tokenizer/token": "^0.3.0",
"peek-readable": "^4.1.0"
}
},
"style-loader": {
"version": "3.3.1",
"dev": true,
@ -26586,15 +26400,6 @@
"version": "1.0.1",
"dev": true
},
"token-types": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/token-types/-/token-types-4.2.0.tgz",
"integrity": "sha512-P0rrp4wUpefLncNamWIef62J0v0kQR/GfDVji9WKY7GDCWy5YbVSrKUTam07iWPZQGy0zWNOfstYTykMmPNR7w==",
"requires": {
"@tokenizer/token": "^0.3.0",
"ieee754": "^1.2.1"
}
},
"tough-cookie": {
"version": "4.0.0",
"dev": true,
@ -26786,7 +26591,8 @@
}
},
"util-deprecate": {
"version": "1.0.2"
"version": "1.0.2",
"dev": true
},
"utila": {
"version": "0.4.0",

View File

@ -109,12 +109,10 @@
"emoji-data-ios": "git+https://github.com/korenskoy/emoji-data-ios#54443d1938ec1c157e74d2a95e9103dcb3f5c6dd",
"events": "^3.3.0",
"idb-keyval": "^6.1.0",
"music-metadata-browser": "^2.5.5",
"opus-recorder": "github:Ajaxy/opus-recorder",
"os-browserify": "^0.3.0",
"pako": "^2.0.4",
"path-browserify": "^1.0.1",
"process": "^0.11.10",
"qr-code-styling": "github:zubiden/qr-code-styling#10f7cf3",
"websocket": "^1.0.34"
},

View File

@ -0,0 +1,33 @@
interface ICommonTagsResult {
title?: string;
artist?: string;
picture?: IPicture[];
}
interface IFormat {
duration?: number;
}
interface IAudioMetadata extends INativeAudioMetadata {
common: ICommonTagsResult;
format: IFormat;
}
interface IPicture {
format: string;
data: Buffer;
description?: string;
type?: string;
name?: string;
}
interface IOptions {
duration?: boolean;
skipCovers?: boolean;
skipPostHeaders?: boolean;
includeChapters?: boolean;
}
export declare function selectCover(pictures?: IPicture[]): IPicture | null;
export declare function fetchFromUrl(audioTrackUrl: string, options?: IOptions): Promise<IAudioMetadata>;

File diff suppressed because it is too large Load Diff

View File

@ -6,7 +6,7 @@ type AudioMetadata = {
};
export async function parseAudioMetadata(url: string): Promise<AudioMetadata> {
const { fetchFromUrl, selectCover } = await import('music-metadata-browser');
const { fetchFromUrl, selectCover } = await import('../lib/music-metadata-browser');
const metadata = await fetchFromUrl(url);
const { common: { title, artist, picture }, format: { duration } } = metadata;

View File

@ -142,7 +142,6 @@ module.exports = (env = {}, argv = {}) => {
}),
new ProvidePlugin({
Buffer: ['buffer', 'Buffer'],
process: 'process/browser',
}),
new StatoscopeWebpackPlugin({
statsOptions: {