playlist-data-engine 1.7.1 → 1.7.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/README.md +6 -3
- package/dist/core/parser/PlaylistParser.d.ts.map +1 -1
- package/dist/core/parser/TrackExtras.d.ts +150 -1
- package/dist/core/parser/TrackExtras.d.ts.map +1 -1
- package/dist/core/types/Playlist.d.ts +8 -0
- package/dist/core/types/Playlist.d.ts.map +1 -1
- package/dist/gateway-C_p9Ku3O.js +1211 -0
- package/dist/gateway-Ceg-5xug.cjs +1 -0
- package/dist/gateway.d.ts +2 -1
- package/dist/gateway.d.ts.map +1 -1
- package/dist/gateway.js +1 -1
- package/dist/gateway.mjs +19 -14
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/playlist-data-engine.js +34 -34
- package/dist/playlist-data-engine.mjs +966 -1245
- package/dist/utils/playlistUtils.d.ts +41 -0
- package/dist/utils/playlistUtils.d.ts.map +1 -1
- package/dist/utils/validators.d.ts +27 -0
- package/dist/utils/validators.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/gateway-DYTdioNs.js +0 -677
- package/dist/gateway-UffqbE1i.cjs +0 -1
package/README.md
CHANGED
|
@@ -54,7 +54,8 @@ The engine is modular — use what you want, ignore the rest. Everything here se
|
|
|
54
54
|
### Playlist Parsing & Data Extraction (Core Feature)
|
|
55
55
|
|
|
56
56
|
- **Serverless Playlist Parser** — Parse Arweave-hosted playlists into clean, structured data with automatic gateway failover via the Ario Wayfinder network
|
|
57
|
-
- **Quick Data Extraction** — One-liners to grab audio URLs, image URLs, track titles, artists, genres, tags, durations, VRM models, and more
|
|
57
|
+
- **Quick Data Extraction** — One-liners to grab audio URLs, image URLs, track titles, artists, genres, tags, durations, VRM models, mixes (`getMixes`, `getMixTracks`), and more
|
|
58
|
+
- **Stems & Alternate Mixes** — Tracks ship stems and alternate mixes (Instrumental, Radio Edit) in metadata: find a mix by name (`findMixByName`), resolve it to a playable URL (`resolveMixUrl`), or swap a parsed track's playback (`selectMix`)
|
|
58
59
|
- **Color Extraction** — K-means color palette extraction from track artwork
|
|
59
60
|
- **Arweave Gateway Manager** — Built-in resilience: automatically races multiple Arweave gateways plus the Ario Wayfinder, caches working gateways, and falls back seamlessly when one fails
|
|
60
61
|
|
|
@@ -357,6 +358,8 @@ The engine runs in both environments. Audio analysis uses the Web Audio API (bro
|
|
|
357
358
|
|----------|---------------|
|
|
358
359
|
| **[DATA_ENGINE_REFERENCE.md](docs/DATA_ENGINE_REFERENCE.md)** | Complete API reference — every type, class, method, and reference table |
|
|
359
360
|
| **[USAGE_IN_OTHER_PROJECTS.md](docs/USAGE_IN_OTHER_PROJECTS.md)** | Integration guide with working code examples for every major feature |
|
|
361
|
+
| **[PLAYLIST_PARSING.md](docs/features/PLAYLIST_PARSING.md)** | Playlist parsing options, track data fields, track extras, alternate mixes, and mix selection |
|
|
362
|
+
| **[GATEWAY_RESOLUTION.md](docs/features/GATEWAY_RESOLUTION.md)** | Arweave gateway resolution, AR.IO Wayfinder failover, IPFS URL utilities |
|
|
360
363
|
| **[AUDIO_ANALYSIS.md](docs/features/AUDIO_ANALYSIS.md)** | Sonic fingerprinting, full timeline, TensorFlow genre/mood classification, pitch detection |
|
|
361
364
|
| **[BEAT_DETECTION.md](docs/features/BEAT_DETECTION.md)** | Beat detection, manual charts, auto chart generation, pitch-based button mapping |
|
|
362
365
|
| **[COMBAT_SYSTEM.md](docs/features/COMBAT_SYSTEM.md)** | Turn-based combat engine, simulations, AI combat, parameter sweeps |
|
|
@@ -364,7 +367,7 @@ The engine runs in both environments. Audio analysis uses the Web Audio API (bro
|
|
|
364
367
|
| **[EQUIPMENT_SYSTEM.md](docs/features/EQUIPMENT_SYSTEM.md)** | Equipment generation, enchanting, set bonuses, stat effects |
|
|
365
368
|
| **[CONTENT_PACKS.md](docs/features/CONTENT_PACKS.md)** | Content pack system, creating custom content packs |
|
|
366
369
|
| **[CUSTOM_CONTENT.md](docs/features/CUSTOM_CONTENT.md)** | Custom races, classes, enemies, equipment, spells |
|
|
367
|
-
| **[
|
|
370
|
+
| **[ROLLS_AND_SEEDS.md](docs/features/ROLLS_AND_SEEDS.md)** | Seeded RNG, dice rolling, deterministic combat simulations |
|
|
368
371
|
| **[XP_AND_STATS.md](docs/features/XP_AND_STATS.md)** | XP sources, leveling, stat strategies, prestige system |
|
|
369
372
|
| **[IRL_SENSORS.md](docs/features/IRL_SENSORS.md)** | Real-world sensor integration, activity bonuses |
|
|
370
373
|
| **[PREREQUISITES.md](docs/features/PREREQUISITES.md)** | Dependencies, environment setup, system requirements |
|
|
@@ -374,7 +377,7 @@ The engine runs in both environments. Audio analysis uses the Web Audio API (bro
|
|
|
374
377
|
|
|
375
378
|
## Project Status
|
|
376
379
|
|
|
377
|
-
- **Version**: 1.
|
|
380
|
+
- **Version**: 1.7.2
|
|
378
381
|
- **TypeScript**: Strict mode
|
|
379
382
|
- **Tests**: 7,205 tests across 183 test files
|
|
380
383
|
- **Module**: Dual ESM/CJS with full type declarations
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlaylistParser.d.ts","sourceRoot":"","sources":["../../../src/core/parser/PlaylistParser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAiB,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAMlG,MAAM,WAAW,qBAAqB;IAClC,2CAA2C;IAC3C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,kDAAkD;IAClD,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,yEAAyE;IACzE,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAEnC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,qBAAa,cAAc;IACvB,OAAO,CAAC,OAAO,CAAwB;gBAE3B,OAAO,GAAE,qBAA0B;IAU/C;;;OAGG;IACG,KAAK,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAmDlE;;;OAGG;YACW,gBAAgB;IAoB9B;;;OAGG;YACW,UAAU;
|
|
1
|
+
{"version":3,"file":"PlaylistParser.d.ts","sourceRoot":"","sources":["../../../src/core/parser/PlaylistParser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAiB,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAMlG,MAAM,WAAW,qBAAqB;IAClC,2CAA2C;IAC3C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,kDAAkD;IAClD,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,yEAAyE;IACzE,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAEnC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,qBAAa,cAAc;IACvB,OAAO,CAAC,OAAO,CAAwB;gBAE3B,OAAO,GAAE,qBAA0B;IAU/C;;;OAGG;IACG,KAAK,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAmDlE;;;OAGG;YACW,gBAAgB;IAoB9B;;;OAGG;YACW,UAAU;IAyJxB;;;;OAIG;YACW,gBAAgB;CAqBjC"}
|
|
@@ -6,11 +6,15 @@
|
|
|
6
6
|
*
|
|
7
7
|
* - getTrackMetadata: Full raw parsed metadata passthrough
|
|
8
8
|
* - getTrackExtras: Summary of available stems, mixes, and their conditions
|
|
9
|
+
* - resolveSelectedMix: Which of a track's mixes a playlist entry pinned
|
|
10
|
+
* - findMixByName / getPreferredMixByQuality / getUniqueMixes: Mix lookup & grouping
|
|
11
|
+
* - resolveMixUrl / selectMix: Turn a chosen mix into a playable track
|
|
9
12
|
* - evaluateMixConditions: Evaluate mix conditions against sensor context
|
|
10
13
|
*
|
|
11
14
|
* @module core/parser/TrackExtras
|
|
12
15
|
*/
|
|
13
16
|
import type { EnvironmentalContext } from '../types/Environmental.js';
|
|
17
|
+
import type { PlaylistTrack } from '../types/Playlist.js';
|
|
14
18
|
/** A single stem from the metadata */
|
|
15
19
|
export interface StemInfo {
|
|
16
20
|
name: string;
|
|
@@ -170,6 +174,150 @@ export declare function getTrackExtras(metadata: Record<string, unknown> | null)
|
|
|
170
174
|
* placeholder was, or the name matches no mix on the track
|
|
171
175
|
*/
|
|
172
176
|
export declare function resolveSelectedMix(wrapperMix: unknown, attributes: Record<string, string | number> | null | undefined, mixes: MixInfo[] | undefined): SelectedMixInfo | null;
|
|
177
|
+
/** Options for findMixByName */
|
|
178
|
+
export interface FindMixByNameOptions {
|
|
179
|
+
/** Match names ignoring case and surrounding whitespace (default: true) */
|
|
180
|
+
caseInsensitive?: boolean;
|
|
181
|
+
/** Which master to prefer when several mixes share the name (default: 'lossy', matching the pin flow) */
|
|
182
|
+
prefer?: 'lossy' | 'lossless';
|
|
183
|
+
/**
|
|
184
|
+
* Also match alias spellings and concept names — 'inst' finds 'Instrumental',
|
|
185
|
+
* 'aca' finds 'Acapella', 'vox' finds 'Vocals Only'. Exact names always win.
|
|
186
|
+
* Only applies in case-insensitive mode (default: true)
|
|
187
|
+
*/
|
|
188
|
+
aliases?: boolean;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Find a track's mix by name.
|
|
192
|
+
*
|
|
193
|
+
* Unlike the playlist entry's pin (resolveSelectedMix), which matches names
|
|
194
|
+
* exactly and case-sensitively, this is the tolerant lookup for user-facing
|
|
195
|
+
* choice. Three passes, strictest first: the name as written (modulo case and
|
|
196
|
+
* whitespace), then alias spellings — 'inst' and 'no vocals' find
|
|
197
|
+
* 'Instrumental'; 'aca', 'acap' and 'vox' find 'Acapella'; 'tvmix' and
|
|
198
|
+
* 'tv mix' find 'Karaoke', which is its own concept, never an instrumental —
|
|
199
|
+
* matched as whole words so 'Industrial' never matches 'instrumental'.
|
|
200
|
+
* When several mixes match (a lossy and a lossless master), the quality
|
|
201
|
+
* preference decides.
|
|
202
|
+
*
|
|
203
|
+
* @param mixes - The track's mixes, from getTrackExtras
|
|
204
|
+
* @param name - The mix name to find
|
|
205
|
+
* @param options - Matching and quality-preference options
|
|
206
|
+
* @returns The mix, or null when no mix matches
|
|
207
|
+
*
|
|
208
|
+
* @example
|
|
209
|
+
* ```ts
|
|
210
|
+
* const extras = getTrackExtras(metadata);
|
|
211
|
+
* const instrumental = findMixByName(extras.mixes, 'instrumental');
|
|
212
|
+
* const strict = findMixByName(extras.mixes, 'Instrumental', { aliases: false });
|
|
213
|
+
* ```
|
|
214
|
+
*/
|
|
215
|
+
export declare function findMixByName(mixes: MixInfo[] | null | undefined, name: string, options?: FindMixByNameOptions): MixInfo | null;
|
|
216
|
+
/**
|
|
217
|
+
* Pick the preferred master among mixes that share one name.
|
|
218
|
+
*
|
|
219
|
+
* A mix name can ship twice — once lossy (mp3) and once lossless (wav/flac).
|
|
220
|
+
* `prefer: 'lossy'` picks the compressed master (the parser's own behavior
|
|
221
|
+
* when resolving a pin), `'lossless'` the high-fidelity one. Mixes without a
|
|
222
|
+
* recognized mime type only win as the last-resort fallback.
|
|
223
|
+
*
|
|
224
|
+
* @param namedMixes - Mixes sharing one name
|
|
225
|
+
* @param prefer - Which quality to prefer (default: 'lossy')
|
|
226
|
+
* @returns The preferred mix, or null when the list is empty
|
|
227
|
+
*/
|
|
228
|
+
export declare function getPreferredMixByQuality(namedMixes: MixInfo[] | null | undefined, prefer?: 'lossy' | 'lossless'): MixInfo | null;
|
|
229
|
+
/** Mixes grouped under one name (e.g. a lossy + lossless pair) */
|
|
230
|
+
export interface MixGroup {
|
|
231
|
+
/** The shared name, in the casing the metadata declares it */
|
|
232
|
+
name: string;
|
|
233
|
+
/** Every mix under this name; the first entry is the display pick */
|
|
234
|
+
mixes: MixInfo[];
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Group a track's mixes by name, collapsing lossy/lossless pairs.
|
|
238
|
+
*
|
|
239
|
+
* The grouping key ignores case and surrounding whitespace, so 'Instrumental'
|
|
240
|
+
* and 'instrumental ' land in one group; the group's name keeps the casing of
|
|
241
|
+
* its first member.
|
|
242
|
+
*
|
|
243
|
+
* @param mixes - The track's mixes, from getTrackExtras
|
|
244
|
+
* @returns One group per distinct mix name, in first-appearance order
|
|
245
|
+
*
|
|
246
|
+
* @example
|
|
247
|
+
* ```ts
|
|
248
|
+
* for (const group of getUniqueMixes(extras.mixes)) {
|
|
249
|
+
* console.log(`${group.name} (${group.mixes.length} masters)`);
|
|
250
|
+
* }
|
|
251
|
+
* ```
|
|
252
|
+
*/
|
|
253
|
+
export declare function getUniqueMixes(mixes: MixInfo[] | null | undefined): MixGroup[];
|
|
254
|
+
/** Options for resolveMixUrl */
|
|
255
|
+
export interface ResolveMixUrlOptions {
|
|
256
|
+
/** Gateway-resolve the final URL through arweaveGatewayManager (default: true) */
|
|
257
|
+
resolveUrl?: boolean;
|
|
258
|
+
/** Follow a mix whose uri points at a metadata JSON file rather than audio (default: true) */
|
|
259
|
+
followMetadata?: boolean;
|
|
260
|
+
/** Timeout for the metadata fetch, in milliseconds (default: 10000) */
|
|
261
|
+
fetchTimeoutMs?: number;
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Resolve a mix to a playable audio URL.
|
|
265
|
+
*
|
|
266
|
+
* The parser returns mix uris as written in the metadata — it never resolves
|
|
267
|
+
* them — so this is the last mile before playback. Mix uris come in three
|
|
268
|
+
* shapes, all handled: direct Arweave/IPFS identifiers and URLs (gateway-
|
|
269
|
+
* resolved), and the standard's metadata-JSON indirection, where a mix's uri
|
|
270
|
+
* points at a metadata file whose audio fields name the actual song (followed
|
|
271
|
+
* one level, per the 721J "Alt Outro" example).
|
|
272
|
+
*
|
|
273
|
+
* @param mix - A mix from getTrackExtras, or a selection from resolveSelectedMix
|
|
274
|
+
* @param options - Resolution options
|
|
275
|
+
* @returns The playable URL, or null when the mix has no uri or resolution failed
|
|
276
|
+
*
|
|
277
|
+
* @example
|
|
278
|
+
* ```ts
|
|
279
|
+
* const url = await resolveMixUrl(findMixByName(extras.mixes, 'Instrumental'));
|
|
280
|
+
* ```
|
|
281
|
+
*/
|
|
282
|
+
export declare function resolveMixUrl(mix: MixInfo | SelectedMixInfo | null | undefined, options?: ResolveMixUrlOptions): Promise<string | null>;
|
|
283
|
+
/** Options for selectMix */
|
|
284
|
+
export interface SelectMixOptions {
|
|
285
|
+
/** Which master to prefer when several mixes share the name (default: 'lossy', matching the pin flow) */
|
|
286
|
+
prefer?: 'lossy' | 'lossless';
|
|
287
|
+
/** Also match alias spellings — 'inst' finds 'Instrumental' (default: true) */
|
|
288
|
+
aliases?: boolean;
|
|
289
|
+
/** Gateway-resolve the resulting audio URLs (default: true) */
|
|
290
|
+
resolveUrl?: boolean;
|
|
291
|
+
/** Follow metadata-JSON mix uris to the song file (default: true) */
|
|
292
|
+
followMetadata?: boolean;
|
|
293
|
+
/** When provided, the chosen mix must currently satisfy its conditions */
|
|
294
|
+
conditionsContext?: EvaluationContext;
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Choose which of a track's mixes plays, returning a play-ready track.
|
|
298
|
+
*
|
|
299
|
+
* The consumer-side twin of the playlist entry's pin: the parser repoints a
|
|
300
|
+
* pinned track's audio URLs at the pinned mix at parse time, and this does
|
|
301
|
+
* the same for a user's choice. The input track is never mutated. Name
|
|
302
|
+
* matching is tolerant (case-insensitive, trimmed, aliased — 'inst' finds
|
|
303
|
+
* 'Instrumental'); conditions, when a
|
|
304
|
+
* context is given, must currently pass.
|
|
305
|
+
*
|
|
306
|
+
* @param track - A parsed playlist track (with extras from the parser)
|
|
307
|
+
* @param mixName - The mix to play (e.g. 'Instrumental')
|
|
308
|
+
* @param options - Quality preference, resolution, and condition gating
|
|
309
|
+
* @returns A copy of the track with audio URLs swapped to the mix, or null
|
|
310
|
+
* when the track has no such mix or it is unavailable
|
|
311
|
+
*
|
|
312
|
+
* @example
|
|
313
|
+
* ```ts
|
|
314
|
+
* const playlist = await new PlaylistParser().parse(raw);
|
|
315
|
+
* const track = playlist.tracks[0];
|
|
316
|
+
* const instrumental = await selectMix(track, 'Instrumental', { prefer: 'lossless' });
|
|
317
|
+
* if (instrumental) audio.src = instrumental.audio_url;
|
|
318
|
+
* ```
|
|
319
|
+
*/
|
|
320
|
+
export declare function selectMix(track: PlaylistTrack, mixName: string, options?: SelectMixOptions): Promise<PlaylistTrack | null>;
|
|
173
321
|
/**
|
|
174
322
|
* Evaluate all mixes' conditions against the current context.
|
|
175
323
|
*
|
|
@@ -184,8 +332,9 @@ export declare function resolveSelectedMix(wrapperMix: unknown, attributes: Reco
|
|
|
184
332
|
* @example
|
|
185
333
|
* ```ts
|
|
186
334
|
* const extras = getTrackExtras(metadata);
|
|
335
|
+
* const sensors = new EnvironmentalSensors();
|
|
187
336
|
* const context: EvaluationContext = {
|
|
188
|
-
* environment:
|
|
337
|
+
* environment: await sensors.updateSnapshot(),
|
|
189
338
|
* appState: { playCount: 5, isFavorite: true },
|
|
190
339
|
* };
|
|
191
340
|
* const results = evaluateMixConditions(extras, context);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrackExtras.d.ts","sourceRoot":"","sources":["../../../src/core/parser/TrackExtras.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"TrackExtras.d.ts","sourceRoot":"","sources":["../../../src/core/parser/TrackExtras.ts"],"names":[],"mappings":"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"}
|
|
@@ -59,6 +59,10 @@ export interface PlaylistTrack {
|
|
|
59
59
|
attributes?: Record<string, string | number>;
|
|
60
60
|
audio_ipfs_hash?: string;
|
|
61
61
|
artwork_ipfs_hash?: string;
|
|
62
|
+
mint_function?: string;
|
|
63
|
+
mint_price?: string;
|
|
64
|
+
mint_snapshot_time?: number;
|
|
65
|
+
mint_token?: string;
|
|
62
66
|
extras?: TrackExtrasInfo;
|
|
63
67
|
}
|
|
64
68
|
/**
|
|
@@ -91,6 +95,10 @@ export interface RawArweavePlaylist {
|
|
|
91
95
|
image_url?: string;
|
|
92
96
|
audio_ipfs_hash?: string;
|
|
93
97
|
artwork_ipfs_hash?: string;
|
|
98
|
+
mint_function?: string;
|
|
99
|
+
mint_price?: string;
|
|
100
|
+
mint_snapshot_time?: number;
|
|
101
|
+
mint_token?: string;
|
|
94
102
|
metadata: string | Record<string, unknown>;
|
|
95
103
|
}>;
|
|
96
104
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Playlist.d.ts","sourceRoot":"","sources":["../../../src/core/types/Playlist.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Playlist.d.ts","sourceRoot":"","sources":["../../../src/core/types/Playlist.ts"],"names":[],"mappings":"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"}
|