···11export * as ShDiffuseOutputConstituent from "./types/sh/diffuse/output/constituent.js";
22export * as ShDiffuseOutputFavourite from "./types/sh/diffuse/output/favourite.js";
33+export * as ShDiffuseOutputPlaylist from "./types/sh/diffuse/output/playlist.js";
34export * as ShDiffuseOutputTrack from "./types/sh/diffuse/output/track.js";
+75
src/definitions/output/playlist.json
···11+{
22+ "lexicon": 1,
33+ "id": "sh.diffuse.output.playlist",
44+ "defs": {
55+ "main": {
66+ "type": "record",
77+ "record": {
88+ "type": "object",
99+ "required": ["collection", "items", "name"],
1010+ "nullable": ["autoGenerate"],
1111+ "properties": {
1212+ "autoGenerate": {
1313+ "type": "ref",
1414+ "ref": "#autoGenerate"
1515+ },
1616+ "collection": {
1717+ "type": "boolean",
1818+ "default": false,
1919+ "description": "If this property is set to true, the playlist items should not be presented in order. It's considered a collection of tracks."
2020+ },
2121+ "items": {
2222+ "type": "array",
2323+ "items": {
2424+ "type": "ref",
2525+ "ref": "#item"
2626+ }
2727+ },
2828+ "name": {
2929+ "type": "string"
3030+ }
3131+ }
3232+ }
3333+ },
3434+ "autoGenerate": {
3535+ "type": "object",
3636+ "description": "Auto-generate the items of the playlist, overriding the included items. If this property is set, the playlist should always be treated as a collection.",
3737+ "required": ["criteria"],
3838+ "properties": {
3939+ "criteria": {
4040+ "type": "array",
4141+ "items": { "type": "ref", "ref": "#criterion" }
4242+ }
4343+ }
4444+ },
4545+ "criterion": {
4646+ "type": "object",
4747+ "required": ["field", "value"],
4848+ "properties": {
4949+ "field": { "type": "string" },
5050+ "transformations": {
5151+ "type": "array",
5252+ "items": { "type": "ref", "ref": "#transformation" }
5353+ },
5454+ "value": {
5555+ "type": "unknown",
5656+ "description": "Value that should be matched belonging to the given field"
5757+ }
5858+ }
5959+ },
6060+ "item": {
6161+ "type": "object",
6262+ "required": ["criteria"],
6363+ "properties": {
6464+ "criteria": {
6565+ "type": "array",
6666+ "items": { "type": "ref", "ref": "#criterion" }
6767+ }
6868+ }
6969+ },
7070+ "transformation": {
7171+ "type": "string",
7272+ "description": "Transformation to apply to the field value before comparison"
7373+ }
7474+ }
7575+}
+6-2
src/definitions/types.d.ts
···22 Main as Constituent,
33} from "./types/sh/diffuse/output/constituent.ts";
4455+export type { Main as Favourite } from "./types/sh/diffuse/output/favourite.ts";
66+57export type {
88+ AutoGenerate as PlaylistAutoGeneration,
69 Criterion,
77- Main as Favourite,
1010+ Item as PlaylistItem,
1111+ Main as Playlist,
812 Transformation,
99-} from "./types/sh/diffuse/output/favourite.ts";
1313+} from "./types/sh/diffuse/output/playlist.ts";
10141115export type {
1216 Main as Track,