@misofm/sdk 0.9.0 → 0.10.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 (275) hide show
  1. package/README.md +88 -56
  2. package/dist/client.d.ts +126 -18
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +210 -44
  5. package/dist/client.js.map +1 -1
  6. package/dist/contracts/composition_routed_stake/composition_routed_stake.d.ts +205 -0
  7. package/dist/contracts/composition_routed_stake/composition_routed_stake.d.ts.map +1 -0
  8. package/dist/contracts/composition_routed_stake/composition_routed_stake.js +184 -0
  9. package/dist/contracts/composition_routed_stake/composition_routed_stake.js.map +1 -0
  10. package/dist/contracts/composition_routed_stake/witness.d.ts +7 -0
  11. package/dist/contracts/composition_routed_stake/witness.d.ts.map +1 -0
  12. package/dist/contracts/composition_routed_stake/witness.js +9 -0
  13. package/dist/contracts/composition_routed_stake/witness.js.map +1 -0
  14. package/dist/contracts/composition_royalty_pool/composition_royalty_pool.d.ts +89 -28
  15. package/dist/contracts/composition_royalty_pool/composition_royalty_pool.d.ts.map +1 -1
  16. package/dist/contracts/composition_royalty_pool/composition_royalty_pool.js +84 -23
  17. package/dist/contracts/composition_royalty_pool/composition_royalty_pool.js.map +1 -1
  18. package/dist/contracts/composition_royalty_pool/witness.d.ts +6 -0
  19. package/dist/contracts/composition_royalty_pool/witness.d.ts.map +1 -0
  20. package/dist/contracts/composition_royalty_pool/witness.js +8 -0
  21. package/dist/contracts/composition_royalty_pool/witness.js.map +1 -0
  22. package/dist/contracts/genre/genre.d.ts +96 -0
  23. package/dist/contracts/genre/genre.d.ts.map +1 -0
  24. package/dist/contracts/genre/genre.js +107 -0
  25. package/dist/contracts/genre/genre.js.map +1 -0
  26. package/dist/contracts/recording_advisory/recording_advisory.d.ts +194 -0
  27. package/dist/contracts/recording_advisory/recording_advisory.d.ts.map +1 -0
  28. package/dist/contracts/recording_advisory/recording_advisory.js +204 -0
  29. package/dist/contracts/recording_advisory/recording_advisory.js.map +1 -0
  30. package/dist/contracts/recording_language/deps/language_code/language_code.d.ts +6 -0
  31. package/dist/contracts/recording_language/deps/language_code/language_code.d.ts.map +1 -0
  32. package/dist/contracts/recording_language/deps/language_code/language_code.js +8 -0
  33. package/dist/contracts/recording_language/deps/language_code/language_code.js.map +1 -0
  34. package/dist/contracts/recording_language/recording_language.d.ts +152 -0
  35. package/dist/contracts/recording_language/recording_language.d.ts.map +1 -0
  36. package/dist/contracts/recording_language/recording_language.js +149 -0
  37. package/dist/contracts/recording_language/recording_language.js.map +1 -0
  38. package/dist/contracts/recording_master_reference/deps/ori/walrus_data.d.ts +52 -0
  39. package/dist/contracts/recording_master_reference/deps/ori/walrus_data.d.ts.map +1 -0
  40. package/dist/contracts/recording_master_reference/deps/ori/walrus_data.js +37 -0
  41. package/dist/contracts/recording_master_reference/deps/ori/walrus_data.js.map +1 -0
  42. package/dist/contracts/recording_master_reference/recording_master_reference.d.ts +131 -0
  43. package/dist/contracts/recording_master_reference/recording_master_reference.d.ts.map +1 -0
  44. package/dist/contracts/recording_master_reference/recording_master_reference.js +121 -0
  45. package/dist/contracts/recording_master_reference/recording_master_reference.js.map +1 -0
  46. package/dist/contracts/recording_preview/deps/ori/walrus_data.d.ts +52 -0
  47. package/dist/contracts/recording_preview/deps/ori/walrus_data.d.ts.map +1 -0
  48. package/dist/contracts/recording_preview/deps/ori/walrus_data.js +37 -0
  49. package/dist/contracts/recording_preview/deps/ori/walrus_data.js.map +1 -0
  50. package/dist/contracts/recording_preview/recording_preview.d.ts +104 -0
  51. package/dist/contracts/recording_preview/recording_preview.d.ts.map +1 -0
  52. package/dist/contracts/recording_preview/recording_preview.js +94 -0
  53. package/dist/contracts/recording_preview/recording_preview.js.map +1 -0
  54. package/dist/contracts/recording_royalty_pool/recording_royalty_pool.d.ts +90 -28
  55. package/dist/contracts/recording_royalty_pool/recording_royalty_pool.d.ts.map +1 -1
  56. package/dist/contracts/recording_royalty_pool/recording_royalty_pool.js +84 -23
  57. package/dist/contracts/recording_royalty_pool/recording_royalty_pool.js.map +1 -1
  58. package/dist/contracts/recording_royalty_pool/witness.d.ts +6 -0
  59. package/dist/contracts/recording_royalty_pool/witness.d.ts.map +1 -0
  60. package/dist/contracts/recording_royalty_pool/witness.js +8 -0
  61. package/dist/contracts/recording_royalty_pool/witness.js.map +1 -0
  62. package/dist/contracts/release_description/release_description.d.ts +112 -0
  63. package/dist/contracts/release_description/release_description.d.ts.map +1 -0
  64. package/dist/contracts/release_description/release_description.js +123 -0
  65. package/dist/contracts/release_description/release_description.js.map +1 -0
  66. package/dist/contracts/release_dsp_link/release_dsp_link.d.ts +644 -0
  67. package/dist/contracts/release_dsp_link/release_dsp_link.d.ts.map +1 -0
  68. package/dist/contracts/release_dsp_link/release_dsp_link.js +556 -0
  69. package/dist/contracts/release_dsp_link/release_dsp_link.js.map +1 -0
  70. package/dist/contracts/release_genre/deps/per_track/per_track.d.ts +33 -0
  71. package/dist/contracts/release_genre/deps/per_track/per_track.d.ts.map +1 -0
  72. package/dist/contracts/release_genre/deps/per_track/per_track.js +32 -0
  73. package/dist/contracts/release_genre/deps/per_track/per_track.js.map +1 -0
  74. package/dist/contracts/release_genre/release_genre.d.ts +193 -0
  75. package/dist/contracts/release_genre/release_genre.d.ts.map +1 -0
  76. package/dist/contracts/release_genre/release_genre.js +207 -0
  77. package/dist/contracts/release_genre/release_genre.js.map +1 -0
  78. package/dist/contracts/release_kind/release_kind.d.ts +98 -0
  79. package/dist/contracts/release_kind/release_kind.d.ts.map +1 -0
  80. package/dist/contracts/release_kind/release_kind.js +109 -0
  81. package/dist/contracts/release_kind/release_kind.js.map +1 -0
  82. package/dist/contracts/release_revenue_distributor/release_revenue_distributor.d.ts +106 -0
  83. package/dist/contracts/release_revenue_distributor/release_revenue_distributor.d.ts.map +1 -0
  84. package/dist/contracts/release_revenue_distributor/release_revenue_distributor.js +113 -0
  85. package/dist/contracts/release_revenue_distributor/release_revenue_distributor.js.map +1 -0
  86. package/dist/contracts/release_revenue_distributor/witness.d.ts +7 -0
  87. package/dist/contracts/release_revenue_distributor/witness.d.ts.map +1 -0
  88. package/dist/contracts/release_revenue_distributor/witness.js +9 -0
  89. package/dist/contracts/release_revenue_distributor/witness.js.map +1 -0
  90. package/dist/contracts/release_snapshot_bundle/deps/ori/walrus_data.d.ts +52 -0
  91. package/dist/contracts/release_snapshot_bundle/deps/ori/walrus_data.d.ts.map +1 -0
  92. package/dist/contracts/release_snapshot_bundle/deps/ori/walrus_data.js +37 -0
  93. package/dist/contracts/release_snapshot_bundle/deps/ori/walrus_data.js.map +1 -0
  94. package/dist/contracts/release_snapshot_bundle/release_snapshot_bundle.d.ts +91 -0
  95. package/dist/contracts/release_snapshot_bundle/release_snapshot_bundle.d.ts.map +1 -0
  96. package/dist/contracts/release_snapshot_bundle/release_snapshot_bundle.js +91 -0
  97. package/dist/contracts/release_snapshot_bundle/release_snapshot_bundle.js.map +1 -0
  98. package/dist/contracts/routed_stake/deps/royalty_pool/stake.d.ts +54 -0
  99. package/dist/contracts/routed_stake/deps/royalty_pool/stake.d.ts.map +1 -0
  100. package/dist/contracts/routed_stake/deps/royalty_pool/stake.js +37 -0
  101. package/dist/contracts/routed_stake/deps/royalty_pool/stake.js.map +1 -0
  102. package/dist/contracts/routed_stake/deps/std/type_name.d.ts +18 -0
  103. package/dist/contracts/routed_stake/deps/std/type_name.d.ts.map +1 -0
  104. package/dist/contracts/routed_stake/deps/std/type_name.js +20 -0
  105. package/dist/contracts/routed_stake/deps/std/type_name.js.map +1 -0
  106. package/dist/contracts/routed_stake/deps/sui/balance.d.ts +13 -0
  107. package/dist/contracts/routed_stake/deps/sui/balance.d.ts.map +1 -0
  108. package/dist/contracts/routed_stake/deps/sui/balance.js +15 -0
  109. package/dist/contracts/routed_stake/deps/sui/balance.js.map +1 -0
  110. package/dist/contracts/routed_stake/deps/sui/vec_map.d.ts +37 -0
  111. package/dist/contracts/routed_stake/deps/sui/vec_map.d.ts.map +1 -0
  112. package/dist/contracts/routed_stake/deps/sui/vec_map.js +28 -0
  113. package/dist/contracts/routed_stake/deps/sui/vec_map.js.map +1 -0
  114. package/dist/contracts/routed_stake/routed_stake.d.ts +356 -0
  115. package/dist/contracts/routed_stake/routed_stake.d.ts.map +1 -0
  116. package/dist/contracts/routed_stake/routed_stake.js +311 -0
  117. package/dist/contracts/routed_stake/routed_stake.js.map +1 -0
  118. package/dist/contracts/royalty_pool/pool.d.ts +27 -17
  119. package/dist/contracts/royalty_pool/pool.d.ts.map +1 -1
  120. package/dist/contracts/royalty_pool/pool.js +26 -17
  121. package/dist/contracts/royalty_pool/pool.js.map +1 -1
  122. package/dist/contracts/vault/deps/sui/bag.d.ts +35 -0
  123. package/dist/contracts/vault/deps/sui/bag.d.ts.map +1 -0
  124. package/dist/contracts/vault/deps/sui/bag.js +37 -0
  125. package/dist/contracts/vault/deps/sui/bag.js.map +1 -0
  126. package/dist/contracts/vault/deps/sui/borrow.d.ts +20 -0
  127. package/dist/contracts/vault/deps/sui/borrow.d.ts.map +1 -0
  128. package/dist/contracts/vault/deps/sui/borrow.js +21 -0
  129. package/dist/contracts/vault/deps/sui/borrow.js.map +1 -0
  130. package/dist/contracts/vault/vault.d.ts +276 -0
  131. package/dist/contracts/vault/vault.d.ts.map +1 -0
  132. package/dist/contracts/vault/vault.js +274 -0
  133. package/dist/contracts/vault/vault.js.map +1 -0
  134. package/dist/contracts.d.ts +14 -2
  135. package/dist/contracts.d.ts.map +1 -1
  136. package/dist/contracts.js +16 -7
  137. package/dist/contracts.js.map +1 -1
  138. package/dist/cover.d.ts +17 -3
  139. package/dist/cover.d.ts.map +1 -1
  140. package/dist/cover.js +43 -20
  141. package/dist/cover.js.map +1 -1
  142. package/dist/credits.d.ts +31 -12
  143. package/dist/credits.d.ts.map +1 -1
  144. package/dist/credits.js +41 -25
  145. package/dist/credits.js.map +1 -1
  146. package/dist/deployments.d.ts +31 -57
  147. package/dist/deployments.d.ts.map +1 -1
  148. package/dist/deployments.js +5 -53
  149. package/dist/deployments.js.map +1 -1
  150. package/dist/index.d.ts +4 -2
  151. package/dist/index.d.ts.map +1 -1
  152. package/dist/index.js +6 -5
  153. package/dist/index.js.map +1 -1
  154. package/dist/pressing.d.ts +8 -7
  155. package/dist/pressing.d.ts.map +1 -1
  156. package/dist/pressing.js +91 -32
  157. package/dist/pressing.js.map +1 -1
  158. package/dist/read/artist.js +3 -3
  159. package/dist/read/artist.js.map +1 -1
  160. package/dist/read/catalog.d.ts +14 -9
  161. package/dist/read/catalog.d.ts.map +1 -1
  162. package/dist/read/catalog.js +71 -37
  163. package/dist/read/catalog.js.map +1 -1
  164. package/dist/read/client.d.ts +4 -2
  165. package/dist/read/client.d.ts.map +1 -1
  166. package/dist/read/client.js +15 -4
  167. package/dist/read/client.js.map +1 -1
  168. package/dist/read/config.d.ts +14 -11
  169. package/dist/read/config.d.ts.map +1 -1
  170. package/dist/read/config.js +10 -37
  171. package/dist/read/config.js.map +1 -1
  172. package/dist/read/index.d.ts +2 -2
  173. package/dist/read/index.d.ts.map +1 -1
  174. package/dist/read/index.js +1 -1
  175. package/dist/read/index.js.map +1 -1
  176. package/dist/read/receipts.d.ts +24 -7
  177. package/dist/read/receipts.d.ts.map +1 -1
  178. package/dist/read/receipts.js +78 -25
  179. package/dist/read/receipts.js.map +1 -1
  180. package/dist/read/types.d.ts +43 -25
  181. package/dist/read/types.d.ts.map +1 -1
  182. package/dist/read/types.js +2 -2
  183. package/dist/read/types.js.map +1 -1
  184. package/dist/recording-extensions.d.ts +37 -0
  185. package/dist/recording-extensions.d.ts.map +1 -0
  186. package/dist/recording-extensions.js +61 -0
  187. package/dist/recording-extensions.js.map +1 -0
  188. package/dist/release-extensions.d.ts +92 -0
  189. package/dist/release-extensions.d.ts.map +1 -0
  190. package/dist/release-extensions.js +175 -0
  191. package/dist/release-extensions.js.map +1 -0
  192. package/dist/release-graph.d.ts +17 -26
  193. package/dist/release-graph.d.ts.map +1 -1
  194. package/dist/release-graph.js +55 -49
  195. package/dist/release-graph.js.map +1 -1
  196. package/dist/transactions.d.ts +43 -24
  197. package/dist/transactions.d.ts.map +1 -1
  198. package/dist/transactions.js +48 -27
  199. package/dist/transactions.js.map +1 -1
  200. package/dist/vault.d.ts +268 -0
  201. package/dist/vault.d.ts.map +1 -0
  202. package/dist/vault.js +389 -0
  203. package/dist/vault.js.map +1 -0
  204. package/package.json +17 -11
  205. package/src/client.ts +428 -61
  206. package/src/contracts/composition_routed_stake/composition_routed_stake.ts +346 -0
  207. package/src/contracts/composition_routed_stake/witness.ts +11 -0
  208. package/src/contracts/composition_royalty_pool/composition_royalty_pool.ts +151 -35
  209. package/src/contracts/composition_royalty_pool/witness.ts +7 -0
  210. package/src/contracts/genre/genre.ts +151 -0
  211. package/src/contracts/recording_advisory/recording_advisory.ts +315 -0
  212. package/src/contracts/recording_language/deps/language_code/language_code.ts +7 -0
  213. package/src/contracts/recording_language/recording_language.ts +237 -0
  214. package/src/contracts/recording_master_reference/deps/ori/walrus_data.ts +36 -0
  215. package/src/contracts/recording_master_reference/recording_master_reference.ts +181 -0
  216. package/src/contracts/recording_preview/deps/ori/walrus_data.ts +36 -0
  217. package/src/contracts/recording_preview/recording_preview.ts +154 -0
  218. package/src/contracts/recording_royalty_pool/recording_royalty_pool.ts +152 -35
  219. package/src/contracts/recording_royalty_pool/witness.ts +7 -0
  220. package/src/contracts/release_description/release_description.ts +167 -0
  221. package/src/contracts/release_dsp_link/release_dsp_link.ts +813 -0
  222. package/src/contracts/release_genre/deps/per_track/per_track.ts +36 -0
  223. package/src/contracts/release_genre/release_genre.ts +314 -0
  224. package/src/contracts/release_kind/release_kind.ts +153 -0
  225. package/src/contracts/release_revenue_distributor/release_revenue_distributor.ts +178 -0
  226. package/src/contracts/release_revenue_distributor/witness.ts +11 -0
  227. package/src/contracts/release_snapshot_bundle/deps/ori/walrus_data.ts +36 -0
  228. package/src/contracts/release_snapshot_bundle/release_snapshot_bundle.ts +124 -0
  229. package/src/contracts/routed_stake/deps/royalty_pool/stake.ts +39 -0
  230. package/src/contracts/routed_stake/deps/std/type_name.ts +22 -0
  231. package/src/contracts/routed_stake/deps/sui/balance.ts +17 -0
  232. package/src/contracts/routed_stake/deps/sui/vec_map.ts +33 -0
  233. package/src/contracts/routed_stake/routed_stake.ts +508 -0
  234. package/src/contracts/royalty_pool/pool.ts +34 -24
  235. package/src/contracts/vault/deps/sui/bag.ts +39 -0
  236. package/src/contracts/vault/deps/sui/borrow.ts +25 -0
  237. package/src/contracts/vault/vault.ts +454 -0
  238. package/src/contracts.ts +17 -9
  239. package/src/cover.ts +62 -37
  240. package/src/credits.ts +64 -51
  241. package/src/deployments.ts +36 -97
  242. package/src/index.ts +11 -5
  243. package/src/pressing.ts +135 -39
  244. package/src/read/artist.ts +3 -3
  245. package/src/read/catalog.ts +99 -44
  246. package/src/read/client.ts +20 -4
  247. package/src/read/config.ts +23 -49
  248. package/src/read/index.ts +3 -1
  249. package/src/read/receipts.ts +103 -26
  250. package/src/read/types.ts +44 -27
  251. package/src/recording-extensions.ts +102 -0
  252. package/src/release-extensions.ts +286 -0
  253. package/src/release-graph.ts +68 -81
  254. package/src/transactions.ts +79 -53
  255. package/src/vault.ts +777 -0
  256. package/dist/contracts/miso_drop/drop.d.ts +0 -550
  257. package/dist/contracts/miso_drop/drop.d.ts.map +0 -1
  258. package/dist/contracts/miso_drop/drop.js +0 -523
  259. package/dist/contracts/miso_drop/drop.js.map +0 -1
  260. package/dist/contracts/release_registry/release_registry.d.ts +0 -114
  261. package/dist/contracts/release_registry/release_registry.d.ts.map +0 -1
  262. package/dist/contracts/release_registry/release_registry.js +0 -119
  263. package/dist/contracts/release_registry/release_registry.js.map +0 -1
  264. package/dist/drop.d.ts +0 -127
  265. package/dist/drop.d.ts.map +0 -1
  266. package/dist/drop.js +0 -202
  267. package/dist/drop.js.map +0 -1
  268. package/dist/extensions/royalty-pool.d.ts +0 -32
  269. package/dist/extensions/royalty-pool.d.ts.map +0 -1
  270. package/dist/extensions/royalty-pool.js +0 -33
  271. package/dist/extensions/royalty-pool.js.map +0 -1
  272. package/src/contracts/miso_drop/drop.ts +0 -798
  273. package/src/contracts/release_registry/release_registry.ts +0 -160
  274. package/src/drop.ts +0 -376
  275. package/src/extensions/royalty-pool.ts +0 -90
