musicbrainz-api 0.7.2 → 0.10.0
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/.idea/$PRODUCT_WORKSPACE_FILE$ +1 -1
- package/.idea/misc.xml +6 -0
- package/.idea/modules.xml +7 -7
- package/.idea/vcs.xml +5 -5
- package/README.md +482 -290
- package/lib/digest-auth.d.ts +21 -21
- package/lib/digest-auth.js +82 -87
- package/lib/musicbrainz-api.d.ts +293 -156
- package/lib/musicbrainz-api.js +541 -390
- package/lib/musicbrainz.types.d.ts +585 -379
- package/lib/musicbrainz.types.js +16 -16
- package/lib/rate-limiter.d.ts +8 -8
- package/lib/rate-limiter.js +31 -31
- package/lib/xml/xml-isrc-list.d.ts +17 -17
- package/lib/xml/xml-isrc-list.js +22 -22
- package/lib/xml/xml-isrc.d.ts +10 -10
- package/lib/xml/xml-isrc.js +17 -17
- package/lib/xml/xml-metadata.d.ts +6 -6
- package/lib/xml/xml-metadata.js +29 -29
- package/lib/xml/xml-recording.d.ts +24 -24
- package/lib/xml/xml-recording.js +20 -20
- package/package.json +104 -98
- package/.idea/checkstyle-idea.xml +0 -16
- package/.idea/codeStyles/Project.xml +0 -38
- package/.idea/codeStyles/codeStyleConfig.xml +0 -5
- package/.idea/inspectionProfiles/Project_Default.xml +0 -6
- package/.idea/shelf/Uncommitted_changes_before_Update_at_6-1-2022_11_38_[Default_Changelist]/shelved.patch +0 -58
- package/.idea/shelf/Uncommitted_changes_before_Update_at_6-1-2022_11_38__Default_Changelist_.xml +0 -4
- package/.idea/shelf/Uncommitted_changes_before_rebase_[Default_Changelist]/shelved.patch +0 -738
- package/.idea/shelf/Uncommitted_changes_before_rebase_[Default_Changelist]1/shelved.patch +0 -0
- package/.idea/shelf/Uncommitted_changes_before_rebase__Default_Changelist_.xml +0 -4
- package/.idea/workspace.xml +0 -722
- package/etc/config.js +0 -32
- package/yarn-error.log +0 -3608
package/lib/musicbrainz.types.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LinkType = void 0;
|
|
4
|
-
var LinkType;
|
|
5
|
-
(function (LinkType) {
|
|
6
|
-
LinkType[LinkType["license"] = 302] = "license";
|
|
7
|
-
LinkType[LinkType["production"] = 256] = "production";
|
|
8
|
-
LinkType[LinkType["samples_IMDb_entry"] = 258] = "samples_IMDb_entry";
|
|
9
|
-
LinkType[LinkType["get_the_music"] = 257] = "get_the_music";
|
|
10
|
-
LinkType[LinkType["purchase_for_download"] = 254] = "purchase_for_download";
|
|
11
|
-
LinkType[LinkType["download_for_free"] = 255] = "download_for_free";
|
|
12
|
-
LinkType[LinkType["stream_for_free"] = 268] = "stream_for_free";
|
|
13
|
-
LinkType[LinkType["crowdfunding_page"] = 905] = "crowdfunding_page";
|
|
14
|
-
LinkType[LinkType["other_databases"] = 306] = "other_databases";
|
|
15
|
-
LinkType[LinkType["Allmusic"] = 285] = "Allmusic";
|
|
16
|
-
})(LinkType = exports.LinkType || (exports.LinkType = {}));
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LinkType = void 0;
|
|
4
|
+
var LinkType;
|
|
5
|
+
(function (LinkType) {
|
|
6
|
+
LinkType[LinkType["license"] = 302] = "license";
|
|
7
|
+
LinkType[LinkType["production"] = 256] = "production";
|
|
8
|
+
LinkType[LinkType["samples_IMDb_entry"] = 258] = "samples_IMDb_entry";
|
|
9
|
+
LinkType[LinkType["get_the_music"] = 257] = "get_the_music";
|
|
10
|
+
LinkType[LinkType["purchase_for_download"] = 254] = "purchase_for_download";
|
|
11
|
+
LinkType[LinkType["download_for_free"] = 255] = "download_for_free";
|
|
12
|
+
LinkType[LinkType["stream_for_free"] = 268] = "stream_for_free";
|
|
13
|
+
LinkType[LinkType["crowdfunding_page"] = 905] = "crowdfunding_page";
|
|
14
|
+
LinkType[LinkType["other_databases"] = 306] = "other_databases";
|
|
15
|
+
LinkType[LinkType["Allmusic"] = 285] = "Allmusic";
|
|
16
|
+
})(LinkType = exports.LinkType || (exports.LinkType = {}));
|
|
17
17
|
//# sourceMappingURL=musicbrainz.types.js.map
|
package/lib/rate-limiter.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export declare class RateLimiter {
|
|
2
|
-
private maxCalls;
|
|
3
|
-
static sleep(ms: any): Promise<void>;
|
|
4
|
-
queue: number[];
|
|
5
|
-
private readonly period;
|
|
6
|
-
constructor(period: number, maxCalls: number);
|
|
7
|
-
limit(): Promise<void>;
|
|
8
|
-
}
|
|
1
|
+
export declare class RateLimiter {
|
|
2
|
+
private maxCalls;
|
|
3
|
+
static sleep(ms: any): Promise<void>;
|
|
4
|
+
queue: number[];
|
|
5
|
+
private readonly period;
|
|
6
|
+
constructor(period: number, maxCalls: number);
|
|
7
|
+
limit(): Promise<void>;
|
|
8
|
+
}
|
package/lib/rate-limiter.js
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RateLimiter = void 0;
|
|
4
|
-
const Debug = require("debug");
|
|
5
|
-
const debug = Debug('musicbrainz-api:rate-limiter');
|
|
6
|
-
class RateLimiter {
|
|
7
|
-
constructor(period, maxCalls) {
|
|
8
|
-
this.maxCalls = maxCalls;
|
|
9
|
-
this.queue = [];
|
|
10
|
-
this.period = 1000 * period;
|
|
11
|
-
}
|
|
12
|
-
static sleep(ms) {
|
|
13
|
-
return new Promise(resolve => setTimeout(resolve, ms));
|
|
14
|
-
}
|
|
15
|
-
async limit() {
|
|
16
|
-
let now = new Date().getTime();
|
|
17
|
-
const t0 = now - (this.period);
|
|
18
|
-
while (this.queue.length > 0 && this.queue[0] < t0) {
|
|
19
|
-
this.queue.shift();
|
|
20
|
-
}
|
|
21
|
-
if (this.queue.length >= this.maxCalls) {
|
|
22
|
-
const delay = this.queue[0] + this.period - now;
|
|
23
|
-
debug(`Client side rate limiter activated: cool down for ${delay / 1000} s...`);
|
|
24
|
-
return RateLimiter.sleep(delay);
|
|
25
|
-
}
|
|
26
|
-
now = new Date().getTime();
|
|
27
|
-
this.queue.push(now);
|
|
28
|
-
// const ratePerSec = 1000 * this.queue.length / (now - this.queue[0]);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
exports.RateLimiter = RateLimiter;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RateLimiter = void 0;
|
|
4
|
+
const Debug = require("debug");
|
|
5
|
+
const debug = Debug('musicbrainz-api:rate-limiter');
|
|
6
|
+
class RateLimiter {
|
|
7
|
+
constructor(period, maxCalls) {
|
|
8
|
+
this.maxCalls = maxCalls;
|
|
9
|
+
this.queue = [];
|
|
10
|
+
this.period = 1000 * period;
|
|
11
|
+
}
|
|
12
|
+
static sleep(ms) {
|
|
13
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
14
|
+
}
|
|
15
|
+
async limit() {
|
|
16
|
+
let now = new Date().getTime();
|
|
17
|
+
const t0 = now - (this.period);
|
|
18
|
+
while (this.queue.length > 0 && this.queue[0] < t0) {
|
|
19
|
+
this.queue.shift();
|
|
20
|
+
}
|
|
21
|
+
if (this.queue.length >= this.maxCalls) {
|
|
22
|
+
const delay = this.queue[0] + this.period - now;
|
|
23
|
+
debug(`Client side rate limiter activated: cool down for ${delay / 1000} s...`);
|
|
24
|
+
return RateLimiter.sleep(delay);
|
|
25
|
+
}
|
|
26
|
+
now = new Date().getTime();
|
|
27
|
+
this.queue.push(now);
|
|
28
|
+
// const ratePerSec = 1000 * this.queue.length / (now - this.queue[0]);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.RateLimiter = RateLimiter;
|
|
32
32
|
//# sourceMappingURL=rate-limiter.js.map
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { XmlIsrc } from './xml-isrc';
|
|
2
|
-
export declare class XmlIsrcList {
|
|
3
|
-
items: XmlIsrc[];
|
|
4
|
-
pushIsrc(isrc: string): void;
|
|
5
|
-
toXml(): {
|
|
6
|
-
name: string;
|
|
7
|
-
attrs: {
|
|
8
|
-
count: number;
|
|
9
|
-
};
|
|
10
|
-
children: {
|
|
11
|
-
name: string;
|
|
12
|
-
attrs: {
|
|
13
|
-
id: string;
|
|
14
|
-
};
|
|
15
|
-
}[];
|
|
16
|
-
};
|
|
17
|
-
}
|
|
1
|
+
import { XmlIsrc } from './xml-isrc';
|
|
2
|
+
export declare class XmlIsrcList {
|
|
3
|
+
items: XmlIsrc[];
|
|
4
|
+
pushIsrc(isrc: string): void;
|
|
5
|
+
toXml(): {
|
|
6
|
+
name: string;
|
|
7
|
+
attrs: {
|
|
8
|
+
count: number;
|
|
9
|
+
};
|
|
10
|
+
children: {
|
|
11
|
+
name: string;
|
|
12
|
+
attrs: {
|
|
13
|
+
id: string;
|
|
14
|
+
};
|
|
15
|
+
}[];
|
|
16
|
+
};
|
|
17
|
+
}
|
package/lib/xml/xml-isrc-list.js
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.XmlIsrcList = void 0;
|
|
4
|
-
const xml_isrc_1 = require("./xml-isrc");
|
|
5
|
-
class XmlIsrcList {
|
|
6
|
-
constructor() {
|
|
7
|
-
this.items = [];
|
|
8
|
-
}
|
|
9
|
-
pushIsrc(isrc) {
|
|
10
|
-
this.items.push(new xml_isrc_1.XmlIsrc(isrc));
|
|
11
|
-
}
|
|
12
|
-
toXml() {
|
|
13
|
-
return this.items.length === 0 ? null : {
|
|
14
|
-
name: 'isrc-list',
|
|
15
|
-
attrs: {
|
|
16
|
-
count: this.items.length
|
|
17
|
-
},
|
|
18
|
-
children: this.items.map(isrc => isrc.toXml())
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
exports.XmlIsrcList = XmlIsrcList;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.XmlIsrcList = void 0;
|
|
4
|
+
const xml_isrc_1 = require("./xml-isrc");
|
|
5
|
+
class XmlIsrcList {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.items = [];
|
|
8
|
+
}
|
|
9
|
+
pushIsrc(isrc) {
|
|
10
|
+
this.items.push(new xml_isrc_1.XmlIsrc(isrc));
|
|
11
|
+
}
|
|
12
|
+
toXml() {
|
|
13
|
+
return this.items.length === 0 ? null : {
|
|
14
|
+
name: 'isrc-list',
|
|
15
|
+
attrs: {
|
|
16
|
+
count: this.items.length
|
|
17
|
+
},
|
|
18
|
+
children: this.items.map(isrc => isrc.toXml())
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.XmlIsrcList = XmlIsrcList;
|
|
23
23
|
//# sourceMappingURL=xml-isrc-list.js.map
|
package/lib/xml/xml-isrc.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export declare class XmlIsrc {
|
|
2
|
-
isrc: string;
|
|
3
|
-
constructor(isrc: string);
|
|
4
|
-
toXml(): {
|
|
5
|
-
name: string;
|
|
6
|
-
attrs: {
|
|
7
|
-
id: string;
|
|
8
|
-
};
|
|
9
|
-
};
|
|
10
|
-
}
|
|
1
|
+
export declare class XmlIsrc {
|
|
2
|
+
isrc: string;
|
|
3
|
+
constructor(isrc: string);
|
|
4
|
+
toXml(): {
|
|
5
|
+
name: string;
|
|
6
|
+
attrs: {
|
|
7
|
+
id: string;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
}
|
package/lib/xml/xml-isrc.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.XmlIsrc = void 0;
|
|
4
|
-
class XmlIsrc {
|
|
5
|
-
constructor(isrc) {
|
|
6
|
-
this.isrc = isrc;
|
|
7
|
-
}
|
|
8
|
-
toXml() {
|
|
9
|
-
return {
|
|
10
|
-
name: 'isrc',
|
|
11
|
-
attrs: {
|
|
12
|
-
id: this.isrc
|
|
13
|
-
}
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
exports.XmlIsrc = XmlIsrc;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.XmlIsrc = void 0;
|
|
4
|
+
class XmlIsrc {
|
|
5
|
+
constructor(isrc) {
|
|
6
|
+
this.isrc = isrc;
|
|
7
|
+
}
|
|
8
|
+
toXml() {
|
|
9
|
+
return {
|
|
10
|
+
name: 'isrc',
|
|
11
|
+
attrs: {
|
|
12
|
+
id: this.isrc
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.XmlIsrc = XmlIsrc;
|
|
18
18
|
//# sourceMappingURL=xml-isrc.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { XmlRecording } from './xml-recording';
|
|
2
|
-
export declare class XmlMetadata {
|
|
3
|
-
recordings: XmlRecording[];
|
|
4
|
-
pushRecording(id: string): XmlRecording;
|
|
5
|
-
toXml(): string;
|
|
6
|
-
}
|
|
1
|
+
import { XmlRecording } from './xml-recording';
|
|
2
|
+
export declare class XmlMetadata {
|
|
3
|
+
recordings: XmlRecording[];
|
|
4
|
+
pushRecording(id: string): XmlRecording;
|
|
5
|
+
toXml(): string;
|
|
6
|
+
}
|
package/lib/xml/xml-metadata.js
CHANGED
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// https://musicbrainz.org/doc/Development/XML_Web_Service/Version_2#ISRC_submission
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.XmlMetadata = void 0;
|
|
5
|
-
const jsontoxml = require("jsontoxml");
|
|
6
|
-
const xml_recording_1 = require("./xml-recording");
|
|
7
|
-
const ns_metadata = 'http://musicbrainz.org/ns/mmd-2.0#';
|
|
8
|
-
class XmlMetadata {
|
|
9
|
-
constructor() {
|
|
10
|
-
this.recordings = [];
|
|
11
|
-
}
|
|
12
|
-
pushRecording(id) {
|
|
13
|
-
const rec = new xml_recording_1.XmlRecording(id);
|
|
14
|
-
this.recordings.push(rec);
|
|
15
|
-
return rec;
|
|
16
|
-
}
|
|
17
|
-
toXml() {
|
|
18
|
-
return jsontoxml([{
|
|
19
|
-
name: 'metadata',
|
|
20
|
-
attrs: {
|
|
21
|
-
xmlns: ns_metadata
|
|
22
|
-
},
|
|
23
|
-
children: [{
|
|
24
|
-
'recording-list': this.recordings.map(rec => rec.toXml())
|
|
25
|
-
}]
|
|
26
|
-
}], { prettyPrint: false, escape: true, xmlHeader: true });
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
exports.XmlMetadata = XmlMetadata;
|
|
1
|
+
"use strict";
|
|
2
|
+
// https://musicbrainz.org/doc/Development/XML_Web_Service/Version_2#ISRC_submission
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.XmlMetadata = void 0;
|
|
5
|
+
const jsontoxml = require("jsontoxml");
|
|
6
|
+
const xml_recording_1 = require("./xml-recording");
|
|
7
|
+
const ns_metadata = 'http://musicbrainz.org/ns/mmd-2.0#';
|
|
8
|
+
class XmlMetadata {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.recordings = [];
|
|
11
|
+
}
|
|
12
|
+
pushRecording(id) {
|
|
13
|
+
const rec = new xml_recording_1.XmlRecording(id);
|
|
14
|
+
this.recordings.push(rec);
|
|
15
|
+
return rec;
|
|
16
|
+
}
|
|
17
|
+
toXml() {
|
|
18
|
+
return jsontoxml([{
|
|
19
|
+
name: 'metadata',
|
|
20
|
+
attrs: {
|
|
21
|
+
xmlns: ns_metadata
|
|
22
|
+
},
|
|
23
|
+
children: [{
|
|
24
|
+
'recording-list': this.recordings.map(rec => rec.toXml())
|
|
25
|
+
}]
|
|
26
|
+
}], { prettyPrint: false, escape: true, xmlHeader: true });
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.XmlMetadata = XmlMetadata;
|
|
30
30
|
//# sourceMappingURL=xml-metadata.js.map
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import { XmlIsrcList } from './xml-isrc-list';
|
|
2
|
-
export declare class XmlRecording {
|
|
3
|
-
id: string;
|
|
4
|
-
isrcList: XmlIsrcList;
|
|
5
|
-
constructor(id: string);
|
|
6
|
-
toXml(): {
|
|
7
|
-
name: string;
|
|
8
|
-
attrs: {
|
|
9
|
-
id: string;
|
|
10
|
-
};
|
|
11
|
-
children: {
|
|
12
|
-
name: string;
|
|
13
|
-
attrs: {
|
|
14
|
-
count: number;
|
|
15
|
-
};
|
|
16
|
-
children: {
|
|
17
|
-
name: string;
|
|
18
|
-
attrs: {
|
|
19
|
-
id: string;
|
|
20
|
-
};
|
|
21
|
-
}[];
|
|
22
|
-
}[];
|
|
23
|
-
};
|
|
24
|
-
}
|
|
1
|
+
import { XmlIsrcList } from './xml-isrc-list';
|
|
2
|
+
export declare class XmlRecording {
|
|
3
|
+
id: string;
|
|
4
|
+
isrcList: XmlIsrcList;
|
|
5
|
+
constructor(id: string);
|
|
6
|
+
toXml(): {
|
|
7
|
+
name: string;
|
|
8
|
+
attrs: {
|
|
9
|
+
id: string;
|
|
10
|
+
};
|
|
11
|
+
children: {
|
|
12
|
+
name: string;
|
|
13
|
+
attrs: {
|
|
14
|
+
count: number;
|
|
15
|
+
};
|
|
16
|
+
children: {
|
|
17
|
+
name: string;
|
|
18
|
+
attrs: {
|
|
19
|
+
id: string;
|
|
20
|
+
};
|
|
21
|
+
}[];
|
|
22
|
+
}[];
|
|
23
|
+
};
|
|
24
|
+
}
|
package/lib/xml/xml-recording.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.XmlRecording = void 0;
|
|
4
|
-
const xml_isrc_list_1 = require("./xml-isrc-list");
|
|
5
|
-
class XmlRecording {
|
|
6
|
-
constructor(id) {
|
|
7
|
-
this.id = id;
|
|
8
|
-
this.isrcList = new xml_isrc_list_1.XmlIsrcList();
|
|
9
|
-
}
|
|
10
|
-
toXml() {
|
|
11
|
-
return {
|
|
12
|
-
name: 'recording',
|
|
13
|
-
attrs: {
|
|
14
|
-
id: this.id
|
|
15
|
-
},
|
|
16
|
-
children: [this.isrcList.toXml()]
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
exports.XmlRecording = XmlRecording;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.XmlRecording = void 0;
|
|
4
|
+
const xml_isrc_list_1 = require("./xml-isrc-list");
|
|
5
|
+
class XmlRecording {
|
|
6
|
+
constructor(id) {
|
|
7
|
+
this.id = id;
|
|
8
|
+
this.isrcList = new xml_isrc_list_1.XmlIsrcList();
|
|
9
|
+
}
|
|
10
|
+
toXml() {
|
|
11
|
+
return {
|
|
12
|
+
name: 'recording',
|
|
13
|
+
attrs: {
|
|
14
|
+
id: this.id
|
|
15
|
+
},
|
|
16
|
+
children: [this.isrcList.toXml()]
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.XmlRecording = XmlRecording;
|
|
21
21
|
//# sourceMappingURL=xml-recording.js.map
|
package/package.json
CHANGED
|
@@ -1,98 +1,104 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "musicbrainz-api",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "MusicBrainz API client for reading and submitting metadata",
|
|
5
|
-
"main": "lib/musicbrainz-api",
|
|
6
|
-
"types": "lib/musicbrainz-api",
|
|
7
|
-
"author": {
|
|
8
|
-
"name": "Borewit",
|
|
9
|
-
"url": "https://github.com/Borewit"
|
|
10
|
-
},
|
|
11
|
-
"keywords": [
|
|
12
|
-
"MusicBrainz",
|
|
13
|
-
"metadata",
|
|
14
|
-
"meta",
|
|
15
|
-
"tag",
|
|
16
|
-
"tags",
|
|
17
|
-
"Picard",
|
|
18
|
-
"json",
|
|
19
|
-
"xml",
|
|
20
|
-
"web",
|
|
21
|
-
"service",
|
|
22
|
-
"submit",
|
|
23
|
-
"metabrainz"
|
|
24
|
-
],
|
|
25
|
-
"license": "MIT",
|
|
26
|
-
"private": false,
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
"
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
"
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
"@types/
|
|
54
|
-
"@types/
|
|
55
|
-
"@
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"test
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
"
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
"
|
|
95
|
-
],
|
|
96
|
-
"
|
|
97
|
-
|
|
98
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "musicbrainz-api",
|
|
3
|
+
"version": "0.10.0",
|
|
4
|
+
"description": "MusicBrainz API client for reading and submitting metadata",
|
|
5
|
+
"main": "lib/musicbrainz-api",
|
|
6
|
+
"types": "lib/musicbrainz-api",
|
|
7
|
+
"author": {
|
|
8
|
+
"name": "Borewit",
|
|
9
|
+
"url": "https://github.com/Borewit"
|
|
10
|
+
},
|
|
11
|
+
"keywords": [
|
|
12
|
+
"MusicBrainz",
|
|
13
|
+
"metadata",
|
|
14
|
+
"meta",
|
|
15
|
+
"tag",
|
|
16
|
+
"tags",
|
|
17
|
+
"Picard",
|
|
18
|
+
"json",
|
|
19
|
+
"xml",
|
|
20
|
+
"web",
|
|
21
|
+
"service",
|
|
22
|
+
"submit",
|
|
23
|
+
"metabrainz"
|
|
24
|
+
],
|
|
25
|
+
"license": "MIT",
|
|
26
|
+
"private": false,
|
|
27
|
+
"engines": {
|
|
28
|
+
"node": "*"
|
|
29
|
+
},
|
|
30
|
+
"repository": {
|
|
31
|
+
"type": "git",
|
|
32
|
+
"url": "https://github.com/Borewit/musicbrainz-api.git"
|
|
33
|
+
},
|
|
34
|
+
"bugs": {
|
|
35
|
+
"url": "https://github.com/Borewit/musicbrainz-api/issues"
|
|
36
|
+
},
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"@types/caseless": "^0.12.1",
|
|
39
|
+
"@types/request-promise-native": "^1.0.17",
|
|
40
|
+
"@types/uuid": "^8.3.0",
|
|
41
|
+
"caseless": "^0.12.0",
|
|
42
|
+
"debug": "^4.1.1",
|
|
43
|
+
"got": "^11.8.5",
|
|
44
|
+
"http-status-codes": "^2.1.4",
|
|
45
|
+
"json-stringify-safe": "^5.0.1",
|
|
46
|
+
"jsontoxml": "^1.0.1",
|
|
47
|
+
"source-map-support": "^0.5.16",
|
|
48
|
+
"tough-cookie": "^4.0.0",
|
|
49
|
+
"uuid": "^8.3.2"
|
|
50
|
+
},
|
|
51
|
+
"devDependencies": {
|
|
52
|
+
"@types/chai": "^4.3.0",
|
|
53
|
+
"@types/mocha": "^9.0.0",
|
|
54
|
+
"@types/node": "^18.6.1",
|
|
55
|
+
"@typescript-eslint/eslint-plugin": "^5.13.0",
|
|
56
|
+
"@typescript-eslint/parser": "^5.13.0",
|
|
57
|
+
"chai": "^4.2.0",
|
|
58
|
+
"del-cli": "^5.0.0",
|
|
59
|
+
"eslint": "^8.10.0",
|
|
60
|
+
"eslint-config-prettier": "^8.4.0",
|
|
61
|
+
"eslint-import-resolver-typescript": "^3.3.0",
|
|
62
|
+
"eslint-plugin-import": "^2.25.4",
|
|
63
|
+
"eslint-plugin-jsdoc": "^39.3.3",
|
|
64
|
+
"eslint-plugin-node": "^11.1.0",
|
|
65
|
+
"eslint-plugin-unicorn": "^43.0.2",
|
|
66
|
+
"mocha": "^9.0.1",
|
|
67
|
+
"nyc": "^15.0.0",
|
|
68
|
+
"remark-cli": "^11.0.0",
|
|
69
|
+
"remark-preset-lint-recommended": "^6.1.2",
|
|
70
|
+
"ts-node": "^10.0.0",
|
|
71
|
+
"tslint": "^6.1.1",
|
|
72
|
+
"typescript": "^4.0.2"
|
|
73
|
+
},
|
|
74
|
+
"scripts": {
|
|
75
|
+
"clean": "del-cli src/**/*.js src/**/*.js.map src/**/*.d.ts test/**/*.js test/**/*.js.map",
|
|
76
|
+
"compile-src": "tsc -p src",
|
|
77
|
+
"compile-test": "tsc -p test",
|
|
78
|
+
"compile": "npm run compile-src && npm run compile-test",
|
|
79
|
+
"eslint": "eslint src/**/*.ts --ignore-pattern src/**/*.d.ts test/**/*.ts",
|
|
80
|
+
"lint-md": "remark -u preset-lint-recommended .",
|
|
81
|
+
"lint": "npm run lint-md && npm run eslint",
|
|
82
|
+
"test": "mocha --require ts-node/register --require source-map-support/register --full-trace test/test-*.ts",
|
|
83
|
+
"build": "npm run clean && npm run compile",
|
|
84
|
+
"start": "npm-run-all compile lint cover-test",
|
|
85
|
+
"test-coverage": "nyc npm run test",
|
|
86
|
+
"send-codacy": "nyc report --reporter=text-lcov | codacy-coverage"
|
|
87
|
+
},
|
|
88
|
+
"nyc": {
|
|
89
|
+
"exclude": [
|
|
90
|
+
"test/**/*.ts",
|
|
91
|
+
"src/**/*.js"
|
|
92
|
+
],
|
|
93
|
+
"extension": [
|
|
94
|
+
".ts"
|
|
95
|
+
],
|
|
96
|
+
"sourceMap": true,
|
|
97
|
+
"instrument": true,
|
|
98
|
+
"reporter": [
|
|
99
|
+
"lcov",
|
|
100
|
+
"text"
|
|
101
|
+
],
|
|
102
|
+
"report-dir": "coverage"
|
|
103
|
+
}
|
|
104
|
+
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<project version="4">
|
|
3
|
-
<component name="CheckStyle-IDEA">
|
|
4
|
-
<option name="configuration">
|
|
5
|
-
<map>
|
|
6
|
-
<entry key="checkstyle-version" value="9.2" />
|
|
7
|
-
<entry key="copy-libs" value="true" />
|
|
8
|
-
<entry key="location-0" value="BUNDLED:(bundled):Sun Checks" />
|
|
9
|
-
<entry key="location-1" value="BUNDLED:(bundled):Google Checks" />
|
|
10
|
-
<entry key="scan-before-checkin" value="false" />
|
|
11
|
-
<entry key="scanscope" value="JavaOnly" />
|
|
12
|
-
<entry key="suppress-errors" value="false" />
|
|
13
|
-
</map>
|
|
14
|
-
</option>
|
|
15
|
-
</component>
|
|
16
|
-
</project>
|