@misofm/platform 0.24.0 → 0.26.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 (635) hide show
  1. package/README.md +262 -95
  2. package/dist/auth.d.ts +8 -13
  3. package/dist/auth.d.ts.map +1 -1
  4. package/dist/auth.js +78 -59
  5. package/dist/auth.js.map +1 -1
  6. package/dist/catalog.d.ts +6 -6
  7. package/dist/catalog.d.ts.map +1 -1
  8. package/dist/catalog.js +33 -21
  9. package/dist/catalog.js.map +1 -1
  10. package/dist/client.d.ts +124 -127
  11. package/dist/client.d.ts.map +1 -1
  12. package/dist/client.js +112 -114
  13. package/dist/client.js.map +1 -1
  14. package/dist/contracts/composition_credits/composition_credits.d.ts +181 -0
  15. package/dist/contracts/composition_credits/composition_credits.d.ts.map +1 -0
  16. package/dist/contracts/composition_credits/composition_credits.js +109 -0
  17. package/dist/contracts/composition_credits/composition_credits.js.map +1 -0
  18. package/dist/contracts/composition_credits/composition_party_role.d.ts +119 -0
  19. package/dist/contracts/composition_credits/composition_party_role.d.ts.map +1 -0
  20. package/dist/contracts/composition_credits/composition_party_role.js +139 -0
  21. package/dist/contracts/composition_credits/composition_party_role.js.map +1 -0
  22. package/dist/contracts/composition_credits/deps/credit/credit.d.ts +24 -0
  23. package/dist/contracts/composition_credits/deps/credit/credit.d.ts.map +1 -0
  24. package/dist/contracts/composition_credits/deps/credit/credit.js +23 -0
  25. package/dist/contracts/composition_credits/deps/credit/credit.js.map +1 -0
  26. package/dist/contracts/composition_credits/deps/sui/vec_map.d.ts +37 -0
  27. package/dist/contracts/composition_credits/deps/sui/vec_map.d.ts.map +1 -0
  28. package/dist/contracts/composition_credits/deps/sui/vec_map.js +28 -0
  29. package/dist/contracts/composition_credits/deps/sui/vec_map.js.map +1 -0
  30. package/dist/contracts/composition_routed_stake/composition_routed_stake.d.ts +143 -0
  31. package/dist/contracts/composition_routed_stake/composition_routed_stake.d.ts.map +1 -0
  32. package/dist/contracts/composition_routed_stake/composition_routed_stake.js +125 -0
  33. package/dist/contracts/composition_routed_stake/composition_routed_stake.js.map +1 -0
  34. package/dist/contracts/composition_royalty_pool/composition_royalty_pool.d.ts +93 -0
  35. package/dist/contracts/composition_royalty_pool/composition_royalty_pool.d.ts.map +1 -0
  36. package/dist/contracts/composition_royalty_pool/composition_royalty_pool.js +86 -0
  37. package/dist/contracts/composition_royalty_pool/composition_royalty_pool.js.map +1 -0
  38. package/dist/contracts/composition_royalty_pool_plugin/composition_royalty_pool_plugin.d.ts +90 -0
  39. package/dist/contracts/composition_royalty_pool_plugin/composition_royalty_pool_plugin.d.ts.map +1 -0
  40. package/dist/contracts/composition_royalty_pool_plugin/composition_royalty_pool_plugin.js +85 -0
  41. package/dist/contracts/composition_royalty_pool_plugin/composition_royalty_pool_plugin.js.map +1 -0
  42. package/dist/contracts/composition_royalty_pool_plugin/witness.d.ts +6 -0
  43. package/dist/contracts/composition_royalty_pool_plugin/witness.d.ts.map +1 -0
  44. package/dist/contracts/composition_royalty_pool_plugin/witness.js +8 -0
  45. package/dist/contracts/composition_royalty_pool_plugin/witness.js.map +1 -0
  46. package/dist/contracts/cover_art/cover_art.d.ts +83 -0
  47. package/dist/contracts/cover_art/cover_art.d.ts.map +1 -0
  48. package/dist/contracts/cover_art/cover_art.js +66 -0
  49. package/dist/contracts/cover_art/cover_art.js.map +1 -0
  50. package/dist/contracts/cover_art/deps/ori/confidentiality.d.ts +24 -0
  51. package/dist/contracts/cover_art/deps/ori/confidentiality.d.ts.map +1 -0
  52. package/dist/contracts/cover_art/deps/ori/confidentiality.js +24 -0
  53. package/dist/contracts/cover_art/deps/ori/confidentiality.js.map +1 -0
  54. package/dist/contracts/cover_art/deps/ori/data.d.ts +16 -0
  55. package/dist/contracts/cover_art/deps/ori/data.d.ts.map +1 -0
  56. package/dist/contracts/cover_art/deps/ori/data.js +12 -0
  57. package/dist/contracts/cover_art/deps/ori/data.js.map +1 -0
  58. package/dist/contracts/genre/genre.d.ts +78 -0
  59. package/dist/contracts/genre/genre.d.ts.map +1 -0
  60. package/dist/contracts/genre/genre.js +87 -0
  61. package/dist/contracts/genre/genre.js.map +1 -0
  62. package/dist/contracts/party_cta/party_cta.d.ts +120 -0
  63. package/dist/contracts/party_cta/party_cta.d.ts.map +1 -0
  64. package/dist/contracts/party_cta/party_cta.js +139 -0
  65. package/dist/contracts/party_cta/party_cta.js.map +1 -0
  66. package/dist/contracts/party_genre/party_genre.d.ts +117 -0
  67. package/dist/contracts/party_genre/party_genre.d.ts.map +1 -0
  68. package/dist/contracts/party_genre/party_genre.js +131 -0
  69. package/dist/contracts/party_genre/party_genre.js.map +1 -0
  70. package/dist/contracts/party_media/party_media.d.ts +86 -0
  71. package/dist/contracts/party_media/party_media.d.ts.map +1 -0
  72. package/dist/contracts/party_media/party_media.js +97 -0
  73. package/dist/contracts/party_media/party_media.js.map +1 -0
  74. package/dist/contracts/party_music/party_music.d.ts +209 -0
  75. package/dist/contracts/party_music/party_music.d.ts.map +1 -0
  76. package/dist/contracts/party_music/party_music.js +259 -0
  77. package/dist/contracts/party_music/party_music.js.map +1 -0
  78. package/dist/contracts/party_platform_link/party_platform_link.d.ts +89 -0
  79. package/dist/contracts/party_platform_link/party_platform_link.d.ts.map +1 -0
  80. package/dist/contracts/party_platform_link/party_platform_link.js +92 -0
  81. package/dist/contracts/party_platform_link/party_platform_link.js.map +1 -0
  82. package/dist/contracts/party_pro_link/party_pro_link.d.ts +233 -0
  83. package/dist/contracts/party_pro_link/party_pro_link.d.ts.map +1 -0
  84. package/dist/contracts/party_pro_link/party_pro_link.js +289 -0
  85. package/dist/contracts/party_pro_link/party_pro_link.js.map +1 -0
  86. package/dist/contracts/party_profile/deps/country_code/country_code.d.ts +15 -0
  87. package/dist/contracts/party_profile/deps/country_code/country_code.d.ts.map +1 -0
  88. package/dist/contracts/party_profile/deps/country_code/country_code.js +17 -0
  89. package/dist/contracts/party_profile/deps/country_code/country_code.js.map +1 -0
  90. package/dist/contracts/party_profile/deps/language_code/language_code.d.ts +6 -0
  91. package/dist/contracts/party_profile/deps/language_code/language_code.d.ts.map +1 -0
  92. package/dist/contracts/party_profile/deps/language_code/language_code.js +8 -0
  93. package/dist/contracts/party_profile/deps/language_code/language_code.js.map +1 -0
  94. package/dist/contracts/party_profile/party_profile.d.ts +133 -0
  95. package/dist/contracts/party_profile/party_profile.d.ts.map +1 -0
  96. package/dist/contracts/party_profile/party_profile.js +153 -0
  97. package/dist/contracts/party_profile/party_profile.js.map +1 -0
  98. package/dist/contracts/party_roles/party_roles.d.ts +201 -0
  99. package/dist/contracts/party_roles/party_roles.d.ts.map +1 -0
  100. package/dist/contracts/party_roles/party_roles.js +237 -0
  101. package/dist/contracts/party_roles/party_roles.js.map +1 -0
  102. package/dist/contracts/party_social/party_social.d.ts +258 -0
  103. package/dist/contracts/party_social/party_social.d.ts.map +1 -0
  104. package/dist/contracts/party_social/party_social.js +320 -0
  105. package/dist/contracts/party_social/party_social.js.map +1 -0
  106. package/dist/contracts/party_tags/party_tags.d.ts +116 -0
  107. package/dist/contracts/party_tags/party_tags.d.ts.map +1 -0
  108. package/dist/contracts/party_tags/party_tags.js +130 -0
  109. package/dist/contracts/party_tags/party_tags.js.map +1 -0
  110. package/dist/contracts/party_wallet/party_wallet.d.ts +112 -0
  111. package/dist/contracts/party_wallet/party_wallet.d.ts.map +1 -0
  112. package/dist/contracts/party_wallet/party_wallet.js +114 -0
  113. package/dist/contracts/party_wallet/party_wallet.js.map +1 -0
  114. package/dist/contracts/record/deps/std/type_name.d.ts +18 -0
  115. package/dist/contracts/record/deps/std/type_name.d.ts.map +1 -0
  116. package/dist/contracts/record/deps/std/type_name.js +20 -0
  117. package/dist/contracts/record/deps/std/type_name.js.map +1 -0
  118. package/dist/contracts/record/deps/sui/vec_set.d.ts +21 -0
  119. package/dist/contracts/record/deps/sui/vec_set.d.ts.map +1 -0
  120. package/dist/contracts/record/deps/sui/vec_set.js +20 -0
  121. package/dist/contracts/record/deps/sui/vec_set.js.map +1 -0
  122. package/dist/contracts/record/pressing.d.ts +327 -0
  123. package/dist/contracts/record/pressing.d.ts.map +1 -0
  124. package/dist/contracts/record/pressing.js +345 -0
  125. package/dist/contracts/record/pressing.js.map +1 -0
  126. package/dist/contracts/record/record.d.ts +190 -0
  127. package/dist/contracts/record/record.d.ts.map +1 -0
  128. package/dist/contracts/record/record.js +226 -0
  129. package/dist/contracts/record/record.js.map +1 -0
  130. package/dist/contracts/record_shop/deps/std/type_name.d.ts +18 -0
  131. package/dist/contracts/record_shop/deps/std/type_name.d.ts.map +1 -0
  132. package/dist/contracts/record_shop/deps/std/type_name.js +20 -0
  133. package/dist/contracts/record_shop/deps/std/type_name.js.map +1 -0
  134. package/dist/contracts/record_shop/listing.d.ts +387 -0
  135. package/dist/contracts/record_shop/listing.d.ts.map +1 -0
  136. package/dist/contracts/record_shop/listing.js +380 -0
  137. package/dist/contracts/record_shop/listing.js.map +1 -0
  138. package/dist/contracts/record_shop/witness.d.ts +7 -0
  139. package/dist/contracts/record_shop/witness.d.ts.map +1 -0
  140. package/dist/contracts/record_shop/witness.js +9 -0
  141. package/dist/contracts/record_shop/witness.js.map +1 -0
  142. package/dist/contracts/recording_advisory/recording_advisory.d.ts +194 -0
  143. package/dist/contracts/recording_advisory/recording_advisory.d.ts.map +1 -0
  144. package/dist/contracts/recording_advisory/recording_advisory.js +204 -0
  145. package/dist/contracts/recording_advisory/recording_advisory.js.map +1 -0
  146. package/dist/contracts/recording_credits/deps/credit/credit.d.ts +24 -0
  147. package/dist/contracts/recording_credits/deps/credit/credit.d.ts.map +1 -0
  148. package/dist/contracts/recording_credits/deps/credit/credit.js +23 -0
  149. package/dist/contracts/recording_credits/deps/credit/credit.js.map +1 -0
  150. package/dist/contracts/recording_credits/deps/sui/vec_map.d.ts +37 -0
  151. package/dist/contracts/recording_credits/deps/sui/vec_map.d.ts.map +1 -0
  152. package/dist/contracts/recording_credits/deps/sui/vec_map.js +28 -0
  153. package/dist/contracts/recording_credits/deps/sui/vec_map.js.map +1 -0
  154. package/dist/contracts/recording_credits/deps/sui/vec_set.d.ts +21 -0
  155. package/dist/contracts/recording_credits/deps/sui/vec_set.d.ts.map +1 -0
  156. package/dist/contracts/recording_credits/deps/sui/vec_set.js +20 -0
  157. package/dist/contracts/recording_credits/deps/sui/vec_set.js.map +1 -0
  158. package/dist/contracts/recording_credits/recording_credits.d.ts +2313 -0
  159. package/dist/contracts/recording_credits/recording_credits.d.ts.map +1 -0
  160. package/dist/contracts/recording_credits/recording_credits.js +270 -0
  161. package/dist/contracts/recording_credits/recording_credits.js.map +1 -0
  162. package/dist/contracts/recording_credits/recording_party_role.d.ts +1174 -0
  163. package/dist/contracts/recording_credits/recording_party_role.d.ts.map +1 -0
  164. package/dist/contracts/recording_credits/recording_party_role.js +692 -0
  165. package/dist/contracts/recording_credits/recording_party_role.js.map +1 -0
  166. package/dist/contracts/recording_engine_session/deps/ori/confidentiality.d.ts +24 -0
  167. package/dist/contracts/recording_engine_session/deps/ori/confidentiality.d.ts.map +1 -0
  168. package/dist/contracts/recording_engine_session/deps/ori/confidentiality.js +24 -0
  169. package/dist/contracts/recording_engine_session/deps/ori/confidentiality.js.map +1 -0
  170. package/dist/contracts/recording_engine_session/deps/ori/data.d.ts +16 -0
  171. package/dist/contracts/recording_engine_session/deps/ori/data.d.ts.map +1 -0
  172. package/dist/contracts/recording_engine_session/deps/ori/data.js +12 -0
  173. package/dist/contracts/recording_engine_session/deps/ori/data.js.map +1 -0
  174. package/dist/contracts/recording_engine_session/recording_engine_session.d.ts +296 -0
  175. package/dist/contracts/recording_engine_session/recording_engine_session.d.ts.map +1 -0
  176. package/dist/contracts/recording_engine_session/recording_engine_session.js +216 -0
  177. package/dist/contracts/recording_engine_session/recording_engine_session.js.map +1 -0
  178. package/dist/contracts/recording_genre/recording_genre.d.ts +173 -0
  179. package/dist/contracts/recording_genre/recording_genre.d.ts.map +1 -0
  180. package/dist/contracts/recording_genre/recording_genre.js +170 -0
  181. package/dist/contracts/recording_genre/recording_genre.js.map +1 -0
  182. package/dist/contracts/recording_language/deps/language_code/language_code.d.ts +6 -0
  183. package/dist/contracts/recording_language/deps/language_code/language_code.d.ts.map +1 -0
  184. package/dist/contracts/recording_language/deps/language_code/language_code.js +8 -0
  185. package/dist/contracts/recording_language/deps/language_code/language_code.js.map +1 -0
  186. package/dist/contracts/recording_language/recording_language.d.ts +152 -0
  187. package/dist/contracts/recording_language/recording_language.d.ts.map +1 -0
  188. package/dist/contracts/recording_language/recording_language.js +149 -0
  189. package/dist/contracts/recording_language/recording_language.js.map +1 -0
  190. package/dist/contracts/recording_master_reference/deps/ori/confidentiality.d.ts +24 -0
  191. package/dist/contracts/recording_master_reference/deps/ori/confidentiality.d.ts.map +1 -0
  192. package/dist/contracts/recording_master_reference/deps/ori/confidentiality.js +24 -0
  193. package/dist/contracts/recording_master_reference/deps/ori/confidentiality.js.map +1 -0
  194. package/dist/contracts/recording_master_reference/deps/ori/data.d.ts +16 -0
  195. package/dist/contracts/recording_master_reference/deps/ori/data.d.ts.map +1 -0
  196. package/dist/contracts/recording_master_reference/deps/ori/data.js +12 -0
  197. package/dist/contracts/recording_master_reference/deps/ori/data.js.map +1 -0
  198. package/dist/contracts/recording_master_reference/recording_master_reference.d.ts +129 -0
  199. package/dist/contracts/recording_master_reference/recording_master_reference.d.ts.map +1 -0
  200. package/dist/contracts/recording_master_reference/recording_master_reference.js +119 -0
  201. package/dist/contracts/recording_master_reference/recording_master_reference.js.map +1 -0
  202. package/dist/contracts/recording_royalty_pool/recording_royalty_pool.d.ts +96 -0
  203. package/dist/contracts/recording_royalty_pool/recording_royalty_pool.d.ts.map +1 -0
  204. package/dist/contracts/recording_royalty_pool/recording_royalty_pool.js +85 -0
  205. package/dist/contracts/recording_royalty_pool/recording_royalty_pool.js.map +1 -0
  206. package/dist/contracts/recording_royalty_pool_plugin/recording_royalty_pool_plugin.d.ts +92 -0
  207. package/dist/contracts/recording_royalty_pool_plugin/recording_royalty_pool_plugin.d.ts.map +1 -0
  208. package/dist/contracts/recording_royalty_pool_plugin/recording_royalty_pool_plugin.js +85 -0
  209. package/dist/contracts/recording_royalty_pool_plugin/recording_royalty_pool_plugin.js.map +1 -0
  210. package/dist/contracts/recording_royalty_pool_plugin/witness.d.ts +6 -0
  211. package/dist/contracts/recording_royalty_pool_plugin/witness.d.ts.map +1 -0
  212. package/dist/contracts/recording_royalty_pool_plugin/witness.js +8 -0
  213. package/dist/contracts/recording_royalty_pool_plugin/witness.js.map +1 -0
  214. package/dist/contracts/recording_streaming_transcode/deps/ori/data.d.ts +8 -0
  215. package/dist/contracts/recording_streaming_transcode/deps/ori/data.d.ts.map +1 -0
  216. package/dist/contracts/recording_streaming_transcode/deps/ori/data.js +10 -0
  217. package/dist/contracts/recording_streaming_transcode/deps/ori/data.js.map +1 -0
  218. package/dist/contracts/recording_streaming_transcode/recording_streaming_transcode.d.ts +124 -0
  219. package/dist/contracts/recording_streaming_transcode/recording_streaming_transcode.d.ts.map +1 -0
  220. package/dist/contracts/recording_streaming_transcode/recording_streaming_transcode.js +124 -0
  221. package/dist/contracts/recording_streaming_transcode/recording_streaming_transcode.js.map +1 -0
  222. package/dist/contracts/release_cover_art/deps/0x51792b9adb9a5d05d7c4d74d7d0cb5aefc5639afa80c0089399cab8b99752e60/confidentiality.d.ts +24 -0
  223. package/dist/contracts/release_cover_art/deps/0x51792b9adb9a5d05d7c4d74d7d0cb5aefc5639afa80c0089399cab8b99752e60/confidentiality.d.ts.map +1 -0
  224. package/dist/contracts/release_cover_art/deps/0x51792b9adb9a5d05d7c4d74d7d0cb5aefc5639afa80c0089399cab8b99752e60/confidentiality.js +24 -0
  225. package/dist/contracts/release_cover_art/deps/0x51792b9adb9a5d05d7c4d74d7d0cb5aefc5639afa80c0089399cab8b99752e60/confidentiality.js.map +1 -0
  226. package/dist/contracts/release_cover_art/deps/0x51792b9adb9a5d05d7c4d74d7d0cb5aefc5639afa80c0089399cab8b99752e60/data.d.ts +16 -0
  227. package/dist/contracts/release_cover_art/deps/0x51792b9adb9a5d05d7c4d74d7d0cb5aefc5639afa80c0089399cab8b99752e60/data.d.ts.map +1 -0
  228. package/dist/contracts/release_cover_art/deps/0x51792b9adb9a5d05d7c4d74d7d0cb5aefc5639afa80c0089399cab8b99752e60/data.js +12 -0
  229. package/dist/contracts/release_cover_art/deps/0x51792b9adb9a5d05d7c4d74d7d0cb5aefc5639afa80c0089399cab8b99752e60/data.js.map +1 -0
  230. package/dist/contracts/release_cover_art/deps/cover_art/cover_art.d.ts +47 -0
  231. package/dist/contracts/release_cover_art/deps/cover_art/cover_art.d.ts.map +1 -0
  232. package/dist/contracts/release_cover_art/deps/cover_art/cover_art.js +22 -0
  233. package/dist/contracts/release_cover_art/deps/cover_art/cover_art.js.map +1 -0
  234. package/dist/contracts/release_cover_art/deps/per_track/per_track.d.ts +33 -0
  235. package/dist/contracts/release_cover_art/deps/per_track/per_track.d.ts.map +1 -0
  236. package/dist/contracts/release_cover_art/deps/per_track/per_track.js +32 -0
  237. package/dist/contracts/release_cover_art/deps/per_track/per_track.js.map +1 -0
  238. package/dist/contracts/release_cover_art/release_cover_art.d.ts +300 -0
  239. package/dist/contracts/release_cover_art/release_cover_art.d.ts.map +1 -0
  240. package/dist/contracts/release_cover_art/release_cover_art.js +168 -0
  241. package/dist/contracts/release_cover_art/release_cover_art.js.map +1 -0
  242. package/dist/contracts/release_credits/deps/credit/credit.d.ts +24 -0
  243. package/dist/contracts/release_credits/deps/credit/credit.d.ts.map +1 -0
  244. package/dist/contracts/release_credits/deps/credit/credit.js +23 -0
  245. package/dist/contracts/release_credits/deps/credit/credit.js.map +1 -0
  246. package/dist/contracts/release_credits/deps/sui/vec_map.d.ts +37 -0
  247. package/dist/contracts/release_credits/deps/sui/vec_map.d.ts.map +1 -0
  248. package/dist/contracts/release_credits/deps/sui/vec_map.js +28 -0
  249. package/dist/contracts/release_credits/deps/sui/vec_map.js.map +1 -0
  250. package/dist/contracts/release_credits/release_credits.d.ts +142 -0
  251. package/dist/contracts/release_credits/release_credits.d.ts.map +1 -0
  252. package/dist/contracts/release_credits/release_credits.js +108 -0
  253. package/dist/contracts/release_credits/release_credits.js.map +1 -0
  254. package/dist/contracts/release_credits/release_party_role.d.ts +58 -0
  255. package/dist/contracts/release_credits/release_party_role.d.ts.map +1 -0
  256. package/dist/contracts/release_credits/release_party_role.js +66 -0
  257. package/dist/contracts/release_credits/release_party_role.js.map +1 -0
  258. package/dist/contracts/release_description/release_description.d.ts +112 -0
  259. package/dist/contracts/release_description/release_description.d.ts.map +1 -0
  260. package/dist/contracts/release_description/release_description.js +123 -0
  261. package/dist/contracts/release_description/release_description.js.map +1 -0
  262. package/dist/contracts/release_dsp_link/release_dsp_link.d.ts +643 -0
  263. package/dist/contracts/release_dsp_link/release_dsp_link.d.ts.map +1 -0
  264. package/dist/contracts/release_dsp_link/release_dsp_link.js +555 -0
  265. package/dist/contracts/release_dsp_link/release_dsp_link.js.map +1 -0
  266. package/dist/contracts/release_genre/release_genre.d.ts +145 -0
  267. package/dist/contracts/release_genre/release_genre.d.ts.map +1 -0
  268. package/dist/contracts/release_genre/release_genre.js +154 -0
  269. package/dist/contracts/release_genre/release_genre.js.map +1 -0
  270. package/dist/contracts/release_kind/release_kind.d.ts +98 -0
  271. package/dist/contracts/release_kind/release_kind.d.ts.map +1 -0
  272. package/dist/contracts/release_kind/release_kind.js +109 -0
  273. package/dist/contracts/release_kind/release_kind.js.map +1 -0
  274. package/dist/contracts/release_revenue_distributor/release_revenue_distributor.d.ts +91 -0
  275. package/dist/contracts/release_revenue_distributor/release_revenue_distributor.d.ts.map +1 -0
  276. package/dist/contracts/release_revenue_distributor/release_revenue_distributor.js +92 -0
  277. package/dist/contracts/release_revenue_distributor/release_revenue_distributor.js.map +1 -0
  278. package/dist/contracts/release_revenue_distributor_plugin/release_revenue_distributor_plugin.d.ts +73 -0
  279. package/dist/contracts/release_revenue_distributor_plugin/release_revenue_distributor_plugin.d.ts.map +1 -0
  280. package/dist/contracts/release_revenue_distributor_plugin/release_revenue_distributor_plugin.js +80 -0
  281. package/dist/contracts/release_revenue_distributor_plugin/release_revenue_distributor_plugin.js.map +1 -0
  282. package/dist/contracts/release_revenue_distributor_plugin/witness.d.ts +6 -0
  283. package/dist/contracts/release_revenue_distributor_plugin/witness.d.ts.map +1 -0
  284. package/dist/contracts/release_revenue_distributor_plugin/witness.js +8 -0
  285. package/dist/contracts/release_revenue_distributor_plugin/witness.js.map +1 -0
  286. package/dist/contracts/routed_stake/deps/royalty_pool/stake.d.ts +67 -0
  287. package/dist/contracts/routed_stake/deps/royalty_pool/stake.d.ts.map +1 -0
  288. package/dist/contracts/routed_stake/deps/royalty_pool/stake.js +50 -0
  289. package/dist/contracts/routed_stake/deps/royalty_pool/stake.js.map +1 -0
  290. package/dist/contracts/routed_stake/deps/std/type_name.d.ts +18 -0
  291. package/dist/contracts/routed_stake/deps/std/type_name.d.ts.map +1 -0
  292. package/dist/contracts/routed_stake/deps/std/type_name.js +20 -0
  293. package/dist/contracts/routed_stake/deps/std/type_name.js.map +1 -0
  294. package/dist/contracts/routed_stake/deps/sui/balance.d.ts +13 -0
  295. package/dist/contracts/routed_stake/deps/sui/balance.d.ts.map +1 -0
  296. package/dist/contracts/routed_stake/deps/sui/balance.js +15 -0
  297. package/dist/contracts/routed_stake/deps/sui/balance.js.map +1 -0
  298. package/dist/contracts/routed_stake/deps/sui/vec_map.d.ts +37 -0
  299. package/dist/contracts/routed_stake/deps/sui/vec_map.d.ts.map +1 -0
  300. package/dist/contracts/routed_stake/deps/sui/vec_map.js +28 -0
  301. package/dist/contracts/routed_stake/deps/sui/vec_map.js.map +1 -0
  302. package/dist/contracts/routed_stake/routed_stake.d.ts +347 -0
  303. package/dist/contracts/routed_stake/routed_stake.d.ts.map +1 -0
  304. package/dist/contracts/routed_stake/routed_stake.js +302 -0
  305. package/dist/contracts/routed_stake/routed_stake.js.map +1 -0
  306. package/dist/contracts/royalty_pool/deps/std/type_name.d.ts +18 -0
  307. package/dist/contracts/royalty_pool/deps/std/type_name.d.ts.map +1 -0
  308. package/dist/contracts/royalty_pool/deps/std/type_name.js +20 -0
  309. package/dist/contracts/royalty_pool/deps/std/type_name.js.map +1 -0
  310. package/dist/contracts/royalty_pool/deps/sui/balance.d.ts +13 -0
  311. package/dist/contracts/royalty_pool/deps/sui/balance.d.ts.map +1 -0
  312. package/dist/contracts/royalty_pool/deps/sui/balance.js +15 -0
  313. package/dist/contracts/royalty_pool/deps/sui/balance.js.map +1 -0
  314. package/dist/contracts/royalty_pool/deps/sui/vec_map.d.ts +37 -0
  315. package/dist/contracts/royalty_pool/deps/sui/vec_map.d.ts.map +1 -0
  316. package/dist/contracts/royalty_pool/deps/sui/vec_map.js +28 -0
  317. package/dist/contracts/royalty_pool/deps/sui/vec_map.js.map +1 -0
  318. package/dist/contracts/royalty_pool/pool.d.ts +414 -0
  319. package/dist/contracts/royalty_pool/pool.d.ts.map +1 -0
  320. package/dist/contracts/royalty_pool/pool.js +409 -0
  321. package/dist/contracts/royalty_pool/pool.js.map +1 -0
  322. package/dist/contracts/royalty_pool/stake.d.ts +202 -0
  323. package/dist/contracts/royalty_pool/stake.d.ts.map +1 -0
  324. package/dist/contracts/royalty_pool/stake.js +196 -0
  325. package/dist/contracts/royalty_pool/stake.js.map +1 -0
  326. package/dist/contracts/utils/index.d.ts +104 -0
  327. package/dist/contracts/utils/index.d.ts.map +1 -0
  328. package/dist/contracts/utils/index.js +272 -0
  329. package/dist/contracts/utils/index.js.map +1 -0
  330. package/dist/contracts/vault/deps/sui/bag.d.ts +35 -0
  331. package/dist/contracts/vault/deps/sui/bag.d.ts.map +1 -0
  332. package/dist/contracts/vault/deps/sui/bag.js +37 -0
  333. package/dist/contracts/vault/deps/sui/bag.js.map +1 -0
  334. package/dist/contracts/vault/deps/sui/borrow.d.ts +20 -0
  335. package/dist/contracts/vault/deps/sui/borrow.d.ts.map +1 -0
  336. package/dist/contracts/vault/deps/sui/borrow.js +21 -0
  337. package/dist/contracts/vault/deps/sui/borrow.js.map +1 -0
  338. package/dist/contracts/vault/vault.d.ts +316 -0
  339. package/dist/contracts/vault/vault.d.ts.map +1 -0
  340. package/dist/contracts/vault/vault.js +308 -0
  341. package/dist/contracts/vault/vault.js.map +1 -0
  342. package/dist/contracts.d.ts +57 -33
  343. package/dist/contracts.d.ts.map +1 -1
  344. package/dist/contracts.js +63 -41
  345. package/dist/contracts.js.map +1 -1
  346. package/dist/cover.d.ts +4 -3
  347. package/dist/cover.d.ts.map +1 -1
  348. package/dist/cover.js +30 -19
  349. package/dist/cover.js.map +1 -1
  350. package/dist/credits.d.ts +12 -10
  351. package/dist/credits.d.ts.map +1 -1
  352. package/dist/credits.js +66 -39
  353. package/dist/credits.js.map +1 -1
  354. package/dist/deployments.d.ts +122 -74
  355. package/dist/deployments.d.ts.map +1 -1
  356. package/dist/deployments.js +239 -58
  357. package/dist/deployments.js.map +1 -1
  358. package/dist/errors.d.ts +91 -0
  359. package/dist/errors.d.ts.map +1 -0
  360. package/dist/errors.js +111 -0
  361. package/dist/errors.js.map +1 -0
  362. package/dist/events.d.ts +1045 -0
  363. package/dist/events.d.ts.map +1 -0
  364. package/dist/events.js +116 -0
  365. package/dist/events.js.map +1 -0
  366. package/dist/execute.d.ts +5 -3
  367. package/dist/execute.d.ts.map +1 -1
  368. package/dist/execute.js +11 -6
  369. package/dist/execute.js.map +1 -1
  370. package/dist/genre.d.ts +108 -0
  371. package/dist/genre.d.ts.map +1 -0
  372. package/dist/genre.js +289 -0
  373. package/dist/genre.js.map +1 -0
  374. package/dist/index.d.ts +4 -0
  375. package/dist/index.d.ts.map +1 -1
  376. package/dist/index.js +9 -1
  377. package/dist/index.js.map +1 -1
  378. package/dist/internal.js +2 -2
  379. package/dist/internal.js.map +1 -1
  380. package/dist/packages.d.ts +4185 -0
  381. package/dist/packages.d.ts.map +1 -0
  382. package/dist/packages.js +190 -0
  383. package/dist/packages.js.map +1 -0
  384. package/dist/party/client.d.ts +327 -0
  385. package/dist/party/client.d.ts.map +1 -0
  386. package/dist/party/client.js +225 -0
  387. package/dist/party/client.js.map +1 -0
  388. package/dist/party/extensions/ctas.d.ts +19 -0
  389. package/dist/party/extensions/ctas.d.ts.map +1 -0
  390. package/dist/party/extensions/ctas.js +25 -0
  391. package/dist/party/extensions/ctas.js.map +1 -0
  392. package/dist/party/extensions/genres.d.ts +27 -0
  393. package/dist/party/extensions/genres.d.ts.map +1 -0
  394. package/dist/party/extensions/genres.js +31 -0
  395. package/dist/party/extensions/genres.js.map +1 -0
  396. package/dist/party/extensions/links.d.ts +66 -0
  397. package/dist/party/extensions/links.d.ts.map +1 -0
  398. package/dist/party/extensions/links.js +118 -0
  399. package/dist/party/extensions/links.js.map +1 -0
  400. package/dist/party/extensions/media.d.ts +36 -0
  401. package/dist/party/extensions/media.d.ts.map +1 -0
  402. package/dist/party/extensions/media.js +45 -0
  403. package/dist/party/extensions/media.js.map +1 -0
  404. package/dist/party/extensions/profile.d.ts +24 -0
  405. package/dist/party/extensions/profile.d.ts.map +1 -0
  406. package/dist/party/extensions/profile.js +48 -0
  407. package/dist/party/extensions/profile.js.map +1 -0
  408. package/dist/party/extensions/roles.d.ts +37 -0
  409. package/dist/party/extensions/roles.d.ts.map +1 -0
  410. package/dist/party/extensions/roles.js +46 -0
  411. package/dist/party/extensions/roles.js.map +1 -0
  412. package/dist/party/extensions/tags.d.ts +25 -0
  413. package/dist/party/extensions/tags.d.ts.map +1 -0
  414. package/dist/party/extensions/tags.js +25 -0
  415. package/dist/party/extensions/tags.js.map +1 -0
  416. package/dist/party/index.d.ts +12 -0
  417. package/dist/party/index.d.ts.map +1 -0
  418. package/dist/party/index.js +18 -0
  419. package/dist/party/index.js.map +1 -0
  420. package/dist/party/internal.d.ts +14 -0
  421. package/dist/party/internal.d.ts.map +1 -0
  422. package/dist/party/internal.js +89 -0
  423. package/dist/party/internal.js.map +1 -0
  424. package/dist/party/queries.d.ts +18 -0
  425. package/dist/party/queries.d.ts.map +1 -0
  426. package/dist/party/queries.js +124 -0
  427. package/dist/party/queries.js.map +1 -0
  428. package/dist/party/types.d.ts +54 -0
  429. package/dist/party/types.d.ts.map +1 -0
  430. package/dist/party/types.js +85 -0
  431. package/dist/party/types.js.map +1 -0
  432. package/dist/pressing.d.ts +55 -35
  433. package/dist/pressing.d.ts.map +1 -1
  434. package/dist/pressing.js +102 -79
  435. package/dist/pressing.js.map +1 -1
  436. package/dist/publication.d.ts +4 -8
  437. package/dist/publication.d.ts.map +1 -1
  438. package/dist/publication.js +53 -40
  439. package/dist/publication.js.map +1 -1
  440. package/dist/queries.d.ts +1 -1
  441. package/dist/queries.d.ts.map +1 -1
  442. package/dist/queries.js +5 -4
  443. package/dist/queries.js.map +1 -1
  444. package/dist/read/artist.d.ts +6 -4
  445. package/dist/read/artist.d.ts.map +1 -1
  446. package/dist/read/artist.js +29 -27
  447. package/dist/read/artist.js.map +1 -1
  448. package/dist/read/catalog.d.ts +21 -18
  449. package/dist/read/catalog.d.ts.map +1 -1
  450. package/dist/read/catalog.js +120 -141
  451. package/dist/read/catalog.js.map +1 -1
  452. package/dist/read/client.d.ts +15 -11
  453. package/dist/read/client.d.ts.map +1 -1
  454. package/dist/read/client.js +5 -1
  455. package/dist/read/client.js.map +1 -1
  456. package/dist/read/config.d.ts +7 -2
  457. package/dist/read/config.d.ts.map +1 -1
  458. package/dist/read/config.js +2 -0
  459. package/dist/read/config.js.map +1 -1
  460. package/dist/read/genres.d.ts +5 -3
  461. package/dist/read/genres.d.ts.map +1 -1
  462. package/dist/read/genres.js +18 -15
  463. package/dist/read/genres.js.map +1 -1
  464. package/dist/read/index.d.ts.map +1 -1
  465. package/dist/read/index.js +8 -2
  466. package/dist/read/index.js.map +1 -1
  467. package/dist/read/receipts.d.ts +15 -6
  468. package/dist/read/receipts.d.ts.map +1 -1
  469. package/dist/read/receipts.js +76 -63
  470. package/dist/read/receipts.js.map +1 -1
  471. package/dist/read/types.d.ts +1 -1
  472. package/dist/read/types.d.ts.map +1 -1
  473. package/dist/read/wallet.d.ts +12 -10
  474. package/dist/read/wallet.d.ts.map +1 -1
  475. package/dist/read/wallet.js +122 -136
  476. package/dist/read/wallet.js.map +1 -1
  477. package/dist/read/works.d.ts +9 -16
  478. package/dist/read/works.d.ts.map +1 -1
  479. package/dist/read/works.js +48 -117
  480. package/dist/read/works.js.map +1 -1
  481. package/dist/recording-extensions.d.ts +8 -7
  482. package/dist/recording-extensions.d.ts.map +1 -1
  483. package/dist/recording-extensions.js +36 -69
  484. package/dist/recording-extensions.js.map +1 -1
  485. package/dist/release-extensions.d.ts +3 -20
  486. package/dist/release-extensions.d.ts.map +1 -1
  487. package/dist/release-extensions.js +13 -59
  488. package/dist/release-extensions.js.map +1 -1
  489. package/dist/release-graph.js +2 -2
  490. package/dist/release-graph.js.map +1 -1
  491. package/dist/royalty.d.ts +87 -0
  492. package/dist/royalty.d.ts.map +1 -0
  493. package/dist/royalty.js +160 -0
  494. package/dist/royalty.js.map +1 -0
  495. package/dist/share.d.ts +7 -6
  496. package/dist/share.d.ts.map +1 -1
  497. package/dist/share.js +38 -31
  498. package/dist/share.js.map +1 -1
  499. package/dist/transactions.d.ts +2 -2
  500. package/dist/transactions.d.ts.map +1 -1
  501. package/dist/transactions.js +6 -6
  502. package/dist/transactions.js.map +1 -1
  503. package/dist/vault.d.ts +20 -8
  504. package/dist/vault.d.ts.map +1 -1
  505. package/dist/vault.js +37 -21
  506. package/dist/vault.js.map +1 -1
  507. package/package.json +31 -10
  508. package/src/auth.ts +89 -70
  509. package/src/catalog.ts +35 -51
  510. package/src/client.ts +220 -141
  511. package/src/contracts/composition_credits/composition_credits.ts +170 -0
  512. package/src/contracts/composition_credits/composition_party_role.ts +190 -0
  513. package/src/contracts/composition_credits/deps/credit/credit.ts +28 -0
  514. package/src/contracts/composition_credits/deps/sui/vec_map.ts +34 -0
  515. package/src/contracts/composition_routed_stake/composition_routed_stake.ts +239 -0
  516. package/src/contracts/composition_royalty_pool/composition_royalty_pool.ts +154 -0
  517. package/src/contracts/composition_royalty_pool_plugin/composition_royalty_pool_plugin.ts +165 -0
  518. package/src/contracts/composition_royalty_pool_plugin/witness.ts +8 -0
  519. package/src/contracts/cover_art/cover_art.ts +98 -0
  520. package/src/contracts/cover_art/deps/ori/confidentiality.ts +24 -0
  521. package/src/contracts/cover_art/deps/ori/data.ts +12 -0
  522. package/src/contracts/genre/genre.ts +121 -0
  523. package/src/contracts/party_cta/party_cta.ts +213 -0
  524. package/src/contracts/party_genre/party_genre.ts +200 -0
  525. package/src/contracts/party_media/party_media.ts +142 -0
  526. package/src/contracts/party_music/party_music.ts +406 -0
  527. package/src/contracts/party_platform_link/party_platform_link.ts +149 -0
  528. package/src/contracts/party_pro_link/party_pro_link.ts +454 -0
  529. package/src/contracts/party_profile/deps/country_code/country_code.ts +20 -0
  530. package/src/contracts/party_profile/deps/language_code/language_code.ts +8 -0
  531. package/src/contracts/party_profile/party_profile.ts +240 -0
  532. package/src/contracts/party_roles/party_roles.ts +364 -0
  533. package/src/contracts/party_social/party_social.ts +503 -0
  534. package/src/contracts/party_tags/party_tags.ts +199 -0
  535. package/src/contracts/party_wallet/party_wallet.ts +174 -0
  536. package/src/contracts/record/deps/std/type_name.ts +23 -0
  537. package/src/contracts/record/deps/sui/vec_set.ts +22 -0
  538. package/src/contracts/record/pressing.ts +523 -0
  539. package/src/contracts/record/record.ts +339 -0
  540. package/src/contracts/record_shop/deps/std/type_name.ts +23 -0
  541. package/src/contracts/record_shop/listing.ts +603 -0
  542. package/src/contracts/record_shop/witness.ts +12 -0
  543. package/src/contracts/recording_advisory/recording_advisory.ts +316 -0
  544. package/src/contracts/recording_credits/deps/credit/credit.ts +28 -0
  545. package/src/contracts/recording_credits/deps/sui/vec_map.ts +34 -0
  546. package/src/contracts/recording_credits/deps/sui/vec_set.ts +22 -0
  547. package/src/contracts/recording_credits/recording_credits.ts +459 -0
  548. package/src/contracts/recording_credits/recording_party_role.ts +1042 -0
  549. package/src/contracts/recording_engine_session/deps/ori/confidentiality.ts +24 -0
  550. package/src/contracts/recording_engine_session/deps/ori/data.ts +12 -0
  551. package/src/contracts/recording_engine_session/recording_engine_session.ts +335 -0
  552. package/src/contracts/recording_genre/recording_genre.ts +235 -0
  553. package/src/contracts/recording_language/deps/language_code/language_code.ts +8 -0
  554. package/src/contracts/recording_language/recording_language.ts +238 -0
  555. package/src/contracts/recording_master_reference/deps/ori/confidentiality.ts +24 -0
  556. package/src/contracts/recording_master_reference/deps/ori/data.ts +12 -0
  557. package/src/contracts/recording_master_reference/recording_master_reference.ts +180 -0
  558. package/src/contracts/recording_royalty_pool/recording_royalty_pool.ts +157 -0
  559. package/src/contracts/recording_royalty_pool_plugin/recording_royalty_pool_plugin.ts +167 -0
  560. package/src/contracts/recording_royalty_pool_plugin/witness.ts +8 -0
  561. package/src/contracts/recording_streaming_transcode/deps/ori/data.ts +10 -0
  562. package/src/contracts/recording_streaming_transcode/recording_streaming_transcode.ts +203 -0
  563. package/src/contracts/release_cover_art/deps/0x51792b9adb9a5d05d7c4d74d7d0cb5aefc5639afa80c0089399cab8b99752e60/confidentiality.ts +24 -0
  564. package/src/contracts/release_cover_art/deps/0x51792b9adb9a5d05d7c4d74d7d0cb5aefc5639afa80c0089399cab8b99752e60/data.ts +12 -0
  565. package/src/contracts/release_cover_art/deps/cover_art/cover_art.ts +25 -0
  566. package/src/contracts/release_cover_art/deps/per_track/per_track.ts +37 -0
  567. package/src/contracts/release_cover_art/release_cover_art.ts +252 -0
  568. package/src/contracts/release_credits/deps/credit/credit.ts +28 -0
  569. package/src/contracts/release_credits/deps/sui/vec_map.ts +34 -0
  570. package/src/contracts/release_credits/release_credits.ts +157 -0
  571. package/src/contracts/release_credits/release_party_role.ts +87 -0
  572. package/src/contracts/release_description/release_description.ts +168 -0
  573. package/src/contracts/release_dsp_link/release_dsp_link.ts +813 -0
  574. package/src/contracts/release_genre/release_genre.ts +203 -0
  575. package/src/contracts/release_kind/release_kind.ts +154 -0
  576. package/src/contracts/release_revenue_distributor/release_revenue_distributor.ts +141 -0
  577. package/src/contracts/release_revenue_distributor_plugin/release_revenue_distributor_plugin.ts +143 -0
  578. package/src/contracts/release_revenue_distributor_plugin/witness.ts +8 -0
  579. package/src/contracts/routed_stake/deps/royalty_pool/stake.ts +53 -0
  580. package/src/contracts/routed_stake/deps/std/type_name.ts +23 -0
  581. package/src/contracts/routed_stake/deps/sui/balance.ts +18 -0
  582. package/src/contracts/routed_stake/deps/sui/vec_map.ts +34 -0
  583. package/src/contracts/routed_stake/routed_stake.ts +487 -0
  584. package/src/contracts/royalty_pool/deps/std/type_name.ts +23 -0
  585. package/src/contracts/royalty_pool/deps/sui/balance.ts +18 -0
  586. package/src/contracts/royalty_pool/deps/sui/vec_map.ts +34 -0
  587. package/src/contracts/royalty_pool/pool.ts +634 -0
  588. package/src/contracts/royalty_pool/stake.ts +305 -0
  589. package/src/contracts/utils/index.ts +428 -0
  590. package/src/contracts/vault/deps/sui/bag.ts +40 -0
  591. package/src/contracts/vault/deps/sui/borrow.ts +26 -0
  592. package/src/contracts/vault/vault.ts +509 -0
  593. package/src/contracts.ts +86 -39
  594. package/src/cover.ts +19 -28
  595. package/src/credits.ts +49 -81
  596. package/src/deployments.ts +321 -73
  597. package/src/errors.ts +156 -0
  598. package/src/events.ts +121 -0
  599. package/src/execute.ts +13 -9
  600. package/src/genre.ts +384 -0
  601. package/src/index.ts +10 -1
  602. package/src/internal.ts +2 -2
  603. package/src/packages.ts +243 -0
  604. package/src/party/client.ts +280 -0
  605. package/src/party/extensions/ctas.ts +46 -0
  606. package/src/party/extensions/genres.ts +62 -0
  607. package/src/party/extensions/links.ts +186 -0
  608. package/src/party/extensions/media.ts +72 -0
  609. package/src/party/extensions/profile.ts +81 -0
  610. package/src/party/extensions/roles.ts +94 -0
  611. package/src/party/extensions/tags.ts +54 -0
  612. package/src/party/index.ts +40 -0
  613. package/src/party/internal.ts +102 -0
  614. package/src/party/queries.ts +175 -0
  615. package/src/party/types.ts +88 -0
  616. package/src/pressing.ts +163 -166
  617. package/src/publication.ts +58 -45
  618. package/src/queries.ts +5 -5
  619. package/src/read/artist.ts +47 -42
  620. package/src/read/catalog.ts +201 -224
  621. package/src/read/client.ts +20 -13
  622. package/src/read/config.ts +9 -2
  623. package/src/read/genres.ts +24 -16
  624. package/src/read/index.ts +8 -2
  625. package/src/read/receipts.ts +131 -70
  626. package/src/read/types.ts +1 -1
  627. package/src/read/wallet.ts +199 -166
  628. package/src/read/works.ts +76 -195
  629. package/src/recording-extensions.ts +44 -98
  630. package/src/release-extensions.ts +11 -87
  631. package/src/release-graph.ts +2 -2
  632. package/src/royalty.ts +264 -0
  633. package/src/share.ts +45 -30
  634. package/src/transactions.ts +6 -6
  635. package/src/vault.ts +53 -30
