@misofm/sdk 0.4.0 → 0.5.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/dist/catalog.d.ts +4 -17
- package/dist/catalog.d.ts.map +1 -1
- package/dist/catalog.js +46 -58
- package/dist/catalog.js.map +1 -1
- package/dist/cover.d.ts +10 -0
- package/dist/cover.d.ts.map +1 -1
- package/dist/cover.js +66 -19
- package/dist/cover.js.map +1 -1
- package/dist/credits.d.ts +10 -0
- package/dist/credits.d.ts.map +1 -1
- package/dist/credits.js +149 -39
- package/dist/credits.js.map +1 -1
- package/dist/drop.d.ts +7 -0
- package/dist/drop.d.ts.map +1 -1
- package/dist/drop.js +84 -34
- package/dist/drop.js.map +1 -1
- package/dist/pressing.d.ts.map +1 -1
- package/dist/pressing.js +59 -16
- package/dist/pressing.js.map +1 -1
- package/dist/read/artist.d.ts +1 -6
- package/dist/read/artist.d.ts.map +1 -1
- package/dist/read/artist.js +39 -22
- package/dist/read/artist.js.map +1 -1
- package/dist/read/catalog.d.ts +24 -3
- package/dist/read/catalog.d.ts.map +1 -1
- package/dist/read/catalog.js +190 -89
- package/dist/read/catalog.js.map +1 -1
- package/dist/read/index.d.ts +5 -3
- package/dist/read/index.d.ts.map +1 -1
- package/dist/read/index.js +2 -2
- package/dist/read/index.js.map +1 -1
- package/dist/read/types.d.ts +12 -1
- package/dist/read/types.d.ts.map +1 -1
- package/dist/read/works.d.ts +3 -2
- package/dist/read/works.d.ts.map +1 -1
- package/dist/read/works.js +158 -48
- package/dist/read/works.js.map +1 -1
- package/package.json +1 -1
- package/src/catalog.ts +71 -77
- package/src/cover.ts +107 -26
- package/src/credits.ts +353 -89
- package/src/drop.ts +150 -40
- package/src/pressing.ts +146 -36
- package/src/read/artist.ts +73 -34
- package/src/read/catalog.ts +324 -89
- package/src/read/index.ts +23 -2
- package/src/read/types.ts +16 -2
- package/src/read/works.ts +224 -59
package/dist/pressing.js
CHANGED
|
@@ -37,7 +37,10 @@ export function deriveListingId(pressingId, currencyType, misoPressingPackageId)
|
|
|
37
37
|
/** Both derived ids a sale needs, from the release id alone. */
|
|
38
38
|
export function deriveSaleIds(releaseId, currencyType, misoPressingPackageId) {
|
|
39
39
|
const pressingId = derivePressingId(releaseId, misoPressingPackageId);
|
|
40
|
-
return {
|
|
40
|
+
return {
|
|
41
|
+
pressingId,
|
|
42
|
+
listingId: deriveListingId(pressingId, currencyType, misoPressingPackageId),
|
|
43
|
+
};
|
|
41
44
|
}
|
|
42
45
|
function priceArg(tx, misoPressingPackageId, price) {
|
|
43
46
|
const make = price.kind === "fixed" ? listing.newFixedPrice : listing.newFloorPrice;
|
|
@@ -51,7 +54,10 @@ function runStateArg(tx, misoPressingPackageId, state) {
|
|
|
51
54
|
const pkg = { package: misoPressingPackageId };
|
|
52
55
|
switch (state.kind) {
|
|
53
56
|
case "scheduled":
|
|
54
|
-
return tx.add(pressing.newScheduledState({
|
|
57
|
+
return tx.add(pressing.newScheduledState({
|
|
58
|
+
...pkg,
|
|
59
|
+
arguments: [BigInt(state.startTimestampMs)],
|
|
60
|
+
}));
|
|
55
61
|
case "active":
|
|
56
62
|
return tx.add(pressing.newActiveState(pkg));
|
|
57
63
|
case "paused":
|
|
@@ -72,7 +78,11 @@ export function openPressing(p) {
|
|
|
72
78
|
const pkg = p.misoPressingPackageId;
|
|
73
79
|
const [run, adminCap] = tx.add(pressing._new({
|
|
74
80
|
package: pkg,
|
|
75
|
-
arguments: [
|
|
81
|
+
arguments: [
|
|
82
|
+
p.releaseId,
|
|
83
|
+
p.releaseAdminCapId,
|
|
84
|
+
runStateArg(tx, pkg, p.state ?? { kind: "active" }),
|
|
85
|
+
],
|
|
76
86
|
}));
|
|
77
87
|
for (const terms of p.listings) {
|
|
78
88
|
tx.add(listing._new({
|
|
@@ -121,7 +131,11 @@ export function setListingPrice(p) {
|
|
|
121
131
|
const { listingId } = deriveSaleIds(p.releaseId, p.currencyType, pkg);
|
|
122
132
|
tx.add(listing.setPrice({
|
|
123
133
|
package: pkg,
|
|
124
|
-
arguments: [
|
|
134
|
+
arguments: [
|
|
135
|
+
listingId,
|
|
136
|
+
p.pressingAdminCapId,
|
|
137
|
+
priceArg(tx, pkg, p.price),
|
|
138
|
+
],
|
|
125
139
|
typeArguments: [p.currencyType],
|
|
126
140
|
}));
|
|
127
141
|
};
|
|
@@ -133,7 +147,11 @@ export function setListingState(p) {
|
|
|
133
147
|
const { listingId } = deriveSaleIds(p.releaseId, p.currencyType, pkg);
|
|
134
148
|
tx.add(listing.setState({
|
|
135
149
|
package: pkg,
|
|
136
|
-
arguments: [
|
|
150
|
+
arguments: [
|
|
151
|
+
listingId,
|
|
152
|
+
p.pressingAdminCapId,
|
|
153
|
+
switchArg(tx, pkg, p.state),
|
|
154
|
+
],
|
|
137
155
|
typeArguments: [p.currencyType],
|
|
138
156
|
}));
|
|
139
157
|
};
|
|
@@ -199,8 +217,13 @@ function currencyFromType(type) {
|
|
|
199
217
|
/** Reads one object's BCS content + type, or `null` when it does not exist. */
|
|
200
218
|
async function fetch(client, objectId) {
|
|
201
219
|
try {
|
|
202
|
-
const { object } = await client.core.getObject({
|
|
203
|
-
|
|
220
|
+
const { object } = await client.core.getObject({
|
|
221
|
+
objectId,
|
|
222
|
+
include: { content: true },
|
|
223
|
+
});
|
|
224
|
+
return object?.content
|
|
225
|
+
? { content: object.content, type: object.type }
|
|
226
|
+
: null;
|
|
204
227
|
}
|
|
205
228
|
catch (e) {
|
|
206
229
|
if (isNotFound(e))
|
|
@@ -228,14 +251,20 @@ export async function getPressing(client, pressingId) {
|
|
|
228
251
|
const got = await fetch(client, pressingId);
|
|
229
252
|
if (!got)
|
|
230
253
|
return null;
|
|
231
|
-
|
|
254
|
+
return parsePressing(pressingId, got.content);
|
|
255
|
+
}
|
|
256
|
+
function parsePressing(pressingId, content) {
|
|
257
|
+
const parsed = pressing.Pressing.parse(content);
|
|
232
258
|
const s = parsed.state;
|
|
233
259
|
const kind = variant(s, "Scheduled", "Active", "Paused");
|
|
234
260
|
return {
|
|
235
261
|
id: pressingId,
|
|
236
262
|
releaseId: parsed.release_id,
|
|
237
263
|
state: kind === "Scheduled"
|
|
238
|
-
? {
|
|
264
|
+
? {
|
|
265
|
+
kind: "scheduled",
|
|
266
|
+
startTimestampMs: BigInt(s.Scheduled?.start_timestamp_ms ?? "0"),
|
|
267
|
+
}
|
|
239
268
|
: kind === "Paused"
|
|
240
269
|
? { kind: "paused" }
|
|
241
270
|
: { kind: "active" },
|
|
@@ -247,7 +276,10 @@ export async function getListing(client, listingId) {
|
|
|
247
276
|
const got = await fetch(client, listingId);
|
|
248
277
|
if (!got)
|
|
249
278
|
return null;
|
|
250
|
-
|
|
279
|
+
return parseListing(listingId, got.content, got.type);
|
|
280
|
+
}
|
|
281
|
+
function parseListing(listingId, content, type) {
|
|
282
|
+
const parsed = listing.Listing.parse(content);
|
|
251
283
|
const p = parsed.price;
|
|
252
284
|
const priceKind = variant(p, "Fixed", "Floor");
|
|
253
285
|
const st = parsed.state;
|
|
@@ -260,7 +292,7 @@ export async function getListing(client, listingId) {
|
|
|
260
292
|
amount: BigInt((priceKind === "Fixed" ? p.Fixed?.amount : p.Floor?.amount) ?? "0"),
|
|
261
293
|
},
|
|
262
294
|
state: variant(st, "Enabled", "Disabled") === "Enabled" ? "enabled" : "disabled",
|
|
263
|
-
currencyType: currencyFromType(
|
|
295
|
+
currencyType: currencyFromType(type),
|
|
264
296
|
};
|
|
265
297
|
}
|
|
266
298
|
/**
|
|
@@ -271,10 +303,21 @@ export async function getListing(client, listingId) {
|
|
|
271
303
|
*/
|
|
272
304
|
export async function getSale(client, p) {
|
|
273
305
|
const { pressingId, listingId } = deriveSaleIds(p.releaseId, p.currencyType, p.misoPressingPackageId);
|
|
274
|
-
const
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
306
|
+
const { objects } = await client.core.getObjects({
|
|
307
|
+
objectIds: [pressingId, listingId],
|
|
308
|
+
include: { content: true },
|
|
309
|
+
});
|
|
310
|
+
const pressingObject = objects[0];
|
|
311
|
+
const listingObject = objects[1];
|
|
312
|
+
return {
|
|
313
|
+
pressing: !pressingObject ||
|
|
314
|
+
pressingObject instanceof Error ||
|
|
315
|
+
!pressingObject.content
|
|
316
|
+
? null
|
|
317
|
+
: parsePressing(pressingId, pressingObject.content),
|
|
318
|
+
listing: !listingObject || listingObject instanceof Error || !listingObject.content
|
|
319
|
+
? null
|
|
320
|
+
: parseListing(listingId, listingObject.content, listingObject.type),
|
|
321
|
+
};
|
|
279
322
|
}
|
|
280
323
|
//# sourceMappingURL=pressing.js.map
|
package/dist/pressing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pressing.js","sourceRoot":"","sources":["../src/pressing.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,sCAAsC;AAgBtC,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,OAAO,MAAM,sCAAsC,CAAC;AAChE,OAAO,KAAK,QAAQ,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"pressing.js","sourceRoot":"","sources":["../src/pressing.ts"],"names":[],"mappings":"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"}
|
package/dist/read/artist.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { MisoClient } from "./client.ts";
|
|
2
2
|
import type { ArtistProfile, FeaturedRelease, PartySummary } from "./types.ts";
|
|
3
3
|
/** Optional sub-resources — read only when asked for. */
|
|
4
|
-
export type ArtistInclude = "roles" | "tags";
|
|
4
|
+
export type ArtistInclude = "roles" | "tags" | "featured";
|
|
5
5
|
export interface GetArtistOptions {
|
|
6
6
|
include?: readonly ArtistInclude[];
|
|
7
7
|
}
|
|
@@ -15,10 +15,5 @@ export declare function partyAvatarUrl(apiBaseUrl: string, partyId: string): str
|
|
|
15
15
|
export declare function getArtistProfile(client: MisoClient, partyId: string, options?: GetArtistOptions): Promise<ArtistProfile>;
|
|
16
16
|
/** Name + kind for many parties at once. Ids that don't resolve are omitted. */
|
|
17
17
|
export declare function getPartySummaries(client: MisoClient, ids: readonly string[]): Promise<PartySummary[]>;
|
|
18
|
-
/**
|
|
19
|
-
* The party's pinned pressing, resolved through to its release and cover.
|
|
20
|
-
* `null` — a successful empty — when nothing is pinned or the pin is dangling
|
|
21
|
-
* (the pressing it named has since been superseded and destroyed).
|
|
22
|
-
*/
|
|
23
18
|
export declare function getFeaturedRelease(client: MisoClient, partyId: string): Promise<FeaturedRelease | null>;
|
|
24
19
|
//# sourceMappingURL=artist.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artist.d.ts","sourceRoot":"","sources":["../../src/read/artist.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"artist.d.ts","sourceRoot":"","sources":["../../src/read/artist.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EAEf,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,yDAAyD;AACzD,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;AAE1D,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CACpC;AAED,qFAAqF;AACrF,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1E;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,aAAa,CAAC,CAoDxB;AAiBD,gFAAgF;AAChF,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,SAAS,MAAM,EAAE,GACrB,OAAO,CAAC,YAAY,EAAE,CAAC,CAOzB;AA4CD,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAEjC"}
|
package/dist/read/artist.js
CHANGED
|
@@ -9,13 +9,10 @@
|
|
|
9
9
|
// out from the browser (`lib/party-queries.ts`, plus a second identical fan-out in
|
|
10
10
|
// `PartyEditSheet`). Here they are one call, resolved once, cached once.
|
|
11
11
|
//
|
|
12
|
-
// `roles` and
|
|
13
|
-
// them, and leaving them out of the public read keeps the hot path to six.
|
|
12
|
+
// `roles`, `tags`, and the resolved featured release are opt-in via `include`.
|
|
14
13
|
import { resolveGenreNames } from "./genres.js";
|
|
15
|
-
import {
|
|
14
|
+
import { getReleaseResources } from "./catalog.js";
|
|
16
15
|
import { getDrop } from "../drop.js";
|
|
17
|
-
import { getReleaseById } from "@misonetwork/sdk";
|
|
18
|
-
import { getReleaseCredits } from "../credits.js";
|
|
19
16
|
/** Public avatar URL for a party (served from the API's R2 lane; 404 when unset). */
|
|
20
17
|
export function partyAvatarUrl(apiBaseUrl, partyId) {
|
|
21
18
|
return `${apiBaseUrl.replace(/\/$/, "")}/media/avatar/${partyId}`;
|
|
@@ -28,20 +25,25 @@ export function partyAvatarUrl(apiBaseUrl, partyId) {
|
|
|
28
25
|
export async function getArtistProfile(client, partyId, options = {}) {
|
|
29
26
|
const include = new Set(options.include ?? []);
|
|
30
27
|
const { party } = client.sui;
|
|
31
|
-
const [profile, ctas, genreIds, links, roles, tags] = await Promise.all([
|
|
28
|
+
const [profile, ctas, genreIds, links, roles, tags, entity] = await Promise.all([
|
|
32
29
|
party.getProfile(partyId).catch(() => null),
|
|
33
30
|
party.getCtas(partyId).catch(() => []),
|
|
34
31
|
party.getGenres(partyId).catch(() => []),
|
|
35
32
|
party.getLinks(partyId).catch(() => []),
|
|
36
|
-
include.has("roles")
|
|
37
|
-
|
|
33
|
+
include.has("roles")
|
|
34
|
+
? party.getRoles(partyId).catch(() => [])
|
|
35
|
+
: Promise.resolve(undefined),
|
|
36
|
+
include.has("tags")
|
|
37
|
+
? party.getTags(partyId).catch(() => [])
|
|
38
|
+
: Promise.resolve(undefined),
|
|
39
|
+
party.getPartyById(partyId),
|
|
38
40
|
]);
|
|
39
|
-
|
|
40
|
-
// is awaited on its own rather than being swallowed by the batch above.
|
|
41
|
-
const entity = await party.getPartyById(partyId);
|
|
42
|
-
const [genres, members] = await Promise.all([
|
|
41
|
+
const [genres, members, featured] = await Promise.all([
|
|
43
42
|
resolveGenreNames(client, genreIds),
|
|
44
43
|
resolveMembers(client, entity.kind === "group" ? (entity.members ?? []) : []),
|
|
44
|
+
include.has("featured")
|
|
45
|
+
? resolveFeaturedRelease(client, partyId, entity.name).catch(() => null)
|
|
46
|
+
: Promise.resolve(undefined),
|
|
45
47
|
]);
|
|
46
48
|
return {
|
|
47
49
|
id: entity.id,
|
|
@@ -53,11 +55,16 @@ export async function getArtistProfile(client, partyId, options = {}) {
|
|
|
53
55
|
country: profile?.country ?? null,
|
|
54
56
|
languages: profile?.languages ?? [],
|
|
55
57
|
genres,
|
|
56
|
-
links: links.map((l) => ({
|
|
58
|
+
links: links.map((l) => ({
|
|
59
|
+
platform: l.platform,
|
|
60
|
+
value: l.value,
|
|
61
|
+
url: l.url,
|
|
62
|
+
})),
|
|
57
63
|
ctas: ctas.map((c) => ({ label: c.label, url: c.url })),
|
|
58
64
|
members,
|
|
59
65
|
...(roles !== undefined ? { roles } : {}),
|
|
60
66
|
...(tags !== undefined ? { tags } : {}),
|
|
67
|
+
...(featured !== undefined ? { featured } : {}),
|
|
61
68
|
avatarUrl: partyAvatarUrl(client.config.apiBaseUrl, entity.id),
|
|
62
69
|
};
|
|
63
70
|
}
|
|
@@ -65,7 +72,9 @@ export async function getArtistProfile(client, partyId, options = {}) {
|
|
|
65
72
|
async function resolveMembers(client, memberIds) {
|
|
66
73
|
if (memberIds.length === 0)
|
|
67
74
|
return [];
|
|
68
|
-
const parties = await client.sui.party
|
|
75
|
+
const parties = await client.sui.party
|
|
76
|
+
.getPartiesByIds([...memberIds])
|
|
77
|
+
.catch(() => ({}));
|
|
69
78
|
return memberIds.flatMap((id) => {
|
|
70
79
|
const p = parties[id];
|
|
71
80
|
return p ? [{ id, name: p.name }] : [];
|
|
@@ -86,29 +95,37 @@ export async function getPartySummaries(client, ids) {
|
|
|
86
95
|
* `null` — a successful empty — when nothing is pinned or the pin is dangling
|
|
87
96
|
* (the pressing it named has since been superseded and destroyed).
|
|
88
97
|
*/
|
|
89
|
-
|
|
98
|
+
async function resolveFeaturedRelease(client, partyId, fallbackArtist) {
|
|
90
99
|
const pressingId = await client.sui.party.getFeaturedDrop(partyId);
|
|
91
100
|
if (!pressingId)
|
|
92
101
|
return null;
|
|
93
102
|
const pressing = await getDrop(client.protocol, pressingId);
|
|
94
103
|
if (!pressing)
|
|
95
104
|
return null;
|
|
96
|
-
const [
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
105
|
+
const [resources, entity] = await Promise.all([
|
|
106
|
+
getReleaseResources(client, pressing.releaseId, ["cover", "credits"]),
|
|
107
|
+
fallbackArtist === undefined
|
|
108
|
+
? client.sui.party.getPartyById(partyId)
|
|
109
|
+
: Promise.resolve(null),
|
|
101
110
|
]);
|
|
111
|
+
const { release, cover, credits } = resources;
|
|
102
112
|
// The artist line prefers the release's own PRIMARY credits and falls back to
|
|
103
113
|
// the party whose page this is — a release with no credits set still shows an
|
|
104
114
|
// artist, which is the behavior the featured card has always had.
|
|
105
|
-
const primary = (credits ?? [])
|
|
115
|
+
const primary = (credits ?? [])
|
|
116
|
+
.filter((c) => c.roles.includes("Primary"))
|
|
117
|
+
.map((c) => c.displayName);
|
|
106
118
|
return {
|
|
107
119
|
pressingId,
|
|
108
120
|
releaseId: pressing.releaseId,
|
|
109
121
|
title: release.title,
|
|
110
|
-
artist: primary.length
|
|
122
|
+
artist: primary.length
|
|
123
|
+
? primary.join(", ")
|
|
124
|
+
: (fallbackArtist ?? entity?.name ?? ""),
|
|
111
125
|
coverUrl: cover?.still.url ?? null,
|
|
112
126
|
};
|
|
113
127
|
}
|
|
128
|
+
export async function getFeaturedRelease(client, partyId) {
|
|
129
|
+
return resolveFeaturedRelease(client, partyId);
|
|
130
|
+
}
|
|
114
131
|
//# sourceMappingURL=artist.js.map
|
package/dist/read/artist.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artist.js","sourceRoot":"","sources":["../../src/read/artist.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,sCAAsC;AACtC,EAAE;AACF,oEAAoE;AACpE,EAAE;AACF,+EAA+E;AAC/E,kFAAkF;AAClF,iFAAiF;AACjF,mFAAmF;AACnF,yEAAyE;AACzE,EAAE;AACF
|
|
1
|
+
{"version":3,"file":"artist.js","sourceRoot":"","sources":["../../src/read/artist.ts"],"names":[],"mappings":"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"}
|
package/dist/read/catalog.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Release } from "@misonetwork/sdk";
|
|
1
2
|
import type { MisoClient } from "./client.ts";
|
|
2
3
|
import type { Cover, Credit, Currency, DiscoverItem, DropPreview, PressingDetail, RecordAlbum, ReleaseDetail, TrackCredits } from "./types.ts";
|
|
3
4
|
/**
|
|
@@ -18,6 +19,18 @@ export declare function primaryArtistNames(credits: Credit[]): string[];
|
|
|
18
19
|
* `lib/pressing.ts:readReleaseCover`.
|
|
19
20
|
*/
|
|
20
21
|
export declare function readReleaseCover(client: MisoClient, releaseId: string): Promise<Cover | null>;
|
|
22
|
+
export type ReleaseResourceInclude = "cover" | "credits";
|
|
23
|
+
export interface ReleaseResources {
|
|
24
|
+
release: Release;
|
|
25
|
+
cover?: Cover | null;
|
|
26
|
+
credits?: Credit[];
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* A release plus selected derived resources in one heterogeneous Core batch.
|
|
30
|
+
* Every extension id is deterministic, so separate object calls only add
|
|
31
|
+
* network round trips without discovering anything new.
|
|
32
|
+
*/
|
|
33
|
+
export declare function getReleaseResources(client: MisoClient, releaseId: string, include?: readonly ReleaseResourceInclude[]): Promise<ReleaseResources>;
|
|
21
34
|
/**
|
|
22
35
|
* A release with its cover, credits, and resolved tracklist.
|
|
23
36
|
*
|
|
@@ -27,7 +40,11 @@ export declare function readReleaseCover(client: MisoClient, releaseId: string):
|
|
|
27
40
|
* split is inherited from `lib/drops.ts` and is what keeps a half-configured
|
|
28
41
|
* release renderable.
|
|
29
42
|
*/
|
|
30
|
-
export
|
|
43
|
+
export type ReleaseInclude = "trackCredits";
|
|
44
|
+
export interface GetReleaseOptions {
|
|
45
|
+
include?: readonly ReleaseInclude[];
|
|
46
|
+
}
|
|
47
|
+
export declare function getReleaseDetail(client: MisoClient, releaseId: string, options?: GetReleaseOptions): Promise<ReleaseDetail>;
|
|
31
48
|
/**
|
|
32
49
|
* Per-track credits for a release, keyed by recording id. A track with no credits
|
|
33
50
|
* set maps to an empty entry rather than being absent, so a caller can tell
|
|
@@ -35,7 +52,7 @@ export declare function getReleaseDetail(client: MisoClient, releaseId: string):
|
|
|
35
52
|
*/
|
|
36
53
|
export declare function getTrackCredits(client: MisoClient, releaseId: string): Promise<Record<string, TrackCredits>>;
|
|
37
54
|
/** Everything the pressing buy page renders. `null` when no such pressing exists. */
|
|
38
|
-
export declare function getPressingDetail(client: MisoClient, pressingId: string): Promise<PressingDetail | null>;
|
|
55
|
+
export declare function getPressingDetail(client: MisoClient, pressingId: string, options?: GetReleaseOptions): Promise<PressingDetail | null>;
|
|
39
56
|
/**
|
|
40
57
|
* The confirmation preview behind "paste a pressing id to pin it". Verifies the
|
|
41
58
|
* object really is a `Drop` before spending reads on it — a release id or a
|
|
@@ -59,5 +76,9 @@ export declare function getDiscoverShelf(client: MisoClient): Promise<DiscoverIt
|
|
|
59
76
|
* This answer is IMMUTABLE for the life of the record, which is what lets the
|
|
60
77
|
* endpoint in front of it cache for a year.
|
|
61
78
|
*/
|
|
62
|
-
export
|
|
79
|
+
export type RecordAlbumInclude = "release" | "trackCredits";
|
|
80
|
+
export interface GetRecordAlbumOptions {
|
|
81
|
+
include?: readonly RecordAlbumInclude[];
|
|
82
|
+
}
|
|
83
|
+
export declare function getRecordAlbum(client: MisoClient, recordId: string, options?: GetRecordAlbumOptions): Promise<RecordAlbum | null>;
|
|
63
84
|
//# sourceMappingURL=catalog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/read/catalog.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/read/catalog.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAI9C,OAAO,KAAK,EACV,KAAK,EAEL,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,cAAc,EAGd,WAAW,EACX,aAAa,EACb,YAAY,EAGb,MAAM,YAAY,CAAC;AAmCpB;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,QAAQ,CAU1D;AAuCD,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAI9D;AAqBD;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAQvB;AAED,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,SAAS,CAAC;AAEzD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,SAAS,sBAAsB,EAAO,GAC9C,OAAO,CAAC,gBAAgB,CAAC,CAqE3B;AAID;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC;AAE5C,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;CACrC;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,aAAa,CAAC,CAmCxB;AAgCD;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAIvC;AAID,qFAAqF;AACrF,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAKhC;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAmB7B;AAID;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,YAAY,EAAE,CAAC,CA2CzB;AAID;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,cAAc,CAAC;AAE5D,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACzC;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAgC7B"}
|