@misofm/platform 0.27.0 → 0.28.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 (425) hide show
  1. package/README.md +309 -204
  2. package/dist/Miso.d.ts +403 -0
  3. package/dist/Miso.d.ts.map +1 -0
  4. package/dist/Miso.js +455 -0
  5. package/dist/Miso.js.map +1 -0
  6. package/dist/auth.d.ts +11 -1
  7. package/dist/auth.d.ts.map +1 -1
  8. package/dist/auth.js +16 -3
  9. package/dist/auth.js.map +1 -1
  10. package/dist/catalog.d.ts +8 -5
  11. package/dist/catalog.d.ts.map +1 -1
  12. package/dist/catalog.js +36 -19
  13. package/dist/catalog.js.map +1 -1
  14. package/dist/client.d.ts +52 -443
  15. package/dist/client.d.ts.map +1 -1
  16. package/dist/client.js +58 -775
  17. package/dist/client.js.map +1 -1
  18. package/dist/contracts/composition_credits/composition_credits.d.ts +38 -48
  19. package/dist/contracts/composition_credits/composition_credits.d.ts.map +1 -1
  20. package/dist/contracts/composition_credits/composition_credits.js +20 -4
  21. package/dist/contracts/composition_credits/composition_credits.js.map +1 -1
  22. package/dist/contracts/composition_routed_stake/composition_routed_stake.d.ts +64 -1
  23. package/dist/contracts/composition_routed_stake/composition_routed_stake.d.ts.map +1 -1
  24. package/dist/contracts/composition_routed_stake/composition_routed_stake.js +66 -1
  25. package/dist/contracts/composition_routed_stake/composition_routed_stake.js.map +1 -1
  26. package/dist/contracts/composition_royalty_pool/composition_royalty_pool.d.ts +52 -4
  27. package/dist/contracts/composition_royalty_pool/composition_royalty_pool.d.ts.map +1 -1
  28. package/dist/contracts/composition_royalty_pool/composition_royalty_pool.js +52 -4
  29. package/dist/contracts/composition_royalty_pool/composition_royalty_pool.js.map +1 -1
  30. package/dist/contracts/composition_royalty_pool_plugin/composition_royalty_pool_plugin.d.ts +63 -1
  31. package/dist/contracts/composition_royalty_pool_plugin/composition_royalty_pool_plugin.d.ts.map +1 -1
  32. package/dist/contracts/composition_royalty_pool_plugin/composition_royalty_pool_plugin.js +63 -1
  33. package/dist/contracts/composition_royalty_pool_plugin/composition_royalty_pool_plugin.js.map +1 -1
  34. package/dist/contracts/genre/genre.d.ts +10 -1
  35. package/dist/contracts/genre/genre.d.ts.map +1 -1
  36. package/dist/contracts/genre/genre.js +8 -1
  37. package/dist/contracts/genre/genre.js.map +1 -1
  38. package/dist/contracts/miso_pay/deps/std/type_name.d.ts.map +1 -0
  39. package/dist/contracts/miso_pay/deps/std/type_name.js.map +1 -0
  40. package/dist/contracts/miso_pay/pay.d.ts +209 -0
  41. package/dist/contracts/miso_pay/pay.d.ts.map +1 -0
  42. package/dist/contracts/miso_pay/pay.js +195 -0
  43. package/dist/contracts/miso_pay/pay.js.map +1 -0
  44. package/dist/contracts/party_cta/party_cta.d.ts +49 -3
  45. package/dist/contracts/party_cta/party_cta.d.ts.map +1 -1
  46. package/dist/contracts/party_cta/party_cta.js +27 -5
  47. package/dist/contracts/party_cta/party_cta.js.map +1 -1
  48. package/dist/contracts/party_genre/party_genre.d.ts +25 -0
  49. package/dist/contracts/party_genre/party_genre.d.ts.map +1 -1
  50. package/dist/contracts/party_genre/party_genre.js +14 -3
  51. package/dist/contracts/party_genre/party_genre.js.map +1 -1
  52. package/dist/contracts/party_media/party_media.d.ts +19 -3
  53. package/dist/contracts/party_media/party_media.d.ts.map +1 -1
  54. package/dist/contracts/party_media/party_media.js +20 -4
  55. package/dist/contracts/party_media/party_media.js.map +1 -1
  56. package/dist/contracts/party_platform_link/party_platform_link.d.ts +15 -7
  57. package/dist/contracts/party_platform_link/party_platform_link.d.ts.map +1 -1
  58. package/dist/contracts/party_platform_link/party_platform_link.js +15 -7
  59. package/dist/contracts/party_platform_link/party_platform_link.js.map +1 -1
  60. package/dist/contracts/party_profile/party_profile.d.ts +63 -8
  61. package/dist/contracts/party_profile/party_profile.d.ts.map +1 -1
  62. package/dist/contracts/party_profile/party_profile.js +33 -8
  63. package/dist/contracts/party_profile/party_profile.js.map +1 -1
  64. package/dist/contracts/party_roles/party_roles.d.ts +28 -3
  65. package/dist/contracts/party_roles/party_roles.d.ts.map +1 -1
  66. package/dist/contracts/party_roles/party_roles.js +19 -4
  67. package/dist/contracts/party_roles/party_roles.js.map +1 -1
  68. package/dist/contracts/party_tags/party_tags.d.ts +23 -3
  69. package/dist/contracts/party_tags/party_tags.d.ts.map +1 -1
  70. package/dist/contracts/party_tags/party_tags.js +16 -4
  71. package/dist/contracts/party_tags/party_tags.js.map +1 -1
  72. package/dist/contracts/party_wallet/party_wallet.d.ts +4 -1
  73. package/dist/contracts/party_wallet/party_wallet.d.ts.map +1 -1
  74. package/dist/contracts/party_wallet/party_wallet.js +2 -1
  75. package/dist/contracts/party_wallet/party_wallet.js.map +1 -1
  76. package/dist/contracts/platform_link/platform_link.d.ts +207 -0
  77. package/dist/contracts/platform_link/platform_link.d.ts.map +1 -0
  78. package/dist/contracts/platform_link/platform_link.js +209 -0
  79. package/dist/contracts/platform_link/platform_link.js.map +1 -0
  80. package/dist/contracts/record/pressing.d.ts +53 -7
  81. package/dist/contracts/record/pressing.d.ts.map +1 -1
  82. package/dist/contracts/record/pressing.js +50 -4
  83. package/dist/contracts/record/pressing.js.map +1 -1
  84. package/dist/contracts/record/record.d.ts +14 -0
  85. package/dist/contracts/record/record.d.ts.map +1 -1
  86. package/dist/contracts/record/record.js +15 -1
  87. package/dist/contracts/record/record.js.map +1 -1
  88. package/dist/contracts/record_shop/listing.d.ts +80 -35
  89. package/dist/contracts/record_shop/listing.d.ts.map +1 -1
  90. package/dist/contracts/record_shop/listing.js +76 -13
  91. package/dist/contracts/record_shop/listing.js.map +1 -1
  92. package/dist/contracts/recording_advisory/recording_advisory.d.ts +15 -15
  93. package/dist/contracts/recording_advisory/recording_advisory.d.ts.map +1 -1
  94. package/dist/contracts/recording_advisory/recording_advisory.js +15 -8
  95. package/dist/contracts/recording_advisory/recording_advisory.js.map +1 -1
  96. package/dist/contracts/recording_credits/recording_credits.d.ts +95 -1350
  97. package/dist/contracts/recording_credits/recording_credits.d.ts.map +1 -1
  98. package/dist/contracts/recording_credits/recording_credits.js +63 -12
  99. package/dist/contracts/recording_credits/recording_credits.js.map +1 -1
  100. package/dist/contracts/recording_engine_session/recording_engine_session.d.ts +30 -49
  101. package/dist/contracts/recording_engine_session/recording_engine_session.d.ts.map +1 -1
  102. package/dist/contracts/recording_engine_session/recording_engine_session.js +19 -4
  103. package/dist/contracts/recording_engine_session/recording_engine_session.js.map +1 -1
  104. package/dist/contracts/recording_genre/recording_genre.d.ts +67 -9
  105. package/dist/contracts/recording_genre/recording_genre.d.ts.map +1 -1
  106. package/dist/contracts/recording_genre/recording_genre.js +53 -9
  107. package/dist/contracts/recording_genre/recording_genre.js.map +1 -1
  108. package/dist/contracts/recording_language/recording_language.d.ts +29 -5
  109. package/dist/contracts/recording_language/recording_language.d.ts.map +1 -1
  110. package/dist/contracts/recording_language/recording_language.js +18 -5
  111. package/dist/contracts/recording_language/recording_language.js.map +1 -1
  112. package/dist/contracts/recording_master_reference/recording_master_reference.d.ts +25 -15
  113. package/dist/contracts/recording_master_reference/recording_master_reference.d.ts.map +1 -1
  114. package/dist/contracts/recording_master_reference/recording_master_reference.js +18 -5
  115. package/dist/contracts/recording_master_reference/recording_master_reference.js.map +1 -1
  116. package/dist/contracts/recording_royalty_pool/recording_royalty_pool.d.ts +55 -4
  117. package/dist/contracts/recording_royalty_pool/recording_royalty_pool.d.ts.map +1 -1
  118. package/dist/contracts/recording_royalty_pool/recording_royalty_pool.js +55 -4
  119. package/dist/contracts/recording_royalty_pool/recording_royalty_pool.js.map +1 -1
  120. package/dist/contracts/recording_royalty_pool_plugin/recording_royalty_pool_plugin.d.ts +66 -1
  121. package/dist/contracts/recording_royalty_pool_plugin/recording_royalty_pool_plugin.d.ts.map +1 -1
  122. package/dist/contracts/recording_royalty_pool_plugin/recording_royalty_pool_plugin.js +66 -1
  123. package/dist/contracts/recording_royalty_pool_plugin/recording_royalty_pool_plugin.js.map +1 -1
  124. package/dist/contracts/recording_streaming_transcode/recording_streaming_transcode.d.ts +12 -9
  125. package/dist/contracts/recording_streaming_transcode/recording_streaming_transcode.d.ts.map +1 -1
  126. package/dist/contracts/recording_streaming_transcode/recording_streaming_transcode.js +11 -4
  127. package/dist/contracts/recording_streaming_transcode/recording_streaming_transcode.js.map +1 -1
  128. package/dist/contracts/release_cover_art/release_cover_art.d.ts +168 -74
  129. package/dist/contracts/release_cover_art/release_cover_art.d.ts.map +1 -1
  130. package/dist/contracts/release_cover_art/release_cover_art.js +126 -10
  131. package/dist/contracts/release_cover_art/release_cover_art.js.map +1 -1
  132. package/dist/contracts/release_credits/release_credits.d.ts +24 -28
  133. package/dist/contracts/release_credits/release_credits.d.ts.map +1 -1
  134. package/dist/contracts/release_credits/release_credits.js +18 -4
  135. package/dist/contracts/release_credits/release_credits.js.map +1 -1
  136. package/dist/contracts/release_description/release_description.d.ts +16 -5
  137. package/dist/contracts/release_description/release_description.d.ts.map +1 -1
  138. package/dist/contracts/release_description/release_description.js +9 -4
  139. package/dist/contracts/release_description/release_description.js.map +1 -1
  140. package/dist/contracts/release_dsp_link/release_dsp_link.d.ts +130 -160
  141. package/dist/contracts/release_dsp_link/release_dsp_link.d.ts.map +1 -1
  142. package/dist/contracts/release_dsp_link/release_dsp_link.js +74 -19
  143. package/dist/contracts/release_dsp_link/release_dsp_link.js.map +1 -1
  144. package/dist/contracts/release_genre/release_genre.d.ts +66 -11
  145. package/dist/contracts/release_genre/release_genre.d.ts.map +1 -1
  146. package/dist/contracts/release_genre/release_genre.js +52 -11
  147. package/dist/contracts/release_genre/release_genre.js.map +1 -1
  148. package/dist/contracts/release_kind/release_kind.d.ts +28 -5
  149. package/dist/contracts/release_kind/release_kind.d.ts.map +1 -1
  150. package/dist/contracts/release_kind/release_kind.js +19 -4
  151. package/dist/contracts/release_kind/release_kind.js.map +1 -1
  152. package/dist/contracts/release_revenue_distributor/release_revenue_distributor.d.ts +17 -0
  153. package/dist/contracts/release_revenue_distributor/release_revenue_distributor.d.ts.map +1 -1
  154. package/dist/contracts/release_revenue_distributor/release_revenue_distributor.js +15 -0
  155. package/dist/contracts/release_revenue_distributor/release_revenue_distributor.js.map +1 -1
  156. package/dist/contracts/release_revenue_distributor_plugin/release_revenue_distributor_plugin.d.ts +37 -1
  157. package/dist/contracts/release_revenue_distributor_plugin/release_revenue_distributor_plugin.d.ts.map +1 -1
  158. package/dist/contracts/release_revenue_distributor_plugin/release_revenue_distributor_plugin.js +37 -1
  159. package/dist/contracts/release_revenue_distributor_plugin/release_revenue_distributor_plugin.js.map +1 -1
  160. package/dist/contracts/routed_stake/routed_stake.d.ts +78 -6
  161. package/dist/contracts/routed_stake/routed_stake.d.ts.map +1 -1
  162. package/dist/contracts/routed_stake/routed_stake.js +79 -7
  163. package/dist/contracts/routed_stake/routed_stake.js.map +1 -1
  164. package/dist/contracts/royalty_pool/pool.d.ts +117 -27
  165. package/dist/contracts/royalty_pool/pool.d.ts.map +1 -1
  166. package/dist/contracts/royalty_pool/pool.js +117 -28
  167. package/dist/contracts/royalty_pool/pool.js.map +1 -1
  168. package/dist/contracts/royalty_pool/stake.d.ts +3 -0
  169. package/dist/contracts/royalty_pool/stake.d.ts.map +1 -1
  170. package/dist/contracts/royalty_pool/stake.js +5 -2
  171. package/dist/contracts/royalty_pool/stake.js.map +1 -1
  172. package/dist/contracts/share/share.d.ts +80 -0
  173. package/dist/contracts/share/share.d.ts.map +1 -0
  174. package/dist/contracts/share/share.js +72 -0
  175. package/dist/contracts/share/share.js.map +1 -0
  176. package/dist/contracts/vault/vault.d.ts +51 -0
  177. package/dist/contracts/vault/vault.d.ts.map +1 -1
  178. package/dist/contracts/vault/vault.js +55 -4
  179. package/dist/contracts/vault/vault.js.map +1 -1
  180. package/dist/contracts.d.ts +60 -0
  181. package/dist/contracts.d.ts.map +1 -1
  182. package/dist/contracts.js +17 -0
  183. package/dist/contracts.js.map +1 -1
  184. package/dist/cover.d.ts +5 -6
  185. package/dist/cover.d.ts.map +1 -1
  186. package/dist/cover.js +10 -10
  187. package/dist/cover.js.map +1 -1
  188. package/dist/credits.d.ts +12 -13
  189. package/dist/credits.d.ts.map +1 -1
  190. package/dist/credits.js +16 -10
  191. package/dist/credits.js.map +1 -1
  192. package/dist/deployments.d.ts +3 -3
  193. package/dist/deployments.d.ts.map +1 -1
  194. package/dist/deployments.js +2 -3
  195. package/dist/deployments.js.map +1 -1
  196. package/dist/errors.d.ts +24 -9
  197. package/dist/errors.d.ts.map +1 -1
  198. package/dist/errors.js +43 -16
  199. package/dist/errors.js.map +1 -1
  200. package/dist/events.d.ts +1687 -835
  201. package/dist/events.d.ts.map +1 -1
  202. package/dist/events.js +258 -39
  203. package/dist/events.js.map +1 -1
  204. package/dist/genre.d.ts +11 -12
  205. package/dist/genre.d.ts.map +1 -1
  206. package/dist/genre.js +5 -3
  207. package/dist/genre.js.map +1 -1
  208. package/dist/index.d.ts +3 -3
  209. package/dist/index.d.ts.map +1 -1
  210. package/dist/index.js +7 -2
  211. package/dist/index.js.map +1 -1
  212. package/dist/packages.d.ts +1047 -1695
  213. package/dist/packages.d.ts.map +1 -1
  214. package/dist/party/client.d.ts +113 -296
  215. package/dist/party/client.d.ts.map +1 -1
  216. package/dist/party/client.js +93 -178
  217. package/dist/party/client.js.map +1 -1
  218. package/dist/party/extensions/ctas.d.ts +3 -3
  219. package/dist/party/extensions/ctas.d.ts.map +1 -1
  220. package/dist/party/extensions/genres.d.ts +4 -4
  221. package/dist/party/extensions/genres.d.ts.map +1 -1
  222. package/dist/party/extensions/links.d.ts +5 -5
  223. package/dist/party/extensions/links.d.ts.map +1 -1
  224. package/dist/party/extensions/links.js.map +1 -1
  225. package/dist/party/extensions/media.d.ts +3 -3
  226. package/dist/party/extensions/media.d.ts.map +1 -1
  227. package/dist/party/extensions/profile.d.ts +3 -3
  228. package/dist/party/extensions/profile.d.ts.map +1 -1
  229. package/dist/party/extensions/roles.d.ts +4 -4
  230. package/dist/party/extensions/roles.d.ts.map +1 -1
  231. package/dist/party/extensions/roles.js.map +1 -1
  232. package/dist/party/extensions/tags.d.ts +4 -4
  233. package/dist/party/extensions/tags.d.ts.map +1 -1
  234. package/dist/party/index.d.ts +1 -1
  235. package/dist/party/index.d.ts.map +1 -1
  236. package/dist/party/index.js.map +1 -1
  237. package/dist/party/queries.d.ts +8 -8
  238. package/dist/party/queries.d.ts.map +1 -1
  239. package/dist/party/queries.js +83 -56
  240. package/dist/party/queries.js.map +1 -1
  241. package/dist/pressing.d.ts +13 -15
  242. package/dist/pressing.d.ts.map +1 -1
  243. package/dist/pressing.js +99 -29
  244. package/dist/pressing.js.map +1 -1
  245. package/dist/publication.d.ts +13 -6
  246. package/dist/publication.d.ts.map +1 -1
  247. package/dist/publication.js +26 -21
  248. package/dist/publication.js.map +1 -1
  249. package/dist/queries.js +3 -3
  250. package/dist/queries.js.map +1 -1
  251. package/dist/read/artist.d.ts +4 -3
  252. package/dist/read/artist.d.ts.map +1 -1
  253. package/dist/read/artist.js +24 -8
  254. package/dist/read/artist.js.map +1 -1
  255. package/dist/read/catalog.d.ts +17 -16
  256. package/dist/read/catalog.d.ts.map +1 -1
  257. package/dist/read/catalog.js +25 -11
  258. package/dist/read/catalog.js.map +1 -1
  259. package/dist/read/client.d.ts +41 -20
  260. package/dist/read/client.d.ts.map +1 -1
  261. package/dist/read/client.js +20 -12
  262. package/dist/read/client.js.map +1 -1
  263. package/dist/read/config.d.ts +25 -3
  264. package/dist/read/config.d.ts.map +1 -1
  265. package/dist/read/config.js +42 -25
  266. package/dist/read/config.js.map +1 -1
  267. package/dist/read/genres.d.ts +8 -3
  268. package/dist/read/genres.d.ts.map +1 -1
  269. package/dist/read/genres.js +23 -17
  270. package/dist/read/genres.js.map +1 -1
  271. package/dist/read/index.d.ts +1 -1
  272. package/dist/read/index.d.ts.map +1 -1
  273. package/dist/read/index.js +8 -6
  274. package/dist/read/index.js.map +1 -1
  275. package/dist/read/receipts.d.ts +5 -4
  276. package/dist/read/receipts.d.ts.map +1 -1
  277. package/dist/read/receipts.js +94 -46
  278. package/dist/read/receipts.js.map +1 -1
  279. package/dist/read/royalties.d.ts +6 -5
  280. package/dist/read/royalties.d.ts.map +1 -1
  281. package/dist/read/royalties.js +16 -9
  282. package/dist/read/royalties.js.map +1 -1
  283. package/dist/read/wallet.d.ts +23 -12
  284. package/dist/read/wallet.d.ts.map +1 -1
  285. package/dist/read/wallet.js +158 -177
  286. package/dist/read/wallet.js.map +1 -1
  287. package/dist/read/works.d.ts +6 -6
  288. package/dist/read/works.d.ts.map +1 -1
  289. package/dist/read/works.js +40 -26
  290. package/dist/read/works.js.map +1 -1
  291. package/dist/recording-extensions.d.ts +15 -16
  292. package/dist/recording-extensions.d.ts.map +1 -1
  293. package/dist/recording-extensions.js +12 -8
  294. package/dist/recording-extensions.js.map +1 -1
  295. package/dist/release-extensions.d.ts +5 -6
  296. package/dist/release-extensions.d.ts.map +1 -1
  297. package/dist/release-extensions.js +3 -2
  298. package/dist/release-extensions.js.map +1 -1
  299. package/dist/release-graph.d.ts +2 -2
  300. package/dist/release-graph.d.ts.map +1 -1
  301. package/dist/release-graph.js.map +1 -1
  302. package/dist/royalty.d.ts +4 -4
  303. package/dist/royalty.d.ts.map +1 -1
  304. package/dist/royalty.js +16 -7
  305. package/dist/royalty.js.map +1 -1
  306. package/dist/share.d.ts +58 -24
  307. package/dist/share.d.ts.map +1 -1
  308. package/dist/share.js +167 -92
  309. package/dist/share.js.map +1 -1
  310. package/dist/transactions.d.ts +15 -6
  311. package/dist/transactions.d.ts.map +1 -1
  312. package/dist/transactions.js +1 -0
  313. package/dist/transactions.js.map +1 -1
  314. package/dist/vault.d.ts +13 -3
  315. package/dist/vault.d.ts.map +1 -1
  316. package/dist/vault.js +22 -16
  317. package/dist/vault.js.map +1 -1
  318. package/package.json +9 -8
  319. package/src/Miso.ts +951 -0
  320. package/src/auth.ts +16 -3
  321. package/src/catalog.ts +58 -25
  322. package/src/client.ts +98 -1359
  323. package/src/contracts/composition_credits/composition_credits.ts +20 -4
  324. package/src/contracts/composition_routed_stake/composition_routed_stake.ts +67 -1
  325. package/src/contracts/composition_royalty_pool/composition_royalty_pool.ts +53 -4
  326. package/src/contracts/composition_royalty_pool_plugin/composition_royalty_pool_plugin.ts +64 -1
  327. package/src/contracts/genre/genre.ts +8 -1
  328. package/src/contracts/miso_pay/pay.ts +356 -0
  329. package/src/contracts/party_cta/party_cta.ts +27 -5
  330. package/src/contracts/party_genre/party_genre.ts +14 -3
  331. package/src/contracts/party_media/party_media.ts +20 -4
  332. package/src/contracts/party_platform_link/party_platform_link.ts +15 -7
  333. package/src/contracts/party_profile/party_profile.ts +33 -8
  334. package/src/contracts/party_roles/party_roles.ts +19 -4
  335. package/src/contracts/party_tags/party_tags.ts +16 -4
  336. package/src/contracts/party_wallet/party_wallet.ts +2 -1
  337. package/src/contracts/platform_link/platform_link.ts +322 -0
  338. package/src/contracts/record/pressing.ts +50 -4
  339. package/src/contracts/record/record.ts +15 -1
  340. package/src/contracts/record_shop/listing.ts +76 -13
  341. package/src/contracts/recording_advisory/recording_advisory.ts +15 -8
  342. package/src/contracts/recording_credits/recording_credits.ts +63 -12
  343. package/src/contracts/recording_engine_session/recording_engine_session.ts +19 -4
  344. package/src/contracts/recording_genre/recording_genre.ts +53 -9
  345. package/src/contracts/recording_language/recording_language.ts +18 -5
  346. package/src/contracts/recording_master_reference/recording_master_reference.ts +18 -5
  347. package/src/contracts/recording_royalty_pool/recording_royalty_pool.ts +56 -4
  348. package/src/contracts/recording_royalty_pool_plugin/recording_royalty_pool_plugin.ts +67 -1
  349. package/src/contracts/recording_streaming_transcode/recording_streaming_transcode.ts +11 -4
  350. package/src/contracts/release_cover_art/release_cover_art.ts +126 -10
  351. package/src/contracts/release_credits/release_credits.ts +18 -4
  352. package/src/contracts/release_description/release_description.ts +9 -4
  353. package/src/contracts/release_dsp_link/release_dsp_link.ts +74 -19
  354. package/src/contracts/release_genre/release_genre.ts +52 -11
  355. package/src/contracts/release_kind/release_kind.ts +19 -4
  356. package/src/contracts/release_revenue_distributor/release_revenue_distributor.ts +15 -0
  357. package/src/contracts/release_revenue_distributor_plugin/release_revenue_distributor_plugin.ts +38 -1
  358. package/src/contracts/routed_stake/routed_stake.ts +79 -7
  359. package/src/contracts/royalty_pool/pool.ts +140 -38
  360. package/src/contracts/royalty_pool/stake.ts +5 -2
  361. package/src/contracts/share/share.ts +97 -0
  362. package/src/contracts/vault/vault.ts +55 -4
  363. package/src/contracts.ts +18 -0
  364. package/src/cover.ts +14 -15
  365. package/src/credits.ts +27 -22
  366. package/src/deployments.ts +3 -4
  367. package/src/errors.ts +64 -34
  368. package/src/events.ts +260 -39
  369. package/src/genre.ts +15 -14
  370. package/src/index.ts +19 -10
  371. package/src/party/client.ts +217 -208
  372. package/src/party/extensions/ctas.ts +3 -3
  373. package/src/party/extensions/genres.ts +4 -4
  374. package/src/party/extensions/links.ts +7 -7
  375. package/src/party/extensions/media.ts +3 -3
  376. package/src/party/extensions/profile.ts +3 -3
  377. package/src/party/extensions/roles.ts +5 -5
  378. package/src/party/extensions/tags.ts +4 -4
  379. package/src/party/index.ts +0 -1
  380. package/src/party/queries.ts +90 -87
  381. package/src/pressing.ts +132 -89
  382. package/src/publication.ts +33 -32
  383. package/src/queries.ts +3 -3
  384. package/src/read/artist.ts +36 -17
  385. package/src/read/catalog.ts +68 -36
  386. package/src/read/client.ts +55 -30
  387. package/src/read/config.ts +55 -30
  388. package/src/read/genres.ts +22 -18
  389. package/src/read/index.ts +8 -6
  390. package/src/read/receipts.ts +130 -67
  391. package/src/read/royalties.ts +22 -10
  392. package/src/read/wallet.ts +226 -216
  393. package/src/read/works.ts +51 -44
  394. package/src/recording-extensions.ts +27 -24
  395. package/src/release-extensions.ts +7 -7
  396. package/src/release-graph.ts +2 -1
  397. package/src/royalty.ts +19 -25
  398. package/src/share.ts +197 -128
  399. package/src/transactions.ts +15 -8
  400. package/src/vault.ts +24 -31
  401. package/dist/contracts/record_shop/deps/std/type_name.d.ts.map +0 -1
  402. package/dist/contracts/record_shop/deps/std/type_name.js.map +0 -1
  403. package/dist/contracts/recording_language/deps/language_code/language_code.d.ts +0 -6
  404. package/dist/contracts/recording_language/deps/language_code/language_code.d.ts.map +0 -1
  405. package/dist/contracts/recording_language/deps/language_code/language_code.js +0 -8
  406. package/dist/contracts/recording_language/deps/language_code/language_code.js.map +0 -1
  407. package/dist/contracts/recording_master_reference/deps/ori/confidentiality.d.ts +0 -24
  408. package/dist/contracts/recording_master_reference/deps/ori/confidentiality.d.ts.map +0 -1
  409. package/dist/contracts/recording_master_reference/deps/ori/confidentiality.js +0 -24
  410. package/dist/contracts/recording_master_reference/deps/ori/confidentiality.js.map +0 -1
  411. package/dist/contracts/recording_master_reference/deps/ori/data.d.ts +0 -16
  412. package/dist/contracts/recording_master_reference/deps/ori/data.d.ts.map +0 -1
  413. package/dist/contracts/recording_master_reference/deps/ori/data.js +0 -12
  414. package/dist/contracts/recording_master_reference/deps/ori/data.js.map +0 -1
  415. package/dist/execute.d.ts +0 -32
  416. package/dist/execute.d.ts.map +0 -1
  417. package/dist/execute.js +0 -36
  418. package/dist/execute.js.map +0 -1
  419. package/src/contracts/recording_language/deps/language_code/language_code.ts +0 -8
  420. package/src/contracts/recording_master_reference/deps/ori/confidentiality.ts +0 -24
  421. package/src/contracts/recording_master_reference/deps/ori/data.ts +0 -12
  422. package/src/execute.ts +0 -56
  423. /package/dist/contracts/{record_shop → miso_pay}/deps/std/type_name.d.ts +0 -0
  424. /package/dist/contracts/{record_shop → miso_pay}/deps/std/type_name.js +0 -0
  425. /package/src/contracts/{record_shop → miso_pay}/deps/std/type_name.ts +0 -0
