@misofm/sdk 0.9.0 → 0.11.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 (265) hide show
  1. package/README.md +88 -56
  2. package/dist/client.d.ts +121 -18
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +200 -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/routed_stake/deps/royalty_pool/stake.d.ts +54 -0
  91. package/dist/contracts/routed_stake/deps/royalty_pool/stake.d.ts.map +1 -0
  92. package/dist/contracts/routed_stake/deps/royalty_pool/stake.js +37 -0
  93. package/dist/contracts/routed_stake/deps/royalty_pool/stake.js.map +1 -0
  94. package/dist/contracts/routed_stake/deps/std/type_name.d.ts +18 -0
  95. package/dist/contracts/routed_stake/deps/std/type_name.d.ts.map +1 -0
  96. package/dist/contracts/routed_stake/deps/std/type_name.js +20 -0
  97. package/dist/contracts/routed_stake/deps/std/type_name.js.map +1 -0
  98. package/dist/contracts/routed_stake/deps/sui/balance.d.ts +13 -0
  99. package/dist/contracts/routed_stake/deps/sui/balance.d.ts.map +1 -0
  100. package/dist/contracts/routed_stake/deps/sui/balance.js +15 -0
  101. package/dist/contracts/routed_stake/deps/sui/balance.js.map +1 -0
  102. package/dist/contracts/routed_stake/deps/sui/vec_map.d.ts +37 -0
  103. package/dist/contracts/routed_stake/deps/sui/vec_map.d.ts.map +1 -0
  104. package/dist/contracts/routed_stake/deps/sui/vec_map.js +28 -0
  105. package/dist/contracts/routed_stake/deps/sui/vec_map.js.map +1 -0
  106. package/dist/contracts/routed_stake/routed_stake.d.ts +356 -0
  107. package/dist/contracts/routed_stake/routed_stake.d.ts.map +1 -0
  108. package/dist/contracts/routed_stake/routed_stake.js +311 -0
  109. package/dist/contracts/routed_stake/routed_stake.js.map +1 -0
  110. package/dist/contracts/royalty_pool/pool.d.ts +27 -17
  111. package/dist/contracts/royalty_pool/pool.d.ts.map +1 -1
  112. package/dist/contracts/royalty_pool/pool.js +26 -17
  113. package/dist/contracts/royalty_pool/pool.js.map +1 -1
  114. package/dist/contracts/vault/deps/sui/bag.d.ts +35 -0
  115. package/dist/contracts/vault/deps/sui/bag.d.ts.map +1 -0
  116. package/dist/contracts/vault/deps/sui/bag.js +37 -0
  117. package/dist/contracts/vault/deps/sui/bag.js.map +1 -0
  118. package/dist/contracts/vault/deps/sui/borrow.d.ts +20 -0
  119. package/dist/contracts/vault/deps/sui/borrow.d.ts.map +1 -0
  120. package/dist/contracts/vault/deps/sui/borrow.js +21 -0
  121. package/dist/contracts/vault/deps/sui/borrow.js.map +1 -0
  122. package/dist/contracts/vault/vault.d.ts +276 -0
  123. package/dist/contracts/vault/vault.d.ts.map +1 -0
  124. package/dist/contracts/vault/vault.js +274 -0
  125. package/dist/contracts/vault/vault.js.map +1 -0
  126. package/dist/contracts.d.ts +13 -2
  127. package/dist/contracts.d.ts.map +1 -1
  128. package/dist/contracts.js +15 -7
  129. package/dist/contracts.js.map +1 -1
  130. package/dist/cover.d.ts +17 -3
  131. package/dist/cover.d.ts.map +1 -1
  132. package/dist/cover.js +43 -20
  133. package/dist/cover.js.map +1 -1
  134. package/dist/credits.d.ts +31 -12
  135. package/dist/credits.d.ts.map +1 -1
  136. package/dist/credits.js +41 -25
  137. package/dist/credits.js.map +1 -1
  138. package/dist/deployments.d.ts +30 -57
  139. package/dist/deployments.d.ts.map +1 -1
  140. package/dist/deployments.js +5 -53
  141. package/dist/deployments.js.map +1 -1
  142. package/dist/index.d.ts +4 -2
  143. package/dist/index.d.ts.map +1 -1
  144. package/dist/index.js +6 -5
  145. package/dist/index.js.map +1 -1
  146. package/dist/pressing.d.ts +8 -7
  147. package/dist/pressing.d.ts.map +1 -1
  148. package/dist/pressing.js +91 -32
  149. package/dist/pressing.js.map +1 -1
  150. package/dist/read/artist.js +3 -3
  151. package/dist/read/artist.js.map +1 -1
  152. package/dist/read/catalog.d.ts +14 -9
  153. package/dist/read/catalog.d.ts.map +1 -1
  154. package/dist/read/catalog.js +71 -37
  155. package/dist/read/catalog.js.map +1 -1
  156. package/dist/read/client.d.ts +4 -2
  157. package/dist/read/client.d.ts.map +1 -1
  158. package/dist/read/client.js +15 -4
  159. package/dist/read/client.js.map +1 -1
  160. package/dist/read/config.d.ts +14 -11
  161. package/dist/read/config.d.ts.map +1 -1
  162. package/dist/read/config.js +10 -37
  163. package/dist/read/config.js.map +1 -1
  164. package/dist/read/index.d.ts +2 -2
  165. package/dist/read/index.d.ts.map +1 -1
  166. package/dist/read/index.js +1 -1
  167. package/dist/read/index.js.map +1 -1
  168. package/dist/read/receipts.d.ts +24 -7
  169. package/dist/read/receipts.d.ts.map +1 -1
  170. package/dist/read/receipts.js +78 -25
  171. package/dist/read/receipts.js.map +1 -1
  172. package/dist/read/types.d.ts +43 -25
  173. package/dist/read/types.d.ts.map +1 -1
  174. package/dist/read/types.js +2 -2
  175. package/dist/read/types.js.map +1 -1
  176. package/dist/recording-extensions.d.ts +37 -0
  177. package/dist/recording-extensions.d.ts.map +1 -0
  178. package/dist/recording-extensions.js +61 -0
  179. package/dist/recording-extensions.js.map +1 -0
  180. package/dist/release-extensions.d.ts +84 -0
  181. package/dist/release-extensions.d.ts.map +1 -0
  182. package/dist/release-extensions.js +160 -0
  183. package/dist/release-extensions.js.map +1 -0
  184. package/dist/release-graph.d.ts +17 -26
  185. package/dist/release-graph.d.ts.map +1 -1
  186. package/dist/release-graph.js +55 -49
  187. package/dist/release-graph.js.map +1 -1
  188. package/dist/transactions.d.ts +43 -24
  189. package/dist/transactions.d.ts.map +1 -1
  190. package/dist/transactions.js +48 -27
  191. package/dist/transactions.js.map +1 -1
  192. package/dist/vault.d.ts +268 -0
  193. package/dist/vault.d.ts.map +1 -0
  194. package/dist/vault.js +389 -0
  195. package/dist/vault.js.map +1 -0
  196. package/package.json +17 -11
  197. package/src/client.ts +399 -61
  198. package/src/contracts/composition_routed_stake/composition_routed_stake.ts +346 -0
  199. package/src/contracts/composition_routed_stake/witness.ts +11 -0
  200. package/src/contracts/composition_royalty_pool/composition_royalty_pool.ts +151 -35
  201. package/src/contracts/composition_royalty_pool/witness.ts +7 -0
  202. package/src/contracts/genre/genre.ts +151 -0
  203. package/src/contracts/recording_advisory/recording_advisory.ts +315 -0
  204. package/src/contracts/recording_language/deps/language_code/language_code.ts +7 -0
  205. package/src/contracts/recording_language/recording_language.ts +237 -0
  206. package/src/contracts/recording_master_reference/deps/ori/walrus_data.ts +36 -0
  207. package/src/contracts/recording_master_reference/recording_master_reference.ts +181 -0
  208. package/src/contracts/recording_preview/deps/ori/walrus_data.ts +36 -0
  209. package/src/contracts/recording_preview/recording_preview.ts +154 -0
  210. package/src/contracts/recording_royalty_pool/recording_royalty_pool.ts +152 -35
  211. package/src/contracts/recording_royalty_pool/witness.ts +7 -0
  212. package/src/contracts/release_description/release_description.ts +167 -0
  213. package/src/contracts/release_dsp_link/release_dsp_link.ts +813 -0
  214. package/src/contracts/release_genre/deps/per_track/per_track.ts +36 -0
  215. package/src/contracts/release_genre/release_genre.ts +314 -0
  216. package/src/contracts/release_kind/release_kind.ts +153 -0
  217. package/src/contracts/release_revenue_distributor/release_revenue_distributor.ts +178 -0
  218. package/src/contracts/release_revenue_distributor/witness.ts +11 -0
  219. package/src/contracts/routed_stake/deps/royalty_pool/stake.ts +39 -0
  220. package/src/contracts/routed_stake/deps/std/type_name.ts +22 -0
  221. package/src/contracts/routed_stake/deps/sui/balance.ts +17 -0
  222. package/src/contracts/routed_stake/deps/sui/vec_map.ts +33 -0
  223. package/src/contracts/routed_stake/routed_stake.ts +508 -0
  224. package/src/contracts/royalty_pool/pool.ts +34 -24
  225. package/src/contracts/vault/deps/sui/bag.ts +39 -0
  226. package/src/contracts/vault/deps/sui/borrow.ts +25 -0
  227. package/src/contracts/vault/vault.ts +454 -0
  228. package/src/contracts.ts +16 -9
  229. package/src/cover.ts +62 -37
  230. package/src/credits.ts +64 -51
  231. package/src/deployments.ts +35 -97
  232. package/src/index.ts +11 -5
  233. package/src/pressing.ts +135 -39
  234. package/src/read/artist.ts +3 -3
  235. package/src/read/catalog.ts +99 -44
  236. package/src/read/client.ts +20 -4
  237. package/src/read/config.ts +23 -49
  238. package/src/read/index.ts +3 -1
  239. package/src/read/receipts.ts +103 -26
  240. package/src/read/types.ts +44 -27
  241. package/src/recording-extensions.ts +102 -0
  242. package/src/release-extensions.ts +261 -0
  243. package/src/release-graph.ts +68 -81
  244. package/src/transactions.ts +79 -53
  245. package/src/vault.ts +777 -0
  246. package/dist/contracts/miso_drop/drop.d.ts +0 -550
  247. package/dist/contracts/miso_drop/drop.d.ts.map +0 -1
  248. package/dist/contracts/miso_drop/drop.js +0 -523
  249. package/dist/contracts/miso_drop/drop.js.map +0 -1
  250. package/dist/contracts/release_registry/release_registry.d.ts +0 -114
  251. package/dist/contracts/release_registry/release_registry.d.ts.map +0 -1
  252. package/dist/contracts/release_registry/release_registry.js +0 -119
  253. package/dist/contracts/release_registry/release_registry.js.map +0 -1
  254. package/dist/drop.d.ts +0 -127
  255. package/dist/drop.d.ts.map +0 -1
  256. package/dist/drop.js +0 -202
  257. package/dist/drop.js.map +0 -1
  258. package/dist/extensions/royalty-pool.d.ts +0 -32
  259. package/dist/extensions/royalty-pool.d.ts.map +0 -1
  260. package/dist/extensions/royalty-pool.js +0 -33
  261. package/dist/extensions/royalty-pool.js.map +0 -1
  262. package/src/contracts/miso_drop/drop.ts +0 -798
  263. package/src/contracts/release_registry/release_registry.ts +0 -160
  264. package/src/drop.ts +0 -376
  265. package/src/extensions/royalty-pool.ts +0 -90