@@ -0,0 +1,556 @@
1
+ /**************************************************************
2
+ * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
3
+ **************************************************************/
4
+ /**
5
+ * Streaming deep links for a Miso release, one Digital Service Provider (DSP) at a
6
+ * time. Attaches `DspLinkData` records to a `miso::release::Release`: an
7
+ * album-level link per DSP, plus an optional per-track link per DSP.
8
+ *
9
+ * `DspLinkData` is a single built-in enum with one variant per DSP, holding that
10
+ * DSP's native identifier(s) — e.g. a Spotify album id, or Apple Music's
11
+ * `(storefront, album_id, track_id)`. URLs are never stored: a client rebuilds the
12
+ * public URL from the variant it reads back, so a DSP reshaping its URLs needs no
13
+ * on-chain change. Storage is keyed by the variant's platform code (a `u8`
14
+ * discriminant matching declaration order, via `platform()`), so each DSP occupies
15
+ * its own independent dynamic field on the release's `UID` — adding or clearing
16
+ * one DSP's link never touches another's.
17
+ *
18
+ * Two levels per DSP: the album-level link is the single `DspLinkData` stored
19
+ * under `ReleaseLinkKey(platform)`; the per-track links are a
20
+ * `PerTrack<Option<DspLinkData>>` stored under `TrackLinksKey(platform)` (one slot
21
+ * per track, aligned to the tracklist by construction). A track whose slot is
22
+ * `none` inherits the album-level link at the frontend.
23
+ *
24
+ * Streaming presence is presentation, not protocol-verifiable state, so it lives
25
+ * on the release (the consumer object), not the recording. All writes are gated by
26
+ * the `ReleaseAdminCap` via `uid_mut`; views are permissionless.
27
+ */
28
+ import { MoveTuple, MoveEnum, MoveStruct, normalizeMoveArguments } from '../utils/index.js';
29
+ import { bcs } from '@mysten/sui/bcs';
30
+ import {} from '@mysten/sui/transactions';
31
+ const $moduleName = '@local-pkg/release_dsp_link::release_dsp_link';
32
+ export const ReleaseLinkKey = new MoveTuple({ name: `${$moduleName}::ReleaseLinkKey`, fields: [bcs.u8()] });
33
+ export const TrackLinksKey = new MoveTuple({ name: `${$moduleName}::TrackLinksKey`, fields: [bcs.u8()] });
34
+ /**
35
+ * A link to a release (or one of its tracks) on a single DSP, one variant per
36
+ * platform. Which slot a value is stored in — the album-level slot or a per-track
37
+ * slot — decides whether it addresses the release or one track; most DSPs use the
38
+ * same identifier shape for both, which is why a variant doesn't carry an explicit
39
+ * album/track flag.
40
+ *
41
+ * **Variant order is frozen.** Storage keys off `platform()`, a `u8` discriminant
42
+ * matching declaration order (`Spotify = 0` … `YouTubeMusic = 7`). Sui's
43
+ * compatible-upgrade policy allows appending new enum variants but not reordering
44
+ * or removing existing ones, so a new platform is always appended at the end in a
45
+ * package upgrade — existing BCS variant indices, and therefore existing
46
+ * dynamic-field keys, stay stable.
47
+ */
48
+ export const DspLinkData = new MoveEnum({ name: `${$moduleName}::DspLinkData`, fields: {
49
+ /**
50
+ * Spotify addresses both albums and tracks by a single 22-char base62 id
51
+ * (`open.spotify.com/album/{id}` or `/track/{id}`); album-vs-track is chosen by
52
+ * where the link is stored, so one `id` field serves both.
53
+ */
54
+ Spotify: new MoveStruct({ name: `DspLinkData.Spotify`, fields: {
55
+ id: bcs.string()
56
+ } }),
57
+ /**
58
+ * Apple Music: an album is `music.apple.com/{storefront}/album/{album_id}`; a
59
+ * track within it adds the `?i={track_id}` selector. `storefront` is the
60
+ * two-letter region (e.g. `us`), and because a track link still needs the album
61
+ * id, the album id is always present. The optional `track_id` distinguishes the
62
+ * two forms — clients emit the track URL when it is set, the album URL otherwise.
63
+ * The canonical web URL carries a cosmetic name slug (`/album/{slug}/{album_id}`);
64
+ * only the trailing numeric `album_id` is stored, and Apple resolves the slug-less
65
+ * form.
66
+ */
67
+ AppleMusic: new MoveStruct({ name: `DspLinkData.AppleMusic`, fields: {
68
+ storefront: bcs.string(),
69
+ album_id: bcs.string(),
70
+ track_id: bcs.option(bcs.string())
71
+ } }),
72
+ /**
73
+ * Amazon Music: an album is `music.amazon.com/albums/{album_id}`; a track within
74
+ * it adds the `?trackAsin={track_id}` selector. Ids are ASINs (e.g. `B0064UPU4G`).
75
+ * The optional `track_id` distinguishes the two forms — clients emit the track URL
76
+ * when it is set, the album URL otherwise.
77
+ */
78
+ AmazonMusic: new MoveStruct({ name: `DspLinkData.AmazonMusic`, fields: {
79
+ album_id: bcs.string(),
80
+ track_id: bcs.option(bcs.string())
81
+ } }),
82
+ /**
83
+ * Bandcamp addresses by artist subdomain + slug: an album is
84
+ * `{subdomain}.bandcamp.com/album/{slug}` and a track is
85
+ * `{subdomain}.bandcamp.com/track/{slug}`. Album-vs-track is chosen by where the
86
+ * link is stored, so one `(subdomain, slug)` pair serves both.
87
+ */
88
+ Bandcamp: new MoveStruct({ name: `DspLinkData.Bandcamp`, fields: {
89
+ subdomain: bcs.string(),
90
+ slug: bcs.string()
91
+ } }),
92
+ /**
93
+ * Deezer addresses albums and tracks by a numeric id (`www.deezer.com/album/{id}`
94
+ * / `www.deezer.com/track/{id}`; a `/{locale}/` segment may appear but is
95
+ * optional). Album-vs-track is chosen by where the link is stored, so one `id`
96
+ * field serves both.
97
+ */
98
+ Deezer: new MoveStruct({ name: `DspLinkData.Deezer`, fields: {
99
+ id: bcs.string()
100
+ } }),
101
+ /**
102
+ * SoundCloud is slug-addressed, not numeric: an album/playlist is
103
+ * `soundcloud.com/{user}/sets/{slug}` and a track is
104
+ * `soundcloud.com/{user}/{slug}`. Album-vs-track is chosen by where the link is
105
+ * stored, so one `(user, slug)` pair serves both.
106
+ */
107
+ SoundCloud: new MoveStruct({ name: `DspLinkData.SoundCloud`, fields: {
108
+ user: bcs.string(),
109
+ slug: bcs.string()
110
+ } }),
111
+ /**
112
+ * Tidal addresses albums and tracks by a numeric id (`tidal.com/album/{id}` /
113
+ * `tidal.com/track/{id}`; the older `tidal.com/browse/album/{id}` form also
114
+ * resolves). Album-vs-track is chosen by where the link is stored, so one `id`
115
+ * field serves both.
116
+ */
117
+ Tidal: new MoveStruct({ name: `DspLinkData.Tidal`, fields: {
118
+ id: bcs.string()
119
+ } }),
120
+ /**
121
+ * YouTube Music: an album is a playlist (`music.youtube.com/playlist?list={id}`)
122
+ * and a track is a video (`music.youtube.com/watch?v={id}`). The `id` holds the
123
+ * playlist id at the release level and the video id per track; album-vs-track is
124
+ * chosen by where the link is stored, so one `id` field serves both.
125
+ */
126
+ YouTubeMusic: new MoveStruct({ name: `DspLinkData.YouTubeMusic`, fields: {
127
+ id: bcs.string()
128
+ } })
129
+ } });
130
+ export const ReleaseLinkSetEvent = new MoveStruct({ name: `${$moduleName}::ReleaseLinkSetEvent`, fields: {
131
+ release_id: bcs.Address,
132
+ link: DspLinkData
133
+ } });
134
+ export const ReleaseLinkClearedEvent = new MoveStruct({ name: `${$moduleName}::ReleaseLinkClearedEvent`, fields: {
135
+ release_id: bcs.Address,
136
+ platform: bcs.u8()
137
+ } });
138
+ export const TrackLinkSetEvent = new MoveStruct({ name: `${$moduleName}::TrackLinkSetEvent`, fields: {
139
+ release_id: bcs.Address,
140
+ platform: bcs.u8(),
141
+ track_index: bcs.u64(),
142
+ link: bcs.option(DspLinkData)
143
+ } });
144
+ export const TrackLinksClearedEvent = new MoveStruct({ name: `${$moduleName}::TrackLinksClearedEvent`, fields: {
145
+ release_id: bcs.Address,
146
+ platform: bcs.u8()
147
+ } });
148
+ /**
149
+ * The link's platform code — the `u8` discriminant clients pass to
150
+ * `clear_release_link`, `clear_track_link`, `clear_track_links`, and the view
151
+ * functions below.
152
+ */
153
+ export function platform(options) {
154
+ const packageAddress = options.package ?? '@local-pkg/release_dsp_link';
155
+ const argumentsTypes = [
156
+ null
157
+ ];
158
+ const parameterNames = ["self"];
159
+ return (tx) => tx.moveCall({
160
+ package: packageAddress,
161
+ module: 'release_dsp_link',
162
+ function: 'platform',
163
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
164
+ });
165
+ }
166
+ /** Platform code for `Spotify`. */
167
+ export function platformSpotify(options = {}) {
168
+ const packageAddress = options.package ?? '@local-pkg/release_dsp_link';
169
+ return (tx) => tx.moveCall({
170
+ package: packageAddress,
171
+ module: 'release_dsp_link',
172
+ function: 'platform_spotify',
173
+ });
174
+ }
175
+ /** Platform code for `AppleMusic`. */
176
+ export function platformAppleMusic(options = {}) {
177
+ const packageAddress = options.package ?? '@local-pkg/release_dsp_link';
178
+ return (tx) => tx.moveCall({
179
+ package: packageAddress,
180
+ module: 'release_dsp_link',
181
+ function: 'platform_apple_music',
182
+ });
183
+ }
184
+ /** Platform code for `AmazonMusic`. */
185
+ export function platformAmazonMusic(options = {}) {
186
+ const packageAddress = options.package ?? '@local-pkg/release_dsp_link';
187
+ return (tx) => tx.moveCall({
188
+ package: packageAddress,
189
+ module: 'release_dsp_link',
190
+ function: 'platform_amazon_music',
191
+ });
192
+ }
193
+ /** Platform code for `Bandcamp`. */
194
+ export function platformBandcamp(options = {}) {
195
+ const packageAddress = options.package ?? '@local-pkg/release_dsp_link';
196
+ return (tx) => tx.moveCall({
197
+ package: packageAddress,
198
+ module: 'release_dsp_link',
199
+ function: 'platform_bandcamp',
200
+ });
201
+ }
202
+ /** Platform code for `Deezer`. */
203
+ export function platformDeezer(options = {}) {
204
+ const packageAddress = options.package ?? '@local-pkg/release_dsp_link';
205
+ return (tx) => tx.moveCall({
206
+ package: packageAddress,
207
+ module: 'release_dsp_link',
208
+ function: 'platform_deezer',
209
+ });
210
+ }
211
+ /** Platform code for `SoundCloud`. */
212
+ export function platformSoundcloud(options = {}) {
213
+ const packageAddress = options.package ?? '@local-pkg/release_dsp_link';
214
+ return (tx) => tx.moveCall({
215
+ package: packageAddress,
216
+ module: 'release_dsp_link',
217
+ function: 'platform_soundcloud',
218
+ });
219
+ }
220
+ /** Platform code for `Tidal`. */
221
+ export function platformTidal(options = {}) {
222
+ const packageAddress = options.package ?? '@local-pkg/release_dsp_link';
223
+ return (tx) => tx.moveCall({
224
+ package: packageAddress,
225
+ module: 'release_dsp_link',
226
+ function: 'platform_tidal',
227
+ });
228
+ }
229
+ /** Platform code for `YouTubeMusic`. */
230
+ export function platformYoutubeMusic(options = {}) {
231
+ const packageAddress = options.package ?? '@local-pkg/release_dsp_link';
232
+ return (tx) => tx.moveCall({
233
+ package: packageAddress,
234
+ module: 'release_dsp_link',
235
+ function: 'platform_youtube_music',
236
+ });
237
+ }
238
+ /**
239
+ * Builds a Spotify link from its id. Aborts if `id` is empty or exceeds
240
+ * `MAX_SPOTIFY_ID_LENGTH`.
241
+ */
242
+ export function newSpotify(options) {
243
+ const packageAddress = options.package ?? '@local-pkg/release_dsp_link';
244
+ const argumentsTypes = [
245
+ '0x1::string::String'
246
+ ];
247
+ const parameterNames = ["id"];
248
+ return (tx) => tx.moveCall({
249
+ package: packageAddress,
250
+ module: 'release_dsp_link',
251
+ function: 'new_spotify',
252
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
253
+ });
254
+ }
255
+ /**
256
+ * Builds an Apple Music album link (no track selector). Aborts if `storefront` or
257
+ * `album_id` is empty or exceeds its maximum length.
258
+ */
259
+ export function newAppleMusicAlbum(options) {
260
+ const packageAddress = options.package ?? '@local-pkg/release_dsp_link';
261
+ const argumentsTypes = [
262
+ '0x1::string::String',
263
+ '0x1::string::String'
264
+ ];
265
+ const parameterNames = ["storefront", "albumId"];
266
+ return (tx) => tx.moveCall({
267
+ package: packageAddress,
268
+ module: 'release_dsp_link',
269
+ function: 'new_apple_music_album',
270
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
271
+ });
272
+ }
273
+ /**
274
+ * Builds an Apple Music track link — addresses `track_id` within its `album_id`.
275
+ * Aborts if any identifier is empty or exceeds its maximum length.
276
+ */
277
+ export function newAppleMusicTrack(options) {
278
+ const packageAddress = options.package ?? '@local-pkg/release_dsp_link';
279
+ const argumentsTypes = [
280
+ '0x1::string::String',
281
+ '0x1::string::String',
282
+ '0x1::string::String'
283
+ ];
284
+ const parameterNames = ["storefront", "albumId", "trackId"];
285
+ return (tx) => tx.moveCall({
286
+ package: packageAddress,
287
+ module: 'release_dsp_link',
288
+ function: 'new_apple_music_track',
289
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
290
+ });
291
+ }
292
+ /**
293
+ * Builds an Amazon Music album link (no track selector). Aborts if `album_id` is
294
+ * empty or exceeds `MAX_AMAZON_MUSIC_ALBUM_ID_LENGTH`.
295
+ */
296
+ export function newAmazonMusicAlbum(options) {
297
+ const packageAddress = options.package ?? '@local-pkg/release_dsp_link';
298
+ const argumentsTypes = [
299
+ '0x1::string::String'
300
+ ];
301
+ const parameterNames = ["albumId"];
302
+ return (tx) => tx.moveCall({
303
+ package: packageAddress,
304
+ module: 'release_dsp_link',
305
+ function: 'new_amazon_music_album',
306
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
307
+ });
308
+ }
309
+ /**
310
+ * Builds an Amazon Music track link — addresses `track_id` within its `album_id`.
311
+ * Aborts if either ASIN is empty or exceeds its maximum length.
312
+ */
313
+ export function newAmazonMusicTrack(options) {
314
+ const packageAddress = options.package ?? '@local-pkg/release_dsp_link';
315
+ const argumentsTypes = [
316
+ '0x1::string::String',
317
+ '0x1::string::String'
318
+ ];
319
+ const parameterNames = ["albumId", "trackId"];
320
+ return (tx) => tx.moveCall({
321
+ package: packageAddress,
322
+ module: 'release_dsp_link',
323
+ function: 'new_amazon_music_track',
324
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
325
+ });
326
+ }
327
+ /**
328
+ * Builds a Bandcamp link. Aborts if `subdomain` or `slug` is empty or exceeds its
329
+ * maximum length.
330
+ */
331
+ export function newBandcamp(options) {
332
+ const packageAddress = options.package ?? '@local-pkg/release_dsp_link';
333
+ const argumentsTypes = [
334
+ '0x1::string::String',
335
+ '0x1::string::String'
336
+ ];
337
+ const parameterNames = ["subdomain", "slug"];
338
+ return (tx) => tx.moveCall({
339
+ package: packageAddress,
340
+ module: 'release_dsp_link',
341
+ function: 'new_bandcamp',
342
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
343
+ });
344
+ }
345
+ /**
346
+ * Builds a Deezer link from its id. Aborts if `id` is empty or exceeds
347
+ * `MAX_DEEZER_ID_LENGTH`.
348
+ */
349
+ export function newDeezer(options) {
350
+ const packageAddress = options.package ?? '@local-pkg/release_dsp_link';
351
+ const argumentsTypes = [
352
+ '0x1::string::String'
353
+ ];
354
+ const parameterNames = ["id"];
355
+ return (tx) => tx.moveCall({
356
+ package: packageAddress,
357
+ module: 'release_dsp_link',
358
+ function: 'new_deezer',
359
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
360
+ });
361
+ }
362
+ /**
363
+ * Builds a SoundCloud link. Aborts if `user` or `slug` is empty or exceeds its
364
+ * maximum length.
365
+ */
366
+ export function newSoundcloud(options) {
367
+ const packageAddress = options.package ?? '@local-pkg/release_dsp_link';
368
+ const argumentsTypes = [
369
+ '0x1::string::String',
370
+ '0x1::string::String'
371
+ ];
372
+ const parameterNames = ["user", "slug"];
373
+ return (tx) => tx.moveCall({
374
+ package: packageAddress,
375
+ module: 'release_dsp_link',
376
+ function: 'new_soundcloud',
377
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
378
+ });
379
+ }
380
+ /**
381
+ * Builds a Tidal link from its id. Aborts if `id` is empty or exceeds
382
+ * `MAX_TIDAL_ID_LENGTH`.
383
+ */
384
+ export function newTidal(options) {
385
+ const packageAddress = options.package ?? '@local-pkg/release_dsp_link';
386
+ const argumentsTypes = [
387
+ '0x1::string::String'
388
+ ];
389
+ const parameterNames = ["id"];
390
+ return (tx) => tx.moveCall({
391
+ package: packageAddress,
392
+ module: 'release_dsp_link',
393
+ function: 'new_tidal',
394
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
395
+ });
396
+ }
397
+ /**
398
+ * Builds a YouTube Music link from its id. Aborts if `id` is empty or exceeds
399
+ * `MAX_YOUTUBE_MUSIC_ID_LENGTH`.
400
+ */
401
+ export function newYoutubeMusic(options) {
402
+ const packageAddress = options.package ?? '@local-pkg/release_dsp_link';
403
+ const argumentsTypes = [
404
+ '0x1::string::String'
405
+ ];
406
+ const parameterNames = ["id"];
407
+ return (tx) => tx.moveCall({
408
+ package: packageAddress,
409
+ module: 'release_dsp_link',
410
+ function: 'new_youtube_music',
411
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
412
+ });
413
+ }
414
+ /**
415
+ * Sets (or replaces) a DSP's album-level link. The platform is derived from `link`
416
+ * itself. Per-track links are untouched.
417
+ */
418
+ export function setReleaseLink(options) {
419
+ const packageAddress = options.package ?? '@local-pkg/release_dsp_link';
420
+ const argumentsTypes = [
421
+ null,
422
+ null,
423
+ null
424
+ ];
425
+ const parameterNames = ["self", "cap", "link"];
426
+ return (tx) => tx.moveCall({
427
+ package: packageAddress,
428
+ module: 'release_dsp_link',
429
+ function: 'set_release_link',
430
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
431
+ });
432
+ }
433
+ /** Clears a DSP's album-level link. No-op if unset. */
434
+ export function clearReleaseLink(options) {
435
+ const packageAddress = options.package ?? '@local-pkg/release_dsp_link';
436
+ const argumentsTypes = [
437
+ null,
438
+ null,
439
+ 'u8'
440
+ ];
441
+ const parameterNames = ["self", "cap", "platform"];
442
+ return (tx) => tx.moveCall({
443
+ package: packageAddress,
444
+ module: 'release_dsp_link',
445
+ function: 'clear_release_link',
446
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
447
+ });
448
+ }
449
+ /**
450
+ * Sets (or replaces) a DSP's link for one track (by tracklist index). The platform
451
+ * is derived from `link` itself. Aborts if the index is out of range.
452
+ */
453
+ export function setTrackLink(options) {
454
+ const packageAddress = options.package ?? '@local-pkg/release_dsp_link';
455
+ const argumentsTypes = [
456
+ null,
457
+ null,
458
+ 'u64',
459
+ null
460
+ ];
461
+ const parameterNames = ["self", "cap", "trackIndex", "link"];
462
+ return (tx) => tx.moveCall({
463
+ package: packageAddress,
464
+ module: 'release_dsp_link',
465
+ function: 'set_track_link',
466
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
467
+ });
468
+ }
469
+ /**
470
+ * Clears a DSP's link for one track (the track falls back to the album-level
471
+ * link). No-op if no per-track array exists for this platform. Aborts if the index
472
+ * is out of range (when an array exists).
473
+ */
474
+ export function clearTrackLink(options) {
475
+ const packageAddress = options.package ?? '@local-pkg/release_dsp_link';
476
+ const argumentsTypes = [
477
+ null,
478
+ null,
479
+ 'u8',
480
+ 'u64'
481
+ ];
482
+ const parameterNames = ["self", "cap", "platform", "trackIndex"];
483
+ return (tx) => tx.moveCall({
484
+ package: packageAddress,
485
+ module: 'release_dsp_link',
486
+ function: 'clear_track_link',
487
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
488
+ });
489
+ }
490
+ /** Removes a DSP's entire per-track array. No-op if absent. */
491
+ export function clearTrackLinks(options) {
492
+ const packageAddress = options.package ?? '@local-pkg/release_dsp_link';
493
+ const argumentsTypes = [
494
+ null,
495
+ null,
496
+ 'u8'
497
+ ];
498
+ const parameterNames = ["self", "cap", "platform"];
499
+ return (tx) => tx.moveCall({
500
+ package: packageAddress,
501
+ module: 'release_dsp_link',
502
+ function: 'clear_track_links',
503
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
504
+ });
505
+ }
506
+ /** Whether a DSP's album-level link is set. */
507
+ export function hasReleaseLink(options) {
508
+ const packageAddress = options.package ?? '@local-pkg/release_dsp_link';
509
+ const argumentsTypes = [
510
+ null,
511
+ 'u8'
512
+ ];
513
+ const parameterNames = ["self", "platform"];
514
+ return (tx) => tx.moveCall({
515
+ package: packageAddress,
516
+ module: 'release_dsp_link',
517
+ function: 'has_release_link',
518
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
519
+ });
520
+ }
521
+ /** A DSP's album-level link, if set. */
522
+ export function releaseLink(options) {
523
+ const packageAddress = options.package ?? '@local-pkg/release_dsp_link';
524
+ const argumentsTypes = [
525
+ null,
526
+ 'u8'
527
+ ];
528
+ const parameterNames = ["self", "platform"];
529
+ return (tx) => tx.moveCall({
530
+ package: packageAddress,
531
+ module: 'release_dsp_link',
532
+ function: 'release_link',
533
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
534
+ });
535
+ }
536
+ /**
537
+ * A DSP's link for one track, if set. An unset slot — or no array at all — yields
538
+ * `none`, meaning the track inherits the album-level link. Aborts if the index is
539
+ * out of range (when an array exists).
540
+ */
541
+ export function trackLink(options) {
542
+ const packageAddress = options.package ?? '@local-pkg/release_dsp_link';
543
+ const argumentsTypes = [
544
+ null,
545
+ 'u8',
546
+ 'u64'
547
+ ];
548
+ const parameterNames = ["self", "platform", "trackIndex"];
549
+ return (tx) => tx.moveCall({
550
+ package: packageAddress,
551
+ module: 'release_dsp_link',
552
+ function: 'track_link',
553
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
554
+ });
555
+ }
556
+ //# sourceMappingURL=release_dsp_link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release_dsp_link.js","sourceRoot":"","sources":["../../../src/contracts/release_dsp_link/release_dsp_link.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**************************************************************
2
+ * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
3
+ **************************************************************/
4
+ /**
5
+ * `PerTrack<Data>` — one `Data` value per track of a release, held in tracklist
6
+ * order.
7
+ *
8
+ * A release's tracks are a flat, ordered `vector<Track>`, frozen at release
9
+ * creation. `PerTrack` is the parallel array to that list: index `i` holds the
10
+ * payload for the `i`-th track. It is the shared shape behind per-track release
11
+ * metadata such as cover art (`PerTrack<Option<CoverArt>>`) or genre — and the
12
+ * natural home for display grouping (disc/side boundaries), which core
13
+ * deliberately does not store.
14
+ *
15
+ * Construction reads the `Release` and sizes/validates the array against the
16
+ * tracklist length, so a `PerTrack` is parallel to the tracklist _by construction_
17
+ * — an extension cannot attach a misaligned array. Because a release's tracklist
18
+ * is frozen at creation, that alignment holds for the release's whole life.
19
+ */
20
+ import { type BcsType } from '@mysten/sui/bcs';
21
+ import { MoveTuple } from '../../../utils/index.js';
22
+ /**
23
+ * One `Data` per track, indexed by the release's tracklist position. `Data` is the
24
+ * per-track payload — e.g. `CoverArt` when every track carries one, or
25
+ * `Option<CoverArt>` for override-style metadata layered over an album-level
26
+ * default.
27
+ */
28
+ export declare function PerTrack<Data extends BcsType<any>>(...typeParameters: [
29
+ Data
30
+ ]): MoveTuple<readonly [BcsType<import("@mysten/bcs").InferBcsType<Data>[], Iterable<import("@mysten/bcs").InferBcsInput<Data>> & {
31
+ length: number;
32
+ }, string>], `per_track::per_track::PerTrack<${Data["name"]}>`>;
33
+ //# sourceMappingURL=per_track.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"per_track.d.ts","sourceRoot":"","sources":["../../../../../src/contracts/release_genre/deps/per_track/per_track.ts"],"names":[],"mappings":"AAAA;;gEAEgE;AAGhE;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAO,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,SAAS,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,cAAc,EAAE;IACnE,IAAI;CACP;;gEAEA"}
@@ -0,0 +1,32 @@
1
+ /**************************************************************
2
+ * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
3
+ **************************************************************/
4
+ /**
5
+ * `PerTrack<Data>` — one `Data` value per track of a release, held in tracklist
6
+ * order.
7
+ *
8
+ * A release's tracks are a flat, ordered `vector<Track>`, frozen at release
9
+ * creation. `PerTrack` is the parallel array to that list: index `i` holds the
10
+ * payload for the `i`-th track. It is the shared shape behind per-track release
11
+ * metadata such as cover art (`PerTrack<Option<CoverArt>>`) or genre — and the
12
+ * natural home for display grouping (disc/side boundaries), which core
13
+ * deliberately does not store.
14
+ *
15
+ * Construction reads the `Release` and sizes/validates the array against the
16
+ * tracklist length, so a `PerTrack` is parallel to the tracklist _by construction_
17
+ * — an extension cannot attach a misaligned array. Because a release's tracklist
18
+ * is frozen at creation, that alignment holds for the release's whole life.
19
+ */
20
+ import { bcs } from '@mysten/sui/bcs';
21
+ import { MoveTuple } from '../../../utils/index.js';
22
+ const $moduleName = 'per_track::per_track';
23
+ /**
24
+ * One `Data` per track, indexed by the release's tracklist position. `Data` is the
25
+ * per-track payload — e.g. `CoverArt` when every track carries one, or
26
+ * `Option<CoverArt>` for override-style metadata layered over an album-level
27
+ * default.
28
+ */
29
+ export function PerTrack(...typeParameters) {
30
+ return new MoveTuple({ name: `${$moduleName}::PerTrack<${typeParameters[0].name}>`, fields: [bcs.vector(typeParameters[0])] });
31
+ }
32
+ //# sourceMappingURL=per_track.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"per_track.js","sourceRoot":"","sources":["../../../../../src/contracts/release_genre/deps/per_track/per_track.ts"],"names":[],"mappings":"AAAA;;gEAEgE;AAGhE;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAgB,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,MAAM,WAAW,GAAG,sBAAsB,CAAC;AAC3C;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAA4B,GAAG,cAEtD;IACG,OAAO,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,WAAW,cAAc,cAAc,CAAC,CAAC,CAAC,CAAC,IAAoB,GAAG,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACnJ,CAAC"}