···11export * as ShDiffuseOutputFacet from "./types/sh/diffuse/output/facet.ts";
22-export * as ShDiffuseOutputPlaylist from "./types/sh/diffuse/output/playlist.ts";
22+export * as ShDiffuseOutputPlaylistItem from "./types/sh/diffuse/output/playlistItem.ts";
33export * as ShDiffuseOutputTheme from "./types/sh/diffuse/output/theme.ts";
44export * as ShDiffuseOutputTrack from "./types/sh/diffuse/output/track.ts";
-67
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": ["id", "items", "name", "unordered"],
1010- "properties": {
1111- "id": { "type": "string" },
1212- "smart": {
1313- "type": "ref",
1414- "ref": "#smart"
1515- },
1616- "createdAt": { "type": "string", "format": "datetime" },
1717- "items": {
1818- "type": "array",
1919- "items": {
2020- "type": "ref",
2121- "ref": "#item"
2222- }
2323- },
2424- "name": {
2525- "type": "string"
2626- },
2727- "unordered": {
2828- "type": "boolean",
2929- "default": false,
3030- "description": "If this property is set to true, the playlist items should not be presented in order. It's considered an unordered collection of tracks."
3131- },
3232- "updatedAt": { "type": "string", "format": "datetime" }
3333- }
3434- }
3535- },
3636- "criterion": {
3737- "type": "object",
3838- "required": ["field", "value"],
3939- "properties": {
4040- "field": { "type": "string" },
4141- "transformations": {
4242- "type": "array",
4343- "items": { "type": "ref", "ref": "#transformation" }
4444- },
4545- "value": {
4646- "type": "unknown",
4747- "description": "Value that should be matched belonging to the given field"
4848- }
4949- }
5050- },
5151- "item": {
5252- "type": "object",
5353- "description": "Does not necessarily match one track. You can make it a smart playlist by having the criteria match multiple tracks.",
5454- "required": ["criteria"],
5555- "properties": {
5656- "criteria": {
5757- "type": "array",
5858- "items": { "type": "ref", "ref": "#criterion" }
5959- }
6060- }
6161- },
6262- "transformation": {
6363- "type": "string",
6464- "description": "Transformation to apply to the field value before comparison. This transformation is method to call on the value. For example, `toString`"
6565- }
6666- }
6767-}
+43
src/definitions/output/playlistItem.json
···11+{
22+ "lexicon": 1,
33+ "id": "sh.diffuse.output.playlistItem",
44+ "defs": {
55+ "main": {
66+ "type": "record",
77+ "record": {
88+ "type": "object",
99+ "required": ["id", "criteria", "playlist"],
1010+ "properties": {
1111+ "id": { "type": "string" },
1212+ "createdAt": { "type": "string", "format": "datetime" },
1313+ "criteria": {
1414+ "type": "array",
1515+ "items": { "type": "ref", "ref": "#criterion" }
1616+ },
1717+ "playlist": { "type": "string" },
1818+ "position": { "type": "integer" },
1919+ "updatedAt": { "type": "string", "format": "datetime" }
2020+ }
2121+ }
2222+ },
2323+ "criterion": {
2424+ "type": "object",
2525+ "required": ["field", "value"],
2626+ "properties": {
2727+ "field": { "type": "string" },
2828+ "transformations": {
2929+ "type": "array",
3030+ "items": { "type": "ref", "ref": "#transformation" }
3131+ },
3232+ "value": {
3333+ "type": "unknown",
3434+ "description": "Value that should be matched belonging to the given field"
3535+ }
3636+ }
3737+ },
3838+ "transformation": {
3939+ "type": "string",
4040+ "description": "Transformation to apply to the field value before comparison. This transformation is method to call on the value. For example, `toString`"
4141+ }
4242+ }
4343+}
+2-4
src/definitions/types.d.ts
···11export type { Main as Facet } from "./types/sh/diffuse/output/facet.ts";
2233export type {
44- AutoGenerate as PlaylistAutoGeneration,
54 Criterion,
66- Item as PlaylistItem,
77- Main as Playlist,
55+ Main as PlaylistItem,
86 Transformation,
99-} from "./types/sh/diffuse/output/playlist.ts";
77+} from "./types/sh/diffuse/output/playlistItem.ts";
108119export type { Main as Theme } from "./types/sh/diffuse/output/theme.ts";
1210