package/src/client.ts CHANGED
@@ -39,7 +39,26 @@ import {
39
39
 
40
40
  import * as listingContract from "./contracts/miso_pressing/listing.ts";
41
41
  import * as pressingContract from "./contracts/miso_pressing/pressing.ts";
42
- import * as releaseRegistry from "./contracts/release_registry/release_registry.ts";
42
+ import * as genreContract from "./contracts/genre/genre.ts";
43
+ import * as releaseDescriptionContract from "./contracts/release_description/release_description.ts";
44
+ import * as releaseDspLinkContract from "./contracts/release_dsp_link/release_dsp_link.ts";
45
+ import * as releaseGenreContract from "./contracts/release_genre/release_genre.ts";
46
+ import * as releaseKindContract from "./contracts/release_kind/release_kind.ts";
47
+ import * as releaseRevenueDistributorContract from "./contracts/release_revenue_distributor/release_revenue_distributor.ts";
48
+ import * as vaultContract from "./contracts/vault/vault.ts";
49
+ import * as compositionRoyaltyPoolContract from "./contracts/composition_royalty_pool/composition_royalty_pool.ts";
50
+ import * as recordingRoyaltyPoolContract from "./contracts/recording_royalty_pool/recording_royalty_pool.ts";
51
+ import * as compositionRoutedStakeContract from "./contracts/composition_routed_stake/composition_routed_stake.ts";
52
+ import * as routedStakeContract from "./contracts/routed_stake/routed_stake.ts";
53
+ import * as royaltyPoolContract from "./contracts/royalty_pool/pool.ts";
54
+ import * as recordingAdvisoryContract from "./contracts/recording_advisory/recording_advisory.ts";
55
+ import * as recordingLanguageContract from "./contracts/recording_language/recording_language.ts";
56
+ import * as recordingMasterReferenceContract from "./contracts/recording_master_reference/recording_master_reference.ts";
57
+ import * as recordingPreviewContract from "./contracts/recording_preview/recording_preview.ts";
58
+ import * as vaultActions from "./vault.ts";
59
+ import * as coverArtContract from "./contracts/cover_art/cover_art.ts";
60
+ import * as releaseCoverArtContract from "./contracts/release_cover_art/release_cover_art.ts";
61
+ import * as releaseCreditsContract from "./contracts/release_credits/release_credits.ts";
43
62
  import {
44
63
  buyRecord,
45
64
  deriveListingId,
@@ -90,18 +109,54 @@ import {
90
109
  getMisoPlatformDeployment,
91
110
  type MisoPlatformDeployment,
92
111
  } from "./deployments.ts";
112
+ import {
113
+ deriveGenreId,
114
+ setReleaseDescription,
115
+ setReleaseDspLinks,
116
+ setReleaseGenres,
117
+ setReleaseKind,
118
+ type SetReleaseDescriptionParams,
119
+ type SetReleaseDspLinksParams,
120
+ type SetReleaseGenresParams,
121
+ type SetReleaseKindParams,
122
+ } from "./release-extensions.ts";
123
+ import { addReleaseCredit, type AddReleaseCreditParams } from "./credits.ts";
124
+ import {
125
+ setReleaseCover,
126
+ setReleaseTrackCover,
127
+ type SetReleaseCoverParams,
128
+ type SetReleaseTrackCoverParams,
129
+ } from "./cover.ts";
130
+
131
+ type BoundMoveFunction<F> = F extends (options: infer Options) => infer Result
132
+ ? Options extends { package?: unknown }
133
+ ? (options: Omit<Options, "package">) => Result
134
+ : F
135
+ : F;
136
+ type BoundModule<M extends object, Available extends readonly (keyof M)[]> = {
137
+ [Key in Available[number]]: BoundMoveFunction<M[Key]>;
138
+ };
93
139
 
94
- /** Defaults `options.package` to `pkg` for every generated call function. */
95
- function bindModulePackage<M extends object>(mod: M, pkg: string): M {
140
+ /**
141
+ * Bind an explicit safe subset of a generated module to one immutable package.
142
+ * Callers cannot supply or override `package`; reference-returning, UID-only,
143
+ * and package-internal constructors never appear in this executable facade.
144
+ */
145
+ function bindModulePackage<M extends object, K extends readonly (keyof M)[]>(
146
+ mod: M,
147
+ pkg: string,
148
+ available: K,
149
+ ): BoundModule<M, K> {
96
150
  const out: Record<string, unknown> = {};
97
- for (const [key, value] of Object.entries({ ...mod })) {
98
- out[key] =
151
+ for (const key of available) {
152
+ const value = (mod as Record<PropertyKey, unknown>)[key];
153
+ out[String(key)] =
99
154
  typeof value === "function"
100
155
  ? (options: { package?: string }) =>
101
- (value as (o: unknown) => unknown)({ package: pkg, ...options })
156
+ (value as (o: unknown) => unknown)({ ...options, package: pkg })
102
157
  : value;
103
158
  }
104
- return out as M;
159
+ return out as BoundModule<M, K>;
105
160
  }
106
161
 
107
162
  export interface MisoOptions<Name extends string = "miso"> {
@@ -134,32 +189,87 @@ export interface MisoPlatformConfig {
134
189
  * builders (they disperse shares via minato).
135
190
  */
136
191
  minatoPackageId?: string;
137
- /** The published `release_registry` extension package used to mint releases. */
138
- releaseRegistryPackageId?: string;
139
- /** The one shared `ReleaseRegistry` object created by that package's `init`. */
192
+ /** The shared core `miso::release::ReleaseRegistry` object. */
140
193
  releaseRegistryId?: string;
194
+ /** Release metadata/discovery extension package ids. */
195
+ releaseKindPackageId?: string;
196
+ releaseDescriptionPackageId?: string;
197
+ releaseGenrePackageId?: string;
198
+ releaseDspLinkPackageId?: string;
199
+ recordingAdvisoryPackageId?: string;
200
+ recordingLanguagePackageId?: string;
201
+ recordingMasterReferencePackageId?: string;
202
+ recordingPreviewPackageId?: string;
203
+ /** Shared custody package; needed for VaultAdminCap authority orchestration. */
204
+ vaultPackageId?: string;
205
+ /** Generic royalty-pool value package used by pool and routed-stake helpers. */
206
+ royaltyPoolPackageId?: string;
207
+ /** Vault plugins, deliberately separate from data-extension package ids. */
208
+ compositionRoyaltyPoolPluginPackageId?: string;
209
+ recordingRoyaltyPoolPluginPackageId?: string;
210
+ compositionRoutedStakePluginPackageId?: string;
211
+ routedStakePackageId?: string;
212
+ releaseRevenueDistributorPluginPackageId?: string;
213
+ releaseCreditsPackageId?: string;
214
+ misoCreditPackageId?: string;
215
+ coverArtPackageId?: string;
216
+ releaseCoverArtPackageId?: string;
217
+ /** Curated genre vocabulary package and its shared derivation parent. */
218
+ genrePackageId?: string;
219
+ genreRegistryId?: string;
220
+ /** External ori package used to create WalrusData values. */
221
+ oriPackageId?: string;
141
222
  }
142
223
 
143
224
  /** Params with the ids this client already knows dropped from the call site. */
144
- type Configured<T> = Omit<T, "misoPressingPackageId" | "settingsId">;
225
+ type DistributiveOmit<T, Keys extends PropertyKey> = T extends unknown ? Omit<T, Keys> : never;
226
+ type Configured<T> = DistributiveOmit<T, "misoPressingPackageId" | "settingsId">;
145
227
 
146
228
  /** Publish-builder params with the protocol/minato ids this client already knows dropped. */
147
- type ConfiguredPublish<T> = Omit<T, "misoPackageId" | "minatoPackageId">;
229
+ type ConfiguredPublish<T> = DistributiveOmit<T, "misoPackageId" | "minatoPackageId">;
148
230
 
149
231
  /** Release-builder params with this client's core, share, and registry ids dropped. */
150
- type ConfiguredRelease<T> = Omit<T, "misoPackageId" | "minatoPackageId" | "releaseRegistryPackageId" | "releaseRegistryId">;
232
+ type ConfiguredRelease<T> = DistributiveOmit<
233
+ T,
234
+ | "misoPackageId"
235
+ | "minatoPackageId"
236
+ | "releaseRegistryId"
237
+ >;
151
238
 
152
- /** Whole-graph params with this client's package ids dropped. */
153
- export type ConfiguredReleaseGraphParams = Omit<
154
- PublishReleaseGraphParams,
155
- "misoPackageId" | "minatoPackageId" | "releaseRegistryPackageId"
239
+ type ConfiguredReleaseKind = DistributiveOmit<SetReleaseKindParams, "releaseKindPackageId">;
240
+ type ConfiguredReleaseDescription = DistributiveOmit<
241
+ SetReleaseDescriptionParams,
242
+ "releaseDescriptionPackageId"
243
+ >;
244
+ type ConfiguredReleaseGenres = DistributiveOmit<
245
+ SetReleaseGenresParams,
246
+ "releaseGenrePackageId"
247
+ >;
248
+ type ConfiguredReleaseDspLinks = DistributiveOmit<
249
+ SetReleaseDspLinksParams,
250
+ "releaseDspLinkPackageId"
251
+ >;
252
+ type ConfiguredReleaseCredit = DistributiveOmit<
253
+ AddReleaseCreditParams,
254
+ "releaseCreditsPackageId" | "misoCreditPackageId"
156
255
  >;
256
+ type ConfiguredReleaseCover = DistributiveOmit<
257
+ SetReleaseCoverParams,
258
+ "coverArtPackageId" | "releaseCoverArtPackageId" | "oriPackageId"
259
+ >;
260
+ type ConfiguredReleaseTrackCover = DistributiveOmit<
261
+ SetReleaseTrackCoverParams,
262
+ "coverArtPackageId" | "releaseCoverArtPackageId" | "oriPackageId"
263
+ >;
264
+
265
+ /** Whole-graph params with this client's package ids dropped. */
266
+ export type ConfiguredReleaseGraphParams = Omit<PublishReleaseGraphParams, "misoPackageId" | "minatoPackageId">;
157
267
 
158
268
  export class MisoPlatformClient {
159
269
  readonly #client: ClientWithCoreApi;
160
270
  readonly #config: MisoPlatformConfig;
161
271
  /** The permissionless protocol layer wrapped by this platform facade. */
162
- readonly protocol: MisoProtocolClient;
272
+ readonly protocol?: MisoProtocolClient;
163
273
  /** Bundled/custom deployment selected for the full facade, when available. */
164
274
  readonly deployment?: MisoPlatformDeployment;
165
275
 
@@ -171,13 +281,12 @@ export class MisoPlatformClient {
171
281
  ) {
172
282
  this.#client = client;
173
283
  this.#config = config;
174
- this.protocol =
175
- protocol ??
176
- protocolMiso({
177
- deployment: config.misoPackageId
178
- ? { packageId: config.misoPackageId }
179
- : undefined,
180
- }).register(client);
284
+ // A pressing-only facade must not implicitly register a fail-closed core
285
+ // extension. Supply a core deployment/misoPackageId when `protocol` is
286
+ // needed; otherwise this remains a safe, independent pressing client.
287
+ this.protocol = protocol ?? (config.misoPackageId
288
+ ? protocolMiso({ deployment: { packageId: config.misoPackageId } }).register(client)
289
+ : undefined);
181
290
  this.deployment = deployment;
182
291
  }
183
292
 
@@ -217,26 +326,36 @@ export class MisoPlatformClient {
217
326
  return minatoPackageId;
218
327
  }
219
328
 
220
- #releaseRegistry(): { packageId: string; id: string } {
221
- const { releaseRegistryPackageId: packageId, releaseRegistryId: id } = this.#config;
222
- if (!packageId || !id) {
329
+ #releaseRegistryId(): string {
330
+ const { releaseRegistryId: id } = this.#config;
331
+ if (!id) {
332
+ throw new Error(
333
+ "misoPlatform: `releaseRegistryId` is required to build a release.",
334
+ );
335
+ }
336
+ return id;
337
+ }
338
+
339
+ #requiredConfig(field: keyof MisoPlatformConfig, operation: string): string {
340
+ const value = this.#config[field];
341
+ if (typeof value !== "string" || value.length === 0) {
223
342
  throw new Error(
224
- "misoPlatform: `releaseRegistryPackageId` and `releaseRegistryId` are required to build a release — pass both to misoPlatform(...).",
343
+ `misoPlatform: \`${String(field)}\` is required for ${operation}.`,
225
344
  );
226
345
  }
227
- return { packageId, id };
346
+ return value;
228
347
  }
229
348
 
230
349
  // ── Reads ─────────────────────────────────────────────────────────────────
231
350
 
232
351
  /** The run itself, or `null` if this release has never opened one. */
233
352
  getPressing(pressingId: string): Promise<PressingView | null> {
234
- return getPressing(this.#client, pressingId);
353
+ return getPressing(this.#client, pressingId, this.packageId);
235
354
  }
236
355
 
237
356
  /** One currency's offer, or `null` if the run does not sell in it. */
238
357
  getListing(listingId: string): Promise<ListingView | null> {
239
- return getListing(this.#client, listingId);
358
+ return getListing(this.#client, listingId, this.packageId);
240
359
  }
241
360
 
242
361
  /** Run + one currency's offer in a single round trip, by address math. */
@@ -244,19 +363,29 @@ export class MisoPlatformClient {
244
363
  pressing: PressingView | null;
245
364
  listing: ListingView | null;
246
365
  }> {
247
- return getSale(this.#client, { ...p, misoPressingPackageId: this.packageId });
366
+ return getSale(this.#client, {
367
+ ...p,
368
+ misoPressingPackageId: this.packageId,
369
+ });
248
370
  }
249
371
 
250
372
  // ── Address math ──────────────────────────────────────────────────────────
251
373
 
252
374
  readonly ids = {
253
- pressing: (releaseId: string) => derivePressingId(releaseId, this.packageId),
375
+ pressing: (releaseId: string) =>
376
+ derivePressingId(releaseId, this.packageId),
254
377
  pressingAdminCap: (pressingId: string) =>
255
378
  derivePressingAdminCapId(pressingId, this.packageId),
256
379
  listing: (pressingId: string, currencyType: string) =>
257
380
  deriveListingId(pressingId, currencyType, this.packageId),
258
381
  sale: (releaseId: string, currencyType: string) =>
259
382
  deriveSaleIds(releaseId, currencyType, this.packageId),
383
+ genre: (canonicalName: string) =>
384
+ deriveGenreId(
385
+ this.#requiredConfig("genreRegistryId", "genre id derivation"),
386
+ this.#requiredConfig("genrePackageId", "genre id derivation"),
387
+ canonicalName,
388
+ ),
260
389
  };
261
390
 
262
391
  // ── Transaction builders ──────────────────────────────────────────────────
@@ -286,36 +415,131 @@ export class MisoPlatformClient {
286
415
  // storefront that never mints new works, doesn't need to carry them).
287
416
  publishShareCurrency,
288
417
  initializeShareCurrency,
289
- publishComposition: (p: ConfiguredPublish<PublishCompositionParams>): TxThunk =>
290
- publishComposition({ ...p, misoPackageId: this.#misoPackageId(), minatoPackageId: this.#minatoPackageId() }),
418
+ publishComposition: (
419
+ p: ConfiguredPublish<PublishCompositionParams>,
420
+ ): TxThunk =>
421
+ publishComposition({
422
+ ...p,
423
+ misoPackageId: this.#misoPackageId(),
424
+ minatoPackageId: this.#minatoPackageId(),
425
+ }),
291
426
  publishRecording: (p: ConfiguredPublish<PublishRecordingParams>): TxThunk =>
292
- publishRecording({ ...p, misoPackageId: this.#misoPackageId(), minatoPackageId: this.#minatoPackageId() }),
293
- publishCompositionAndRecording: (p: ConfiguredPublish<PublishCompositionAndRecordingParams>): TxThunk =>
294
- publishCompositionAndRecording({ ...p, misoPackageId: this.#misoPackageId(), minatoPackageId: this.#minatoPackageId() }),
427
+ publishRecording({
428
+ ...p,
429
+ misoPackageId: this.#misoPackageId(),
430
+ minatoPackageId: this.#minatoPackageId(),
431
+ }),
432
+ publishCompositionAndRecording: (
433
+ p: ConfiguredPublish<PublishCompositionAndRecordingParams>,
434
+ ): TxThunk =>
435
+ publishCompositionAndRecording({
436
+ ...p,
437
+ misoPackageId: this.#misoPackageId(),
438
+ minatoPackageId: this.#minatoPackageId(),
439
+ }),
295
440
  publishRelease: (p: ConfiguredRelease<PublishReleaseParams>): TxThunk => {
296
- const registry = this.#releaseRegistry();
297
441
  return publishRelease({
298
442
  ...p,
299
443
  misoPackageId: this.#misoPackageId(),
300
- releaseRegistryPackageId: registry.packageId,
301
- releaseRegistryId: registry.id,
444
+ releaseRegistryId: this.#releaseRegistryId(),
302
445
  });
303
446
  },
304
447
  publishReleaseGraph: (p: ConfiguredReleaseGraphParams): TxThunk => {
305
- const registry = this.#releaseRegistry();
306
448
  return publishReleaseGraph({
307
449
  ...p,
308
450
  misoPackageId: this.#misoPackageId(),
309
451
  minatoPackageId: this.#minatoPackageId(),
310
- releaseRegistryPackageId: registry.packageId,
311
452
  });
312
453
  },
454
+ setReleaseKind: (p: ConfiguredReleaseKind): TxThunk =>
455
+ setReleaseKind({
456
+ ...p,
457
+ releaseKindPackageId: this.#requiredConfig(
458
+ "releaseKindPackageId",
459
+ "setReleaseKind",
460
+ ),
461
+ }),
462
+ setReleaseDescription: (p: ConfiguredReleaseDescription): TxThunk =>
463
+ setReleaseDescription({
464
+ ...p,
465
+ releaseDescriptionPackageId: this.#requiredConfig(
466
+ "releaseDescriptionPackageId",
467
+ "setReleaseDescription",
468
+ ),
469
+ }),
470
+ setReleaseGenres: (p: ConfiguredReleaseGenres): TxThunk =>
471
+ setReleaseGenres({
472
+ ...p,
473
+ releaseGenrePackageId: this.#requiredConfig(
474
+ "releaseGenrePackageId",
475
+ "setReleaseGenres",
476
+ ),
477
+ }),
478
+ setReleaseDspLinks: (p: ConfiguredReleaseDspLinks): TxThunk =>
479
+ setReleaseDspLinks({
480
+ ...p,
481
+ releaseDspLinkPackageId: this.#requiredConfig(
482
+ "releaseDspLinkPackageId",
483
+ "setReleaseDspLinks",
484
+ ),
485
+ }),
486
+ addReleaseCredit: (p: ConfiguredReleaseCredit): TxThunk =>
487
+ addReleaseCredit({
488
+ ...p,
489
+ releaseCreditsPackageId: this.#requiredConfig(
490
+ "releaseCreditsPackageId",
491
+ "addReleaseCredit",
492
+ ),
493
+ misoCreditPackageId: this.#requiredConfig(
494
+ "misoCreditPackageId",
495
+ "addReleaseCredit",
496
+ ),
497
+ }),
498
+ setReleaseCover: (p: ConfiguredReleaseCover): TxThunk =>
499
+ setReleaseCover({
500
+ ...p,
501
+ coverArtPackageId: this.#requiredConfig(
502
+ "coverArtPackageId",
503
+ "setReleaseCover",
504
+ ),
505
+ releaseCoverArtPackageId: this.#requiredConfig(
506
+ "releaseCoverArtPackageId",
507
+ "setReleaseCover",
508
+ ),
509
+ oriPackageId: this.#requiredConfig("oriPackageId", "setReleaseCover"),
510
+ }),
511
+ setReleaseTrackCover: (p: ConfiguredReleaseTrackCover): TxThunk =>
512
+ setReleaseTrackCover({
513
+ ...p,
514
+ coverArtPackageId: this.#requiredConfig(
515
+ "coverArtPackageId",
516
+ "setReleaseTrackCover",
517
+ ),
518
+ releaseCoverArtPackageId: this.#requiredConfig(
519
+ "releaseCoverArtPackageId",
520
+ "setReleaseTrackCover",
521
+ ),
522
+ oriPackageId: this.#requiredConfig(
523
+ "oriPackageId",
524
+ "setReleaseTrackCover",
525
+ ),
526
+ }),
313
527
  };
314
528
 
529
+ /**
530
+ * Vault-aware builders and parsers. These take explicit object ids because a
531
+ * VaultAdminCap is owner-held while the Vault is shared; package ids can come
532
+ * from the deployment config or be supplied for private deployments.
533
+ */
534
+ readonly vault = vaultActions;
535
+
315
536
  // ── Share currency provisioning (executes; Signer pattern) ─────────────────
316
537
 
317
538
  /** Publishes + initializes a fresh share currency (two txs). */
318
- async createShareCurrency(signer: Signer, params: share.CreateShareCurrencyParams): Promise<share.ShareCurrency> {
539
+ async createShareCurrency(
540
+ signer: Signer,
541
+ params: share.CreateShareCurrencyParams,
542
+ ): Promise<share.ShareCurrency> {
319
543
  return share.createShareCurrency(this.#client, signer, params);
320
544
  }
321
545
 
@@ -324,14 +548,105 @@ export class MisoPlatformClient {
324
548
  /** Generated Move-call bindings, for commands this facade doesn't wrap. */
325
549
  get call() {
326
550
  return {
327
- listing: bindModulePackage(listingContract, this.packageId),
328
- pressing: bindModulePackage(pressingContract, this.packageId),
329
- releaseRegistry: this.#config.releaseRegistryPackageId
551
+ listing: bindModulePackage(listingContract, this.packageId, ["newFixedPrice", "newFloorPrice", "newEnabledState", "newDisabledState", "buy", "setState", "setPrice", "deriveId", "hasListing", "id", "releaseId", "pressingId", "price", "state", "isLive", "amount"] as const),
552
+ pressing: bindModulePackage(pressingContract, this.packageId, ["newScheduledState", "newActiveState", "newPausedState", "setState", "deriveId", "id", "releaseId", "supply", "isSelling", "pressingAdminCapPressingId", "verifyRecord"] as const),
553
+ genre: this.#config.genrePackageId
554
+ ? bindModulePackage(genreContract, this.#config.genrePackageId, ["deriveGenreId", "id"] as const)
555
+ : undefined,
556
+ releaseDescription: this.#config.releaseDescriptionPackageId
557
+ ? bindModulePackage(
558
+ releaseDescriptionContract,
559
+ this.#config.releaseDescriptionPackageId,
560
+ ["setDescription", "clearDescription", "hasDescription"],
561
+ )
562
+ : undefined,
563
+ releaseDspLink: this.#config.releaseDspLinkPackageId
564
+ ? bindModulePackage(
565
+ releaseDspLinkContract,
566
+ this.#config.releaseDspLinkPackageId,
567
+ ["platform", "platformSpotify", "platformAppleMusic", "platformAmazonMusic", "platformBandcamp", "platformDeezer", "platformSoundcloud", "platformTidal", "platformYoutubeMusic", "newSpotify", "newAppleMusicAlbum", "newAppleMusicTrack", "newAmazonMusicAlbum", "newAmazonMusicTrack", "newBandcamp", "newDeezer", "newSoundcloud", "newTidal", "newYoutubeMusic", "setReleaseLink", "clearReleaseLink", "setTrackLink", "clearTrackLink", "clearTrackLinks", "hasReleaseLink"] as const,
568
+ )
569
+ : undefined,
570
+ releaseGenre: this.#config.releaseGenrePackageId
571
+ ? bindModulePackage(
572
+ releaseGenreContract,
573
+ this.#config.releaseGenrePackageId,
574
+ ["setPrimaryGenre", "addSecondaryGenre", "removeSecondaryGenre", "setTrackPrimaryGenre", "unsetTrackPrimaryGenre", "hasGenre"] as const,
575
+ )
576
+ : undefined,
577
+ releaseKind: this.#config.releaseKindPackageId
578
+ ? bindModulePackage(
579
+ releaseKindContract,
580
+ this.#config.releaseKindPackageId,
581
+ ["setKind", "unsetKind", "hasKind"] as const,
582
+ )
583
+ : undefined,
584
+ releaseRevenueDistributor: this.#config.releaseRevenueDistributorPluginPackageId
585
+ ? bindModulePackage(
586
+ releaseRevenueDistributorContract,
587
+ this.#config.releaseRevenueDistributorPluginPackageId,
588
+ ["install", "uninstall", "redeemAndDistribute", "receiveAndDistribute", "isInstalled"] as const,
589
+ )
590
+ : undefined,
591
+ vault: this.#config.vaultPackageId
592
+ ? bindModulePackage(vaultContract, this.#config.vaultPackageId, ["share", "id", "vaultId", "authorizedPluginsId", "authorizedPluginCount", "isPluginAuthorized"] as const)
593
+ : undefined,
594
+ compositionRoyaltyPool: this.#config.compositionRoyaltyPoolPluginPackageId
595
+ ? bindModulePackage(
596
+ compositionRoyaltyPoolContract,
597
+ this.#config.compositionRoyaltyPoolPluginPackageId,
598
+ ["install", "uninstall", "initializePool", "receiveAndDeposit", "redeemAndDeposit", "isInstalled", "poolAddress"] as const,
599
+ )
600
+ : undefined,
601
+ recordingRoyaltyPool: this.#config.recordingRoyaltyPoolPluginPackageId
330
602
  ? bindModulePackage(
331
- releaseRegistry,
332
- this.#config.releaseRegistryPackageId,
603
+ recordingRoyaltyPoolContract,
604
+ this.#config.recordingRoyaltyPoolPluginPackageId,
605
+ ["install", "uninstall", "initializePool", "receiveAndDeposit", "redeemAndDeposit", "isInstalled", "poolAddress"] as const,
333
606
  )
334
- : releaseRegistry,
607
+ : undefined,
608
+ compositionRoutedStake: this.#config.compositionRoutedStakePluginPackageId
609
+ ? bindModulePackage(
610
+ compositionRoutedStakeContract,
611
+ this.#config.compositionRoutedStakePluginPackageId,
612
+ ["install", "uninstall", "createStake", "register", "unregister", "unstake", "restake", "isInstalled", "stakeAddress"] as const,
613
+ )
614
+ : undefined,
615
+ routedStake: this.#config.routedStakePackageId
616
+ ? bindModulePackage(routedStakeContract, this.#config.routedStakePackageId, ["share", "register", "unregister", "sweep", "unstake", "restake", "id"] as const)
617
+ : undefined,
618
+ royaltyPool: this.#config.royaltyPoolPackageId
619
+ ? bindModulePackage(royaltyPoolContract, this.#config.royaltyPoolPackageId, ["share", "deposit", "redeemAndDeposit", "receiveAndDeposit", "registerStake", "unregisterStake", "claimRewards", "pendingRewards", "id", "stakedShares", "cumulativeRewardPerShare", "cumulativeDeposits", "derivedAddress", "assertDerivedFrom"] as const)
620
+ : undefined,
621
+ recordingAdvisory: this.#config.recordingAdvisoryPackageId
622
+ ? bindModulePackage(recordingAdvisoryContract, this.#config.recordingAdvisoryPackageId, ["explicit", "notExplicit", "cleaned", "setRating", "unsetRating", "hasRating", "isExplicit", "isNotExplicit", "isCleaned"] as const)
623
+ : undefined,
624
+ recordingLanguage: this.#config.recordingLanguagePackageId
625
+ ? bindModulePackage(recordingLanguageContract, this.#config.recordingLanguagePackageId, ["setLanguages", "setInstrumental", "unsetLanguages", "hasLanguages", "isInstrumental"] as const)
626
+ : undefined,
627
+ recordingMasterReference: this.#config.recordingMasterReferencePackageId
628
+ ? bindModulePackage(recordingMasterReferenceContract, this.#config.recordingMasterReferencePackageId, ["setMasterReference", "unsetMasterReference", "hasMasterReference"] as const)
629
+ : undefined,
630
+ recordingPreview: this.#config.recordingPreviewPackageId
631
+ ? bindModulePackage(recordingPreviewContract, this.#config.recordingPreviewPackageId, ["setPreview", "unsetPreview", "hasPreview"] as const)
632
+ : undefined,
633
+ coverArt: this.#config.coverArtPackageId
634
+ ? bindModulePackage(coverArtContract, this.#config.coverArtPackageId, [] as const)
635
+ : undefined,
636
+ releaseCoverArt: this.#config.releaseCoverArtPackageId
637
+ ? bindModulePackage(
638
+ releaseCoverArtContract,
639
+ this.#config.releaseCoverArtPackageId,
640
+ ["setCover", "unsetCover", "setTrackCover", "unsetTrackCover", "hasCoverArt"] as const,
641
+ )
642
+ : undefined,
643
+ releaseCredits: this.#config.releaseCreditsPackageId
644
+ ? bindModulePackage(
645
+ releaseCreditsContract,
646
+ this.#config.releaseCreditsPackageId,
647
+ ["addCredit", "removeCredit", "hasCredits"] as const,
648
+ )
649
+ : undefined,
335
650
  };
336
651
  }
337
652
 
@@ -341,8 +656,10 @@ export class MisoPlatformClient {
341
656
  PressingAdminCap: pressingContract.PressingAdminCap,
342
657
  Listing: listingContract.Listing,
343
658
  Price: listingContract.Price,
344
- ReleaseRegistry: releaseRegistry.ReleaseRegistry,
345
- ReleaseRegistryCreatedEvent: releaseRegistry.ReleaseRegistryCreatedEvent,
659
+ VaultAdminCap: vaultContract.VaultAdminCap,
660
+ VaultCreatedEvent: vaultContract.VaultCreatedEvent,
661
+ ReleaseRevenueDistributedEvent:
662
+ releaseRevenueDistributorContract.ReleaseRevenueDistributedEvent,
346
663
  };
347
664
  }
348
665
 
@@ -375,8 +692,33 @@ export function miso<const Name extends string = "miso">(
375
692
  settingsId: deployment.objects.recordSettings,
376
693
  misoPackageId: deployment.protocol.packageId,
377
694
  minatoPackageId: deployment.packages.minato,
378
- releaseRegistryPackageId: deployment.packages.releaseRegistry,
379
695
  releaseRegistryId: deployment.objects.releaseRegistry,
696
+ releaseKindPackageId: deployment.packages.releaseKind,
697
+ releaseDescriptionPackageId: deployment.packages.releaseDescription,
698
+ releaseGenrePackageId: deployment.packages.releaseGenre,
699
+ releaseDspLinkPackageId: deployment.packages.releaseDspLink,
700
+ recordingAdvisoryPackageId: deployment.packages.recordingAdvisory,
701
+ recordingLanguagePackageId: deployment.packages.recordingLanguage,
702
+ recordingMasterReferencePackageId: deployment.packages.recordingMasterReference,
703
+ recordingPreviewPackageId: deployment.packages.recordingPreview,
704
+ vaultPackageId: deployment.packages.vault,
705
+ royaltyPoolPackageId: deployment.packages.royaltyPool,
706
+ compositionRoyaltyPoolPluginPackageId:
707
+ deployment.packages.compositionRoyaltyPoolPlugin,
708
+ recordingRoyaltyPoolPluginPackageId:
709
+ deployment.packages.recordingRoyaltyPoolPlugin,
710
+ compositionRoutedStakePluginPackageId:
711
+ deployment.packages.compositionRoutedStakePlugin,
712
+ routedStakePackageId: deployment.packages.routedStake,
713
+ releaseRevenueDistributorPluginPackageId:
714
+ deployment.packages.releaseRevenueDistributorPlugin,
715
+ releaseCreditsPackageId: deployment.packages.releaseCredits,
716
+ misoCreditPackageId: deployment.packages.credit,
717
+ coverArtPackageId: deployment.packages.coverArt,
718
+ releaseCoverArtPackageId: deployment.packages.releaseCoverArt,
719
+ genrePackageId: deployment.packages.genre,
720
+ genreRegistryId: deployment.objects.genreRegistry,
721
+ oriPackageId: deployment.packages.ori,
380
722
  },
381
723
  protocol,
382
724
  deployment,
@@ -397,13 +739,9 @@ export function misoPlatform(config: MisoPlatformConfig) {
397
739
  return {
398
740
  name: "misoPlatform" as const,
399
741
  register: (client: ClientWithCoreApi) => {
400
- const protocol = protocolMiso({
401
- deployment: config.misoPackageId
402
- ? {
403
- packageId: config.misoPackageId,
404
- }
405
- : undefined,
406
- }).register(client);
742
+ const protocol = config.misoPackageId
743
+ ? protocolMiso({ deployment: { packageId: config.misoPackageId } }).register(client)
744
+ : undefined;
407
745
  return new MisoPlatformClient(client, config, protocol);
408
746
  },
409
747
  };