@nuclearplayer/plugin-sdk 1.2.0 → 2.0.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.
Files changed (3) hide show
  1. package/dist/index.d.ts +670 -15
  2. package/dist/index.js +2884 -222
  3. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import { z } from 'zod';
2
+
1
3
  export declare type Album = {
2
4
  title: string;
3
5
  artists: ArtistCredit[];
@@ -20,7 +22,7 @@ export declare type AlbumRef = {
20
22
  source: ProviderRef;
21
23
  };
22
24
 
23
- export declare type Artist = {
25
+ export declare type ArtistBio = {
24
26
  name: string;
25
27
  disambiguation?: string;
26
28
  bio?: string;
@@ -36,7 +38,7 @@ export declare type ArtistCredit = {
36
38
  source?: ProviderRef;
37
39
  };
38
40
 
39
- export declare type ArtistMetadataCapability = 'artistDetails' | 'artistAlbums' | 'artistTopTracks' | 'artistRelatedArtists';
41
+ export declare type ArtistMetadataCapability = 'artistBio' | 'artistSocialStats' | 'artistTopTracks' | 'artistAlbums' | 'artistPlaylists' | 'artistRelatedArtists';
40
42
 
41
43
  export declare type ArtistRef = {
42
44
  name: string;
@@ -45,6 +47,18 @@ export declare type ArtistRef = {
45
47
  source: ProviderRef;
46
48
  };
47
49
 
50
+ export declare type ArtistSocialStats = {
51
+ name: string;
52
+ artwork?: ArtworkSet;
53
+ city?: string;
54
+ country?: string;
55
+ followersCount?: number;
56
+ followingsCount?: number;
57
+ trackCount?: number;
58
+ playlistCount?: number;
59
+ source: ProviderRef;
60
+ };
61
+
48
62
  export declare type Artwork = {
49
63
  url: string;
50
64
  width?: number;
@@ -207,18 +221,22 @@ declare class MetadataAPI {
207
221
  #private;
208
222
  constructor(host?: MetadataHost);
209
223
  search(params: SearchParams, providerId?: string): Promise<SearchResults>;
210
- fetchArtistDetails(artistId: string, providerId?: string): Promise<Artist>;
224
+ fetchArtistBio(artistId: string, providerId?: string): Promise<ArtistBio>;
225
+ fetchArtistSocialStats(artistId: string, providerId?: string): Promise<ArtistSocialStats>;
211
226
  fetchArtistAlbums(artistId: string, providerId?: string): Promise<AlbumRef[]>;
212
227
  fetchArtistTopTracks(artistId: string, providerId?: string): Promise<TrackRef[]>;
228
+ fetchArtistPlaylists(artistId: string, providerId?: string): Promise<PlaylistRef[]>;
213
229
  fetchArtistRelatedArtists(artistId: string, providerId?: string): Promise<ArtistRef[]>;
214
230
  fetchAlbumDetails(albumId: string, providerId?: string): Promise<Album>;
215
231
  }
216
232
 
217
233
  export declare type MetadataHost = {
218
234
  search: (params: SearchParams, providerId?: string) => Promise<SearchResults>;
219
- fetchArtistDetails: (artistId: string, providerId?: string) => Promise<Artist>;
235
+ fetchArtistBio: (artistId: string, providerId?: string) => Promise<ArtistBio>;
236
+ fetchArtistSocialStats: (artistId: string, providerId?: string) => Promise<ArtistSocialStats>;
220
237
  fetchArtistAlbums: (artistId: string, providerId?: string) => Promise<AlbumRef[]>;
221
238
  fetchArtistTopTracks: (artistId: string, providerId?: string) => Promise<TrackRef[]>;
239
+ fetchArtistPlaylists: (artistId: string, providerId?: string) => Promise<PlaylistRef[]>;
222
240
  fetchArtistRelatedArtists: (artistId: string, providerId?: string) => Promise<ArtistRef[]>;
223
241
  fetchAlbumDetails: (albumId: string, providerId?: string) => Promise<Album>;
224
242
  };
@@ -232,10 +250,12 @@ export declare type MetadataProvider = ProviderDescriptor<'metadata'> & {
232
250
  searchAlbums?: (params: Omit<SearchParams, 'types'>) => Promise<AlbumRef[]>;
233
251
  searchTracks?: (params: Omit<SearchParams, 'types'>) => Promise<Track[]>;
234
252
  searchPlaylists?: (params: Omit<SearchParams, 'types'>) => Promise<PlaylistRef[]>;
235
- fetchArtistDetails?: (query: string) => Promise<Artist>;
253
+ fetchArtistBio?: (artistId: string) => Promise<ArtistBio>;
254
+ fetchArtistSocialStats?: (artistId: string) => Promise<ArtistSocialStats>;
236
255
  fetchAlbumDetails?: (query: string) => Promise<Album>;
237
- fetchArtistAlbums?: (artistId: string) => Promise<AlbumRef[]>;
238
256
  fetchArtistTopTracks?: (artistId: string) => Promise<TrackRef[]>;
257
+ fetchArtistAlbums?: (artistId: string) => Promise<AlbumRef[]>;
258
+ fetchArtistPlaylists?: (artistId: string) => Promise<PlaylistRef[]>;
239
259
  fetchArtistRelatedArtists?: (artistId: string) => Promise<ArtistRef[]>;
240
260
  };
241
261
 
@@ -311,20 +331,261 @@ export declare function pickArtwork(set: ArtworkSet | undefined, purpose: Artwor
311
331
  export declare type Playlist = {
312
332
  id: string;
313
333
  name: string;
314
- lastModifiedIso?: string;
334
+ description?: string;
335
+ artwork?: ArtworkSet;
336
+ tags?: string[];
337
+ createdAtIso: string;
338
+ lastModifiedIso: string;
339
+ origin?: ProviderRef;
340
+ isReadOnly: boolean;
341
+ parentId?: string;
315
342
  items: PlaylistItem[];
316
343
  };
317
344
 
318
- export declare type PlaylistItem = {
345
+ export declare type PlaylistIndexEntry = Pick<Playlist, 'id' | 'name' | 'createdAtIso' | 'lastModifiedIso' | 'isReadOnly' | 'artwork'> & {
346
+ itemCount: number;
347
+ totalDurationMs: number;
348
+ };
349
+
350
+ export declare const playlistIndexEntrySchema: z.ZodObject<{
351
+ id: z.ZodString;
352
+ name: z.ZodString;
353
+ createdAtIso: z.ZodString;
354
+ lastModifiedIso: z.ZodString;
355
+ isReadOnly: z.ZodBoolean;
356
+ artwork: z.ZodOptional<z.ZodObject<{
357
+ items: z.ZodArray<z.ZodObject<{
358
+ url: z.ZodString;
359
+ width: z.ZodOptional<z.ZodNumber>;
360
+ height: z.ZodOptional<z.ZodNumber>;
361
+ purpose: z.ZodOptional<z.ZodEnum<["avatar", "cover", "background", "thumbnail"]>>;
362
+ source: z.ZodOptional<z.ZodObject<{
363
+ provider: z.ZodString;
364
+ id: z.ZodString;
365
+ url: z.ZodOptional<z.ZodString>;
366
+ }, "strip", z.ZodTypeAny, {
367
+ id: string;
368
+ provider: string;
369
+ url?: string | undefined;
370
+ }, {
371
+ id: string;
372
+ provider: string;
373
+ url?: string | undefined;
374
+ }>>;
375
+ }, "strip", z.ZodTypeAny, {
376
+ url: string;
377
+ width?: number | undefined;
378
+ height?: number | undefined;
379
+ purpose?: "avatar" | "cover" | "background" | "thumbnail" | undefined;
380
+ source?: {
381
+ id: string;
382
+ provider: string;
383
+ url?: string | undefined;
384
+ } | undefined;
385
+ }, {
386
+ url: string;
387
+ width?: number | undefined;
388
+ height?: number | undefined;
389
+ purpose?: "avatar" | "cover" | "background" | "thumbnail" | undefined;
390
+ source?: {
391
+ id: string;
392
+ provider: string;
393
+ url?: string | undefined;
394
+ } | undefined;
395
+ }>, "many">;
396
+ }, "strip", z.ZodTypeAny, {
397
+ items: {
398
+ url: string;
399
+ width?: number | undefined;
400
+ height?: number | undefined;
401
+ purpose?: "avatar" | "cover" | "background" | "thumbnail" | undefined;
402
+ source?: {
403
+ id: string;
404
+ provider: string;
405
+ url?: string | undefined;
406
+ } | undefined;
407
+ }[];
408
+ }, {
409
+ items: {
410
+ url: string;
411
+ width?: number | undefined;
412
+ height?: number | undefined;
413
+ purpose?: "avatar" | "cover" | "background" | "thumbnail" | undefined;
414
+ source?: {
415
+ id: string;
416
+ provider: string;
417
+ url?: string | undefined;
418
+ } | undefined;
419
+ }[];
420
+ }>>;
421
+ itemCount: z.ZodNumber;
422
+ totalDurationMs: z.ZodNumber;
423
+ }, "strip", z.ZodTypeAny, {
319
424
  id: string;
320
- title: string;
321
- artists: ArtistCredit[];
322
- album?: string;
323
- durationMs?: number;
324
- artwork?: ArtworkSet;
425
+ name: string;
426
+ createdAtIso: string;
427
+ lastModifiedIso: string;
428
+ isReadOnly: boolean;
429
+ itemCount: number;
430
+ totalDurationMs: number;
431
+ artwork?: {
432
+ items: {
433
+ url: string;
434
+ width?: number | undefined;
435
+ height?: number | undefined;
436
+ purpose?: "avatar" | "cover" | "background" | "thumbnail" | undefined;
437
+ source?: {
438
+ id: string;
439
+ provider: string;
440
+ url?: string | undefined;
441
+ } | undefined;
442
+ }[];
443
+ } | undefined;
444
+ }, {
445
+ id: string;
446
+ name: string;
447
+ createdAtIso: string;
448
+ lastModifiedIso: string;
449
+ isReadOnly: boolean;
450
+ itemCount: number;
451
+ totalDurationMs: number;
452
+ artwork?: {
453
+ items: {
454
+ url: string;
455
+ width?: number | undefined;
456
+ height?: number | undefined;
457
+ purpose?: "avatar" | "cover" | "background" | "thumbnail" | undefined;
458
+ source?: {
459
+ id: string;
460
+ provider: string;
461
+ url?: string | undefined;
462
+ } | undefined;
463
+ }[];
464
+ } | undefined;
465
+ }>;
466
+
467
+ export declare const playlistIndexSchema: z.ZodArray<z.ZodObject<{
468
+ id: z.ZodString;
469
+ name: z.ZodString;
470
+ createdAtIso: z.ZodString;
471
+ lastModifiedIso: z.ZodString;
472
+ isReadOnly: z.ZodBoolean;
473
+ artwork: z.ZodOptional<z.ZodObject<{
474
+ items: z.ZodArray<z.ZodObject<{
475
+ url: z.ZodString;
476
+ width: z.ZodOptional<z.ZodNumber>;
477
+ height: z.ZodOptional<z.ZodNumber>;
478
+ purpose: z.ZodOptional<z.ZodEnum<["avatar", "cover", "background", "thumbnail"]>>;
479
+ source: z.ZodOptional<z.ZodObject<{
480
+ provider: z.ZodString;
481
+ id: z.ZodString;
482
+ url: z.ZodOptional<z.ZodString>;
483
+ }, "strip", z.ZodTypeAny, {
484
+ id: string;
485
+ provider: string;
486
+ url?: string | undefined;
487
+ }, {
488
+ id: string;
489
+ provider: string;
490
+ url?: string | undefined;
491
+ }>>;
492
+ }, "strip", z.ZodTypeAny, {
493
+ url: string;
494
+ width?: number | undefined;
495
+ height?: number | undefined;
496
+ purpose?: "avatar" | "cover" | "background" | "thumbnail" | undefined;
497
+ source?: {
498
+ id: string;
499
+ provider: string;
500
+ url?: string | undefined;
501
+ } | undefined;
502
+ }, {
503
+ url: string;
504
+ width?: number | undefined;
505
+ height?: number | undefined;
506
+ purpose?: "avatar" | "cover" | "background" | "thumbnail" | undefined;
507
+ source?: {
508
+ id: string;
509
+ provider: string;
510
+ url?: string | undefined;
511
+ } | undefined;
512
+ }>, "many">;
513
+ }, "strip", z.ZodTypeAny, {
514
+ items: {
515
+ url: string;
516
+ width?: number | undefined;
517
+ height?: number | undefined;
518
+ purpose?: "avatar" | "cover" | "background" | "thumbnail" | undefined;
519
+ source?: {
520
+ id: string;
521
+ provider: string;
522
+ url?: string | undefined;
523
+ } | undefined;
524
+ }[];
525
+ }, {
526
+ items: {
527
+ url: string;
528
+ width?: number | undefined;
529
+ height?: number | undefined;
530
+ purpose?: "avatar" | "cover" | "background" | "thumbnail" | undefined;
531
+ source?: {
532
+ id: string;
533
+ provider: string;
534
+ url?: string | undefined;
535
+ } | undefined;
536
+ }[];
537
+ }>>;
538
+ itemCount: z.ZodNumber;
539
+ totalDurationMs: z.ZodNumber;
540
+ }, "strip", z.ZodTypeAny, {
541
+ id: string;
542
+ name: string;
543
+ createdAtIso: string;
544
+ lastModifiedIso: string;
545
+ isReadOnly: boolean;
546
+ itemCount: number;
547
+ totalDurationMs: number;
548
+ artwork?: {
549
+ items: {
550
+ url: string;
551
+ width?: number | undefined;
552
+ height?: number | undefined;
553
+ purpose?: "avatar" | "cover" | "background" | "thumbnail" | undefined;
554
+ source?: {
555
+ id: string;
556
+ provider: string;
557
+ url?: string | undefined;
558
+ } | undefined;
559
+ }[];
560
+ } | undefined;
561
+ }, {
562
+ id: string;
563
+ name: string;
564
+ createdAtIso: string;
565
+ lastModifiedIso: string;
566
+ isReadOnly: boolean;
567
+ itemCount: number;
568
+ totalDurationMs: number;
569
+ artwork?: {
570
+ items: {
571
+ url: string;
572
+ width?: number | undefined;
573
+ height?: number | undefined;
574
+ purpose?: "avatar" | "cover" | "background" | "thumbnail" | undefined;
575
+ source?: {
576
+ id: string;
577
+ provider: string;
578
+ url?: string | undefined;
579
+ } | undefined;
580
+ }[];
581
+ } | undefined;
582
+ }>, "many">;
583
+
584
+ export declare type PlaylistItem<T extends Track = Track> = {
585
+ id: string;
586
+ track: T;
325
587
  note?: string;
326
- addedAtIso?: string;
327
- source: ProviderRef;
588
+ addedAtIso: string;
328
589
  };
329
590
 
330
591
  export declare type PlaylistRef = {
@@ -334,6 +595,400 @@ export declare type PlaylistRef = {
334
595
  source: ProviderRef;
335
596
  };
336
597
 
598
+ export declare const playlistSchema: z.ZodObject<{
599
+ id: z.ZodString;
600
+ name: z.ZodString;
601
+ description: z.ZodOptional<z.ZodString>;
602
+ artwork: z.ZodOptional<z.ZodObject<{
603
+ items: z.ZodArray<z.ZodObject<{
604
+ url: z.ZodString;
605
+ width: z.ZodOptional<z.ZodNumber>;
606
+ height: z.ZodOptional<z.ZodNumber>;
607
+ purpose: z.ZodOptional<z.ZodEnum<["avatar", "cover", "background", "thumbnail"]>>;
608
+ source: z.ZodOptional<z.ZodObject<{
609
+ provider: z.ZodString;
610
+ id: z.ZodString;
611
+ url: z.ZodOptional<z.ZodString>;
612
+ }, "strip", z.ZodTypeAny, {
613
+ id: string;
614
+ provider: string;
615
+ url?: string | undefined;
616
+ }, {
617
+ id: string;
618
+ provider: string;
619
+ url?: string | undefined;
620
+ }>>;
621
+ }, "strip", z.ZodTypeAny, {
622
+ url: string;
623
+ width?: number | undefined;
624
+ height?: number | undefined;
625
+ purpose?: "avatar" | "cover" | "background" | "thumbnail" | undefined;
626
+ source?: {
627
+ id: string;
628
+ provider: string;
629
+ url?: string | undefined;
630
+ } | undefined;
631
+ }, {
632
+ url: string;
633
+ width?: number | undefined;
634
+ height?: number | undefined;
635
+ purpose?: "avatar" | "cover" | "background" | "thumbnail" | undefined;
636
+ source?: {
637
+ id: string;
638
+ provider: string;
639
+ url?: string | undefined;
640
+ } | undefined;
641
+ }>, "many">;
642
+ }, "strip", z.ZodTypeAny, {
643
+ items: {
644
+ url: string;
645
+ width?: number | undefined;
646
+ height?: number | undefined;
647
+ purpose?: "avatar" | "cover" | "background" | "thumbnail" | undefined;
648
+ source?: {
649
+ id: string;
650
+ provider: string;
651
+ url?: string | undefined;
652
+ } | undefined;
653
+ }[];
654
+ }, {
655
+ items: {
656
+ url: string;
657
+ width?: number | undefined;
658
+ height?: number | undefined;
659
+ purpose?: "avatar" | "cover" | "background" | "thumbnail" | undefined;
660
+ source?: {
661
+ id: string;
662
+ provider: string;
663
+ url?: string | undefined;
664
+ } | undefined;
665
+ }[];
666
+ }>>;
667
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
668
+ createdAtIso: z.ZodString;
669
+ lastModifiedIso: z.ZodString;
670
+ origin: z.ZodOptional<z.ZodObject<{
671
+ provider: z.ZodString;
672
+ id: z.ZodString;
673
+ url: z.ZodOptional<z.ZodString>;
674
+ }, "strip", z.ZodTypeAny, {
675
+ id: string;
676
+ provider: string;
677
+ url?: string | undefined;
678
+ }, {
679
+ id: string;
680
+ provider: string;
681
+ url?: string | undefined;
682
+ }>>;
683
+ isReadOnly: z.ZodBoolean;
684
+ parentId: z.ZodOptional<z.ZodString>;
685
+ items: z.ZodArray<z.ZodObject<{
686
+ id: z.ZodString;
687
+ track: z.ZodObject<{
688
+ title: z.ZodString;
689
+ artists: z.ZodArray<z.ZodObject<{
690
+ name: z.ZodString;
691
+ roles: z.ZodArray<z.ZodString, "many">;
692
+ source: z.ZodOptional<z.ZodObject<{
693
+ provider: z.ZodString;
694
+ id: z.ZodString;
695
+ url: z.ZodOptional<z.ZodString>;
696
+ }, "strip", z.ZodTypeAny, {
697
+ id: string;
698
+ provider: string;
699
+ url?: string | undefined;
700
+ }, {
701
+ id: string;
702
+ provider: string;
703
+ url?: string | undefined;
704
+ }>>;
705
+ }, "strip", z.ZodTypeAny, {
706
+ name: string;
707
+ roles: string[];
708
+ source?: {
709
+ id: string;
710
+ provider: string;
711
+ url?: string | undefined;
712
+ } | undefined;
713
+ }, {
714
+ name: string;
715
+ roles: string[];
716
+ source?: {
717
+ id: string;
718
+ provider: string;
719
+ url?: string | undefined;
720
+ } | undefined;
721
+ }>, "many">;
722
+ durationMs: z.ZodOptional<z.ZodNumber>;
723
+ source: z.ZodObject<{
724
+ provider: z.ZodString;
725
+ id: z.ZodString;
726
+ url: z.ZodOptional<z.ZodString>;
727
+ }, "strip", z.ZodTypeAny, {
728
+ id: string;
729
+ provider: string;
730
+ url?: string | undefined;
731
+ }, {
732
+ id: string;
733
+ provider: string;
734
+ url?: string | undefined;
735
+ }>;
736
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
737
+ title: z.ZodString;
738
+ artists: z.ZodArray<z.ZodObject<{
739
+ name: z.ZodString;
740
+ roles: z.ZodArray<z.ZodString, "many">;
741
+ source: z.ZodOptional<z.ZodObject<{
742
+ provider: z.ZodString;
743
+ id: z.ZodString;
744
+ url: z.ZodOptional<z.ZodString>;
745
+ }, "strip", z.ZodTypeAny, {
746
+ id: string;
747
+ provider: string;
748
+ url?: string | undefined;
749
+ }, {
750
+ id: string;
751
+ provider: string;
752
+ url?: string | undefined;
753
+ }>>;
754
+ }, "strip", z.ZodTypeAny, {
755
+ name: string;
756
+ roles: string[];
757
+ source?: {
758
+ id: string;
759
+ provider: string;
760
+ url?: string | undefined;
761
+ } | undefined;
762
+ }, {
763
+ name: string;
764
+ roles: string[];
765
+ source?: {
766
+ id: string;
767
+ provider: string;
768
+ url?: string | undefined;
769
+ } | undefined;
770
+ }>, "many">;
771
+ durationMs: z.ZodOptional<z.ZodNumber>;
772
+ source: z.ZodObject<{
773
+ provider: z.ZodString;
774
+ id: z.ZodString;
775
+ url: z.ZodOptional<z.ZodString>;
776
+ }, "strip", z.ZodTypeAny, {
777
+ id: string;
778
+ provider: string;
779
+ url?: string | undefined;
780
+ }, {
781
+ id: string;
782
+ provider: string;
783
+ url?: string | undefined;
784
+ }>;
785
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
786
+ title: z.ZodString;
787
+ artists: z.ZodArray<z.ZodObject<{
788
+ name: z.ZodString;
789
+ roles: z.ZodArray<z.ZodString, "many">;
790
+ source: z.ZodOptional<z.ZodObject<{
791
+ provider: z.ZodString;
792
+ id: z.ZodString;
793
+ url: z.ZodOptional<z.ZodString>;
794
+ }, "strip", z.ZodTypeAny, {
795
+ id: string;
796
+ provider: string;
797
+ url?: string | undefined;
798
+ }, {
799
+ id: string;
800
+ provider: string;
801
+ url?: string | undefined;
802
+ }>>;
803
+ }, "strip", z.ZodTypeAny, {
804
+ name: string;
805
+ roles: string[];
806
+ source?: {
807
+ id: string;
808
+ provider: string;
809
+ url?: string | undefined;
810
+ } | undefined;
811
+ }, {
812
+ name: string;
813
+ roles: string[];
814
+ source?: {
815
+ id: string;
816
+ provider: string;
817
+ url?: string | undefined;
818
+ } | undefined;
819
+ }>, "many">;
820
+ durationMs: z.ZodOptional<z.ZodNumber>;
821
+ source: z.ZodObject<{
822
+ provider: z.ZodString;
823
+ id: z.ZodString;
824
+ url: z.ZodOptional<z.ZodString>;
825
+ }, "strip", z.ZodTypeAny, {
826
+ id: string;
827
+ provider: string;
828
+ url?: string | undefined;
829
+ }, {
830
+ id: string;
831
+ provider: string;
832
+ url?: string | undefined;
833
+ }>;
834
+ }, z.ZodTypeAny, "passthrough">>;
835
+ note: z.ZodOptional<z.ZodString>;
836
+ addedAtIso: z.ZodString;
837
+ }, "strip", z.ZodTypeAny, {
838
+ id: string;
839
+ track: {
840
+ artists: {
841
+ name: string;
842
+ roles: string[];
843
+ source?: {
844
+ id: string;
845
+ provider: string;
846
+ url?: string | undefined;
847
+ } | undefined;
848
+ }[];
849
+ source: {
850
+ id: string;
851
+ provider: string;
852
+ url?: string | undefined;
853
+ };
854
+ title: string;
855
+ durationMs?: number | undefined;
856
+ } & {
857
+ [k: string]: unknown;
858
+ };
859
+ addedAtIso: string;
860
+ note?: string | undefined;
861
+ }, {
862
+ id: string;
863
+ track: {
864
+ artists: {
865
+ name: string;
866
+ roles: string[];
867
+ source?: {
868
+ id: string;
869
+ provider: string;
870
+ url?: string | undefined;
871
+ } | undefined;
872
+ }[];
873
+ source: {
874
+ id: string;
875
+ provider: string;
876
+ url?: string | undefined;
877
+ };
878
+ title: string;
879
+ durationMs?: number | undefined;
880
+ } & {
881
+ [k: string]: unknown;
882
+ };
883
+ addedAtIso: string;
884
+ note?: string | undefined;
885
+ }>, "many">;
886
+ }, "strip", z.ZodTypeAny, {
887
+ items: {
888
+ id: string;
889
+ track: {
890
+ artists: {
891
+ name: string;
892
+ roles: string[];
893
+ source?: {
894
+ id: string;
895
+ provider: string;
896
+ url?: string | undefined;
897
+ } | undefined;
898
+ }[];
899
+ source: {
900
+ id: string;
901
+ provider: string;
902
+ url?: string | undefined;
903
+ };
904
+ title: string;
905
+ durationMs?: number | undefined;
906
+ } & {
907
+ [k: string]: unknown;
908
+ };
909
+ addedAtIso: string;
910
+ note?: string | undefined;
911
+ }[];
912
+ id: string;
913
+ name: string;
914
+ createdAtIso: string;
915
+ lastModifiedIso: string;
916
+ isReadOnly: boolean;
917
+ artwork?: {
918
+ items: {
919
+ url: string;
920
+ width?: number | undefined;
921
+ height?: number | undefined;
922
+ purpose?: "avatar" | "cover" | "background" | "thumbnail" | undefined;
923
+ source?: {
924
+ id: string;
925
+ provider: string;
926
+ url?: string | undefined;
927
+ } | undefined;
928
+ }[];
929
+ } | undefined;
930
+ description?: string | undefined;
931
+ tags?: string[] | undefined;
932
+ origin?: {
933
+ id: string;
934
+ provider: string;
935
+ url?: string | undefined;
936
+ } | undefined;
937
+ parentId?: string | undefined;
938
+ }, {
939
+ items: {
940
+ id: string;
941
+ track: {
942
+ artists: {
943
+ name: string;
944
+ roles: string[];
945
+ source?: {
946
+ id: string;
947
+ provider: string;
948
+ url?: string | undefined;
949
+ } | undefined;
950
+ }[];
951
+ source: {
952
+ id: string;
953
+ provider: string;
954
+ url?: string | undefined;
955
+ };
956
+ title: string;
957
+ durationMs?: number | undefined;
958
+ } & {
959
+ [k: string]: unknown;
960
+ };
961
+ addedAtIso: string;
962
+ note?: string | undefined;
963
+ }[];
964
+ id: string;
965
+ name: string;
966
+ createdAtIso: string;
967
+ lastModifiedIso: string;
968
+ isReadOnly: boolean;
969
+ artwork?: {
970
+ items: {
971
+ url: string;
972
+ width?: number | undefined;
973
+ height?: number | undefined;
974
+ purpose?: "avatar" | "cover" | "background" | "thumbnail" | undefined;
975
+ source?: {
976
+ id: string;
977
+ provider: string;
978
+ url?: string | undefined;
979
+ } | undefined;
980
+ }[];
981
+ } | undefined;
982
+ description?: string | undefined;
983
+ tags?: string[] | undefined;
984
+ origin?: {
985
+ id: string;
986
+ provider: string;
987
+ url?: string | undefined;
988
+ } | undefined;
989
+ parentId?: string | undefined;
990
+ }>;
991
+
337
992
  export declare type PluginIcon = {
338
993
  type: 'link';
339
994
  link: string;