music-metadata 11.8.2 → 11.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.txt +9 -9
- package/README.md +874 -874
- package/lib/ParserFactory.js +1 -1
- package/lib/common/Util.d.ts +0 -1
- package/lib/common/Util.js +0 -11
- package/lib/mp4/MP4Parser.js +2 -2
- package/lib/wavpack/WavPackParser.js +1 -1
- package/package.json +149 -148
package/lib/ParserFactory.js
CHANGED
|
@@ -47,7 +47,7 @@ export class ParserFactory {
|
|
|
47
47
|
musepackParserLoader,
|
|
48
48
|
dsfParserLoader,
|
|
49
49
|
dsdiffParserLoader
|
|
50
|
-
].forEach(parser => this.registerParser(parser));
|
|
50
|
+
].forEach(parser => { this.registerParser(parser); });
|
|
51
51
|
}
|
|
52
52
|
registerParser(parser) {
|
|
53
53
|
this.parsers.push(parser);
|
package/lib/common/Util.d.ts
CHANGED
package/lib/common/Util.js
CHANGED
|
@@ -129,7 +129,6 @@ export function dbToRatio(dB) {
|
|
|
129
129
|
*/
|
|
130
130
|
export function toRatio(value) {
|
|
131
131
|
const ps = value.split(' ').map(p => p.trim().toLowerCase());
|
|
132
|
-
// @ts-ignore
|
|
133
132
|
if (ps.length >= 1) {
|
|
134
133
|
const v = Number.parseFloat(ps[0]);
|
|
135
134
|
return ps.length === 2 && ps[1] === 'db' ? {
|
|
@@ -141,13 +140,3 @@ export function toRatio(value) {
|
|
|
141
140
|
};
|
|
142
141
|
}
|
|
143
142
|
}
|
|
144
|
-
const byteToHexLookupTable = Array.from({ length: 256 }, (_, index) => index.toString(16).padStart(2, '0'));
|
|
145
|
-
export function uint8ArrayToHex(array) {
|
|
146
|
-
// Concatenating a string is faster than using an array.
|
|
147
|
-
let hexString = '';
|
|
148
|
-
// eslint-disable-next-line unicorn/no-for-loop -- Max performance is critical.
|
|
149
|
-
for (let index = 0; index < array.length; index++) {
|
|
150
|
-
hexString += byteToHexLookupTable[array[index]];
|
|
151
|
-
}
|
|
152
|
-
return hexString;
|
|
153
|
-
}
|
package/lib/mp4/MP4Parser.js
CHANGED
|
@@ -6,7 +6,7 @@ import { Atom } from './Atom.js';
|
|
|
6
6
|
import * as AtomToken from './AtomToken.js';
|
|
7
7
|
import { ChapterTrackReferenceBox, Mp4ContentError, } from './AtomToken.js';
|
|
8
8
|
import { TrackType } from '../type.js';
|
|
9
|
-
import { uint8ArrayToHex } from '
|
|
9
|
+
import { uint8ArrayToHex } from 'uint8array-extras';
|
|
10
10
|
import { textDecode } from '@borewit/text-codec';
|
|
11
11
|
const debug = initDebug('music-metadata:parser:MP4');
|
|
12
12
|
const tagFormat = 'iTunes';
|
|
@@ -433,7 +433,7 @@ export class MP4Parser extends BasicParser {
|
|
|
433
433
|
}
|
|
434
434
|
}
|
|
435
435
|
async parseTrackBox(trakBox) {
|
|
436
|
-
// @ts-
|
|
436
|
+
// @ts-expect-error
|
|
437
437
|
const track = {
|
|
438
438
|
media: {},
|
|
439
439
|
fragments: []
|
|
@@ -4,7 +4,7 @@ import { FourCcToken } from '../common/FourCC.js';
|
|
|
4
4
|
import { BasicParser } from '../common/BasicParser.js';
|
|
5
5
|
import { BlockHeaderToken, MetadataIdToken } from './WavPackToken.js';
|
|
6
6
|
import initDebug from 'debug';
|
|
7
|
-
import { uint8ArrayToHex } from '
|
|
7
|
+
import { uint8ArrayToHex } from 'uint8array-extras';
|
|
8
8
|
import { makeUnexpectedFileContentError } from '../ParseError.js';
|
|
9
9
|
const debug = initDebug('music-metadata:parser:WavPack');
|
|
10
10
|
export class WavPackContentError extends makeUnexpectedFileContentError('WavPack') {
|
package/package.json
CHANGED
|
@@ -1,148 +1,149 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "music-metadata",
|
|
3
|
-
"description": "Music metadata parser for Node.js, supporting virtual any audio and tag format.",
|
|
4
|
-
"version": "11.8.
|
|
5
|
-
"author": {
|
|
6
|
-
"name": "Borewit",
|
|
7
|
-
"url": "https://github.com/Borewit"
|
|
8
|
-
},
|
|
9
|
-
"funding": [
|
|
10
|
-
{
|
|
11
|
-
"type": "github",
|
|
12
|
-
"url": "https://github.com/sponsors/Borewit"
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
"type": "buymeacoffee",
|
|
16
|
-
"url": "https://buymeacoffee.com/borewit"
|
|
17
|
-
}
|
|
18
|
-
],
|
|
19
|
-
"sideEffects": false,
|
|
20
|
-
"type": "module",
|
|
21
|
-
"exports": {
|
|
22
|
-
"node": {
|
|
23
|
-
"import": "./lib/index.js",
|
|
24
|
-
"module-sync": "./lib/index.js",
|
|
25
|
-
"types": "./lib/index.d.ts"
|
|
26
|
-
},
|
|
27
|
-
"default": {
|
|
28
|
-
"import": "./lib/core.js",
|
|
29
|
-
"module-sync": "./lib/core.js",
|
|
30
|
-
"types": "./lib/core.d.ts"
|
|
31
|
-
}
|
|
32
|
-
},
|
|
33
|
-
"types": "lib/index.d.ts",
|
|
34
|
-
"files": [
|
|
35
|
-
"lib/**/*.js",
|
|
36
|
-
"lib/**/*.d.ts"
|
|
37
|
-
],
|
|
38
|
-
"keywords": [
|
|
39
|
-
"music",
|
|
40
|
-
"metadata",
|
|
41
|
-
"meta",
|
|
42
|
-
"audio",
|
|
43
|
-
"tag",
|
|
44
|
-
"tags",
|
|
45
|
-
"duration",
|
|
46
|
-
"MusicBrainz",
|
|
47
|
-
"Discogs",
|
|
48
|
-
"Picard",
|
|
49
|
-
"ID3",
|
|
50
|
-
"ID3v1",
|
|
51
|
-
"ID3v2",
|
|
52
|
-
"m4a",
|
|
53
|
-
"m4b",
|
|
54
|
-
"mp3",
|
|
55
|
-
"mp4",
|
|
56
|
-
"Vorbis",
|
|
57
|
-
"ogg",
|
|
58
|
-
"flac",
|
|
59
|
-
"Matroska",
|
|
60
|
-
"WebM",
|
|
61
|
-
"EBML",
|
|
62
|
-
"asf",
|
|
63
|
-
"wma",
|
|
64
|
-
"wmv",
|
|
65
|
-
"ape",
|
|
66
|
-
"MonkeyAudio",
|
|
67
|
-
"aiff",
|
|
68
|
-
"wav",
|
|
69
|
-
"WavPack",
|
|
70
|
-
"Opus",
|
|
71
|
-
"speex",
|
|
72
|
-
"musepack",
|
|
73
|
-
"mpc",
|
|
74
|
-
"dsd",
|
|
75
|
-
"dsf",
|
|
76
|
-
"mpc",
|
|
77
|
-
"dff",
|
|
78
|
-
"dsdiff",
|
|
79
|
-
"aac",
|
|
80
|
-
"adts",
|
|
81
|
-
"length",
|
|
82
|
-
"chapter",
|
|
83
|
-
"info",
|
|
84
|
-
"parse",
|
|
85
|
-
"parser",
|
|
86
|
-
"bwf",
|
|
87
|
-
"slt",
|
|
88
|
-
"lyrics"
|
|
89
|
-
],
|
|
90
|
-
"scripts": {
|
|
91
|
-
"clean": "del-cli 'lib/**/*.js' 'lib/**/*.js.map' 'lib/**/*.d.ts' 'test/**/*.js' 'test/**/*.js.map' 'test/**/*.js' 'test/**/*.js.map' 'doc-gen/**/*.js' 'doc-gen/**/*.js.map'",
|
|
92
|
-
"compile-src": "tsc -p lib --sourceMap false",
|
|
93
|
-
"compile-test": "tsc -p test",
|
|
94
|
-
"compile-doc": "tsc -p doc-gen",
|
|
95
|
-
"compile": "yarn run compile-src && yarn compile-test && yarn compile-doc",
|
|
96
|
-
"lint:ts": "biome check",
|
|
97
|
-
"lint:md": "yarn run remark -u remark-preset-lint-consistent .",
|
|
98
|
-
"lint": "yarn run lint:ts && yarn run lint:md",
|
|
99
|
-
"test": "mocha",
|
|
100
|
-
"build": "yarn run clean && yarn compile && yarn run doc-gen",
|
|
101
|
-
"prepublishOnly": "yarn run build",
|
|
102
|
-
"test-coverage": "c8 yarn run test",
|
|
103
|
-
"send-codacy": "c8 report --reporter=text-lcov | codacy-coverage",
|
|
104
|
-
"doc-gen": "yarn node doc-gen/gen.js",
|
|
105
|
-
"typecheck": "tsc --project ./lib/tsconfig.json --noEmit && tsc --project ./test/tsconfig.json --noEmit",
|
|
106
|
-
"update-biome": "yarn add -D --exact @biomejs/biome && npx @biomejs/biome migrate --write"
|
|
107
|
-
},
|
|
108
|
-
"dependencies": {
|
|
109
|
-
"@borewit/text-codec": "^0.
|
|
110
|
-
"@tokenizer/token": "^0.3.0",
|
|
111
|
-
"content-type": "^1.0.5",
|
|
112
|
-
"debug": "^4.4.1",
|
|
113
|
-
"file-type": "^21.0.0",
|
|
114
|
-
"media-typer": "^1.1.0",
|
|
115
|
-
"strtok3": "^10.3.4",
|
|
116
|
-
"token-types": "^6.1.1"
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
"@
|
|
121
|
-
"@types/chai
|
|
122
|
-
"@types/
|
|
123
|
-
"@types/
|
|
124
|
-
"@types/
|
|
125
|
-
"@types/
|
|
126
|
-
"@types/
|
|
127
|
-
"
|
|
128
|
-
"
|
|
129
|
-
"chai
|
|
130
|
-
"
|
|
131
|
-
"
|
|
132
|
-
"
|
|
133
|
-
"
|
|
134
|
-
"
|
|
135
|
-
"remark-
|
|
136
|
-
"
|
|
137
|
-
"
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
"
|
|
144
|
-
"
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "music-metadata",
|
|
3
|
+
"description": "Music metadata parser for Node.js, supporting virtual any audio and tag format.",
|
|
4
|
+
"version": "11.8.3",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Borewit",
|
|
7
|
+
"url": "https://github.com/Borewit"
|
|
8
|
+
},
|
|
9
|
+
"funding": [
|
|
10
|
+
{
|
|
11
|
+
"type": "github",
|
|
12
|
+
"url": "https://github.com/sponsors/Borewit"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"type": "buymeacoffee",
|
|
16
|
+
"url": "https://buymeacoffee.com/borewit"
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"sideEffects": false,
|
|
20
|
+
"type": "module",
|
|
21
|
+
"exports": {
|
|
22
|
+
"node": {
|
|
23
|
+
"import": "./lib/index.js",
|
|
24
|
+
"module-sync": "./lib/index.js",
|
|
25
|
+
"types": "./lib/index.d.ts"
|
|
26
|
+
},
|
|
27
|
+
"default": {
|
|
28
|
+
"import": "./lib/core.js",
|
|
29
|
+
"module-sync": "./lib/core.js",
|
|
30
|
+
"types": "./lib/core.d.ts"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"types": "lib/index.d.ts",
|
|
34
|
+
"files": [
|
|
35
|
+
"lib/**/*.js",
|
|
36
|
+
"lib/**/*.d.ts"
|
|
37
|
+
],
|
|
38
|
+
"keywords": [
|
|
39
|
+
"music",
|
|
40
|
+
"metadata",
|
|
41
|
+
"meta",
|
|
42
|
+
"audio",
|
|
43
|
+
"tag",
|
|
44
|
+
"tags",
|
|
45
|
+
"duration",
|
|
46
|
+
"MusicBrainz",
|
|
47
|
+
"Discogs",
|
|
48
|
+
"Picard",
|
|
49
|
+
"ID3",
|
|
50
|
+
"ID3v1",
|
|
51
|
+
"ID3v2",
|
|
52
|
+
"m4a",
|
|
53
|
+
"m4b",
|
|
54
|
+
"mp3",
|
|
55
|
+
"mp4",
|
|
56
|
+
"Vorbis",
|
|
57
|
+
"ogg",
|
|
58
|
+
"flac",
|
|
59
|
+
"Matroska",
|
|
60
|
+
"WebM",
|
|
61
|
+
"EBML",
|
|
62
|
+
"asf",
|
|
63
|
+
"wma",
|
|
64
|
+
"wmv",
|
|
65
|
+
"ape",
|
|
66
|
+
"MonkeyAudio",
|
|
67
|
+
"aiff",
|
|
68
|
+
"wav",
|
|
69
|
+
"WavPack",
|
|
70
|
+
"Opus",
|
|
71
|
+
"speex",
|
|
72
|
+
"musepack",
|
|
73
|
+
"mpc",
|
|
74
|
+
"dsd",
|
|
75
|
+
"dsf",
|
|
76
|
+
"mpc",
|
|
77
|
+
"dff",
|
|
78
|
+
"dsdiff",
|
|
79
|
+
"aac",
|
|
80
|
+
"adts",
|
|
81
|
+
"length",
|
|
82
|
+
"chapter",
|
|
83
|
+
"info",
|
|
84
|
+
"parse",
|
|
85
|
+
"parser",
|
|
86
|
+
"bwf",
|
|
87
|
+
"slt",
|
|
88
|
+
"lyrics"
|
|
89
|
+
],
|
|
90
|
+
"scripts": {
|
|
91
|
+
"clean": "del-cli 'lib/**/*.js' 'lib/**/*.js.map' 'lib/**/*.d.ts' 'test/**/*.js' 'test/**/*.js.map' 'test/**/*.js' 'test/**/*.js.map' 'doc-gen/**/*.js' 'doc-gen/**/*.js.map'",
|
|
92
|
+
"compile-src": "tsc -p lib --sourceMap false",
|
|
93
|
+
"compile-test": "tsc -p test",
|
|
94
|
+
"compile-doc": "tsc -p doc-gen",
|
|
95
|
+
"compile": "yarn run compile-src && yarn compile-test && yarn compile-doc",
|
|
96
|
+
"lint:ts": "biome check",
|
|
97
|
+
"lint:md": "yarn run remark -u remark-preset-lint-consistent .",
|
|
98
|
+
"lint": "yarn run lint:ts && yarn run lint:md",
|
|
99
|
+
"test": "mocha",
|
|
100
|
+
"build": "yarn run clean && yarn compile && yarn run doc-gen",
|
|
101
|
+
"prepublishOnly": "yarn run build",
|
|
102
|
+
"test-coverage": "c8 yarn run test",
|
|
103
|
+
"send-codacy": "c8 report --reporter=text-lcov | codacy-coverage",
|
|
104
|
+
"doc-gen": "yarn node doc-gen/gen.js",
|
|
105
|
+
"typecheck": "tsc --project ./lib/tsconfig.json --noEmit && tsc --project ./test/tsconfig.json --noEmit",
|
|
106
|
+
"update-biome": "yarn add -D --exact @biomejs/biome && npx @biomejs/biome migrate --write"
|
|
107
|
+
},
|
|
108
|
+
"dependencies": {
|
|
109
|
+
"@borewit/text-codec": "^0.2.0",
|
|
110
|
+
"@tokenizer/token": "^0.3.0",
|
|
111
|
+
"content-type": "^1.0.5",
|
|
112
|
+
"debug": "^4.4.1",
|
|
113
|
+
"file-type": "^21.0.0",
|
|
114
|
+
"media-typer": "^1.1.0",
|
|
115
|
+
"strtok3": "^10.3.4",
|
|
116
|
+
"token-types": "^6.1.1",
|
|
117
|
+
"uint8array-extras": "^1.4.1"
|
|
118
|
+
},
|
|
119
|
+
"devDependencies": {
|
|
120
|
+
"@biomejs/biome": "2.2.0",
|
|
121
|
+
"@types/chai": "^5.2.2",
|
|
122
|
+
"@types/chai-as-promised": "^8.0.2",
|
|
123
|
+
"@types/content-type": "^1.1.9",
|
|
124
|
+
"@types/debug": "^4.1.12",
|
|
125
|
+
"@types/media-typer": "^1.1.3",
|
|
126
|
+
"@types/mocha": "^10.0.10",
|
|
127
|
+
"@types/node": "^24.2.1",
|
|
128
|
+
"c8": "^10.1.3",
|
|
129
|
+
"chai": "^5.2.1",
|
|
130
|
+
"chai-as-promised": "^8.0.1",
|
|
131
|
+
"del-cli": "^6.0.0",
|
|
132
|
+
"mime": "^4.0.7",
|
|
133
|
+
"mocha": "^11.7.1",
|
|
134
|
+
"node-readable-to-web-readable-stream": "^0.4.2",
|
|
135
|
+
"remark-cli": "^12.0.1",
|
|
136
|
+
"remark-preset-lint-consistent": "^6.0.1",
|
|
137
|
+
"ts-node": "^10.9.2",
|
|
138
|
+
"typescript": "^5.9.2"
|
|
139
|
+
},
|
|
140
|
+
"engines": {
|
|
141
|
+
"node": ">=18"
|
|
142
|
+
},
|
|
143
|
+
"repository": "github:Borewit/music-metadata",
|
|
144
|
+
"license": "MIT",
|
|
145
|
+
"bugs": {
|
|
146
|
+
"url": "https://github.com/Borewit/music-metadata/issues"
|
|
147
|
+
},
|
|
148
|
+
"packageManager": "yarn@4.9.2"
|
|
149
|
+
}
|