@misofm/platform 0.0.0 → 0.19.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 (168) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +686 -3
  3. package/dist/auth.d.ts +73 -0
  4. package/dist/auth.d.ts.map +1 -0
  5. package/dist/auth.js +193 -0
  6. package/dist/auth.js.map +1 -0
  7. package/dist/catalog.d.ts +48 -0
  8. package/dist/catalog.d.ts.map +1 -0
  9. package/dist/catalog.js +92 -0
  10. package/dist/catalog.js.map +1 -0
  11. package/dist/client.d.ts +459 -0
  12. package/dist/client.d.ts.map +1 -0
  13. package/dist/client.js +783 -0
  14. package/dist/client.js.map +1 -0
  15. package/dist/contracts.d.ts +33 -0
  16. package/dist/contracts.d.ts.map +1 -0
  17. package/dist/contracts.js +48 -0
  18. package/dist/contracts.js.map +1 -0
  19. package/dist/cover.d.ts +69 -0
  20. package/dist/cover.d.ts.map +1 -0
  21. package/dist/cover.js +132 -0
  22. package/dist/cover.js.map +1 -0
  23. package/dist/credits.d.ts +200 -0
  24. package/dist/credits.d.ts.map +1 -0
  25. package/dist/credits.js +465 -0
  26. package/dist/credits.js.map +1 -0
  27. package/dist/deployments.d.ts +221 -0
  28. package/dist/deployments.d.ts.map +1 -0
  29. package/dist/deployments.js +176 -0
  30. package/dist/deployments.js.map +1 -0
  31. package/dist/execute.d.ts +30 -0
  32. package/dist/execute.d.ts.map +1 -0
  33. package/dist/execute.js +31 -0
  34. package/dist/execute.js.map +1 -0
  35. package/dist/index.d.ts +21 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +52 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/internal.d.ts +13 -0
  40. package/dist/internal.d.ts.map +1 -0
  41. package/dist/internal.js +41 -0
  42. package/dist/internal.js.map +1 -0
  43. package/dist/mix.d.ts +144 -0
  44. package/dist/mix.d.ts.map +1 -0
  45. package/dist/mix.js +656 -0
  46. package/dist/mix.js.map +1 -0
  47. package/dist/pressing.d.ts +137 -0
  48. package/dist/pressing.d.ts.map +1 -0
  49. package/dist/pressing.js +390 -0
  50. package/dist/pressing.js.map +1 -0
  51. package/dist/publication.d.ts +215 -0
  52. package/dist/publication.d.ts.map +1 -0
  53. package/dist/publication.js +864 -0
  54. package/dist/publication.js.map +1 -0
  55. package/dist/queries.d.ts +2 -0
  56. package/dist/queries.d.ts.map +1 -0
  57. package/dist/queries.js +8 -0
  58. package/dist/queries.js.map +1 -0
  59. package/dist/read/artist.d.ts +18 -0
  60. package/dist/read/artist.d.ts.map +1 -0
  61. package/dist/read/artist.js +86 -0
  62. package/dist/read/artist.js.map +1 -0
  63. package/dist/read/catalog.d.ts +93 -0
  64. package/dist/read/catalog.d.ts.map +1 -0
  65. package/dist/read/catalog.js +441 -0
  66. package/dist/read/catalog.js.map +1 -0
  67. package/dist/read/client.d.ts +37 -0
  68. package/dist/read/client.d.ts.map +1 -0
  69. package/dist/read/client.js +50 -0
  70. package/dist/read/client.js.map +1 -0
  71. package/dist/read/config.d.ts +68 -0
  72. package/dist/read/config.d.ts.map +1 -0
  73. package/dist/read/config.js +63 -0
  74. package/dist/read/config.js.map +1 -0
  75. package/dist/read/genres.d.ts +7 -0
  76. package/dist/read/genres.d.ts.map +1 -0
  77. package/dist/read/genres.js +38 -0
  78. package/dist/read/genres.js.map +1 -0
  79. package/dist/read/index.d.ts +14 -0
  80. package/dist/read/index.d.ts.map +1 -0
  81. package/dist/read/index.js +23 -0
  82. package/dist/read/index.js.map +1 -0
  83. package/dist/read/internal/scalars.d.ts +23 -0
  84. package/dist/read/internal/scalars.d.ts.map +1 -0
  85. package/dist/read/internal/scalars.js +57 -0
  86. package/dist/read/internal/scalars.js.map +1 -0
  87. package/dist/read/internal/walrus.d.ts +6 -0
  88. package/dist/read/internal/walrus.d.ts.map +1 -0
  89. package/dist/read/internal/walrus.js +29 -0
  90. package/dist/read/internal/walrus.js.map +1 -0
  91. package/dist/read/receipts.d.ts +41 -0
  92. package/dist/read/receipts.d.ts.map +1 -0
  93. package/dist/read/receipts.js +398 -0
  94. package/dist/read/receipts.js.map +1 -0
  95. package/dist/read/types.d.ts +328 -0
  96. package/dist/read/types.d.ts.map +1 -0
  97. package/dist/read/types.js +21 -0
  98. package/dist/read/types.js.map +1 -0
  99. package/dist/read/wallet.d.ts +74 -0
  100. package/dist/read/wallet.d.ts.map +1 -0
  101. package/dist/read/wallet.js +578 -0
  102. package/dist/read/wallet.js.map +1 -0
  103. package/dist/read/works.d.ts +29 -0
  104. package/dist/read/works.d.ts.map +1 -0
  105. package/dist/read/works.js +191 -0
  106. package/dist/read/works.js.map +1 -0
  107. package/dist/recording-extensions.d.ts +58 -0
  108. package/dist/recording-extensions.d.ts.map +1 -0
  109. package/dist/recording-extensions.js +148 -0
  110. package/dist/recording-extensions.js.map +1 -0
  111. package/dist/release-extensions.d.ts +93 -0
  112. package/dist/release-extensions.d.ts.map +1 -0
  113. package/dist/release-extensions.js +190 -0
  114. package/dist/release-extensions.js.map +1 -0
  115. package/dist/release-graph.d.ts +65 -0
  116. package/dist/release-graph.d.ts.map +1 -0
  117. package/dist/release-graph.js +136 -0
  118. package/dist/release-graph.js.map +1 -0
  119. package/dist/share-template.d.ts +3 -0
  120. package/dist/share-template.d.ts.map +1 -0
  121. package/dist/share-template.js +46 -0
  122. package/dist/share-template.js.map +1 -0
  123. package/dist/share.d.ts +67 -0
  124. package/dist/share.d.ts.map +1 -0
  125. package/dist/share.js +157 -0
  126. package/dist/share.js.map +1 -0
  127. package/dist/transactions.d.ts +216 -0
  128. package/dist/transactions.d.ts.map +1 -0
  129. package/dist/transactions.js +314 -0
  130. package/dist/transactions.js.map +1 -0
  131. package/dist/vault.d.ts +364 -0
  132. package/dist/vault.d.ts.map +1 -0
  133. package/dist/vault.js +507 -0
  134. package/dist/vault.js.map +1 -0
  135. package/package.json +145 -5
  136. package/src/auth.ts +275 -0
  137. package/src/catalog.ts +189 -0
  138. package/src/client.ts +1310 -0
  139. package/src/contracts.ts +53 -0
  140. package/src/cover.ts +240 -0
  141. package/src/credits.ts +906 -0
  142. package/src/deployments.ts +354 -0
  143. package/src/execute.ts +52 -0
  144. package/src/index.ts +69 -0
  145. package/src/internal.ts +46 -0
  146. package/src/mix.ts +910 -0
  147. package/src/pressing.ts +705 -0
  148. package/src/publication.ts +1205 -0
  149. package/src/queries.ts +9 -0
  150. package/src/read/artist.ts +118 -0
  151. package/src/read/catalog.ts +668 -0
  152. package/src/read/client.ts +87 -0
  153. package/src/read/config.ts +138 -0
  154. package/src/read/genres.ts +37 -0
  155. package/src/read/index.ts +85 -0
  156. package/src/read/internal/scalars.ts +59 -0
  157. package/src/read/internal/walrus.ts +42 -0
  158. package/src/read/receipts.ts +476 -0
  159. package/src/read/types.ts +415 -0
  160. package/src/read/wallet.ts +687 -0
  161. package/src/read/works.ts +297 -0
  162. package/src/recording-extensions.ts +241 -0
  163. package/src/release-extensions.ts +311 -0
  164. package/src/release-graph.ts +219 -0
  165. package/src/share-template.ts +55 -0
  166. package/src/share.ts +261 -0
  167. package/src/transactions.ts +542 -0
  168. package/src/vault.ts +1009 -0
