@misofm/musicos 0.1.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 (103) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +75 -0
  3. package/dist/client.d.ts +309 -0
  4. package/dist/client.d.ts.map +1 -0
  5. package/dist/client.js +216 -0
  6. package/dist/client.js.map +1 -0
  7. package/dist/contracts/musicos/composition.d.ts +195 -0
  8. package/dist/contracts/musicos/composition.d.ts.map +1 -0
  9. package/dist/contracts/musicos/composition.js +195 -0
  10. package/dist/contracts/musicos/composition.js.map +1 -0
  11. package/dist/contracts/musicos/deps/bps/bps.d.ts +17 -0
  12. package/dist/contracts/musicos/deps/bps/bps.d.ts.map +1 -0
  13. package/dist/contracts/musicos/deps/bps/bps.js +19 -0
  14. package/dist/contracts/musicos/deps/bps/bps.js.map +1 -0
  15. package/dist/contracts/musicos/recording.d.ts +238 -0
  16. package/dist/contracts/musicos/recording.d.ts.map +1 -0
  17. package/dist/contracts/musicos/recording.js +232 -0
  18. package/dist/contracts/musicos/recording.js.map +1 -0
  19. package/dist/contracts/musicos/release.d.ts +298 -0
  20. package/dist/contracts/musicos/release.d.ts.map +1 -0
  21. package/dist/contracts/musicos/release.js +298 -0
  22. package/dist/contracts/musicos/release.js.map +1 -0
  23. package/dist/contracts/musicos/track.d.ts +193 -0
  24. package/dist/contracts/musicos/track.d.ts.map +1 -0
  25. package/dist/contracts/musicos/track.js +197 -0
  26. package/dist/contracts/musicos/track.js.map +1 -0
  27. package/dist/contracts/utils/index.d.ts +104 -0
  28. package/dist/contracts/utils/index.d.ts.map +1 -0
  29. package/dist/contracts/utils/index.js +272 -0
  30. package/dist/contracts/utils/index.js.map +1 -0
  31. package/dist/contracts.d.ts +9 -0
  32. package/dist/contracts.d.ts.map +1 -0
  33. package/dist/contracts.js +14 -0
  34. package/dist/contracts.js.map +1 -0
  35. package/dist/deployments.d.ts +60 -0
  36. package/dist/deployments.d.ts.map +1 -0
  37. package/dist/deployments.js +109 -0
  38. package/dist/deployments.js.map +1 -0
  39. package/dist/events.d.ts +16 -0
  40. package/dist/events.d.ts.map +1 -0
  41. package/dist/events.js +25 -0
  42. package/dist/events.js.map +1 -0
  43. package/dist/execute.d.ts +49 -0
  44. package/dist/execute.d.ts.map +1 -0
  45. package/dist/execute.js +110 -0
  46. package/dist/execute.js.map +1 -0
  47. package/dist/index.d.ts +13 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +20 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/internal.d.ts +17 -0
  52. package/dist/internal.d.ts.map +1 -0
  53. package/dist/internal.js +46 -0
  54. package/dist/internal.js.map +1 -0
  55. package/dist/numeric.d.ts +5 -0
  56. package/dist/numeric.d.ts.map +1 -0
  57. package/dist/numeric.js +21 -0
  58. package/dist/numeric.js.map +1 -0
  59. package/dist/packages.d.ts +67 -0
  60. package/dist/packages.d.ts.map +1 -0
  61. package/dist/packages.js +85 -0
  62. package/dist/packages.js.map +1 -0
  63. package/dist/parsers.d.ts +9 -0
  64. package/dist/parsers.d.ts.map +1 -0
  65. package/dist/parsers.js +40 -0
  66. package/dist/parsers.js.map +1 -0
  67. package/dist/queries.d.ts +178 -0
  68. package/dist/queries.d.ts.map +1 -0
  69. package/dist/queries.js +611 -0
  70. package/dist/queries.js.map +1 -0
  71. package/dist/transactions.d.ts +136 -0
  72. package/dist/transactions.d.ts.map +1 -0
  73. package/dist/transactions.js +145 -0
  74. package/dist/transactions.js.map +1 -0
  75. package/dist/types.d.ts +194 -0
  76. package/dist/types.d.ts.map +1 -0
  77. package/dist/types.js +4 -0
  78. package/dist/types.js.map +1 -0
  79. package/dist/view.d.ts +22 -0
  80. package/dist/view.d.ts.map +1 -0
  81. package/dist/view.js +42 -0
  82. package/dist/view.js.map +1 -0
  83. package/package.json +119 -0
  84. package/src/client.ts +341 -0
  85. package/src/contracts/musicos/composition.ts +280 -0
  86. package/src/contracts/musicos/deps/bps/bps.ts +22 -0
  87. package/src/contracts/musicos/recording.ts +308 -0
  88. package/src/contracts/musicos/release.ts +409 -0
  89. package/src/contracts/musicos/track.ts +255 -0
  90. package/src/contracts/utils/index.ts +428 -0
  91. package/src/contracts.ts +29 -0
  92. package/src/deployments.ts +166 -0
  93. package/src/events.ts +30 -0
  94. package/src/execute.ts +137 -0
  95. package/src/index.ts +21 -0
  96. package/src/internal.ts +78 -0
  97. package/src/numeric.ts +25 -0
  98. package/src/packages.ts +117 -0
  99. package/src/parsers.ts +66 -0
  100. package/src/queries.ts +928 -0
  101. package/src/transactions.ts +305 -0
  102. package/src/types.ts +222 -0
  103. package/src/view.ts +65 -0