package/dist/Miso.js ADDED
@@ -0,0 +1,455 @@
1
+ // Copyright (c) Miso Labs, Inc.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import { Config, Context, Effect, Layer } from "effect";
4
+ import { Musicos } from "@misofm/musicos";
5
+ import { Partyos } from "@misofm/partyos";
6
+ import { Sui, SuiGraphQL, } from "@unconfirmed/sui-effect";
7
+ import { Tx } from "@unconfirmed/sui-effect/tx";
8
+ import { getMisoPlatformDeployment, MISO_PLATFORM_DEPLOYMENTS, normalizeMisoPlatformDeployment, requireOperationsDeployment, requireRecordSalesDeployment, } from "./deployments.js";
9
+ import { MisoChainIdentifierMismatchError, MisoNetworkMismatchError, MisoPlatformDeploymentInvalidError, OperationsUnavailableError, RecordSalesUnavailableError, } from "./errors.js";
10
+ import { makeMisoParty } from "./party/client.js";
11
+ import { immutableSnapshot } from "./internal.js";
12
+ import { authorizeRecordShop, deriveListingId, derivePressingAdminCapId, derivePressingId, deriveRecordId, deriveSaleIds, getListing, getPressing, getRecord, getSale, openListing, openPressing, purchaseRecord, revokeRecordShop, setListingPrice, setListingState, } from "./pressing.js";
13
+ import { publishComposition, publishCompositionAndRecording, publishRecording, publishRelease, publishShareCurrency, initializeShareCurrency, } from "./transactions.js";
14
+ import { publishReleaseGraph } from "./release-graph.js";
15
+ import { setReleaseDescription, setReleaseDspLinks, setReleaseKind, } from "./release-extensions.js";
16
+ import { clearRecordingGenres, clearReleaseGenres, deriveGenreAddress, setRecordingGenres, setReleaseGenres, } from "./genre.js";
17
+ import { setRecordingStreamingTranscode, unsetRecordingStreamingTranscode, } from "./recording-extensions.js";
18
+ import { addReleaseCredit } from "./credits.js";
19
+ import { setReleaseCover, setReleaseTrackCover } from "./cover.js";
20
+ import * as vaultActions from "./vault.js";
21
+ import { createShareCurrency, initializeShareCurrencies, publishShareCurrencies } from "./share.js";
22
+ import { publishAtomicCatalog, parseAtomicPublicationResult } from "./publication.js";
23
+ import { platformEventParsers } from "./events.js";
24
+ import { configFromDeployment } from "./read/config.js";
25
+ import * as readCatalog from "./read/catalog.js";
26
+ import * as readArtist from "./read/artist.js";
27
+ import * as readGenres from "./read/genres.js";
28
+ import * as readWallet from "./read/wallet.js";
29
+ import * as readReceipts from "./read/receipts.js";
30
+ import * as readRoyalties from "./read/royalties.js";
31
+ import * as recordContract from "./contracts/record/record.js";
32
+ import * as pressingContract from "./contracts/record/pressing.js";
33
+ import * as listingContract from "./contracts/record_shop/listing.js";
34
+ import * as genreContract from "./contracts/genre/genre.js";
35
+ import * as releaseDescriptionContract from "./contracts/release_description/release_description.js";
36
+ import * as releaseDspLinkContract from "./contracts/release_dsp_link/release_dsp_link.js";
37
+ import * as releaseGenreContract from "./contracts/release_genre/release_genre.js";
38
+ import * as releaseKindContract from "./contracts/release_kind/release_kind.js";
39
+ import * as releaseRevenueDistributorContract from "./contracts/release_revenue_distributor/release_revenue_distributor.js";
40
+ import * as vaultContract from "./contracts/vault/vault.js";
41
+ import * as compositionRoyaltyPoolContract from "./contracts/composition_royalty_pool/composition_royalty_pool.js";
42
+ import * as recordingRoyaltyPoolContract from "./contracts/recording_royalty_pool/recording_royalty_pool.js";
43
+ import * as partyWalletContract from "./contracts/party_wallet/party_wallet.js";
44
+ import * as compositionRoutedStakeContract from "./contracts/composition_routed_stake/composition_routed_stake.js";
45
+ import * as compositionRoyaltyPoolPluginContract from "./contracts/composition_royalty_pool_plugin/composition_royalty_pool_plugin.js";
46
+ import * as recordingRoyaltyPoolPluginContract from "./contracts/recording_royalty_pool_plugin/recording_royalty_pool_plugin.js";
47
+ import * as releaseRevenueDistributorPluginContract from "./contracts/release_revenue_distributor_plugin/release_revenue_distributor_plugin.js";
48
+ import * as routedStakeContract from "./contracts/routed_stake/routed_stake.js";
49
+ import * as royaltyPoolContract from "./contracts/royalty_pool/pool.js";
50
+ import * as recordingAdvisoryContract from "./contracts/recording_advisory/recording_advisory.js";
51
+ import * as recordingLanguageContract from "./contracts/recording_language/recording_language.js";
52
+ import * as recordingMasterReferenceContract from "./contracts/recording_master_reference/recording_master_reference.js";
53
+ import * as recordingStreamingTranscodeContract from "./contracts/recording_streaming_transcode/recording_streaming_transcode.js";
54
+ import * as recordingGenreContract from "./contracts/recording_genre/recording_genre.js";
55
+ import * as coverArtContract from "./contracts/cover_art/cover_art.js";
56
+ import * as releaseCoverArtContract from "./contracts/release_cover_art/release_cover_art.js";
57
+ import * as releaseCreditsContract from "./contracts/release_credits/release_credits.js";
58
+ function bindModulePackage(mod, pkg, available) {
59
+ const out = {};
60
+ for (const key of available) {
61
+ const value = mod[key];
62
+ out[String(key)] = typeof value === "function" ? (options) => value({ ...options, package: pkg }) : value;
63
+ }
64
+ return out;
65
+ }
66
+ /** Every function-valued member of `surface` throws `guard()`'s error before running, when it throws. */
67
+ function gateAvailability(surface, guard) {
68
+ return new Proxy(surface, {
69
+ get(target, property, receiver) {
70
+ const value = Reflect.get(target, property, receiver);
71
+ if (typeof value !== "function")
72
+ return value;
73
+ return (...args) => {
74
+ guard();
75
+ return Reflect.apply(value, target, args);
76
+ };
77
+ },
78
+ });
79
+ }
80
+ function requiredPackage(id, field, operation) {
81
+ if (!id)
82
+ throw new Error(`@misofm/platform: deployment.packages.${field} is required for ${operation}.`);
83
+ return id;
84
+ }
85
+ const make = (deployment) => Effect.gen(function* () {
86
+ const sui = yield* Sui;
87
+ // The exact-ledger check `MisoPlatformClient#ready()` used to perform at
88
+ // first use, moved to layer build (the issue's target shape: "a
89
+ // caller's first call builds the runtime; a mismatch rejects it with
90
+ // MisoChainIdentifierMismatchError instead of ready()").
91
+ if (sui.network !== deployment.network) {
92
+ return yield* new MisoNetworkMismatchError({ clientNetwork: sui.network, deploymentNetwork: deployment.network });
93
+ }
94
+ if (sui.chainId !== deployment.chainIdentifier) {
95
+ return yield* new MisoChainIdentifierMismatchError({ actual: sui.chainId, expected: deployment.chainIdentifier });
96
+ }
97
+ const protocol = yield* Musicos;
98
+ const partyos = yield* Partyos;
99
+ const graphql = yield* SuiGraphQL;
100
+ return assemble(sui, graphql, protocol, partyos, deployment);
101
+ });
102
+ /** `make`, without the exact-chain check — what {@link Miso.layerTest} builds over. */
103
+ const makeUnchecked = (deployment) => Effect.gen(function* () {
104
+ const sui = yield* Sui;
105
+ const protocol = yield* Musicos;
106
+ const partyos = yield* Partyos;
107
+ const graphql = yield* SuiGraphQL;
108
+ return { ...assemble(sui, graphql, protocol, partyos, deployment), chainId: sui.chainId };
109
+ });
110
+ /**
111
+ * Assembles the complete {@link MisoService} from the `Sui`/`SuiGraphQL` the
112
+ * layer already holds, the converted `protocol`/`party` services, and
113
+ * `deployment`. Every I/O member is `withSui`/`withEnv`-wrapped so `R` is
114
+ * empty; every synchronous member closes over `deployment` directly instead
115
+ * of a `#requireReady`-style gate — sui-effect's own `warm`/`$ready`
116
+ * mechanism (`docs/extensions.md` §7) is what governs "real before the first
117
+ * await" now, not a second, platform-specific readiness machine.
118
+ */
119
+ function assemble(sui, graphql, protocol, partyosService, rawDeployment) {
120
+ // Recursively frozen snapshot taken at layer-build time, matching the
121
+ // predecessor `MisoPlatformClient`'s own guarantee ("later caller mutation
122
+ // cannot retarget an existing client") — a custom deployment object the
123
+ // caller keeps a reference to and mutates after `miso({ deployment })`
124
+ // must not reach back into an already-built `Miso` instance.
125
+ const deployment = immutableSnapshot(rawDeployment);
126
+ const withSui = (effect) => effect.pipe(Effect.provideService(Sui, sui));
127
+ /** `Sui` and `SuiGraphQL` both provided — safe even for a `Sui`-only effect (an unused service is simply not read). */
128
+ const withEnv = (effect) => effect.pipe(Effect.provideService(Sui, sui), Effect.provideService(SuiGraphQL, graphql));
129
+ const party = makeMisoParty(sui, partyosService, deployment.party);
130
+ // ── Sales binding (RecordSalesUnavailableError when unavailable) ─────────
131
+ const sales = () => requireRecordSalesDeployment(deployment.recordSales);
132
+ const salesOrFail = () => Effect.try({ try: sales, catch: (cause) => cause });
133
+ // ── Operations binding (OperationsUnavailableError when unavailable) ─────
134
+ const operations = () => requireOperationsDeployment(deployment.operations);
135
+ const availableOperations = () => (deployment.operations.status === "available" ? requireOperationsDeployment(deployment.operations) : undefined);
136
+ /** `operations`, as a typed Effect failure instead of a synchronous throw — mirrors `salesOrFail` above. */
137
+ const operationsOrFail = () => Effect.try({ try: operations, catch: (cause) => cause });
138
+ // ── Reads ─────────────────────────────────────────────────────────────
139
+ const misoGetPressing = (pressingId) => withSui(Effect.flatMap(salesOrFail(), (s) => getPressing(pressingId, s.recordPackageId)));
140
+ const misoGetListing = (listingId) => withSui(Effect.flatMap(salesOrFail(), (s) => getListing(listingId, s.recordShopPackageId)));
141
+ const misoGetRecord = (recordId) => withSui(Effect.flatMap(salesOrFail(), (s) => getRecord(recordId, s.recordPackageId)));
142
+ const misoGetSale = (p) => withSui(Effect.flatMap(salesOrFail(), (s) => getSale({ ...p, recordPackageId: s.recordPackageId, recordShopPackageId: s.recordShopPackageId })));
143
+ // ── Address math (`ids.*`, sync — throws RecordSalesUnavailableError/OperationsUnavailableError) ──
144
+ const ids = {
145
+ pressing: (releaseId, edition) => derivePressingId(releaseId, edition, sales().recordPackageId),
146
+ pressingAdminCap: (pressingId) => derivePressingAdminCapId(pressingId, sales().recordPackageId),
147
+ record: (pressingId, number) => deriveRecordId(pressingId, number, sales().recordPackageId),
148
+ listing: (pressingId, currencyType) => deriveListingId(pressingId, currencyType, sales().recordShopPackageId),
149
+ sale: (releaseId, edition, currencyType) => deriveSaleIds(releaseId, edition, currencyType, sales().recordPackageId, sales().recordShopPackageId),
150
+ vault: (capId, capType) => vaultActions.deriveVaultId({ vaultRegistryId: operations().vault.registryId, capId, capType, vaultPackageId: operations().vault.packageId }),
151
+ vaultAdminCap: (vaultId) => vaultActions.deriveVaultAdminCapId(vaultId, operations().vault.packageId),
152
+ genre: (canonicalName) => deriveGenreAddress(deployment.objects.genreRegistry, deployment.packages.genre, canonicalName),
153
+ };
154
+ // ── Transaction builders (`tx.*`, sync recipes) ──────────────────────────
155
+ const tx = {
156
+ purchaseRecord: (p) => purchaseRecord({ ...p, recordPackageId: sales().recordPackageId, recordShopPackageId: sales().recordShopPackageId }),
157
+ openPressing: (p) => openPressing({ ...p, recordPackageId: sales().recordPackageId, recordShopPackageId: sales().recordShopPackageId }),
158
+ openListing: (p) => openListing({ ...p, recordShopPackageId: sales().recordShopPackageId }),
159
+ authorizeRecordShop: (p) => authorizeRecordShop({ ...p, recordPackageId: sales().recordPackageId, recordShopPackageId: sales().recordShopPackageId }),
160
+ revokeRecordShop: (p) => revokeRecordShop({ ...p, recordPackageId: sales().recordPackageId, recordShopPackageId: sales().recordShopPackageId }),
161
+ setListingPrice: (p) => setListingPrice({ ...p, recordShopPackageId: sales().recordShopPackageId }),
162
+ setListingState: (p) => setListingState({ ...p, recordShopPackageId: sales().recordShopPackageId }),
163
+ publishShareCurrency,
164
+ initializeShareCurrency,
165
+ publishComposition: (p) => publishComposition({ ...p, misoPackageId: deployment.protocol.musicos, minatoPackageId: deployment.packages.minato }),
166
+ publishRecording: (p) => publishRecording({ ...p, misoPackageId: deployment.protocol.musicos, minatoPackageId: deployment.packages.minato }),
167
+ publishCompositionAndRecording: (p) => publishCompositionAndRecording({ ...p, misoPackageId: deployment.protocol.musicos, minatoPackageId: deployment.packages.minato }),
168
+ publishRelease: (p) => publishRelease({ ...p, misoPackageId: deployment.protocol.musicos, releaseRegistryId: deployment.objects.releaseRegistry }),
169
+ publishReleaseGraph: (p) => publishReleaseGraph({ ...p, misoPackageId: deployment.protocol.musicos, minatoPackageId: deployment.packages.minato }),
170
+ setReleaseKind: (p) => setReleaseKind({ ...p, releaseKindPackageId: deployment.packages.releaseKind }),
171
+ setReleaseDescription: (p) => setReleaseDescription({ ...p, releaseDescriptionPackageId: deployment.packages.releaseDescription }),
172
+ setReleaseGenres: (p) => setReleaseGenres({ ...p, releaseGenrePackageId: deployment.packages.releaseGenre }),
173
+ clearReleaseGenres: (p) => clearReleaseGenres({ ...p, releaseGenrePackageId: deployment.packages.releaseGenre }),
174
+ setReleaseDspLinks: (p) => setReleaseDspLinks({ ...p, releaseDspLinkPackageId: deployment.packages.releaseDspLink }),
175
+ addReleaseCredit: (p) => addReleaseCredit({ ...p, releaseCreditsPackageId: deployment.packages.releaseCredits, misoCreditPackageId: deployment.packages.credit }),
176
+ setReleaseCover: (p) => setReleaseCover({ ...p, coverArtPackageId: deployment.packages.coverArt, releaseCoverArtPackageId: deployment.packages.releaseCoverArt, oriPackageId: deployment.packages.ori }),
177
+ setReleaseTrackCover: (p) => setReleaseTrackCover({ ...p, coverArtPackageId: deployment.packages.coverArt, releaseCoverArtPackageId: deployment.packages.releaseCoverArt, oriPackageId: deployment.packages.ori }),
178
+ setRecordingStreamingTranscode: (p) => setRecordingStreamingTranscode({
179
+ ...p,
180
+ recordingStreamingTranscodePackageId: requiredPackage(deployment.packages.recordingStreamingTranscode, "recordingStreamingTranscode", "setRecordingStreamingTranscode"),
181
+ oriPackageId: deployment.packages.ori,
182
+ }),
183
+ unsetRecordingStreamingTranscode: (p) => unsetRecordingStreamingTranscode({ ...p, recordingStreamingTranscodePackageId: requiredPackage(deployment.packages.recordingStreamingTranscode, "recordingStreamingTranscode", "unsetRecordingStreamingTranscode") }),
184
+ setRecordingGenres: (p) => setRecordingGenres({ ...p, recordingGenrePackageId: requiredPackage(deployment.packages.recordingGenre, "recordingGenre", "setRecordingGenres") }),
185
+ clearRecordingGenres: (p) => clearRecordingGenres({ ...p, recordingGenrePackageId: requiredPackage(deployment.packages.recordingGenre, "recordingGenre", "clearRecordingGenres") }),
186
+ };
187
+ // ── Generated call/bcs bindings ──────────────────────────────────────────
188
+ const availableSales = deployment.recordSales.status === "available" ? deployment.recordSales : undefined;
189
+ const ops = availableOperations();
190
+ const call = {
191
+ record: availableSales
192
+ ? bindModulePackage(recordContract, availableSales.recordPackageId, [
193
+ "destroy", "releaseId", "pressingId", "edition", "number", "purchaseCurrency", "purchasePrice", "purchasedBy", "purchasedTimestampMs", "deriveAddress",
194
+ ])
195
+ : undefined,
196
+ listing: availableSales
197
+ ? bindModulePackage(listingContract, availableSales.recordShopPackageId, [
198
+ "fixed", "floor", "enabled", "disabled", "setState", "setPrice", "purchase", "deriveAddress", "releaseId", "pressingId", "pricing", "price", "state", "isEnabled", "isDisabled", "isFixed", "isFloor",
199
+ ])
200
+ : undefined,
201
+ pressing: availableSales
202
+ ? bindModulePackage(pressingContract, availableSales.recordPackageId, [
203
+ "authorizeDistributor", "revokeDistributor", "deriveAddress", "deriveAdminCapAddress", "releaseId", "edition", "supply", "maxSupply", "distributors", "isDistributorAuthorized", "pressingId",
204
+ ])
205
+ : undefined,
206
+ genre: bindModulePackage(genreContract, deployment.packages.genre, ["deriveAddress"]),
207
+ releaseDescription: bindModulePackage(releaseDescriptionContract, deployment.packages.releaseDescription, ["setDescription", "clearDescription", "hasDescription"]),
208
+ releaseDspLink: bindModulePackage(releaseDspLinkContract, deployment.packages.releaseDspLink, [
209
+ "platform", "platformSpotify", "platformAppleMusic", "platformAmazonMusic", "platformBandcamp", "platformDeezer", "platformSoundcloud", "platformTidal", "platformYoutubeMusic",
210
+ "newSpotify", "newAppleMusicAlbum", "newAppleMusicTrack", "newAmazonMusicAlbum", "newAmazonMusicTrack", "newBandcamp", "newDeezer", "newSoundcloud", "newTidal", "newYoutubeMusic",
211
+ "setReleaseLink", "clearReleaseLink", "setTrackLink", "clearTrackLink", "clearTrackLinks", "hasReleaseLink",
212
+ ]),
213
+ releaseGenre: bindModulePackage(releaseGenreContract, deployment.packages.releaseGenre, ["addGenre", "removeGenre", "clearGenres"]),
214
+ releaseKind: bindModulePackage(releaseKindContract, deployment.packages.releaseKind, ["setKind", "unsetKind", "hasKind"]),
215
+ releaseRevenueDistributor: ops
216
+ ? bindModulePackage(releaseRevenueDistributorContract, ops.actions.releaseRevenueDistributor, ["redeemAndDistribute", "redeemAllAndDistribute", "receiveAndDistribute"])
217
+ : undefined,
218
+ releaseRevenueDistributorPlugin: ops
219
+ ? bindModulePackage(releaseRevenueDistributorPluginContract, ops.plugins.releaseRevenueDistributor, ["install", "uninstall", "redeemAllAndDistribute", "receiveAndDistribute", "isInstalled"])
220
+ : undefined,
221
+ vault: ops
222
+ ? bindModulePackage(vaultContract, ops.vault.packageId, ["share", "withdrawCap", "restoreCap", "derivedAddress", "capId", "isActive", "authorizedPlugins", "isPluginAuthorized"])
223
+ : undefined,
224
+ compositionRoyaltyPool: ops
225
+ ? bindModulePackage(compositionRoyaltyPoolContract, ops.actions.compositionRoyaltyPool, ["newPool", "receiveAndDeposit", "redeemAndDeposit", "poolAddress"])
226
+ : undefined,
227
+ compositionRoyaltyPoolPlugin: ops
228
+ ? bindModulePackage(compositionRoyaltyPoolPluginContract, ops.plugins.compositionRoyaltyPool, ["install", "uninstall", "receiveAndDeposit", "redeemAndDeposit", "isInstalled"])
229
+ : undefined,
230
+ recordingRoyaltyPool: ops
231
+ ? bindModulePackage(recordingRoyaltyPoolContract, ops.actions.recordingRoyaltyPool, ["newPool", "receiveAndDeposit", "redeemAndDeposit", "poolAddress"])
232
+ : undefined,
233
+ recordingRoyaltyPoolPlugin: ops
234
+ ? bindModulePackage(recordingRoyaltyPoolPluginContract, ops.plugins.recordingRoyaltyPool, ["install", "uninstall", "receiveAndDeposit", "redeemAndDeposit", "isInstalled"])
235
+ : undefined,
236
+ partyWallet: ops ? bindModulePackage(partyWalletContract, ops.actions.partyWallet, ["receive", "receiveBalance", "redeemBalance", "inboxAddress"]) : undefined,
237
+ compositionRoutedStake: ops
238
+ ? bindModulePackage(compositionRoutedStakeContract, ops.actions.compositionRoutedStake, ["createStake", "register", "unregister", "unstake", "restake", "stakeAddress"])
239
+ : undefined,
240
+ routedStake: bindModulePackage(routedStakeContract, deployment.packages.routedStake, ["share", "register", "unregister", "sweep", "unstake", "restake", "derivedAddress"]),
241
+ royaltyPool: bindModulePackage(royaltyPoolContract, deployment.packages.royaltyPool, [
242
+ "share", "deposit", "settle", "recoverCoins", "registerStake", "unregisterStake", "claimRewards", "pendingRewards", "stakedShares", "cumulativeRewardPerShare", "carry", "cumulativeDeposits", "settledValue", "derivedAddress", "assertDerivedFrom",
243
+ ]),
244
+ recordingAdvisory: bindModulePackage(recordingAdvisoryContract, deployment.packages.recordingAdvisory, ["explicit", "notExplicit", "cleaned", "setRating", "unsetRating", "hasRating", "isExplicit", "isNotExplicit", "isCleaned"]),
245
+ recordingLanguage: bindModulePackage(recordingLanguageContract, deployment.packages.recordingLanguage, ["setLanguages", "setInstrumental", "unsetLanguages", "hasLanguages", "isInstrumental"]),
246
+ recordingMasterReference: bindModulePackage(recordingMasterReferenceContract, deployment.packages.recordingMasterReference, ["setMasterReference", "unsetMasterReference", "hasMasterReference"]),
247
+ recordingStreamingTranscode: deployment.packages.recordingStreamingTranscode
248
+ ? bindModulePackage(recordingStreamingTranscodeContract, deployment.packages.recordingStreamingTranscode, ["setStreamingTranscode", "unsetStreamingTranscode", "hasStreamingTranscode"])
249
+ : undefined,
250
+ recordingGenre: deployment.packages.recordingGenre ? bindModulePackage(recordingGenreContract, deployment.packages.recordingGenre, ["addGenre", "removeGenre", "clearGenres"]) : undefined,
251
+ coverArt: bindModulePackage(coverArtContract, deployment.packages.coverArt, []),
252
+ releaseCoverArt: bindModulePackage(releaseCoverArtContract, deployment.packages.releaseCoverArt, ["setCover", "unsetCover", "setTrackCover", "unsetTrackCover", "hasCoverArt"]),
253
+ releaseCredits: bindModulePackage(releaseCreditsContract, deployment.packages.releaseCredits, ["addCredit", "removeCredit", "hasCredits"]),
254
+ };
255
+ const bcs = {
256
+ Record: recordContract.Record,
257
+ Pressing: pressingContract.Pressing,
258
+ PressingAdminCap: pressingContract.PressingAdminCap,
259
+ Listing: listingContract.Listing,
260
+ Pricing: listingContract.Pricing,
261
+ ListingState: listingContract.State,
262
+ RecordCreatedEvent: recordContract.RecordCreatedEvent,
263
+ RecordDestroyedEvent: recordContract.RecordDestroyedEvent,
264
+ PressingCreatedEvent: pressingContract.PressingCreatedEvent,
265
+ DistributorAuthorizedEvent: pressingContract.DistributorAuthorizedEvent,
266
+ DistributorRevokedEvent: pressingContract.DistributorRevokedEvent,
267
+ RecordPurchasedEvent: pressingContract.RecordPurchasedEvent,
268
+ PressingSharedEvent: pressingContract.PressingSharedEvent,
269
+ PressingDistributorAuthorizedEvent: pressingContract.PressingDistributorAuthorizedEvent,
270
+ PressingDistributorRevokedEvent: pressingContract.PressingDistributorRevokedEvent,
271
+ ListingCreatedEvent: listingContract.ListingCreatedEvent,
272
+ ListingSharedEvent: listingContract.ListingSharedEvent,
273
+ ListingPriceChangedEvent: listingContract.ListingPriceChangedEvent,
274
+ ListingStateChangedEvent: listingContract.ListingStateChangedEvent,
275
+ RecordSoldEvent: listingContract.RecordSoldEvent,
276
+ VaultAdminCap: vaultContract.VaultAdminCap,
277
+ VaultRegistry: vaultContract.VaultRegistry,
278
+ VaultKey: vaultContract.VaultKey,
279
+ VaultAdminCapKey: vaultContract.VaultAdminCapKey,
280
+ VaultCreatedEvent: vaultContract.VaultCreatedEvent,
281
+ VaultRegistryCreatedEvent: vaultContract.VaultRegistryCreatedEvent,
282
+ VaultSharedEvent: vaultContract.VaultSharedEvent,
283
+ PluginAuthorizedEvent: vaultContract.PluginAuthorizedEvent,
284
+ PluginRevokedEvent: vaultContract.PluginRevokedEvent,
285
+ VaultCapabilityWithdrawnEvent: vaultContract.VaultCapabilityWithdrawnEvent,
286
+ VaultCapabilityRestoredEvent: vaultContract.VaultCapabilityRestoredEvent,
287
+ VaultCapabilityBorrowedByPluginEvent: vaultContract.VaultCapabilityBorrowedByPluginEvent,
288
+ VaultCapabilityBorrowedByAdminEvent: vaultContract.VaultCapabilityBorrowedByAdminEvent,
289
+ VaultCapabilityReturnedEvent: vaultContract.VaultCapabilityReturnedEvent,
290
+ PartyObjectReceivedEvent: partyWalletContract.ObjectReceivedEvent,
291
+ PartyCoinsReceivedEvent: partyWalletContract.CoinsReceivedEvent,
292
+ PartyFundsRedeemedEvent: partyWalletContract.FundsRedeemedEvent,
293
+ ReleaseTrackRevenueDistributedEvent: releaseRevenueDistributorContract.ReleaseTrackRevenueDistributedEvent,
294
+ ReleaseRevenueDistributedEvent: releaseRevenueDistributorContract.ReleaseRevenueDistributedEvent,
295
+ ReleaseCoinsReceivedEvent: releaseRevenueDistributorContract.ReleaseCoinsReceivedEvent,
296
+ ReleaseFundsRedeemedEvent: releaseRevenueDistributorContract.ReleaseFundsRedeemedEvent,
297
+ };
298
+ // ── Vault namespace: always present; every member throws/fails OperationsUnavailableError when unavailable ──
299
+ //
300
+ // `getVaultAdminCap`/`resolveReceivingCoins` are `Effect`-returning members,
301
+ // not synchronous PTB builders — `gateAvailability`'s Proxy calls its
302
+ // `guard()` synchronously, on every property access, before the wrapped
303
+ // function even runs, which is exactly right for a sync builder (the
304
+ // predecessor's own behaviour: throw before building) but wrong for an
305
+ // `Effect` member, which a Promise/Effect caller expects to REJECT/fail,
306
+ // never to throw synchronously out of merely calling it. So these two stay
307
+ // out of the Proxy and gate themselves through `operationsOrFail()`
308
+ // (mirroring `salesOrFail` above) composed into their own `Effect` chain —
309
+ // calling them always returns a value; only running it can fail (B2,
310
+ // misofm/sdks#35 verification).
311
+ const { getVaultAdminCap: _unusedGetVaultAdminCap, resolveReceivingCoins: _unusedResolveReceivingCoins, ...vaultActionsWithoutEffectMembers } = vaultActions;
312
+ const vault = {
313
+ ...gateAvailability(vaultActionsWithoutEffectMembers, () => {
314
+ requireOperationsDeployment(deployment.operations);
315
+ }),
316
+ getVaultAdminCap: (vaultAdminCapId, capType) => withSui(Effect.flatMap(operationsOrFail(), (ops) => vaultActions.getVaultAdminCap(vaultAdminCapId, { vaultPackageId: ops.vault.packageId, capType }))),
317
+ resolveReceivingCoins: (coinIds) => withSui(Effect.flatMap(operationsOrFail(), () => vaultActions.resolveReceivingCoins(coinIds))),
318
+ };
319
+ // ── Submissions ───────────────────────────────────────────────────────────
320
+ const misoCreateShareCurrency = (params, opts) => withSui(createShareCurrency(params, opts));
321
+ const misoPublishShareCurrencies = (count, opts) => withSui(publishShareCurrencies(count, opts));
322
+ const misoInitializeShareCurrencies = (packageIds, metaOf, opts) => withSui(initializeShareCurrencies(packageIds, metaOf, opts));
323
+ const misoPublishCatalog = (params, opts) => {
324
+ const full = { ...params, deployment };
325
+ return withSui(Effect.map(Tx.run(publishAtomicCatalog(full), opts), (executed) => parseAtomicPublicationResult(full, executed)));
326
+ };
327
+ // ── `read.*`: the high-level views, config captured from this deployment ──
328
+ const readConfig = configFromDeployment(deployment);
329
+ const read = {
330
+ currencyInfo: readCatalog.currencyInfo,
331
+ primaryArtistNames: readCatalog.primaryArtistNames,
332
+ toTracks: readCatalog.toTracks,
333
+ getPressingView: (pressingId) => withEnv(readCatalog.getPressingView(pressingId, readConfig)),
334
+ getListingView: (pressingId, currencyType) => withEnv(readCatalog.getListingView(pressingId, currencyType, readConfig)),
335
+ readReleaseCover: (releaseId) => withEnv(readCatalog.readReleaseCover(releaseId, readConfig)),
336
+ getReleaseResources: (releaseId, include) => withEnv(readCatalog.getReleaseResources(releaseId, readConfig, include)),
337
+ getReleaseDetail: (releaseId, options) => withEnv(readCatalog.getReleaseDetail(releaseId, readConfig, options)),
338
+ getTrackCredits: (releaseId) => withEnv(readCatalog.getTrackCredits(releaseId, readConfig)),
339
+ getPressingDetail: (pressingId, options) => withEnv(readCatalog.getPressingDetail(pressingId, readConfig, options)),
340
+ getPressingSaleDetail: (pressingId, currencyType, options) => withEnv(readCatalog.getPressingSaleDetail(pressingId, currencyType, readConfig, options)),
341
+ getPressingPreview: (pressingId) => withEnv(readCatalog.getPressingPreview(pressingId, readConfig)),
342
+ getSaleDetail: (releaseId, edition, currencyType, options) => withEnv(readCatalog.getSaleDetail(releaseId, edition, currencyType, readConfig, options)),
343
+ getDiscoverShelf: () => withEnv(readCatalog.getDiscoverShelf(readConfig)),
344
+ getRecordAlbum: (recordId, options) => withEnv(readCatalog.getRecordAlbum(recordId, readConfig, options)),
345
+ partyAvatarUrl: (partyId) => readArtist.partyAvatarUrl(readConfig.apiBaseUrl, partyId),
346
+ getArtistProfile: (partyId, options) => withEnv(readArtist.getArtistProfile(partyId, readConfig, options)),
347
+ getPartySummaries: (ids) => withEnv(readArtist.getPartySummaries(ids, readConfig)),
348
+ resolveGenreNames: (genreIds) => withSui(readGenres.resolveGenreNames(genreIds)),
349
+ getBalance: (address, coinType) => withSui(readWallet.getBalance(address, readConfig, coinType)),
350
+ getOwnedParties: (owner) => withEnv(readWallet.getOwnedParties(owner, readConfig)),
351
+ getPendingMemberships: (owner) => withEnv(readWallet.getPendingMemberships(owner, readConfig)),
352
+ getOwnedRecords: (owner) => withEnv(readWallet.getOwnedRecords(owner, readConfig)),
353
+ getOwnedWorks: (owner) => withEnv(readWallet.getOwnedWorks(owner, readConfig)),
354
+ getWorkByCap: (capId) => withEnv(readWallet.getWorkByCap(capId, readConfig)),
355
+ ownsParty: (address, partyId) => withEnv(readWallet.ownsParty(address, partyId, readConfig)),
356
+ ownsRecord: (address, recordId) => withSui(readWallet.ownsRecord(address, recordId)),
357
+ isRecordSoldEventType: readReceipts.isRecordSoldEventType,
358
+ recordSoldCurrencyType: readReceipts.recordSoldCurrencyType,
359
+ findRecordSales: readReceipts.findRecordSales,
360
+ findRecordSale: readReceipts.findRecordSale,
361
+ breakdown: readReceipts.breakdown,
362
+ getPurchaseReceipts: (txDigest) => withEnv(readReceipts.getPurchaseReceipts(txDigest, readConfig)),
363
+ getPurchaseReceipt: (txDigest, recordId) => withEnv(readReceipts.getPurchaseReceipt(txDigest, recordId, readConfig)),
364
+ ROYALTY_CLAIMS_PAGE_LIMIT: readRoyalties.ROYALTY_CLAIMS_PAGE_LIMIT,
365
+ royaltyClaimedEventType: () => readRoyalties.royaltyClaimedEventType(readConfig),
366
+ listRoyaltyClaims: (address, options) => withEnv(readRoyalties.listRoyaltyClaims(address, readConfig, options)),
367
+ };
368
+ return {
369
+ deployment,
370
+ network: deployment.network,
371
+ chainId: deployment.chainIdentifier,
372
+ protocol,
373
+ party,
374
+ getPressing: misoGetPressing,
375
+ getListing: misoGetListing,
376
+ getRecord: misoGetRecord,
377
+ getSale: misoGetSale,
378
+ ids,
379
+ tx,
380
+ call,
381
+ bcs,
382
+ vault,
383
+ createShareCurrency: misoCreateShareCurrency,
384
+ publishShareCurrencies: misoPublishShareCurrencies,
385
+ initializeShareCurrencies: misoInitializeShareCurrencies,
386
+ publishCatalog: misoPublishCatalog,
387
+ read,
388
+ events: platformEventParsers,
389
+ /** @deprecated Warm-up compatibility member — see `docs/CONVERSION.md`; every member is already real once `warm`/`$ready()` resolved this runtime. */
390
+ ready: Effect.void,
391
+ };
392
+ }
393
+ /**
394
+ * The Miso platform service: `Pressing`/`Listing`/`Record` reads, PTB
395
+ * fragments, `vault`/`call`/`bcs`, the high-level `read.*` views, and the
396
+ * converted `protocol`/`party` object-model services, built on `Sui` and
397
+ * `SuiGraphQL`. Identifier `"@misofm/platform/Miso"`, never changes after
398
+ * publication.
399
+ */
400
+ export class Miso extends Context.Service()("@misofm/platform/Miso") {
401
+ /**
402
+ * The live layer, bound to `deployment`. Composes `Musicos.layer` and
403
+ * `Partyos.layer` over the same `Sui` internally, so the requirement stays
404
+ * `Sui | SuiGraphQL` — never `Sui | SuiGraphQL | Musicos | Partyos` — for a
405
+ * consumer that only asked for `Miso`.
406
+ *
407
+ * Fails with: `MisoNetworkMismatchError`, `MisoChainIdentifierMismatchError`
408
+ * (the client's `sui.network`/`sui.chainId` do not match `deployment`),
409
+ * plus whatever `Musicos.layer`/`Partyos.layer` fail with for a structurally
410
+ * invalid `deployment.protocol`/`deployment.partyos` (should not happen for
411
+ * an already-`normalizeMisoPlatformDeployment`-validated deployment).
412
+ */
413
+ static layer = (deployment) => Layer.effect(Miso, make(deployment)).pipe(Layer.provide(Musicos.layer({ deployment: deployment.protocol })), Layer.provide(Partyos.layer({ deployment: deployment.partyos })));
414
+ /**
415
+ * `layer`, over `Musicos`/`Partyos` and `Sui`/`SuiGraphQL` the caller
416
+ * already provides — the shape `docs/extensions.md` calls `layerNoDeps` for
417
+ * a service that composes other extensions, spelled out for testing or a
418
+ * caller assembling every layer itself.
419
+ */
420
+ static layerNoDeps = (deployment) => Layer.effect(Miso, make(deployment));
421
+ /**
422
+ * `layer`, reading `MISO_NETWORK` from the environment to pick this
423
+ * release's bundled manifest; unset falls back to `sui.network`.
424
+ *
425
+ * Fails with: `ConfigError`, `MisoPlatformDeploymentInvalidError` (an
426
+ * unbundled `MISO_NETWORK`), plus everything {@link layer} fails with.
427
+ */
428
+ static layerConfig = Layer.unwrap(Effect.gen(function* () {
429
+ const configuredNetwork = yield* Config.nonEmptyString("MISO_NETWORK").pipe(Config.option);
430
+ const network = configuredNetwork._tag === "Some" ? configuredNetwork.value : (yield* Sui).network;
431
+ const deployment = yield* Effect.try({
432
+ try: () => getMisoPlatformDeployment(network),
433
+ catch: (cause) => new MisoPlatformDeploymentInvalidError({ message: cause instanceof Error ? cause.message : String(cause) }),
434
+ });
435
+ return Miso.layer(deployment);
436
+ }));
437
+ /**
438
+ * The real service over a fixed manifest (the bundled testnet deployment
439
+ * unless `state.deployment` overrides it), skipping the exact-chain check
440
+ * `layer` performs — this is what lets a test provide any `Sui` fake
441
+ * without also faking a matching chain id. Compose with `layerExtensionTest`
442
+ * (or a merged `layerTest` for `Sui`) and a `SuiGraphQL` layer (e.g.
443
+ * `SuiGraphQL.layerUnavailable` when a test never reaches `read.*`/catalog
444
+ * GraphQL paths) from `sui-effect/testing`. Never fails.
445
+ */
446
+ static layerTest = (state = {}) => {
447
+ const deployment = state.deployment ?? MISO_PLATFORM_DEPLOYMENTS.testnet;
448
+ return Layer.effect(Miso, makeUnchecked(deployment)).pipe(Layer.provide(Musicos.layerTest({ packageId: deployment.protocol.musicos })), Layer.provide(Partyos.layerTest(deployment.partyos)));
449
+ };
450
+ }
451
+ // `normalizeMisoPlatformDeployment` stays imported (not just re-exported) so
452
+ // a future `layerConfig` `MISO_DEPLOYMENT` JSON-path addition has it in scope
453
+ // without another import line to remember.
454
+ export { normalizeMisoPlatformDeployment };
455
+ //# sourceMappingURL=Miso.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Miso.js","sourceRoot":"","sources":["../src/Miso.ts"],"names":[],"mappings":"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"}
package/dist/auth.d.ts CHANGED
@@ -30,7 +30,17 @@ export declare const MISO_AUTH_HEADERS: {
30
30
  /** The byte-exact Sui personal message required for an authenticated API mutation. */
31
31
  export declare function buildApiAuthorizationPayload(fields: ApiAuthorizationFields): string;
32
32
  export declare function isValidAuthorizationTarget(method: string, path: string): boolean;
33
- /** Accept only fresh timestamps in one canonical spelling. */
33
+ /**
34
+ * Accept only fresh timestamps in one canonical spelling.
35
+ *
36
+ * A plain sync utility, not `Effect`-returning, so it takes `nowMs` as an
37
+ * explicit parameter rather than reading `Clock` itself — a caller outside
38
+ * an Effect program (client-side validation, say) can still use it standalone.
39
+ * `Date.now()` is only this parameter's fallback default for such a caller;
40
+ * `parseChallenge` below (the only in-package caller, and the one Effect
41
+ * needs to control for testing) always resolves `nowMs` from `Clock` first
42
+ * and passes it explicitly (C item, misofm/sdks#35 verification).
43
+ */
34
44
  export declare function parseFreshAuthorizationIssuedAt(input: unknown, nowMs?: number): string | null;
35
45
  export interface RequestAuthorizationChallengeOptions {
36
46
  apiUrl: string | URL;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEpE,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;AAEhD,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sBAAuB,SAAQ,sBAAsB;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,mBAAmB,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1F;AAED,eAAO,MAAM,wBAAwB,QAAiB,CAAC;AACvD,eAAO,MAAM,4BAA4B,QAAa,CAAC;AAEvD,eAAO,MAAM,iBAAiB;aAC5B,OAAO,EAAE,eAAe;aACxB,SAAS,EAAE,iBAAiB;aAC5B,QAAQ,EAAE,iBAAiB;CACnB,CAAC;AAEX,sFAAsF;AACtF,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,sBAAsB,GAAG,MAAM,CAUnF;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAOhF;AAED,8DAA8D;AAC9D,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,GAAE,MAAmB,GAAG,MAAM,GAAG,IAAI,CAYzG;AA4FD,MAAM,WAAW,oCAAoC;IACnD,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,gFAAgF;AAChF,eAAO,MAAM,6BAA6B,gHAwCxC,CAAC;AAEH,MAAM,WAAW,iCAAkC,SAAQ,oCAAoC;IAC7F,MAAM,EAAE,qBAAqB,CAAC;CAC/B;AAED,gGAAgG;AAChG,eAAO,MAAM,0BAA0B;eAEN,sBAAsB;aAAW,OAAO;wBAqBvE,CAAC;AAEH,MAAM,WAAW,yBAA0B,SAAQ,WAAW;IAC5D,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,qBAAqB,CAAC;QAC9B,OAAO,CAAC,EAAE,WAAW,CAAC;KACvB,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,uFAAuF;AACvF,eAAO,MAAM,kBAAkB,4GA+B7B,CAAC"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAIA,OAAO,EAAS,MAAM,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEpE,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;AAEhD,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sBAAuB,SAAQ,sBAAsB;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,mBAAmB,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1F;AAED,eAAO,MAAM,wBAAwB,QAAiB,CAAC;AACvD,eAAO,MAAM,4BAA4B,QAAa,CAAC;AAEvD,eAAO,MAAM,iBAAiB;aAC5B,OAAO,EAAE,eAAe;aACxB,SAAS,EAAE,iBAAiB;aAC5B,QAAQ,EAAE,iBAAiB;CACnB,CAAC;AAEX,sFAAsF;AACtF,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,sBAAsB,GAAG,MAAM,CAUnF;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAOhF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,GAAE,MAAmB,GAAG,MAAM,GAAG,IAAI,CAYzG;AA+FD,MAAM,WAAW,oCAAoC;IACnD,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,gFAAgF;AAChF,eAAO,MAAM,6BAA6B,gHAwCxC,CAAC;AAEH,MAAM,WAAW,iCAAkC,SAAQ,oCAAoC;IAC7F,MAAM,EAAE,qBAAqB,CAAC;CAC/B;AAED,gGAAgG;AAChG,eAAO,MAAM,0BAA0B;eAEN,sBAAsB;aAAW,OAAO;wBAqBvE,CAAC;AAEH,MAAM,WAAW,yBAA0B,SAAQ,WAAW;IAC5D,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,qBAAqB,CAAC;QAC9B,OAAO,CAAC,EAAE,WAAW,CAAC;KACvB,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,uFAAuF;AACvF,eAAO,MAAM,kBAAkB,4GA+B7B,CAAC"}
package/dist/auth.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // Copyright (c) Miso Labs, Inc.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  import { isValidSuiAddress, normalizeSuiAddress } from "@mysten/sui/utils";
4
- import { Effect } from "effect";
4
+ import { Clock, Effect } from "effect";
5
5
  import { MisoAuthError } from "./errors.js";
6
6
  export { MisoAuthError };
7
7
  export const AUTHORIZATION_MAX_AGE_MS = 5 * 60 * 1_000;
@@ -29,7 +29,17 @@ export function isValidAuthorizationTarget(method, path) {
29
29
  path.length <= 2_048 &&
30
30
  !/[\r\n?#]/.test(path));
31
31
  }
32
- /** Accept only fresh timestamps in one canonical spelling. */
32
+ /**
33
+ * Accept only fresh timestamps in one canonical spelling.
34
+ *
35
+ * A plain sync utility, not `Effect`-returning, so it takes `nowMs` as an
36
+ * explicit parameter rather than reading `Clock` itself — a caller outside
37
+ * an Effect program (client-side validation, say) can still use it standalone.
38
+ * `Date.now()` is only this parameter's fallback default for such a caller;
39
+ * `parseChallenge` below (the only in-package caller, and the one Effect
40
+ * needs to control for testing) always resolves `nowMs` from `Clock` first
41
+ * and passes it explicitly (C item, misofm/sdks#35 verification).
42
+ */
33
43
  export function parseFreshAuthorizationIssuedAt(input, nowMs = Date.now()) {
34
44
  if (typeof input !== "string")
35
45
  return null;
@@ -75,7 +85,10 @@ const parseChallenge = Effect.fn("parseChallenge")(function* (input, expected) {
75
85
  reason: "The API returned an invalid authorization challenge.",
76
86
  });
77
87
  }
78
- const nowMs = expected.nowMs ?? Date.now();
88
+ // `Clock`, not `Date.now()` — deterministic and `TestClock`-controllable
89
+ // (C item, misofm/sdks#35 verification); `expected.nowMs` still wins when
90
+ // a caller supplies one explicitly.
91
+ const nowMs = expected.nowMs ?? (yield* Clock.currentTimeMillis);
79
92
  const issuedAt = parseFreshAuthorizationIssuedAt(body.issuedAt, nowMs);
80
93
  const expiresAtMs = Date.parse(body.expiresAt);
81
94
  const canonicalAddress = normalizeSuiAddress(body.address);