@@ -0,0 +1,314 @@
1
+ // Copyright (c) Miso Labs, Inc.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ // Transaction builders follow the Sui SDK thunk pattern: a builder returns a
4
+ // `(tx: Transaction) => …` thunk that adds commands to a caller-owned
5
+ // `Transaction`, so a platform call composes with protocol calls and anything
6
+ // else in the same PTB.
7
+ //
8
+ // This module holds the OPINIONATED publish flows. `@misofm/protocol` does the
9
+ // minimum the Move semantics FORCE and returns anything a caller could
10
+ // legitimately route elsewhere; deciding where those values GO is the
11
+ // platform-layer call that lives here:
12
+ //
13
+ // - minting a work's share supply is a protocol primitive
14
+ // (`createComposition`/`createRecording`) — allocating it to raw address
15
+ // balances or composable Stake objects, publishing (sharing) the work, and
16
+ // transferring its admin cap is an opinion about economics;
17
+ // - minting a release is a platform primitive: core's `release::new` takes an
18
+ // unconstructible PTB `&mut UID`, so core `release::new(registry, …)` is the
19
+ // canonical client path. Choosing a track-assembly strategy, publishing
20
+ // (sharing) it, and picking a recipient for its `ReleaseAdminCap` is the
21
+ // opinion, so `finalizeRelease` / `publishRelease` live here.
22
+ //
23
+ // Every `finalize*` here MUST run in the same PTB as the `create*` that produced
24
+ // its parts — `Composition`, `Recording`, and `Release` are all `key`-only with
25
+ // no `drop`, so none can outlive its creating transaction. That is a same-PTB
26
+ // constraint, not a same-function one, which is exactly what makes this split
27
+ // possible.
28
+ //
29
+ // Composes with `@misofm/protocol`'s calls in the same PTB (the
30
+ // transaction-thunk composition pattern, just crossing a package boundary now).
31
+ import { Transaction } from "@mysten/sui/transactions";
32
+ import { contracts, createComposition, createRecording, } from "@misofm/protocol";
33
+ import { asU64, directAdminCap, disposeNewAdminCap, invokeWithAdminCap } from "./vault.js";
34
+ import * as royaltyPool from "@misofm/protocol/contracts/royalty_pool/pool";
35
+ import * as royaltyPoolStake from "@misofm/protocol/contracts/royalty_pool/stake";
36
+ const { track, release } = contracts;
37
+ export function custodyOf(input) {
38
+ if (input.adminCustody !== undefined)
39
+ return input.adminCustody;
40
+ if (input.adminAddress !== undefined)
41
+ return { kind: "direct", owner: input.adminAddress };
42
+ throw new Error("admin custody is required");
43
+ }
44
+ export function recordingAuthorityOf(input) {
45
+ if (input.recordingAuthority !== undefined)
46
+ return input.recordingAuthority;
47
+ if (input.recordingAdminCapId !== undefined)
48
+ return directAdminCap(input.recordingAdminCapId);
49
+ throw new Error("recording authority is required");
50
+ }
51
+ /** Reject a malformed multi-result command before it becomes a PTB argument. */
52
+ export function requiredCommandResult(result, index, command) {
53
+ const value = result[index];
54
+ if (value === undefined) {
55
+ throw new Error(`${command} did not return result ${index}`);
56
+ }
57
+ return value;
58
+ }
59
+ /** Split shares from a Balance and return a fresh, unregistered Stake object. */
60
+ export function createShareStake(tx, params) {
61
+ const value = asU64("share stake value", params.value);
62
+ if (value === 0n)
63
+ throw new Error("share stake value must be greater than zero");
64
+ const stakeBalance = tx.moveCall({
65
+ target: "0x2::balance::split",
66
+ typeArguments: [params.shareType],
67
+ arguments: [params.balance, tx.pure.u64(value)],
68
+ });
69
+ return tx.add(royaltyPoolStake._new({
70
+ package: params.royaltyPoolPackageId,
71
+ typeArguments: [params.shareType],
72
+ arguments: [stakeBalance],
73
+ }));
74
+ }
75
+ /** Register an existing Stake with one RoyaltyPool. */
76
+ export function registerShareStake(tx, params) {
77
+ tx.add(royaltyPool.registerStake({
78
+ package: params.royaltyPoolPackageId,
79
+ typeArguments: [params.shareType, params.currencyType],
80
+ arguments: [params.pool, params.stake],
81
+ }));
82
+ }
83
+ /**
84
+ * Convert an entire share Balance into one unregistered Stake per recipient.
85
+ * The emptied Balance is destroyed, so recipient values must consume it exactly.
86
+ * Returned stakes remain caller-controlled for optional registration and transfer.
87
+ */
88
+ export function createShareStakes(tx, params) {
89
+ if (params.recipients.length === 0) {
90
+ throw new Error("share stake recipients must not be empty");
91
+ }
92
+ const values = params.recipients.map((recipient) => {
93
+ const value = asU64("share stake value", recipient.value);
94
+ if (value === 0n)
95
+ throw new Error("share stake value must be greater than zero");
96
+ return value;
97
+ });
98
+ const stakes = params.recipients.map((recipient, index) => createShareStake(tx, {
99
+ balance: params.balance,
100
+ shareType: params.shareType,
101
+ value: values[index],
102
+ royaltyPoolPackageId: params.royaltyPoolPackageId,
103
+ }));
104
+ tx.moveCall({
105
+ target: "0x2::balance::destroy_zero",
106
+ typeArguments: [params.shareType],
107
+ arguments: [params.balance],
108
+ });
109
+ return stakes;
110
+ }
111
+ /** Consume an unshared RoyaltyPool and make it globally accessible. */
112
+ export function shareRoyaltyPool(tx, params) {
113
+ tx.add(royaltyPool.share({
114
+ package: params.royaltyPoolPackageId,
115
+ typeArguments: [params.shareType, params.currencyType],
116
+ arguments: [params.pool],
117
+ }));
118
+ }
119
+ /**
120
+ * Splits a share `Balance` across `recipients` via `minato::disperse_balance`, then
121
+ * destroys the emptied balance. Exposed for consumers assembling custom share
122
+ * distributions in their own PTBs.
123
+ */
124
+ export function disperseShares(tx, minatoPackageId, shareType, balance, recipients) {
125
+ tx.moveCall({
126
+ target: `${minatoPackageId}::minato::disperse_balance`,
127
+ typeArguments: [shareType],
128
+ arguments: [
129
+ balance,
130
+ tx.makeMoveVec({ type: "u64", elements: recipients.map((r) => tx.pure.u64(asU64("share recipient value", r.value))) }),
131
+ tx.makeMoveVec({ type: "address", elements: recipients.map((r) => tx.pure.address(r.address)) }),
132
+ ],
133
+ });
134
+ tx.moveCall({ target: "0x2::balance::destroy_zero", typeArguments: [shareType], arguments: [balance] });
135
+ }
136
+ /** Publish a share package and permanently destroy its UpgradeCap in the same PTB. */
137
+ export function publishShareCurrency(bytecode) {
138
+ return (tx) => {
139
+ const upgradeCap = tx.publish(bytecode);
140
+ tx.moveCall({ target: "0x2::package::make_immutable", arguments: [upgradeCap] });
141
+ };
142
+ }
143
+ const SUI_COIN_REGISTRY_ID = "0xc";
144
+ export function initializeShareCurrency(params) {
145
+ const { shareCurrencyPackageId, name, description, iconUrl, treasuryCapRecipient } = params;
146
+ return (tx) => {
147
+ const treasuryCap = tx.moveCall({
148
+ target: `${shareCurrencyPackageId}::share::initialize`,
149
+ arguments: [tx.pure.string(name), tx.pure.string(description), tx.pure.string(iconUrl), tx.object(SUI_COIN_REGISTRY_ID)],
150
+ });
151
+ tx.transferObjects([treasuryCap], treasuryCapRecipient);
152
+ };
153
+ }
154
+ /**
155
+ * The opinionated finish for a composition: disperse its share supply to
156
+ * `shareRecipients`, publish (share) it, and transfer its admin cap to
157
+ * `adminAddress`. Consumers that want different economics skip this and act on
158
+ * the `CompositionParts` from `@misofm/protocol`'s `createComposition` directly.
159
+ */
160
+ export function finalizeComposition(tx, params) {
161
+ disperseShares(tx, params.minatoPackageId, params.shareType, params.balance, params.shareRecipients);
162
+ tx.add(contracts.composition.publish({ package: params.misoPackageId, typeArguments: [params.shareType], arguments: [params.composition, params.adminCap] }));
163
+ disposeNewAdminCap(tx, params.adminCap, custodyOf(params));
164
+ }
165
+ /** Convenience: publish a composition end-to-end (createComposition → finalizeComposition). */
166
+ export function publishComposition(params) {
167
+ return (tx) => {
168
+ const parts = createComposition(tx, {
169
+ shareType: params.shareType,
170
+ shareCurrencyId: params.shareCurrencyId,
171
+ shareTreasuryCapId: params.shareTreasuryCapId,
172
+ title: params.title,
173
+ royaltyRateBps: params.royaltyRateBps,
174
+ misoPackageId: params.misoPackageId,
175
+ });
176
+ finalizeComposition(tx, {
177
+ ...parts,
178
+ shareType: params.shareType,
179
+ shareRecipients: params.shareRecipients,
180
+ adminCustody: custodyOf(params),
181
+ misoPackageId: params.misoPackageId,
182
+ minatoPackageId: params.minatoPackageId,
183
+ });
184
+ };
185
+ }
186
+ /**
187
+ * The opinionated finish for a recording: publish (share) it, disperse its
188
+ * share supply, and transfer its admin cap to `adminAddress`. A recording has
189
+ * no embedded metadata to set — naming lives in the metadata extension.
190
+ */
191
+ export function finalizeRecording(tx, params) {
192
+ const typeArguments = [params.recordingShareType, params.compositionShareType];
193
+ tx.add(contracts.recording.publish({ package: params.misoPackageId, typeArguments, arguments: [params.recording, params.adminCap] }));
194
+ disperseShares(tx, params.minatoPackageId, params.recordingShareType, params.balance, params.shareRecipients);
195
+ disposeNewAdminCap(tx, params.adminCap, custodyOf(params));
196
+ }
197
+ /** Convenience: publish a recording against an already-on-chain composition. */
198
+ export function publishRecording(params) {
199
+ return (tx) => {
200
+ const parts = createRecording(tx, {
201
+ shareType: params.shareType,
202
+ shareCurrencyId: params.shareCurrencyId,
203
+ shareTreasuryCapId: params.shareTreasuryCapId,
204
+ compositionShareType: params.compositionShareType,
205
+ composition: tx.object(params.compositionId),
206
+ misoPackageId: params.misoPackageId,
207
+ });
208
+ finalizeRecording(tx, {
209
+ ...parts,
210
+ recordingShareType: params.shareType,
211
+ compositionShareType: params.compositionShareType,
212
+ shareRecipients: params.shareRecipients,
213
+ adminCustody: custodyOf(params),
214
+ misoPackageId: params.misoPackageId,
215
+ minatoPackageId: params.minatoPackageId,
216
+ });
217
+ };
218
+ }
219
+ /**
220
+ * Publishes a composition and its recording in a single atomic PTB.
221
+ *
222
+ * The ordering is load-bearing: `recording::new` borrows the composition by
223
+ * immutable reference, so it must run while the composition is still an unshared,
224
+ * transaction-local value — i.e. AFTER `composition::new` but BEFORE
225
+ * `composition::publish` (which moves the composition into `share_object`). Hence:
226
+ * `composition::new` → `recording::new(&comp)` → finalize composition (publish) →
227
+ * finalize recording (publish).
228
+ */
229
+ export function publishCompositionAndRecording(params) {
230
+ return (tx) => {
231
+ const comp = createComposition(tx, {
232
+ shareType: params.composition.shareType,
233
+ shareCurrencyId: params.composition.shareCurrencyId,
234
+ shareTreasuryCapId: params.composition.shareTreasuryCapId,
235
+ title: params.title,
236
+ royaltyRateBps: params.royaltyRateBps,
237
+ misoPackageId: params.misoPackageId,
238
+ });
239
+ // Borrow the still-unshared composition into recording::new before publishing it.
240
+ // The composition's royalty rate is immutable once set at `composition::new`,
241
+ // so `recording::new` reads exactly the rate this PTB just created it with.
242
+ const rec = createRecording(tx, {
243
+ shareType: params.recording.shareType,
244
+ shareCurrencyId: params.recording.shareCurrencyId,
245
+ shareTreasuryCapId: params.recording.shareTreasuryCapId,
246
+ compositionShareType: params.composition.shareType,
247
+ composition: comp.composition,
248
+ misoPackageId: params.misoPackageId,
249
+ });
250
+ finalizeComposition(tx, {
251
+ ...comp,
252
+ shareType: params.composition.shareType,
253
+ shareRecipients: params.composition.shareRecipients,
254
+ adminCustody: custodyOf(params.composition),
255
+ misoPackageId: params.misoPackageId,
256
+ minatoPackageId: params.minatoPackageId,
257
+ });
258
+ finalizeRecording(tx, {
259
+ ...rec,
260
+ recordingShareType: params.recording.shareType,
261
+ compositionShareType: params.composition.shareType,
262
+ shareRecipients: params.recording.shareRecipients,
263
+ adminCustody: custodyOf(params.recording),
264
+ misoPackageId: params.misoPackageId,
265
+ minatoPackageId: params.minatoPackageId,
266
+ });
267
+ };
268
+ }
269
+ /**
270
+ * The opinionated finish for a release: publish (share) it and transfer its
271
+ * admin cap to `adminAddress`.
272
+ *
273
+ * MUST run in the same PTB as `release::new(registry, …)` that produced
274
+ * these parts —
275
+ * `Release` is `key`-only with no `drop`, so an unpublished release cannot
276
+ * outlive its transaction. Splitting create from finalize is what lets a caller
277
+ * do something else with the cap (route it to a vault, hand it to another
278
+ * package, keep it for later commands) instead of a plain address transfer.
279
+ */
280
+ export function finalizeRelease(tx, params) {
281
+ tx.add(release.publish({ package: params.misoPackageId, arguments: [params.release, params.adminCap] }));
282
+ disposeNewAdminCap(tx, params.adminCap, custodyOf(params));
283
+ }
284
+ function buildTrackVec(tx, misoPackageId, trackArgs) {
285
+ return tx.makeMoveVec({ type: `${misoPackageId}::track::Track`, elements: trackArgs });
286
+ }
287
+ /**
288
+ * Convenience: publish a release end-to-end, assembling its tracklist from
289
+ * recording admin caps held by the sender.
290
+ */
291
+ export function publishRelease(params) {
292
+ return (tx) => {
293
+ const { misoPackageId } = params;
294
+ const trackArgs = params.tracks.map((t) => {
295
+ const typeArguments = [t.recordingShareType, t.compositionShareType];
296
+ return invokeWithAdminCap(tx, recordingAuthorityOf(t), {
297
+ target: `${misoPackageId}::track::new`,
298
+ typeArguments,
299
+ arguments: [tx.object(t.recordingId), tx.pure.id(params.releaseId), tx.pure.u16(t.splitBps)],
300
+ adminCapIndex: 0,
301
+ });
302
+ });
303
+ const created = tx.moveCall({
304
+ target: `${misoPackageId}::release::new`,
305
+ arguments: [tx.object(params.releaseRegistryId), tx.pure.string(params.title), buildTrackVec(tx, misoPackageId, trackArgs), tx.pure.u256(BigInt(params.releaseNonce))],
306
+ });
307
+ const parts = {
308
+ release: requiredCommandResult(created, 0, "release::new"),
309
+ adminCap: requiredCommandResult(created, 1, "release::new"),
310
+ };
311
+ finalizeRelease(tx, { ...parts, ...params, misoPackageId });
312
+ };
313
+ }
314
+ //# sourceMappingURL=transactions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactions.js","sourceRoot":"","sources":["../src/transactions.ts"],"names":[],"mappings":"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"}