@@ -0,0 +1,81 @@
1
+ // Copyright (c) Miso Labs, Inc.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ // The `party_profile` extension: an editable identity card attached to a Party.
5
+ // The builders hide the Option/vector plumbing and construct the validated
6
+ // `CountryCode` / `LanguageCode` values from raw ISO codes.
7
+
8
+ import * as profileMod from "../../contracts/party_profile/party_profile.ts";
9
+ import type { TxThunk } from "@misofm/partyos";
10
+
11
+ const OPTION_NONE = "0x1::option::none";
12
+ const OPTION_SOME = "0x1::option::some";
13
+
14
+ export interface SetProfileParams {
15
+ partyId: string;
16
+ capId: string;
17
+ bioShort: string;
18
+ bioLong?: string;
19
+ /** ISO 3166-1 alpha-2 country code, e.g. "GB". */
20
+ country?: string;
21
+ /** ISO 639-1 language codes, e.g. ["en", "ja"]. */
22
+ languages?: string[];
23
+ partyProfilePackageId: string;
24
+ countryCodePackageId: string;
25
+ languageCodePackageId: string;
26
+ }
27
+
28
+ /** Sets (creates or replaces) a party's whole profile. */
29
+ export function setProfile(params: SetProfileParams): TxThunk {
30
+ return (tx) => {
31
+ const ccType = `${params.countryCodePackageId}::country_code::CountryCode`;
32
+ const country = params.country
33
+ ? tx.moveCall({
34
+ target: OPTION_SOME,
35
+ typeArguments: [ccType],
36
+ arguments: [
37
+ tx.moveCall({
38
+ target: `${params.countryCodePackageId}::country_code::new`,
39
+ arguments: [tx.pure.string(params.country)],
40
+ }),
41
+ ],
42
+ })
43
+ : tx.moveCall({ target: OPTION_NONE, typeArguments: [ccType], arguments: [] });
44
+
45
+ const lcType = `${params.languageCodePackageId}::language_code::LanguageCode`;
46
+ const languages = tx.makeMoveVec({
47
+ type: lcType,
48
+ elements: (params.languages ?? []).map((code) =>
49
+ tx.moveCall({
50
+ target: `${params.languageCodePackageId}::language_code::new`,
51
+ arguments: [tx.pure.string(code)],
52
+ }),
53
+ ),
54
+ });
55
+
56
+ tx.add(
57
+ profileMod.setProfile({
58
+ package: params.partyProfilePackageId,
59
+ arguments: [params.partyId, params.capId, params.bioShort, params.bioLong ?? null, country, languages],
60
+ }),
61
+ );
62
+ };
63
+ }
64
+
65
+ export interface ClearProfileParams {
66
+ partyId: string;
67
+ capId: string;
68
+ partyProfilePackageId: string;
69
+ }
70
+
71
+ /** Removes a party's profile. No-op on-chain if none is set. */
72
+ export function clearProfile(params: ClearProfileParams): TxThunk {
73
+ return (tx) => {
74
+ tx.add(
75
+ profileMod.clearProfile({
76
+ package: params.partyProfilePackageId,
77
+ arguments: [params.partyId, params.capId],
78
+ }),
79
+ );
80
+ };
81
+ }
@@ -0,0 +1,94 @@
1
+ // Copyright (c) Miso Labs, Inc.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ // The `party_roles` extension: the artist-type roles a party holds (artist,
5
+ // producer, DJ, …), a `VecSet<ArtistRole>` on the party. Roles are a closed enum
6
+ // with a `Custom(String)` escape hatch; the builders construct the right
7
+ // `ArtistRole` value via its constructor move-call, then add/remove it.
8
+
9
+ import * as rolesMod from "../../contracts/party_roles/party_roles.ts";
10
+ import type { TxThunk } from "@misofm/partyos";
11
+
12
+ /** The canonical role variants (a fixed, typo-free set the frontend can render). */
13
+ export type CanonicalRole =
14
+ | "artist"
15
+ | "producer"
16
+ | "dj"
17
+ | "composer"
18
+ | "songwriter"
19
+ | "band"
20
+ | "label"
21
+ | "collective";
22
+
23
+ /**
24
+ * A role to add/remove: a canonical variant, or a user-defined `custom` name.
25
+ * Prefer a canonical variant when one fits.
26
+ */
27
+ export type Role = { kind: CanonicalRole } | { kind: "custom"; name: string };
28
+
29
+ // Canonical `kind` → the generated constructor function name (all take no args).
30
+ const CANONICAL_CTORS = {
31
+ artist: rolesMod.artist,
32
+ producer: rolesMod.producer,
33
+ dj: rolesMod.dj,
34
+ composer: rolesMod.composer,
35
+ songwriter: rolesMod.songwriter,
36
+ band: rolesMod.band,
37
+ label: rolesMod.label,
38
+ collective: rolesMod.collective,
39
+ } as const;
40
+
41
+ /** Builds the `ArtistRole` value for a role via its constructor move-call. */
42
+ function buildRole(tx: Parameters<TxThunk>[0], role: Role, pkg: string) {
43
+ if (role.kind === "custom") {
44
+ return tx.add(rolesMod.custom({ package: pkg, arguments: [role.name] }));
45
+ }
46
+ return tx.add(CANONICAL_CTORS[role.kind]({ package: pkg }));
47
+ }
48
+
49
+ export interface AddRoleParams {
50
+ partyId: string;
51
+ capId: string;
52
+ role: Role;
53
+ partyRolesPackageId: string;
54
+ }
55
+
56
+ /** Adds a role to the party. Aborts on-chain if already held or the max is reached. */
57
+ export function addRole(params: AddRoleParams): TxThunk {
58
+ return (tx) => {
59
+ const role = buildRole(tx, params.role, params.partyRolesPackageId);
60
+ tx.add(
61
+ rolesMod.addRole({ package: params.partyRolesPackageId, arguments: [params.partyId, params.capId, role] }),
62
+ );
63
+ };
64
+ }
65
+
66
+ export interface RemoveRoleParams {
67
+ partyId: string;
68
+ capId: string;
69
+ role: Role;
70
+ partyRolesPackageId: string;
71
+ }
72
+
73
+ /** Removes a role from the party. Aborts on-chain if not held. */
74
+ export function removeRole(params: RemoveRoleParams): TxThunk {
75
+ return (tx) => {
76
+ const role = buildRole(tx, params.role, params.partyRolesPackageId);
77
+ tx.add(
78
+ rolesMod.removeRole({ package: params.partyRolesPackageId, arguments: [params.partyId, params.capId, role] }),
79
+ );
80
+ };
81
+ }
82
+
83
+ export interface ClearRolesParams {
84
+ partyId: string;
85
+ capId: string;
86
+ partyRolesPackageId: string;
87
+ }
88
+
89
+ /** Removes the party's entire role set. No-op on-chain if none is set. */
90
+ export function clearRoles(params: ClearRolesParams): TxThunk {
91
+ return (tx) => {
92
+ tx.add(rolesMod.clearRoles({ package: params.partyRolesPackageId, arguments: [params.partyId, params.capId] }));
93
+ };
94
+ }
@@ -0,0 +1,54 @@
1
+ // Copyright (c) Miso Labs, Inc.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ // The `party_tags` extension: free-form descriptor tags on a party, a
5
+ // `VecSet<String>`. Tags are stored exactly as given; normalization is a client
6
+ // concern.
7
+
8
+ import * as tagsMod from "../../contracts/party_tags/party_tags.ts";
9
+ import type { TxThunk } from "@misofm/partyos";
10
+
11
+ export interface AddTagParams {
12
+ partyId: string;
13
+ capId: string;
14
+ tag: string;
15
+ partyTagsPackageId: string;
16
+ }
17
+
18
+ /** Adds a tag to the party. Aborts on-chain if empty, too long, duplicate, or the max is reached. */
19
+ export function addTag(params: AddTagParams): TxThunk {
20
+ return (tx) => {
21
+ tx.add(
22
+ tagsMod.addTag({ package: params.partyTagsPackageId, arguments: [params.partyId, params.capId, params.tag] }),
23
+ );
24
+ };
25
+ }
26
+
27
+ export interface RemoveTagParams {
28
+ partyId: string;
29
+ capId: string;
30
+ tag: string;
31
+ partyTagsPackageId: string;
32
+ }
33
+
34
+ /** Removes a tag from the party. Aborts on-chain if not present. */
35
+ export function removeTag(params: RemoveTagParams): TxThunk {
36
+ return (tx) => {
37
+ tx.add(
38
+ tagsMod.removeTag({ package: params.partyTagsPackageId, arguments: [params.partyId, params.capId, params.tag] }),
39
+ );
40
+ };
41
+ }
42
+
43
+ export interface ClearTagsParams {
44
+ partyId: string;
45
+ capId: string;
46
+ partyTagsPackageId: string;
47
+ }
48
+
49
+ /** Removes the party's entire tag set. No-op on-chain if none is set. */
50
+ export function clearTags(params: ClearTagsParams): TxThunk {
51
+ return (tx) => {
52
+ tx.add(tagsMod.clearTags({ package: params.partyTagsPackageId, arguments: [params.partyId, params.capId] }));
53
+ };
54
+ }
@@ -0,0 +1,40 @@
1
+ // Copyright (c) Miso Labs, Inc.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ export * from "./types.ts";
5
+ export * from "./queries.ts";
6
+ export * from "./client.ts";
7
+ export * from "./extensions/profile.ts";
8
+ export * from "./extensions/media.ts";
9
+ export * from "./extensions/roles.ts";
10
+ export * from "./extensions/tags.ts";
11
+ export * from "./extensions/genres.ts";
12
+ export * from "./extensions/ctas.ts";
13
+ export * from "./extensions/links.ts";
14
+
15
+ // === Party core — owned by `@misofm/partyos` ===
16
+ // Re-exported here so `@misofm/platform/party` remains a one-stop import for
17
+ // Party work. The Party object model (identity, admin caps, group membership)
18
+ // itself lives in `@misofm/partyos`; this package only owns the extensions.
19
+ export {
20
+ createIndividualParty,
21
+ createGroupParty,
22
+ setName,
23
+ inviteParty,
24
+ acceptInvite,
25
+ declineInvite,
26
+ revokeInvite,
27
+ leaveGroup,
28
+ removeMember,
29
+ type Party,
30
+ type PartyKind,
31
+ type TxThunk,
32
+ type CreatePartyParams,
33
+ type SetNameParams,
34
+ type InvitePartyParams,
35
+ type AcceptInviteParams,
36
+ type DeclineInviteParams,
37
+ type RevokeInviteParams,
38
+ type LeaveGroupParams,
39
+ type RemoveMemberParams,
40
+ } from "@misofm/partyos";
@@ -0,0 +1,102 @@
1
+ // Copyright (c) Miso Labs, Inc.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ // The single boundary between generated BCS-parse output (snake_case, Move-shaped)
5
+ // and the public camelCase types.
6
+
7
+ import { bcs } from "@mysten/sui/bcs";
8
+ import { fromBase64, toBase64 } from "@mysten/sui/utils";
9
+ import type { Cta, Media, Profile } from "./types.ts";
10
+
11
+ const u256 = bcs.u256();
12
+
13
+ function toBase64Url(bytes: Uint8Array): string {
14
+ return toBase64(bytes).replace(/=*$/, "").replaceAll("+", "-").replaceAll("/", "_");
15
+ }
16
+
17
+ function fromBase64Url(value: string): Uint8Array {
18
+ let base64 = value.replaceAll("-", "+").replaceAll("_", "/");
19
+ while (base64.length % 4) base64 += "=";
20
+ return fromBase64(base64);
21
+ }
22
+
23
+ export function u256ToB64Url(value: bigint | string): string {
24
+ return toBase64Url(u256.serialize(BigInt(value)).toBytes());
25
+ }
26
+
27
+ export function b64UrlToU256(value: string): string {
28
+ return u256.parse(fromBase64Url(value)).toString();
29
+ }
30
+
31
+ /** `CountryCode` / `LanguageCode` are single-field tuple structs → parse to a 1-element array. */
32
+ function unwrapCode(v: unknown): string | undefined {
33
+ if (v == null) return undefined;
34
+ return Array.isArray(v) ? (v[0] as string) : (v as string);
35
+ }
36
+
37
+ // deno-lint-ignore no-explicit-any -- generated parse output is loosely typed
38
+ export function mapProfile(partyId: string, d: any): Profile {
39
+ return {
40
+ partyId,
41
+ bioShort: d.bio_short,
42
+ bioLong: d.bio_long ?? undefined,
43
+ country: unwrapCode(d.country),
44
+ languages: Array.isArray(d.languages)
45
+ ? d.languages.map((l: unknown) => unwrapCode(l)).filter((c: unknown): c is string => Boolean(c))
46
+ : [],
47
+ };
48
+ }
49
+
50
+ // On-chain `Media` holds the quilt blob id as a u256 (decimal string from BCS);
51
+ // expose it in Walrus's base64url form so callers can build aggregator URLs.
52
+ // deno-lint-ignore no-explicit-any -- generated parse output is loosely typed
53
+ export function mapMedia(partyId: string, d: any): Media {
54
+ return { partyId, quiltId: u256ToB64Url(String(d.quilt)) };
55
+ }
56
+
57
+ // The display name of each canonical `ArtistRole` variant (matches Move's
58
+ // `role_name` — note `Dj` → "DJ"). `Custom` carries its own string.
59
+ const CANONICAL_ROLE_NAMES: Record<string, string> = {
60
+ Artist: "Artist",
61
+ Producer: "Producer",
62
+ Dj: "DJ",
63
+ Composer: "Composer",
64
+ Songwriter: "Songwriter",
65
+ Band: "Band",
66
+ Label: "Label",
67
+ Collective: "Collective",
68
+ };
69
+
70
+ /** One parsed `ArtistRole` enum value → its display name (`Custom` → its string). */
71
+ // deno-lint-ignore no-explicit-any -- generated parse output is loosely typed
72
+ function roleName(r: any): string {
73
+ if (r?.$kind === "Custom") return String(r.Custom ?? r.value ?? "");
74
+ return CANONICAL_ROLE_NAMES[r?.$kind] ?? String(r?.$kind ?? "");
75
+ }
76
+
77
+ /** A party's `VecSet<ArtistRole>` → role display names. */
78
+ // deno-lint-ignore no-explicit-any -- generated parse output is loosely typed
79
+ export function mapRoles(d: any): string[] {
80
+ const contents = Array.isArray(d) ? d : d?.contents ?? d?.roles?.contents ?? [];
81
+ return (Array.isArray(contents) ? contents : []).map(roleName);
82
+ }
83
+
84
+ /** A party's `VecSet<String>` tag set → tag strings. */
85
+ // deno-lint-ignore no-explicit-any -- generated parse output is loosely typed
86
+ export function mapTags(d: any): string[] {
87
+ const contents = Array.isArray(d) ? d : d?.contents ?? d?.tags?.contents ?? [];
88
+ return (Array.isArray(contents) ? contents : []).map((t: unknown) => String(t));
89
+ }
90
+
91
+ /** A party's `VecSet<ID>` genre set → genre object id strings. */
92
+ // deno-lint-ignore no-explicit-any -- generated parse output is loosely typed
93
+ export function mapGenres(d: any): string[] {
94
+ const contents = Array.isArray(d) ? d : d?.contents ?? d?.genres?.contents ?? [];
95
+ return (Array.isArray(contents) ? contents : []).map((g: unknown) => String(g));
96
+ }
97
+
98
+ /** A party's `vector<Cta>` → CTA entries, preserving order (position is priority). */
99
+ // deno-lint-ignore no-explicit-any -- generated parse output is loosely typed
100
+ export function mapCtas(d: any): Cta[] {
101
+ return (Array.isArray(d) ? d : []).map((c: any) => ({ label: String(c.label), url: String(c.url) }));
102
+ }
@@ -0,0 +1,175 @@
1
+ // Copyright (c) Miso Labs, Inc.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ // Typed reads for the Party EXTENSIONS: fetch an on-chain dynamic field via the
5
+ // Core API, BCS-parse it through the generated struct, and map to the public
6
+ // camelCase types. Party core reads (`getPartyById`, group membership, …) live
7
+ // in `@misofm/partyos` — this file only covers profile/media/roles/tags/genres/
8
+ // ctas/links.
9
+
10
+ import { Effect, Option, Stream } from "effect";
11
+ import { deriveDynamicFieldID } from "@mysten/sui/utils";
12
+ import { bcs } from "@mysten/sui/bcs";
13
+ import {
14
+ decodeBcs,
15
+ getOptionalObjectContent,
16
+ listDynamicFields,
17
+ SuiClient,
18
+ type BcsDecodeError,
19
+ type SuiRpcError,
20
+ } from "@misofm/effect";
21
+ import { Profile as ProfileBcs, ProfileKey as ProfileKeyBcs } from "../contracts/party_profile/party_profile.ts";
22
+ import { Media as MediaBcs, MediaKey as MediaKeyBcs } from "../contracts/party_media/party_media.ts";
23
+ import { ArtistRole as ArtistRoleBcs, RolesKey as RolesKeyBcs } from "../contracts/party_roles/party_roles.ts";
24
+ import { TagsKey as TagsKeyBcs } from "../contracts/party_tags/party_tags.ts";
25
+ import { GenresKey as GenresKeyBcs } from "../contracts/party_genre/party_genre.ts";
26
+ import { Cta as CtaBcs, CtasKey as CtasKeyBcs } from "../contracts/party_cta/party_cta.ts";
27
+ import { mapCtas, mapGenres, mapMedia, mapProfile, mapRoles, mapTags } from "./internal.ts";
28
+ import { buildLink, platformForDataType } from "./extensions/links.ts";
29
+ import { Cta, Media, PlatformLink, Profile } from "./types.ts";
30
+
31
+ // The profile is a dynamic field on the party UID under an empty `ProfileKey()`
32
+ // (Move's implicit `dummy_field: bool` → one zero byte).
33
+ const ProfileField = bcs.struct("Field", { id: bcs.Address, name: ProfileKeyBcs, value: ProfileBcs });
34
+ const PROFILE_KEY_BYTES = ProfileKeyBcs.serialize([false]).toBytes();
35
+
36
+ /** Fetches a party's profile; `Option.none()` if none is set. */
37
+ export const getProfile = Effect.fn("getProfile")(function* (
38
+ partyId: string,
39
+ partyProfilePackageId: string,
40
+ ): Effect.fn.Return<Option.Option<Profile>, BcsDecodeError | SuiRpcError, SuiClient> {
41
+ const fieldId = deriveDynamicFieldID(
42
+ partyId,
43
+ `${partyProfilePackageId}::party_profile::ProfileKey`,
44
+ PROFILE_KEY_BYTES,
45
+ );
46
+ const contentOpt = yield* getOptionalObjectContent(fieldId);
47
+ if (Option.isNone(contentOpt)) return Option.none();
48
+ const profile = yield* decodeBcs(
49
+ { parse: (bytes: Uint8Array) => mapProfile(partyId, ProfileField.parse(bytes).value) },
50
+ Profile,
51
+ contentOpt.value.content,
52
+ { type: "Profile", objectId: fieldId },
53
+ );
54
+ return Option.some(profile);
55
+ });
56
+
57
+ // Media is a dynamic field on the party UID under an empty `MediaKey()` (same
58
+ // implicit `dummy_field: bool` → one zero byte as the profile key).
59
+ const MediaField = bcs.struct("Field", { id: bcs.Address, name: MediaKeyBcs, value: MediaBcs });
60
+ const MEDIA_KEY_BYTES = MediaKeyBcs.serialize([false]).toBytes();
61
+
62
+ /** Fetches a party's media (avatar + header); `Option.none()` if none is set. */
63
+ export const getMedia = Effect.fn("getMedia")(function* (
64
+ partyId: string,
65
+ partyMediaPackageId: string,
66
+ ): Effect.fn.Return<Option.Option<Media>, BcsDecodeError | SuiRpcError, SuiClient> {
67
+ const fieldId = deriveDynamicFieldID(
68
+ partyId,
69
+ `${partyMediaPackageId}::party_media::MediaKey`,
70
+ MEDIA_KEY_BYTES,
71
+ );
72
+ const contentOpt = yield* getOptionalObjectContent(fieldId);
73
+ if (Option.isNone(contentOpt)) return Option.none();
74
+ const media = yield* decodeBcs(
75
+ { parse: (bytes: Uint8Array) => mapMedia(partyId, MediaField.parse(bytes).value) },
76
+ Media,
77
+ contentOpt.value.content,
78
+ { type: "Media", objectId: fieldId },
79
+ );
80
+ return Option.some(media);
81
+ });
82
+
83
+ // === Collection extension reads (roles / tags / genres / ctas) ===
84
+ //
85
+ // Each is a single dynamic field on the party UID under an empty positional key
86
+ // (Move's implicit `dummy_field: bool` → one zero byte, same as the profile key).
87
+ // Absence keeps the pre-migration policy: an empty collection, not a failure.
88
+
89
+ const ROLES_KEY_BYTES = RolesKeyBcs.serialize([false]).toBytes();
90
+ const RolesField = bcs.struct("Field", { id: bcs.Address, name: RolesKeyBcs, value: bcs.vector(ArtistRoleBcs) });
91
+
92
+ /** The party's artist-type roles (display names), or `[]` if none are set. */
93
+ export const getRoles = Effect.fn("getRoles")(function* (
94
+ partyId: string,
95
+ partyRolesPackageId: string,
96
+ ): Effect.fn.Return<string[], SuiRpcError, SuiClient> {
97
+ const fieldId = deriveDynamicFieldID(partyId, `${partyRolesPackageId}::party_roles::RolesKey`, ROLES_KEY_BYTES);
98
+ const contentOpt = yield* getOptionalObjectContent(fieldId);
99
+ if (Option.isNone(contentOpt)) return [];
100
+ return mapRoles(RolesField.parse(contentOpt.value.content).value);
101
+ });
102
+
103
+ const TAGS_KEY_BYTES = TagsKeyBcs.serialize([false]).toBytes();
104
+ const TagsField = bcs.struct("Field", { id: bcs.Address, name: TagsKeyBcs, value: bcs.vector(bcs.string()) });
105
+
106
+ /** The party's free-form tags, or `[]` if none are set. */
107
+ export const getTags = Effect.fn("getTags")(function* (
108
+ partyId: string,
109
+ partyTagsPackageId: string,
110
+ ): Effect.fn.Return<string[], SuiRpcError, SuiClient> {
111
+ const fieldId = deriveDynamicFieldID(partyId, `${partyTagsPackageId}::party_tags::TagsKey`, TAGS_KEY_BYTES);
112
+ const contentOpt = yield* getOptionalObjectContent(fieldId);
113
+ if (Option.isNone(contentOpt)) return [];
114
+ return mapTags(TagsField.parse(contentOpt.value.content).value);
115
+ });
116
+
117
+ const GENRES_KEY_BYTES = GenresKeyBcs.serialize([false]).toBytes();
118
+ const GenresField = bcs.struct("Field", { id: bcs.Address, name: GenresKeyBcs, value: bcs.vector(bcs.Address) });
119
+
120
+ /** The party's genre object ids, or `[]` if none are set. */
121
+ export const getGenres = Effect.fn("getGenres")(function* (
122
+ partyId: string,
123
+ partyGenrePackageId: string,
124
+ ): Effect.fn.Return<string[], SuiRpcError, SuiClient> {
125
+ const fieldId = deriveDynamicFieldID(partyId, `${partyGenrePackageId}::party_genre::GenresKey`, GENRES_KEY_BYTES);
126
+ const contentOpt = yield* getOptionalObjectContent(fieldId);
127
+ if (Option.isNone(contentOpt)) return [];
128
+ return mapGenres(GenresField.parse(contentOpt.value.content).value);
129
+ });
130
+
131
+ const CTAS_KEY_BYTES = CtasKeyBcs.serialize([false]).toBytes();
132
+ // The CTA field's value is a bare `vector<Cta>` (not a wrapper struct).
133
+ const CtasField = bcs.struct("Field", { id: bcs.Address, name: CtasKeyBcs, value: bcs.vector(CtaBcs) });
134
+
135
+ /** The party's ordered CTA list (position is priority), or `[]` if none is set. */
136
+ export const getCtas = Effect.fn("getCtas")(function* (
137
+ partyId: string,
138
+ partyCtaPackageId: string,
139
+ ): Effect.fn.Return<Cta[], SuiRpcError, SuiClient> {
140
+ const fieldId = deriveDynamicFieldID(partyId, `${partyCtaPackageId}::party_cta::CtasKey`, CTAS_KEY_BYTES);
141
+ const contentOpt = yield* getOptionalObjectContent(fieldId);
142
+ if (Option.isNone(contentOpt)) return [];
143
+ return mapCtas(CtasField.parse(contentOpt.value.content).value).map((c) => new Cta(c));
144
+ });
145
+
146
+ // === Platform-link reads ===
147
+ //
148
+ // Each platform is an independent `PlatformLink<Data>` dynamic field keyed by
149
+ // `platform_link::PlatformLinkKey<Data>`. There is no single key to derive, so
150
+ // enumerate the party's dynamic fields and pick out the platform-link ones,
151
+ // identifying the platform from the `Data` type argument. Every payload `Data`
152
+ // type is a single-`String` newtype, so `PlatformLink<Data>` serializes exactly
153
+ // as one BCS string — parse the field value as such.
154
+ const PlatformLinkField = bcs.struct("Field", { id: bcs.Address, name: bcs.bool(), value: bcs.string() });
155
+ const PLATFORM_LINK_KEY_RE = /::platform_link::PlatformLinkKey<(.+)>$/;
156
+
157
+ /** All external-platform links attached to a party (social, music, professional). */
158
+ export const getLinks = Effect.fn("getLinks")(function* (
159
+ partyId: string,
160
+ ): Effect.fn.Return<PlatformLink[], SuiRpcError, SuiClient> {
161
+ const fields = Array.from(yield* Stream.runCollect(listDynamicFields(partyId)));
162
+ const links: PlatformLink[] = [];
163
+ for (const f of fields) {
164
+ if (typeof f.name?.type !== "string") continue;
165
+ const match = f.name.type.match(PLATFORM_LINK_KEY_RE);
166
+ const dataType = match?.[1];
167
+ if (!dataType) continue;
168
+ const platform = platformForDataType(dataType);
169
+ if (!platform) continue;
170
+ const contentOpt = yield* getOptionalObjectContent(f.fieldId);
171
+ if (Option.isNone(contentOpt)) continue;
172
+ links.push(buildLink(platform, PlatformLinkField.parse(contentOpt.value.content).value));
173
+ }
174
+ return links;
175
+ });
@@ -0,0 +1,88 @@
1
+ // Copyright (c) Miso Labs, Inc.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ // Public, camelCase result types for the Party EXTENSIONS. The mappers in
5
+ // ./internal.ts turn the generated (snake_case, Move-shaped) parse output into
6
+ // these. The Party object model itself (`Party`, `PartyKind`) is owned by
7
+ // `@misofm/partyos` — import it from there.
8
+
9
+ import { Schema } from "effect";
10
+
11
+ export class Profile extends Schema.Class<Profile>("@misofm/platform/Profile")({
12
+ partyId: Schema.String,
13
+ bioShort: Schema.String,
14
+ bioLong: Schema.optional(Schema.String),
15
+ /** ISO 3166-1 alpha-2 country code, e.g. "GB". */
16
+ country: Schema.optional(Schema.String),
17
+ /** ISO 639-1 language codes, e.g. ["en"]. */
18
+ languages: Schema.Array(Schema.String),
19
+ }) {}
20
+
21
+ /**
22
+ * A party's imagery, stored on-chain as a single Walrus quilt. Individual images
23
+ * (avatar, header, …) are quilt patches addressed by identifier off-chain — see
24
+ * `mediaUrls` / `MEDIA_IDENTIFIERS` in `extensions/media`.
25
+ */
26
+ export class Media extends Schema.Class<Media>("@misofm/platform/Media")({
27
+ partyId: Schema.String,
28
+ /** Walrus quilt blob id (base64url) holding the party's images. */
29
+ quiltId: Schema.String,
30
+ }) {}
31
+
32
+ /** A single call-to-action on a party: a labeled external link. Position is priority. */
33
+ export class Cta extends Schema.Class<Cta>("@misofm/platform/Cta")({
34
+ label: Schema.String,
35
+ url: Schema.String,
36
+ }) {}
37
+
38
+ /**
39
+ * A platform this SDK knows how to build a link for. One key per external
40
+ * platform, spanning social (`x`, `instagram`, …), music (`spotify`, `bandcamp`,
41
+ * …), and professional/industry (`website`, `patreon`, …) payloads.
42
+ */
43
+ export const PlatformKey = Schema.Literals([
44
+ // Social (party_social)
45
+ "x",
46
+ "instagram",
47
+ "threads",
48
+ "tiktok",
49
+ "youtube",
50
+ "discord",
51
+ "telegram",
52
+ "reddit",
53
+ "twitch",
54
+ "facebook",
55
+ // Music (party_music)
56
+ "spotify",
57
+ "bandcamp",
58
+ "soundcloud",
59
+ "appleMusic",
60
+ "deezer",
61
+ "tidal",
62
+ "amazonMusic",
63
+ "audiomack",
64
+ // Professional / industry (party_pro_link)
65
+ "website",
66
+ "bookingPage",
67
+ "managementPage",
68
+ "publisherPage",
69
+ "labelPage",
70
+ "epk",
71
+ "patreon",
72
+ "substack",
73
+ "kofi",
74
+ ]);
75
+ export type PlatformKey = typeof PlatformKey.Type;
76
+
77
+ /**
78
+ * One external-platform link attached to a party. Only the native identifier
79
+ * (`value` — a handle, artist id, subdomain, or full URL) is stored on-chain; the
80
+ * public `url` is rebuilt client-side from it.
81
+ */
82
+ export class PlatformLink extends Schema.Class<PlatformLink>("@misofm/platform/PlatformLink")({
83
+ platform: PlatformKey,
84
+ /** The platform-native identifier stored on-chain (handle / id / subdomain / URL). */
85
+ value: Schema.String,
86
+ /** The public profile URL, rebuilt from `value`. */
87
+ url: Schema.String,
88
+ }) {}