@deadair/sdk 0.31.3 → 0.32.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.
@@ -34,7 +34,7 @@ export type StationOnEnd = 'extend' | 'repeat' | 'stop';
34
34
  export type StationItemState = 'planned' | 'handed' | 'airing' | 'played' | 'skipped' | 'unavailable' | 'removed';
35
35
  /**
36
36
  * Change who is presenting the broadcast that is on air
37
- * generated from [SetStationHostInput](../../../../../apps/api/data/contracts/director/director.types.ck#L96)
37
+ * generated from [SetStationHostInput](../../../../../apps/api/data/contracts/director/director.types.ck#L97)
38
38
  */
39
39
  export interface SetStationHostInput {
40
40
  /** Who hosts it from here on. Absent hands it back to whichever persona the station has on air, which is what a broadcast that never named one already does */
@@ -42,7 +42,7 @@ export interface SetStationHostInput {
42
42
  }
43
43
  /**
44
44
  * Put something the station says into the running order
45
- * generated from [AddStationSegmentInput](../../../../../apps/api/data/contracts/director/director.types.ck#L100)
45
+ * generated from [AddStationSegmentInput](../../../../../apps/api/data/contracts/director/director.types.ck#L101)
46
46
  */
47
47
  export interface AddStationSegmentInput {
48
48
  segmentId: string;
@@ -53,7 +53,7 @@ export interface AddStationSegmentInput {
53
53
  }
54
54
  /**
55
55
  * Put a catalog record into the running order. Refused at the door — 404 for a record the catalog does not hold, 422 for one whose audio is not local yet — rather than accepted and left to fail when it comes round
56
- * generated from [AddStationTrackInput](../../../../../apps/api/data/contracts/director/director.types.ck#L106)
56
+ * generated from [AddStationTrackInput](../../../../../apps/api/data/contracts/director/director.types.ck#L107)
57
57
  */
58
58
  export interface AddStationTrackInput {
59
59
  trackId: string;
@@ -62,21 +62,21 @@ export interface AddStationTrackInput {
62
62
  }
63
63
  /**
64
64
  * Move an item within the running order
65
- * generated from [MoveStationItemInput](../../../../../apps/api/data/contracts/director/director.types.ck#L111)
65
+ * generated from [MoveStationItemInput](../../../../../apps/api/data/contracts/director/director.types.ck#L112)
66
66
  */
67
67
  export interface MoveStationItemInput {
68
68
  toIndex: number;
69
69
  }
70
70
  /**
71
71
  * Add tracks to the running order now, rather than waiting for it to run short
72
- * generated from [ExtendStationInput](../../../../../apps/api/data/contracts/director/director.types.ck#L115)
72
+ * generated from [ExtendStationInput](../../../../../apps/api/data/contracts/director/director.types.ck#L116)
73
73
  */
74
74
  export interface ExtendStationInput {
75
75
  count?: number;
76
76
  }
77
77
  /**
78
78
  * Throw away everything the player is not already holding and programme it again. Unlike a shuffle, the records themselves change; unlike putting the station on air, the broadcast continues
79
- * generated from [ReplanStationInput](../../../../../apps/api/data/contracts/director/director.types.ck#L119)
79
+ * generated from [ReplanStationInput](../../../../../apps/api/data/contracts/director/director.types.ck#L120)
80
80
  */
81
81
  export interface ReplanStationInput {
82
82
  /** How many records to programme. Absent is roughly an hour */
@@ -128,6 +128,8 @@ export interface PutOnAirInput {
128
128
  chartId?: string;
129
129
  /** Which way round to play it. `countdown` opens on the lowest rank and ends on number one, which is the shape a chart show has; `ranked` walks the published document from the top; `unordered` leaves the sequence to the station's own artist spacing. Absent is `countdown`. Ignored without `chartId` */
130
130
  chartOrder?: 'countdown' | 'ranked' | 'unordered';
131
+ /** A playlist the station owns to build from instead. An ALTERNATIVE to `pluginId` and `playlistId`, and to `chartId`: its records are the library's own, so each airs from whichever provider serves a copy, and a row the library does not hold yet is left out */
132
+ stationPlaylistId?: string;
131
133
  /** What to call this broadcast. Absent names it after the chart, or after the plugin, since only the surface that listed the source knows its own name for it */
132
134
  name?: string;
133
135
  /** What the station should play, in your own words: "heavy metal hits". It steers every refill for as long as this broadcast runs, not just the first batch, and it needs a model to programme with. Absent programmes the station the way its own rules do */
@@ -208,6 +210,7 @@ export interface StationOrder {
208
210
  source: string;
209
211
  /** Where more material is pulled from, when it came from a playlist */
210
212
  sourcePluginId?: string;
213
+ /** The playlist it was built from. With no `sourcePluginId`, a playlist the station owns */
211
214
  sourcePlaylistId?: string;
212
215
  /** The published chart this broadcast was built from, qualified with the plugin that offered it. Provenance rather than a binding: a chart is a fixed document, so it is read once and never topped up from */
213
216
  sourceChartId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"director.types.d.ts","sourceRoot":"","sources":["../../../src/director/types/director.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"director.types.d.ts","sourceRoot":"","sources":["../../../src/director/types/director.types.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -2396,6 +2396,46 @@ var PersonasClient = class {
2396
2396
  }
2397
2397
  };
2398
2398
 
2399
+ // src/playlists/types/station.playlists.types.ts
2400
+ import { DateTime as DateTime8 } from "luxon";
2401
+ var __dt8 = /* @__PURE__ */ __name((v, path) => {
2402
+ if (typeof v !== "string") {
2403
+ throw new TypeError(`ContractKit: expected an ISO 8601 string at '${path}', received ${typeof v}.`);
2404
+ }
2405
+ const d = DateTime8.fromISO(v);
2406
+ if (!d.isValid) throw new TypeError(`ContractKit: '${v}' at '${path}' is not a valid ISO 8601 datetime.`);
2407
+ return d;
2408
+ }, "__dt");
2409
+ function reviveStationPlaylist(raw) {
2410
+ const __o0 = raw;
2411
+ __o0["createdAt"] = __dt8(__o0["createdAt"], "StationPlaylist.createdAt");
2412
+ __o0["updatedAt"] = __dt8(__o0["updatedAt"], "StationPlaylist.updatedAt");
2413
+ return raw;
2414
+ }
2415
+ __name(reviveStationPlaylist, "reviveStationPlaylist");
2416
+ function reviveStationPlaylistList(raw) {
2417
+ const __o0 = raw;
2418
+ {
2419
+ const __a1 = __o0["playlists"];
2420
+ for (let __i2 = 0; __i2 < __a1.length; __i2++) {
2421
+ reviveStationPlaylist(__a1[__i2]);
2422
+ }
2423
+ }
2424
+ return raw;
2425
+ }
2426
+ __name(reviveStationPlaylistList, "reviveStationPlaylistList");
2427
+ function reviveStationPlaylistDetail(raw) {
2428
+ reviveStationPlaylist(raw);
2429
+ return raw;
2430
+ }
2431
+ __name(reviveStationPlaylistDetail, "reviveStationPlaylistDetail");
2432
+ function revivePlaylistImportResult(raw) {
2433
+ const __o0 = raw;
2434
+ reviveStationPlaylist(__o0["playlist"]);
2435
+ return raw;
2436
+ }
2437
+ __name(revivePlaylistImportResult, "revivePlaylistImportResult");
2438
+
2399
2439
  // src/playlists/playlists.client.ts
2400
2440
  var PlaylistsClient = class {
2401
2441
  static {
@@ -2461,6 +2501,102 @@ var PlaylistsClient = class {
2461
2501
  method: "POST"
2462
2502
  });
2463
2503
  }
2504
+ /**
2505
+ * @name List station playlists
2506
+ * @description Every playlist the station owns, newest first
2507
+ */
2508
+ async listStationPlaylists() {
2509
+ const result = await this.fetch(`/station-playlists`, {
2510
+ method: "GET"
2511
+ });
2512
+ return reviveStationPlaylistList(await parseJson(result));
2513
+ }
2514
+ /**
2515
+ * @name Get station playlist
2516
+ * @description One station playlist with its records in order, placeholders included
2517
+ */
2518
+ async getStationPlaylist(id) {
2519
+ const result = await this.fetch(`/station-playlists/${encodeURIComponent(id)}`, {
2520
+ method: "GET"
2521
+ });
2522
+ return reviveStationPlaylistDetail(await parseJson(result));
2523
+ }
2524
+ /**
2525
+ * @name Update station playlist
2526
+ * @description Renames a station playlist, or rewrites what it is for
2527
+ */
2528
+ async updateStationPlaylist(id, body) {
2529
+ const result = await this.fetch(`/station-playlists/${encodeURIComponent(id)}`, {
2530
+ method: "PATCH",
2531
+ headers: {
2532
+ "Content-Type": "application/json"
2533
+ },
2534
+ body: JSON.stringify(body, bigIntReplacer)
2535
+ });
2536
+ return reviveStationPlaylist(await parseJson(result));
2537
+ }
2538
+ /**
2539
+ * @name Delete station playlist
2540
+ * @description Deletes a station playlist. The records it named stay in the library
2541
+ */
2542
+ async deleteStationPlaylist(id) {
2543
+ await this.fetch(`/station-playlists/${encodeURIComponent(id)}`, {
2544
+ method: "DELETE"
2545
+ });
2546
+ }
2547
+ /**
2548
+ * @name Fill station playlist
2549
+ * @description Looks up the records this playlist names and the library does not hold, in the background, and adds the ones a provider has. The activity feed says how it went
2550
+ */
2551
+ async fillStationPlaylist(id) {
2552
+ await this.fetch(`/station-playlists/${encodeURIComponent(id)}/fill`, {
2553
+ method: "POST"
2554
+ });
2555
+ }
2556
+ /**
2557
+ * @name Export station playlist
2558
+ * @description One station playlist as a file another station can import
2559
+ */
2560
+ async exportStationPlaylist(id) {
2561
+ const result = await this.fetch(`/station-playlists/${encodeURIComponent(id)}/export`, {
2562
+ method: "GET"
2563
+ });
2564
+ const data = await parseJson(result);
2565
+ return {
2566
+ data,
2567
+ headers: {
2568
+ contentDisposition: result.headers.get("Content-Disposition") ?? void 0
2569
+ }
2570
+ };
2571
+ }
2572
+ /**
2573
+ * @name Preview playlist import
2574
+ * @description Reads a source and reports which of its records the library holds and which it would have to find. Writes nothing
2575
+ */
2576
+ async previewPlaylistImport(body) {
2577
+ const result = await this.fetch(`/station-playlists/import/preview`, {
2578
+ method: "POST",
2579
+ headers: {
2580
+ "Content-Type": "application/json"
2581
+ },
2582
+ body: JSON.stringify(body, bigIntReplacer)
2583
+ });
2584
+ return await parseJson(result);
2585
+ }
2586
+ /**
2587
+ * @name Import playlist
2588
+ * @description Makes a new station playlist from a source and answers with what it did
2589
+ */
2590
+ async importPlaylist(body) {
2591
+ const result = await this.fetch(`/station-playlists/import`, {
2592
+ method: "POST",
2593
+ headers: {
2594
+ "Content-Type": "application/json"
2595
+ },
2596
+ body: JSON.stringify(body, bigIntReplacer)
2597
+ });
2598
+ return revivePlaylistImportResult(await parseJson(result));
2599
+ }
2464
2600
  };
2465
2601
 
2466
2602
  // src/playout/playout.client.ts
@@ -2496,6 +2632,20 @@ var PlayoutClient = class {
2496
2632
  });
2497
2633
  return await parseJson(result);
2498
2634
  }
2635
+ /**
2636
+ * @name Play a station playlist
2637
+ * @description Loads a playlist the station owns into the running order and starts handing it to the player. The same replacement a plugin playlist makes, from records the library already holds
2638
+ */
2639
+ async playAStationPlaylist(body) {
2640
+ const result = await this.fetch(`/playout/station-playlist`, {
2641
+ method: "POST",
2642
+ headers: {
2643
+ "Content-Type": "application/json"
2644
+ },
2645
+ body: JSON.stringify(body, bigIntReplacer)
2646
+ });
2647
+ return await parseJson(result);
2648
+ }
2499
2649
  /**
2500
2650
  * @name Play a chart
2501
2651
  * @description Builds the running order from a published chart and starts handing it to the player. The same replacement a playlist makes, from a document somebody else ranked
@@ -2543,22 +2693,22 @@ var PlayoutClient = class {
2543
2693
  };
2544
2694
 
2545
2695
  // src/plugins/types/plugins.types.ts
2546
- import { DateTime as DateTime8 } from "luxon";
2547
- var __dt8 = /* @__PURE__ */ __name((v, path) => {
2696
+ import { DateTime as DateTime9 } from "luxon";
2697
+ var __dt9 = /* @__PURE__ */ __name((v, path) => {
2548
2698
  if (typeof v !== "string") {
2549
2699
  throw new TypeError(`ContractKit: expected an ISO 8601 string at '${path}', received ${typeof v}.`);
2550
2700
  }
2551
- const d = DateTime8.fromISO(v);
2701
+ const d = DateTime9.fromISO(v);
2552
2702
  if (!d.isValid) throw new TypeError(`ContractKit: '${v}' at '${path}' is not a valid ISO 8601 datetime.`);
2553
2703
  return d;
2554
2704
  }, "__dt");
2555
2705
  function revivePluginSummary(raw) {
2556
2706
  const __o0 = raw;
2557
2707
  if (__o0["firstEnabledAt"] != null) {
2558
- __o0["firstEnabledAt"] = __dt8(__o0["firstEnabledAt"], "PluginSummary.firstEnabledAt");
2708
+ __o0["firstEnabledAt"] = __dt9(__o0["firstEnabledAt"], "PluginSummary.firstEnabledAt");
2559
2709
  }
2560
2710
  if (__o0["nextProbeAt"] != null) {
2561
- __o0["nextProbeAt"] = __dt8(__o0["nextProbeAt"], "PluginSummary.nextProbeAt");
2711
+ __o0["nextProbeAt"] = __dt9(__o0["nextProbeAt"], "PluginSummary.nextProbeAt");
2562
2712
  }
2563
2713
  return raw;
2564
2714
  }
@@ -2875,19 +3025,19 @@ var PodcastsClient = class {
2875
3025
  };
2876
3026
 
2877
3027
  // src/productions/types/productions.types.ts
2878
- import { DateTime as DateTime9 } from "luxon";
2879
- var __dt9 = /* @__PURE__ */ __name((v, path) => {
3028
+ import { DateTime as DateTime10 } from "luxon";
3029
+ var __dt10 = /* @__PURE__ */ __name((v, path) => {
2880
3030
  if (typeof v !== "string") {
2881
3031
  throw new TypeError(`ContractKit: expected an ISO 8601 string at '${path}', received ${typeof v}.`);
2882
3032
  }
2883
- const d = DateTime9.fromISO(v);
3033
+ const d = DateTime10.fromISO(v);
2884
3034
  if (!d.isValid) throw new TypeError(`ContractKit: '${v}' at '${path}' is not a valid ISO 8601 datetime.`);
2885
3035
  return d;
2886
3036
  }, "__dt");
2887
3037
  function reviveProductionRequest(raw) {
2888
3038
  const __o0 = raw;
2889
3039
  if (__o0["scheduledFor"] != null) {
2890
- __o0["scheduledFor"] = __dt9(__o0["scheduledFor"], "ProductionRequest.scheduledFor");
3040
+ __o0["scheduledFor"] = __dt10(__o0["scheduledFor"], "ProductionRequest.scheduledFor");
2891
3041
  }
2892
3042
  return raw;
2893
3043
  }
@@ -2895,12 +3045,12 @@ __name(reviveProductionRequest, "reviveProductionRequest");
2895
3045
  function reviveProduction(raw) {
2896
3046
  const __o0 = raw;
2897
3047
  if (__o0["scheduledFor"] != null) {
2898
- __o0["scheduledFor"] = __dt9(__o0["scheduledFor"], "Production.scheduledFor");
3048
+ __o0["scheduledFor"] = __dt10(__o0["scheduledFor"], "Production.scheduledFor");
2899
3049
  }
2900
3050
  if (__o0["cancelledAt"] != null) {
2901
- __o0["cancelledAt"] = __dt9(__o0["cancelledAt"], "Production.cancelledAt");
3051
+ __o0["cancelledAt"] = __dt10(__o0["cancelledAt"], "Production.cancelledAt");
2902
3052
  }
2903
- __o0["createdAt"] = __dt9(__o0["createdAt"], "Production.createdAt");
3053
+ __o0["createdAt"] = __dt10(__o0["createdAt"], "Production.createdAt");
2904
3054
  return raw;
2905
3055
  }
2906
3056
  __name(reviveProduction, "reviveProduction");
@@ -2962,26 +3112,26 @@ var ProductionsClient = class {
2962
3112
  };
2963
3113
 
2964
3114
  // src/render/types/render.types.ts
2965
- import { DateTime as DateTime10 } from "luxon";
2966
- var __dt10 = /* @__PURE__ */ __name((v, path) => {
3115
+ import { DateTime as DateTime11 } from "luxon";
3116
+ var __dt11 = /* @__PURE__ */ __name((v, path) => {
2967
3117
  if (typeof v !== "string") {
2968
3118
  throw new TypeError(`ContractKit: expected an ISO 8601 string at '${path}', received ${typeof v}.`);
2969
3119
  }
2970
- const d = DateTime10.fromISO(v);
3120
+ const d = DateTime11.fromISO(v);
2971
3121
  if (!d.isValid) throw new TypeError(`ContractKit: '${v}' at '${path}' is not a valid ISO 8601 datetime.`);
2972
3122
  return d;
2973
3123
  }, "__dt");
2974
3124
  function revivePad(raw) {
2975
3125
  const __o0 = raw;
2976
3126
  if (__o0["lastUsedAt"] != null) {
2977
- __o0["lastUsedAt"] = __dt10(__o0["lastUsedAt"], "Pad.lastUsedAt");
3127
+ __o0["lastUsedAt"] = __dt11(__o0["lastUsedAt"], "Pad.lastUsedAt");
2978
3128
  }
2979
3129
  return raw;
2980
3130
  }
2981
3131
  __name(revivePad, "revivePad");
2982
3132
  function reviveScriptAttempt(raw) {
2983
3133
  const __o0 = raw;
2984
- __o0["at"] = __dt10(__o0["at"], "ScriptAttempt.at");
3134
+ __o0["at"] = __dt11(__o0["at"], "ScriptAttempt.at");
2985
3135
  return raw;
2986
3136
  }
2987
3137
  __name(reviveScriptAttempt, "reviveScriptAttempt");
@@ -3462,20 +3612,20 @@ var RenderClient = class {
3462
3612
  };
3463
3613
 
3464
3614
  // src/requests/types/requests.types.ts
3465
- import { DateTime as DateTime11 } from "luxon";
3466
- var __dt11 = /* @__PURE__ */ __name((v, path) => {
3615
+ import { DateTime as DateTime12 } from "luxon";
3616
+ var __dt12 = /* @__PURE__ */ __name((v, path) => {
3467
3617
  if (typeof v !== "string") {
3468
3618
  throw new TypeError(`ContractKit: expected an ISO 8601 string at '${path}', received ${typeof v}.`);
3469
3619
  }
3470
- const d = DateTime11.fromISO(v);
3620
+ const d = DateTime12.fromISO(v);
3471
3621
  if (!d.isValid) throw new TypeError(`ContractKit: '${v}' at '${path}' is not a valid ISO 8601 datetime.`);
3472
3622
  return d;
3473
3623
  }, "__dt");
3474
3624
  function reviveListenerRequest(raw) {
3475
3625
  const __o0 = raw;
3476
- __o0["createdAt"] = __dt11(__o0["createdAt"], "ListenerRequest.createdAt");
3626
+ __o0["createdAt"] = __dt12(__o0["createdAt"], "ListenerRequest.createdAt");
3477
3627
  if (__o0["airedAt"] != null) {
3478
- __o0["airedAt"] = __dt11(__o0["airedAt"], "ListenerRequest.airedAt");
3628
+ __o0["airedAt"] = __dt12(__o0["airedAt"], "ListenerRequest.airedAt");
3479
3629
  }
3480
3630
  return raw;
3481
3631
  }
@@ -3699,19 +3849,19 @@ var SettingsClient = class {
3699
3849
  };
3700
3850
 
3701
3851
  // src/station/types/logs.types.ts
3702
- import { DateTime as DateTime12 } from "luxon";
3703
- var __dt12 = /* @__PURE__ */ __name((v, path) => {
3852
+ import { DateTime as DateTime13 } from "luxon";
3853
+ var __dt13 = /* @__PURE__ */ __name((v, path) => {
3704
3854
  if (typeof v !== "string") {
3705
3855
  throw new TypeError(`ContractKit: expected an ISO 8601 string at '${path}', received ${typeof v}.`);
3706
3856
  }
3707
- const d = DateTime12.fromISO(v);
3857
+ const d = DateTime13.fromISO(v);
3708
3858
  if (!d.isValid) throw new TypeError(`ContractKit: '${v}' at '${path}' is not a valid ISO 8601 datetime.`);
3709
3859
  return d;
3710
3860
  }, "__dt");
3711
3861
  function reviveLogSource(raw) {
3712
3862
  const __o0 = raw;
3713
3863
  if (__o0["lastWriteAt"] != null) {
3714
- __o0["lastWriteAt"] = __dt12(__o0["lastWriteAt"], "LogSource.lastWriteAt");
3864
+ __o0["lastWriteAt"] = __dt13(__o0["lastWriteAt"], "LogSource.lastWriteAt");
3715
3865
  }
3716
3866
  return raw;
3717
3867
  }
@@ -3729,12 +3879,12 @@ function reviveLogSourceList(raw) {
3729
3879
  __name(reviveLogSourceList, "reviveLogSourceList");
3730
3880
 
3731
3881
  // src/station/types/station.types.ts
3732
- import { DateTime as DateTime13 } from "luxon";
3733
- var __dt13 = /* @__PURE__ */ __name((v, path) => {
3882
+ import { DateTime as DateTime14 } from "luxon";
3883
+ var __dt14 = /* @__PURE__ */ __name((v, path) => {
3734
3884
  if (typeof v !== "string") {
3735
3885
  throw new TypeError(`ContractKit: expected an ISO 8601 string at '${path}', received ${typeof v}.`);
3736
3886
  }
3737
- const d = DateTime13.fromISO(v);
3887
+ const d = DateTime14.fromISO(v);
3738
3888
  if (!d.isValid) throw new TypeError(`ContractKit: '${v}' at '${path}' is not a valid ISO 8601 datetime.`);
3739
3889
  return d;
3740
3890
  }, "__dt");
@@ -3742,15 +3892,15 @@ var __dtf = /* @__PURE__ */ __name((v, path, fmt) => {
3742
3892
  if (typeof v !== "string") {
3743
3893
  throw new TypeError(`ContractKit: expected a string at '${path}' in format ${fmt}, received ${typeof v}.`);
3744
3894
  }
3745
- const d = DateTime13.fromFormat(v, fmt);
3895
+ const d = DateTime14.fromFormat(v, fmt);
3746
3896
  if (!d.isValid) throw new TypeError(`ContractKit: '${v}' at '${path}' does not match format ${fmt}.`);
3747
3897
  return d;
3748
3898
  }, "__dtf");
3749
3899
  function reviveStationHeartbeat(raw) {
3750
3900
  const __o0 = raw;
3751
- __o0["startedAt"] = __dt13(__o0["startedAt"], "StationHeartbeat.startedAt");
3901
+ __o0["startedAt"] = __dt14(__o0["startedAt"], "StationHeartbeat.startedAt");
3752
3902
  if (__o0["lastBeat"] != null) {
3753
- __o0["lastBeat"] = __dt13(__o0["lastBeat"], "StationHeartbeat.lastBeat");
3903
+ __o0["lastBeat"] = __dt14(__o0["lastBeat"], "StationHeartbeat.lastBeat");
3754
3904
  }
3755
3905
  return raw;
3756
3906
  }
@@ -3765,7 +3915,7 @@ function reviveStationRelease(raw) {
3765
3915
  __name(reviveStationRelease, "reviveStationRelease");
3766
3916
  function reviveStationCheckup(raw) {
3767
3917
  const __o0 = raw;
3768
- __o0["readAt"] = __dt13(__o0["readAt"], "StationCheckup.readAt");
3918
+ __o0["readAt"] = __dt14(__o0["readAt"], "StationCheckup.readAt");
3769
3919
  if (__o0["heartbeats"] != null) {
3770
3920
  {
3771
3921
  const __a1 = __o0["heartbeats"];
@@ -3786,7 +3936,7 @@ function reviveStationReleases(raw) {
3786
3936
  }
3787
3937
  }
3788
3938
  if (__o0["checkedAt"] != null) {
3789
- __o0["checkedAt"] = __dt13(__o0["checkedAt"], "StationReleases.checkedAt");
3939
+ __o0["checkedAt"] = __dt14(__o0["checkedAt"], "StationReleases.checkedAt");
3790
3940
  }
3791
3941
  {
3792
3942
  const __a3 = __o0["available"];
@@ -3799,24 +3949,24 @@ function reviveStationReleases(raw) {
3799
3949
  __name(reviveStationReleases, "reviveStationReleases");
3800
3950
 
3801
3951
  // src/station/types/traces.types.ts
3802
- import { DateTime as DateTime14 } from "luxon";
3803
- var __dt14 = /* @__PURE__ */ __name((v, path) => {
3952
+ import { DateTime as DateTime15 } from "luxon";
3953
+ var __dt15 = /* @__PURE__ */ __name((v, path) => {
3804
3954
  if (typeof v !== "string") {
3805
3955
  throw new TypeError(`ContractKit: expected an ISO 8601 string at '${path}', received ${typeof v}.`);
3806
3956
  }
3807
- const d = DateTime14.fromISO(v);
3957
+ const d = DateTime15.fromISO(v);
3808
3958
  if (!d.isValid) throw new TypeError(`ContractKit: '${v}' at '${path}' is not a valid ISO 8601 datetime.`);
3809
3959
  return d;
3810
3960
  }, "__dt");
3811
3961
  function reviveTraceDecision(raw) {
3812
3962
  const __o0 = raw;
3813
- __o0["at"] = __dt14(__o0["at"], "TraceDecision.at");
3963
+ __o0["at"] = __dt15(__o0["at"], "TraceDecision.at");
3814
3964
  return raw;
3815
3965
  }
3816
3966
  __name(reviveTraceDecision, "reviveTraceDecision");
3817
3967
  function reviveTraceSpan(raw) {
3818
3968
  const __o0 = raw;
3819
- __o0["at"] = __dt14(__o0["at"], "TraceSpan.at");
3969
+ __o0["at"] = __dt15(__o0["at"], "TraceSpan.at");
3820
3970
  return raw;
3821
3971
  }
3822
3972
  __name(reviveTraceSpan, "reviveTraceSpan");
@@ -3963,18 +4113,18 @@ var StationClient = class {
3963
4113
  };
3964
4114
 
3965
4115
  // src/storage/types/storage.types.ts
3966
- import { DateTime as DateTime15 } from "luxon";
3967
- var __dt15 = /* @__PURE__ */ __name((v, path) => {
4116
+ import { DateTime as DateTime16 } from "luxon";
4117
+ var __dt16 = /* @__PURE__ */ __name((v, path) => {
3968
4118
  if (typeof v !== "string") {
3969
4119
  throw new TypeError(`ContractKit: expected an ISO 8601 string at '${path}', received ${typeof v}.`);
3970
4120
  }
3971
- const d = DateTime15.fromISO(v);
4121
+ const d = DateTime16.fromISO(v);
3972
4122
  if (!d.isValid) throw new TypeError(`ContractKit: '${v}' at '${path}' is not a valid ISO 8601 datetime.`);
3973
4123
  return d;
3974
4124
  }, "__dt");
3975
4125
  function reviveStorageReport(raw) {
3976
4126
  const __o0 = raw;
3977
- __o0["readAt"] = __dt15(__o0["readAt"], "StorageReport.readAt");
4127
+ __o0["readAt"] = __dt16(__o0["readAt"], "StorageReport.readAt");
3978
4128
  return raw;
3979
4129
  }
3980
4130
  __name(reviveStorageReport, "reviveStorageReport");
@@ -4311,6 +4461,7 @@ export {
4311
4461
  revivePad,
4312
4462
  revivePadList,
4313
4463
  revivePhoneFactorRegistrationResponse,
4464
+ revivePlaylistImportResult,
4314
4465
  revivePluginDetail,
4315
4466
  revivePluginImportResult,
4316
4467
  revivePluginSummary,
@@ -4323,6 +4474,9 @@ export {
4323
4474
  reviveSessionFactor,
4324
4475
  reviveStationCheckup,
4325
4476
  reviveStationHeartbeat,
4477
+ reviveStationPlaylist,
4478
+ reviveStationPlaylistDetail,
4479
+ reviveStationPlaylistList,
4326
4480
  reviveStationRelease,
4327
4481
  reviveStationReleases,
4328
4482
  reviveStepUpStartResponse,