@@ -0,0 +1,178 @@
1
+ import type { ClientWithCoreApi } from "@mysten/sui/client";
2
+ import type { SuiGraphQLClient } from "@mysten/sui/graphql";
3
+ import type { Composition, CompositionAdminCap, Recording, RecordingAdminCap, Release, ReleaseAdminCap } from "./types.ts";
4
+ /**
5
+ * Extracts the type parameter `T` from `package::module::Type<T>`. For multi-
6
+ * parameter types this returns everything between the outer angle brackets —
7
+ * use {@link extractTypeParams2} to split two top-level parameters.
8
+ */
9
+ export declare function extractTypeParam(objectType: string): string;
10
+ /** Splits the two top-level type parameters of `pkg::mod::Type<A, B>`. */
11
+ export declare function extractTypeParams2(objectType: string): [string, string];
12
+ /**
13
+ * True when `e` is a "this object does not exist" error from any of the Sui
14
+ * client transports, so null-returning readers can distinguish absence from
15
+ * transport failure. Matches, in order of preference:
16
+ *
17
+ * 1. Structured `ObjectError.code` values thrown by the JSON-RPC core client
18
+ * (`notExists`, `deleted`, `dynamicFieldNotFound`) and the GraphQL core
19
+ * client (`notFound`). The class itself is not exported by `@mysten/sui`,
20
+ * so we duck-type on `code`.
21
+ * 2. The message shapes those clients (and the gRPC core client, which wraps
22
+ * the server's per-object status message in a plain `Error`) produce:
23
+ * "Object 0x… does not exist" / "Object 0x… not found" / "Object 0x… has
24
+ * been deleted" / "Dynamic field not found for object 0x…" / "No object
25
+ * found for id 0x…".
26
+ *
27
+ * Transport/protocol errors must NOT match: every message pattern requires
28
+ * object-ish context ("object" / "dynamic field"), so e.g. a JSON-RPC
29
+ * "Method not found" or a gRPC "peer not found" is never treated as a missing
30
+ * object and propagates to the caller.
31
+ */
32
+ export declare function isNotFound(e: unknown): boolean;
33
+ /** Any generated BCS codec with a `parse` method. */
34
+ export interface BcsParser<T> {
35
+ parse(bytes: Uint8Array): T;
36
+ }
37
+ /**
38
+ * Fetch and parse an object through the transport-neutral Core API. Object
39
+ * content is BCS; never pass the full `objectBcs` envelope to a Move codec.
40
+ */
41
+ export declare function getObjectByBcs<T>(client: ClientWithCoreApi, objectId: string, codec: BcsParser<T>): Promise<T>;
42
+ export interface ExtensionFieldParams<T> {
43
+ /** Freshly published package address for the extension. */
44
+ packageId: string;
45
+ /** Move module declaring the fieldless `ExtensionKey`. */
46
+ module: string;
47
+ /** Generated codec for the dynamic-field value. */
48
+ codec: BcsParser<T>;
49
+ }
50
+ /**
51
+ * Read an optional first-party extension field from a core object's UID. Every
52
+ * current extension uses a fieldless `ExtensionKey`, whose BCS is one false
53
+ * boolean byte. Absence returns `null`; transport errors still propagate.
54
+ */
55
+ export declare function getExtensionField<T>(client: ClientWithCoreApi, parentId: string, params: ExtensionFieldParams<T>): Promise<T | null>;
56
+ export interface ReleaseDspFieldParams<T> {
57
+ /** Freshly published `release_dsp_link` package address. */
58
+ packageId: string;
59
+ /** Numeric DSP discriminator (`DspLinkData::platform()`). */
60
+ platform: number;
61
+ /** Generated codec for `DspLinkData` or `PerTrack<Option<DspLinkData>>`. */
62
+ codec: BcsParser<T>;
63
+ }
64
+ /** Read a release-level DSP link stored under `ReleaseLinkKey(platform)`. */
65
+ export declare function getReleaseDspLink<T>(client: ClientWithCoreApi, releaseId: string, params: ReleaseDspFieldParams<T>): Promise<T | null>;
66
+ /** Read the per-track DSP-link array stored under `TrackLinksKey(platform)`. */
67
+ export declare function getTrackDspLinks<T>(client: ClientWithCoreApi, releaseId: string, params: ReleaseDspFieldParams<T>): Promise<T | null>;
68
+ /** Parse the shared canonical core `miso::release::ReleaseRegistry` by ID. */
69
+ export declare function getReleaseRegistryById(client: ClientWithCoreApi, registryId: string): Promise<{
70
+ id: string;
71
+ }>;
72
+ export interface WorkShareTypes {
73
+ compositions: readonly string[];
74
+ recordings: readonly string[];
75
+ }
76
+ export interface WorkAddressesByShareType {
77
+ compositions: Partial<Record<string, string>>;
78
+ recordings: Partial<Record<string, string>>;
79
+ }
80
+ /**
81
+ * Resolve many work share types in one GraphQL request.
82
+ *
83
+ * Compositions can be queried by their exact one-parameter type. Recordings
84
+ * carry both RecordingShare and CompositionShare, while an admin cap only
85
+ * exposes the first, so one bare Recording scan is shared by every requested
86
+ * recording type and filtered client-side.
87
+ */
88
+ export declare function getWorkAddressesByShareTypes(client: SuiGraphQLClient, shareTypes: WorkShareTypes, misoPackageId: string): Promise<WorkAddressesByShareType>;
89
+ export interface WorkIds {
90
+ compositions: readonly string[];
91
+ recordings: readonly string[];
92
+ releases: readonly string[];
93
+ }
94
+ export interface WorksById {
95
+ compositions: Partial<Record<string, Composition>>;
96
+ recordings: Partial<Record<string, Recording>>;
97
+ releases: Partial<Record<string, Release>>;
98
+ }
99
+ /** Fetch and parse heterogeneous work objects through one Core bulk request. */
100
+ export declare function getWorksByIds(client: ClientWithCoreApi, ids: WorkIds): Promise<WorksById>;
101
+ /** Fetches multiple compositions by ID in one Core request. */
102
+ export declare function getCompositionsByIds(client: ClientWithCoreApi, compositionIds: string[]): Promise<Record<string, Composition>>;
103
+ /** Fetches a composition by its object ID. */
104
+ export declare function getCompositionById(client: ClientWithCoreApi, compositionId: string): Promise<Composition>;
105
+ /** Extracts the share type `T` from a `Composition<T>` object. */
106
+ export declare function getCompositionShareType(client: ClientWithCoreApi, compositionId: string): Promise<string>;
107
+ /** Fetches a composition by its share type (GraphQL discovery + Core read). */
108
+ export declare function getCompositionByShareType(client: ClientWithCoreApi, graphqlClient: SuiGraphQLClient, shareType: string, misoPackageId: string): Promise<Composition>;
109
+ /**
110
+ * Resolves a composition share type to its object address.
111
+ *
112
+ * This is the lightweight discovery primitive for callers that need the
113
+ * composition's identity but will read extension fields rather than the core
114
+ * Composition contents.
115
+ */
116
+ export declare function getCompositionAddressByShareType(graphqlClient: SuiGraphQLClient, shareType: string, misoPackageId: string): Promise<string | null>;
117
+ export declare function getCompositionAdminCapById(client: ClientWithCoreApi, adminCapId: string): Promise<CompositionAdminCap>;
118
+ /**
119
+ * Composition admin caps owned by `owner`.
120
+ *
121
+ * Core API (no GraphQL): `listOwnedObjects` takes a type filter and returns each
122
+ * object's instantiated `type`, so the share type is read straight off
123
+ * `CompositionAdminCap<CompositionShare>` with no second round-trip.
124
+ */
125
+ export declare function getOwnedCompositionAdminCaps(client: ClientWithCoreApi, owner: string, misoPackageId: string): Promise<CompositionAdminCap[]>;
126
+ export declare function deriveCompositionAdminCapId(compositionId: string, misoPackageId: string): string;
127
+ export declare function getRecordingsByIds(client: ClientWithCoreApi, recordingIds: string[]): Promise<Record<string, Recording>>;
128
+ export declare function getRecordingById(client: ClientWithCoreApi, recordingId: string): Promise<Recording>;
129
+ /**
130
+ * The recording's OWN share type (`RecordingShare`). `Recording` is generic over
131
+ * two phantoms — `Recording<RecordingShare, CompositionShare>` — so this splits
132
+ * them and returns the first; use {@link getRecordingShareTypes} when the
133
+ * parent composition's share type is needed too.
134
+ */
135
+ export declare function getRecordingShareType(client: ClientWithCoreApi, recordingId: string): Promise<string>;
136
+ /**
137
+ * Both of a recording's share types, as `[RecordingShare, CompositionShare]`.
138
+ * Most builders need the pair — `track::new`, `recording::publish`
139
+ * and the recording credit/pool extensions are all generic over both, in this
140
+ * order.
141
+ */
142
+ export declare function getRecordingShareTypes(client: ClientWithCoreApi, recordingId: string): Promise<[string, string]>;
143
+ export declare function getRecordingByShareType(client: ClientWithCoreApi, graphqlClient: SuiGraphQLClient, shareType: string, misoPackageId: string): Promise<Recording>;
144
+ export declare function getRecordingAdminCapById(client: ClientWithCoreApi, adminCapId: string): Promise<RecordingAdminCap>;
145
+ /**
146
+ * Recording admin caps owned by `owner`.
147
+ *
148
+ * Core API (no GraphQL), same shape as {@link getOwnedCompositionAdminCaps}.
149
+ * Note `RecordingAdminCap<phantom RecordingShare>` is deliberately single-param,
150
+ * so this yields only the recording's own share type — its parent composition's
151
+ * share type is not recoverable from the cap alone.
152
+ */
153
+ export declare function getOwnedRecordingAdminCaps(client: ClientWithCoreApi, owner: string, misoPackageId: string): Promise<RecordingAdminCap[]>;
154
+ export declare function deriveRecordingAdminCapId(recordingId: string, misoPackageId: string): string;
155
+ export declare function getReleasesByIds(client: ClientWithCoreApi, releaseIds: string[]): Promise<Record<string, Release>>;
156
+ export declare function getReleaseById(client: ClientWithCoreApi, releaseId: string): Promise<Release>;
157
+ export declare function getReleaseAdminCapById(client: ClientWithCoreApi, adminCapId: string): Promise<ReleaseAdminCap>;
158
+ export declare function getOwnedReleaseAdminCaps(client: ClientWithCoreApi, owner: string, misoPackageId: string): Promise<ReleaseAdminCap[]>;
159
+ export declare function deriveReleaseAdminCapId(releaseId: string, misoPackageId: string): string;
160
+ /** Extracts the share type `T` from a `Currency<T>` object. */
161
+ export declare function getShareCurrencyType(client: ClientWithCoreApi, shareCurrencyId: string): Promise<string>;
162
+ /**
163
+ * Finds the `TreasuryCap<ShareType>` owned by `owner`. One Core API call.
164
+ *
165
+ * Takes the share TYPE, not the `Currency` object id, because callers almost
166
+ * always have it already — it is {@link ShareCurrencyBinding.shareType},
167
+ * threaded through every builder. Taking the object id instead would force a
168
+ * `getObject` purely to read the type parameter back off the tag, a round trip
169
+ * the caller already paid for. If you genuinely hold only the currency id,
170
+ * compose the two:
171
+ *
172
+ * ```ts
173
+ * const shareType = await getShareCurrencyType(client, shareCurrencyId);
174
+ * const capId = await getShareCurrencyTreasuryCap(client, shareType, owner);
175
+ * ```
176
+ */
177
+ export declare function getShareCurrencyTreasuryCap(client: ClientWithCoreApi, shareType: string, owner: string): Promise<string>;
178
+ //# sourceMappingURL=queries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../src/queries.ts"],"names":[],"mappings":"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"}