@heemankv/sigints-sdk 1.0.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 (59) hide show
  1. package/README.md +206 -0
  2. package/dist/backend.d.ts +319 -0
  3. package/dist/backend.d.ts.map +1 -0
  4. package/dist/backend.js +306 -0
  5. package/dist/backend.js.map +1 -0
  6. package/dist/crypto.d.ts +16 -0
  7. package/dist/crypto.d.ts.map +1 -0
  8. package/dist/crypto.js +61 -0
  9. package/dist/crypto.js.map +1 -0
  10. package/dist/index.d.ts +134 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +361 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/jetstream.d.ts +22 -0
  15. package/dist/jetstream.d.ts.map +1 -0
  16. package/dist/jetstream.js +113 -0
  17. package/dist/jetstream.js.map +1 -0
  18. package/dist/jetstream.proto +101 -0
  19. package/dist/publish.d.ts +32 -0
  20. package/dist/publish.d.ts.map +1 -0
  21. package/dist/publish.js +139 -0
  22. package/dist/publish.js.map +1 -0
  23. package/dist/solana/constants.d.ts +3 -0
  24. package/dist/solana/constants.d.ts.map +1 -0
  25. package/dist/solana/constants.js +8 -0
  26. package/dist/solana/constants.js.map +1 -0
  27. package/dist/solana/index.d.ts +7 -0
  28. package/dist/solana/index.d.ts.map +1 -0
  29. package/dist/solana/index.js +6 -0
  30. package/dist/solana/index.js.map +1 -0
  31. package/dist/solana/recordSignal.d.ts +23 -0
  32. package/dist/solana/recordSignal.d.ts.map +1 -0
  33. package/dist/solana/recordSignal.js +21 -0
  34. package/dist/solana/recordSignal.js.map +1 -0
  35. package/dist/solana/shared.d.ts +5 -0
  36. package/dist/solana/shared.d.ts.map +1 -0
  37. package/dist/solana/shared.js +27 -0
  38. package/dist/solana/shared.js.map +1 -0
  39. package/dist/solana/streamRegistry.d.ts +41 -0
  40. package/dist/solana/streamRegistry.d.ts.map +1 -0
  41. package/dist/solana/streamRegistry.js +103 -0
  42. package/dist/solana/streamRegistry.js.map +1 -0
  43. package/dist/solana/subscription.d.ts +77 -0
  44. package/dist/solana/subscription.d.ts.map +1 -0
  45. package/dist/solana/subscription.js +237 -0
  46. package/dist/solana/subscription.js.map +1 -0
  47. package/dist/solana/tiers.d.ts +9 -0
  48. package/dist/solana/tiers.d.ts.map +1 -0
  49. package/dist/solana/tiers.js +13 -0
  50. package/dist/solana/tiers.js.map +1 -0
  51. package/dist/tradeIntent.d.ts +21 -0
  52. package/dist/tradeIntent.d.ts.map +1 -0
  53. package/dist/tradeIntent.js +95 -0
  54. package/dist/tradeIntent.js.map +1 -0
  55. package/dist/transactions.d.ts +89 -0
  56. package/dist/transactions.d.ts.map +1 -0
  57. package/dist/transactions.js +118 -0
  58. package/dist/transactions.js.map +1 -0
  59. package/package.json +32 -0
@@ -0,0 +1,306 @@
1
+ import { Buffer } from "buffer";
2
+ const normalizeBackendUrl = (backendUrl) => backendUrl.replace(/\/$/, "");
3
+ function buildUrl(backendUrl, path) {
4
+ return `${normalizeBackendUrl(backendUrl)}${path}`;
5
+ }
6
+ export async function getJson(backendUrl, path) {
7
+ const res = await fetch(buildUrl(backendUrl, path), { cache: "no-store" });
8
+ if (!res.ok) {
9
+ const text = await res.text();
10
+ throw new Error(`backend GET ${path} failed (${res.status}): ${text}`);
11
+ }
12
+ return (await res.json());
13
+ }
14
+ export async function postJson(backendUrl, path, body) {
15
+ const res = await fetch(buildUrl(backendUrl, path), {
16
+ method: "POST",
17
+ headers: { "content-type": "application/json" },
18
+ body: JSON.stringify(body),
19
+ });
20
+ if (!res.ok) {
21
+ const text = await res.text();
22
+ throw new Error(`backend POST ${path} failed (${res.status}): ${text}`);
23
+ }
24
+ return (await res.json());
25
+ }
26
+ export async function patchJson(backendUrl, path, body) {
27
+ const res = await fetch(buildUrl(backendUrl, path), {
28
+ method: "PATCH",
29
+ headers: { "content-type": "application/json" },
30
+ body: JSON.stringify(body),
31
+ });
32
+ if (!res.ok) {
33
+ const text = await res.text();
34
+ throw new Error(`backend PATCH ${path} failed (${res.status}): ${text}`);
35
+ }
36
+ return (await res.json());
37
+ }
38
+ export async function deleteJson(backendUrl, path, body) {
39
+ const res = await fetch(buildUrl(backendUrl, path), {
40
+ method: "DELETE",
41
+ headers: { "content-type": "application/json" },
42
+ body: JSON.stringify(body),
43
+ });
44
+ if (!res.ok) {
45
+ const text = await res.text();
46
+ throw new Error(`backend DELETE ${path} failed (${res.status}): ${text}`);
47
+ }
48
+ return (await res.json());
49
+ }
50
+ export async function registerSubscription(backendUrl, input) {
51
+ return postJson(backendUrl, "/subscribe", input);
52
+ }
53
+ export async function fetchSolanaConfig(backendUrl) {
54
+ return getJson(backendUrl, "/config/solana");
55
+ }
56
+ export async function syncWalletKey(backendUrl, input) {
57
+ if (!input.streamId) {
58
+ throw new Error("streamId required for subscription key sync");
59
+ }
60
+ return postJson(backendUrl, "/subscription-key/sync", input);
61
+ }
62
+ export async function fetchStream(backendUrl, streamId) {
63
+ const data = await getJson(backendUrl, `/streams/${encodeURIComponent(streamId)}`);
64
+ return data.stream;
65
+ }
66
+ export async function fetchStreams(backendUrl, includeTiers) {
67
+ const query = includeTiers ? "?includeTiers=true" : "";
68
+ return getJson(backendUrl, `/streams${query}`);
69
+ }
70
+ export async function fetchStreamSubscribers(backendUrl, streamId) {
71
+ return getJson(backendUrl, `/streams/${encodeURIComponent(streamId)}/subscribers`);
72
+ }
73
+ export async function fetchBlinkLink(backendUrl, streamId) {
74
+ return getJson(backendUrl, `/actions/stream/${encodeURIComponent(streamId)}/link`);
75
+ }
76
+ export async function createStream(backendUrl, payload) {
77
+ return postJson(backendUrl, "/streams", payload);
78
+ }
79
+ export async function fetchOnchainSubscriptions(backendUrl, subscriber, opts) {
80
+ const fresh = opts?.fresh ? "&fresh=true" : "";
81
+ return getJson(backendUrl, `/subscriptions/onchain?subscriber=${encodeURIComponent(subscriber)}${fresh}`);
82
+ }
83
+ export async function fetchSignals(backendUrl, streamId) {
84
+ return getJson(backendUrl, `/signals?streamId=${encodeURIComponent(streamId)}`);
85
+ }
86
+ export async function fetchSignalEvents(backendUrl, params) {
87
+ const query = new URLSearchParams();
88
+ if (params.streamId)
89
+ query.set("streamId", params.streamId);
90
+ if (typeof params.limit === "number")
91
+ query.set("limit", String(params.limit));
92
+ if (typeof params.after === "number")
93
+ query.set("after", String(params.after));
94
+ const suffix = query.toString();
95
+ return getJson(backendUrl, `/signals/events${suffix ? `?${suffix}` : ""}`);
96
+ }
97
+ export async function fetchLatestSignal(backendUrl, streamId) {
98
+ return getJson(backendUrl, `/signals/latest?streamId=${encodeURIComponent(streamId)}`);
99
+ }
100
+ export async function fetchSignalByHash(backendUrl, signalHash) {
101
+ return getJson(backendUrl, `/signals/by-hash/${encodeURIComponent(signalHash)}`);
102
+ }
103
+ export async function fetchCiphertext(backendUrl, sha) {
104
+ return getJson(backendUrl, `/storage/ciphertext/${encodeURIComponent(sha)}`);
105
+ }
106
+ export function buildPublicPayloadMessage(sha) {
107
+ return new TextEncoder().encode(`sigints:public:${sha}`);
108
+ }
109
+ export async function fetchPublicPayload(backendUrl, sha, auth) {
110
+ const query = auth
111
+ ? "?" +
112
+ ("wallet" in auth
113
+ ? `wallet=${encodeURIComponent(auth.wallet)}`
114
+ : `agentId=${encodeURIComponent(auth.agentId)}`) +
115
+ `&signature=${encodeURIComponent(auth.signatureBase64)}`
116
+ : "";
117
+ return getJson(backendUrl, `/storage/public/${encodeURIComponent(sha)}${query}`);
118
+ }
119
+ export async function fetchKeyboxEntry(backendUrl, sha, params) {
120
+ const actor = "wallet" in params ? `wallet=${encodeURIComponent(params.wallet)}` : `agentId=${encodeURIComponent(params.agentId)}`;
121
+ const query = `?${actor}` +
122
+ `&signature=${encodeURIComponent(params.signatureBase64)}` +
123
+ `&encPubKeyDerBase64=${encodeURIComponent(params.encPubKeyDerBase64)}` +
124
+ (params.subscriberId ? `&subscriberId=${encodeURIComponent(params.subscriberId)}` : "");
125
+ return getJson(backendUrl, `/storage/keybox/${encodeURIComponent(sha)}${query}`);
126
+ }
127
+ export async function fetchHealth(backendUrl) {
128
+ return getJson(backendUrl, "/health");
129
+ }
130
+ export async function getTestWallet(backendUrl, walletName) {
131
+ const query = walletName ? `?wallet=${encodeURIComponent(walletName)}` : "";
132
+ return getJson(backendUrl, `/test-wallet${query}`);
133
+ }
134
+ export async function testWalletSend(backendUrl, payload, walletName) {
135
+ const query = walletName ? `?wallet=${encodeURIComponent(walletName)}` : "";
136
+ return postJson(backendUrl, `/test-wallet/send${query}`, payload);
137
+ }
138
+ export async function testWalletSignMessage(backendUrl, payload, walletName) {
139
+ const query = walletName ? `?wallet=${encodeURIComponent(walletName)}` : "";
140
+ return postJson(backendUrl, `/test-wallet/sign-message${query}`, payload);
141
+ }
142
+ export async function fetchFeed(backendUrl, type) {
143
+ const query = type ? `?type=${type}` : "";
144
+ return getJson(backendUrl, `/social/feed${query}`);
145
+ }
146
+ export async function fetchFollowingFeed(backendUrl, wallet, type) {
147
+ const query = type ? `&type=${type}` : "";
148
+ return getJson(backendUrl, `/social/feed?scope=following&wallet=${encodeURIComponent(wallet)}${query}`);
149
+ }
150
+ export async function fetchTrendingFeed(backendUrl, limit = 6) {
151
+ return getJson(backendUrl, `/social/feed/trending?limit=${limit}`);
152
+ }
153
+ export async function fetchPost(backendUrl, contentId) {
154
+ return getJson(backendUrl, `/social/posts/${encodeURIComponent(contentId)}`);
155
+ }
156
+ export async function createIntent(backendUrl, params) {
157
+ await postJson(backendUrl, "/social/intents", params);
158
+ }
159
+ export async function createSlashReport(backendUrl, params) {
160
+ await postJson(backendUrl, "/social/slash", params);
161
+ }
162
+ export async function addLike(backendUrl, wallet, contentId) {
163
+ await postJson(backendUrl, "/social/likes", { wallet, contentId });
164
+ }
165
+ export async function removeLike(backendUrl, wallet, contentId) {
166
+ await deleteJson(backendUrl, "/social/likes", { wallet, contentId });
167
+ }
168
+ export async function fetchLikeCount(backendUrl, contentId) {
169
+ const data = await getJson(backendUrl, `/social/likes?contentId=${encodeURIComponent(contentId)}`);
170
+ return data.count;
171
+ }
172
+ export async function fetchFollowCounts(backendUrl, wallet) {
173
+ return getJson(backendUrl, `/social/follow-counts?wallet=${encodeURIComponent(wallet)}`);
174
+ }
175
+ export async function fetchFollowingIds(backendUrl, wallet) {
176
+ return getJson(backendUrl, `/social/following-ids?wallet=${encodeURIComponent(wallet)}`);
177
+ }
178
+ export async function fetchComments(backendUrl, contentId, page = 1, pageSize = 3) {
179
+ return getJson(backendUrl, `/social/comments?contentId=${encodeURIComponent(contentId)}&page=${page}&pageSize=${pageSize}`);
180
+ }
181
+ export async function addComment(backendUrl, wallet, contentId, comment) {
182
+ await postJson(backendUrl, "/social/comments", { wallet, contentId, comment });
183
+ }
184
+ export async function deleteComment(backendUrl, wallet, commentId) {
185
+ await deleteJson(backendUrl, `/social/comments/${encodeURIComponent(commentId)}`, { wallet });
186
+ }
187
+ export async function followProfile(backendUrl, wallet, targetProfileId) {
188
+ await postJson(backendUrl, "/social/follow", { wallet, targetProfileId });
189
+ }
190
+ export async function deletePost(backendUrl, wallet, contentId) {
191
+ await deleteJson(backendUrl, `/social/posts/${encodeURIComponent(contentId)}`, { wallet });
192
+ }
193
+ export async function searchAgents(backendUrl, query) {
194
+ return getJson(backendUrl, `/agents?search=${encodeURIComponent(query)}`);
195
+ }
196
+ export async function fetchAgents(backendUrl, params) {
197
+ const query = new URLSearchParams();
198
+ if (params.owner)
199
+ query.set("owner", params.owner);
200
+ if (params.role)
201
+ query.set("role", params.role);
202
+ if (params.streamId)
203
+ query.set("streamId", params.streamId);
204
+ if (params.search)
205
+ query.set("search", params.search);
206
+ const suffix = query.toString();
207
+ return getJson(backendUrl, `/agents${suffix ? `?${suffix}` : ""}`);
208
+ }
209
+ export async function createAgent(backendUrl, payload) {
210
+ return postJson(backendUrl, "/agents", payload);
211
+ }
212
+ export async function createAgentSubscription(backendUrl, payload) {
213
+ return postJson(backendUrl, "/agent-subscriptions", payload);
214
+ }
215
+ export async function fetchAgentSubscriptions(backendUrl, params) {
216
+ const query = new URLSearchParams();
217
+ if (params.owner)
218
+ query.set("owner", params.owner);
219
+ if (params.agentId)
220
+ query.set("agentId", params.agentId);
221
+ if (params.streamId)
222
+ query.set("streamId", params.streamId);
223
+ const suffix = query.toString();
224
+ return getJson(backendUrl, `/agent-subscriptions${suffix ? `?${suffix}` : ""}`);
225
+ }
226
+ export async function deleteAgentSubscription(backendUrl, id) {
227
+ return deleteJson(backendUrl, `/agent-subscriptions/${encodeURIComponent(id)}`, {});
228
+ }
229
+ export async function fetchUserProfile(backendUrl, wallet) {
230
+ return getJson(backendUrl, `/users/${encodeURIComponent(wallet)}`);
231
+ }
232
+ export async function updateUserProfile(backendUrl, wallet, payload) {
233
+ return patchJson(backendUrl, `/users/${encodeURIComponent(wallet)}`, payload);
234
+ }
235
+ export async function loginUser(backendUrl, wallet, opts) {
236
+ return postJson(backendUrl, "/users/login", { wallet, ...opts });
237
+ }
238
+ export async function prepareSignal(backendUrl, input) {
239
+ const payload = {
240
+ streamId: input.streamId,
241
+ tierId: input.tierId,
242
+ visibility: input.visibility ?? "private",
243
+ plaintextBase64: Buffer.from(input.plaintext, "utf8").toString("base64"),
244
+ };
245
+ const res = await postJson(backendUrl, "/signals/prepare", payload);
246
+ return res.metadata;
247
+ }
248
+ export function createBackendClient(backendUrl) {
249
+ const url = normalizeBackendUrl(backendUrl);
250
+ if (!url) {
251
+ throw new Error("backendUrl is required");
252
+ }
253
+ return {
254
+ getJson: (path) => getJson(url, path),
255
+ postJson: (path, body) => postJson(url, path, body),
256
+ patchJson: (path, body) => patchJson(url, path, body),
257
+ deleteJson: (path, body) => deleteJson(url, path, body),
258
+ registerSubscription: (input) => registerSubscription(url, input),
259
+ fetchSolanaConfig: () => fetchSolanaConfig(url),
260
+ syncWalletKey: (input) => syncWalletKey(url, input),
261
+ fetchStream: (streamId) => fetchStream(url, streamId),
262
+ fetchStreams: (includeTiers) => fetchStreams(url, includeTiers),
263
+ fetchStreamSubscribers: (streamId) => fetchStreamSubscribers(url, streamId),
264
+ fetchBlinkLink: (streamId) => fetchBlinkLink(url, streamId),
265
+ createStream: (payload) => createStream(url, payload),
266
+ fetchOnchainSubscriptions: (subscriber, opts) => fetchOnchainSubscriptions(url, subscriber, opts),
267
+ fetchSignals: (streamId) => fetchSignals(url, streamId),
268
+ fetchSignalEvents: (params) => fetchSignalEvents(url, params),
269
+ fetchLatestSignal: (streamId) => fetchLatestSignal(url, streamId),
270
+ fetchSignalByHash: (signalHash) => fetchSignalByHash(url, signalHash),
271
+ fetchCiphertext: (sha) => fetchCiphertext(url, sha),
272
+ fetchPublicPayload: (sha, auth) => fetchPublicPayload(url, sha, auth),
273
+ fetchKeyboxEntry: (sha, params) => fetchKeyboxEntry(url, sha, params),
274
+ fetchHealth: () => fetchHealth(url),
275
+ getTestWallet: (walletName) => getTestWallet(url, walletName),
276
+ testWalletSend: (payload, walletName) => testWalletSend(url, payload, walletName),
277
+ testWalletSignMessage: (payload, walletName) => testWalletSignMessage(url, payload, walletName),
278
+ fetchFeed: (type) => fetchFeed(url, type),
279
+ fetchFollowingFeed: (wallet, type) => fetchFollowingFeed(url, wallet, type),
280
+ fetchTrendingFeed: (limit = 6) => fetchTrendingFeed(url, limit),
281
+ fetchPost: (contentId) => fetchPost(url, contentId),
282
+ prepareSignal: (input) => prepareSignal(url, input),
283
+ createIntent: (params) => createIntent(url, params),
284
+ createSlashReport: (params) => createSlashReport(url, params),
285
+ addLike: (wallet, contentId) => addLike(url, wallet, contentId),
286
+ removeLike: (wallet, contentId) => removeLike(url, wallet, contentId),
287
+ fetchLikeCount: (contentId) => fetchLikeCount(url, contentId),
288
+ fetchFollowCounts: (wallet) => fetchFollowCounts(url, wallet),
289
+ fetchFollowingIds: (wallet) => fetchFollowingIds(url, wallet),
290
+ fetchComments: (contentId, page = 1, pageSize = 3) => fetchComments(url, contentId, page, pageSize),
291
+ addComment: (wallet, contentId, comment) => addComment(url, wallet, contentId, comment),
292
+ deleteComment: (wallet, commentId) => deleteComment(url, wallet, commentId),
293
+ followProfile: (wallet, targetProfileId) => followProfile(url, wallet, targetProfileId),
294
+ deletePost: (wallet, contentId) => deletePost(url, wallet, contentId),
295
+ searchAgents: (query) => searchAgents(url, query),
296
+ fetchAgents: (params) => fetchAgents(url, params),
297
+ createAgent: (payload) => createAgent(url, payload),
298
+ createAgentSubscription: (payload) => createAgentSubscription(url, payload),
299
+ fetchAgentSubscriptions: (params) => fetchAgentSubscriptions(url, params),
300
+ deleteAgentSubscription: (id) => deleteAgentSubscription(url, id),
301
+ fetchUserProfile: (wallet) => fetchUserProfile(url, wallet),
302
+ updateUserProfile: (wallet, payload) => updateUserProfile(url, wallet, payload),
303
+ loginUser: (wallet, opts) => loginUser(url, wallet, opts),
304
+ };
305
+ }
306
+ //# sourceMappingURL=backend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backend.js","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export type X25519Keypair = {
2
+ publicKeyDerBase64: string;
3
+ privateKeyDerBase64: string;
4
+ };
5
+ export type WrappedKey = {
6
+ subscriberId: string;
7
+ epk: string;
8
+ encKey: string;
9
+ iv: string;
10
+ tag: string;
11
+ };
12
+ export declare function generateX25519Keypair(): X25519Keypair;
13
+ export declare function subscriberIdFromPubkey(pubkeyDerBase64: string): string;
14
+ export declare function unwrapKeyForSubscriber(subscriberPrivateDerBase64: string, wrapped: WrappedKey): Buffer;
15
+ export declare function decryptSignal(ciphertextBase64: string, symKey: Buffer, ivBase64: string, tagBase64: string): Buffer;
16
+ //# sourceMappingURL=crypto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,aAAa,GAAG;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,wBAAgB,qBAAqB,IAAI,aAAa,CAMrD;AAED,wBAAgB,sBAAsB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAGtE;AAwBD,wBAAgB,sBAAsB,CACpC,0BAA0B,EAAE,MAAM,EAClC,OAAO,EAAE,UAAU,GAClB,MAAM,CAmBR;AAED,wBAAgB,aAAa,CAC3B,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,MAAM,CAOR"}
package/dist/crypto.js ADDED
@@ -0,0 +1,61 @@
1
+ import { createDecipheriv, createHash, createHmac, createPrivateKey, createPublicKey, diffieHellman, generateKeyPairSync, } from "node:crypto";
2
+ export function generateX25519Keypair() {
3
+ const { publicKey, privateKey } = generateKeyPairSync("x25519");
4
+ return {
5
+ publicKeyDerBase64: publicKey.export({ type: "spki", format: "der" }).toString("base64"),
6
+ privateKeyDerBase64: privateKey.export({ type: "pkcs8", format: "der" }).toString("base64"),
7
+ };
8
+ }
9
+ export function subscriberIdFromPubkey(pubkeyDerBase64) {
10
+ const pub = Buffer.from(pubkeyDerBase64, "base64");
11
+ return createHash("sha256").update(pub).digest("hex");
12
+ }
13
+ function hkdfSha256(ikm, info, length = 32) {
14
+ const prk = createHmac("sha256", Buffer.alloc(32, 0)).update(ikm).digest();
15
+ let t = Buffer.alloc(0);
16
+ let okm = Buffer.alloc(0);
17
+ let i = 0;
18
+ while (okm.length < length) {
19
+ i += 1;
20
+ const hmac = createHmac("sha256", prk);
21
+ hmac.update(Buffer.concat([t, info, Buffer.from([i])]));
22
+ t = hmac.digest();
23
+ okm = Buffer.concat([okm, t]);
24
+ }
25
+ return okm.subarray(0, length);
26
+ }
27
+ function deriveSharedKey(ephemeralPrivateDer, subscriberPubDer) {
28
+ const ephPrivate = createPrivateKey({ key: ephemeralPrivateDer, format: "der", type: "pkcs8" });
29
+ const subPublic = createPublicKey({ key: subscriberPubDer, format: "der", type: "spki" });
30
+ const shared = diffieHellman({ privateKey: ephPrivate, publicKey: subPublic });
31
+ return hkdfSha256(shared, Buffer.from("sigints-keywrap"), 32);
32
+ }
33
+ export function unwrapKeyForSubscriber(subscriberPrivateDerBase64, wrapped) {
34
+ const priv = createPrivateKey({
35
+ key: Buffer.from(subscriberPrivateDerBase64, "base64"),
36
+ format: "der",
37
+ type: "pkcs8",
38
+ });
39
+ const epk = createPublicKey({
40
+ key: Buffer.from(wrapped.epk, "base64"),
41
+ format: "der",
42
+ type: "spki",
43
+ });
44
+ const shared = diffieHellman({ privateKey: priv, publicKey: epk });
45
+ const sharedKey = hkdfSha256(shared, Buffer.from("sigints-keywrap"), 32);
46
+ const iv = Buffer.from(wrapped.iv, "base64");
47
+ const tag = Buffer.from(wrapped.tag, "base64");
48
+ const encKey = Buffer.from(wrapped.encKey, "base64");
49
+ const decipher = createDecipheriv("aes-256-gcm", sharedKey, iv);
50
+ decipher.setAuthTag(tag);
51
+ return Buffer.concat([decipher.update(encKey), decipher.final()]);
52
+ }
53
+ export function decryptSignal(ciphertextBase64, symKey, ivBase64, tagBase64) {
54
+ const ciphertext = Buffer.from(ciphertextBase64, "base64");
55
+ const iv = Buffer.from(ivBase64, "base64");
56
+ const tag = Buffer.from(tagBase64, "base64");
57
+ const decipher = createDecipheriv("aes-256-gcm", symKey, iv);
58
+ decipher.setAuthTag(tag);
59
+ return Buffer.concat([decipher.update(ciphertext), decipher.final()]);
60
+ }
61
+ //# sourceMappingURL=crypto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ import { decryptSignal, generateX25519Keypair, subscriberIdFromPubkey, unwrapKeyForSubscriber, WrappedKey, type X25519Keypair } from "./crypto";
2
+ import { buildRecordSignalInstruction as buildRecordSignalIx, buildRecordSignalDelegatedInstruction as buildRecordSignalDelegatedIx, type PrepareSignalInput, type RecordSignalParams, type RecordSignalDelegatedParams } from "./publish";
3
+ import { registerSubscription as registerSubscriptionRequest, syncWalletKey as syncWalletKeyRequest, fetchStream as fetchStreamRequest, type SubscribeResponse, type SyncWalletKeyResponse } from "./backend";
4
+ export type OrbitflareConfig = {
5
+ rpcUrl?: string;
6
+ jetstreamEndpoint?: string;
7
+ apiKey?: string;
8
+ apiKeyHeader?: string;
9
+ };
10
+ export type StreamSdkConfig = {
11
+ rpcUrl?: string;
12
+ backendUrl: string;
13
+ programId: string;
14
+ streamRegistryProgramId?: string;
15
+ keyboxAuth?: KeyboxAuth;
16
+ agentAuth?: AgentAuth;
17
+ orbitflare?: OrbitflareConfig;
18
+ };
19
+ export type KeyboxAuth = {
20
+ walletPubkey: string;
21
+ signMessage: (message: Uint8Array) => Promise<Uint8Array> | Uint8Array;
22
+ };
23
+ export type AgentAuth = {
24
+ agentId: string;
25
+ signMessage: (message: Uint8Array) => Promise<Uint8Array> | Uint8Array;
26
+ };
27
+ export type SubscriberKeys = {
28
+ publicKeyDerBase64: string;
29
+ privateKeyDerBase64: string;
30
+ };
31
+ export type SignalMetadata = {
32
+ streamId: string;
33
+ tierId: string;
34
+ signalHash: string;
35
+ signalPointer: string;
36
+ keyboxHash?: string | null;
37
+ keyboxPointer?: string | null;
38
+ visibility?: "public" | "private";
39
+ createdAt: number;
40
+ onchainTx?: string;
41
+ };
42
+ export type SignalPayload = {
43
+ iv: string;
44
+ tag: string;
45
+ ciphertext: string;
46
+ };
47
+ export type PublicSignalPayload = {
48
+ plaintext: string;
49
+ };
50
+ export type Signal = {
51
+ signalHash: string;
52
+ metadata: SignalMetadata;
53
+ plaintext: string;
54
+ slot: number;
55
+ createdAt: number;
56
+ receivedAt: number;
57
+ ageMs: number;
58
+ blockTime?: number | null;
59
+ };
60
+ export type ListenOptions = {
61
+ streamPubkey: string;
62
+ streamId: string;
63
+ subscriberKeys?: SubscriberKeys;
64
+ onSignal: (signal: Signal) => void | Promise<void>;
65
+ onError?: (error: Error) => void;
66
+ maxAgeMs?: number;
67
+ includeBlockTime?: boolean;
68
+ transport?: "auto" | "jetstream" | "websocket";
69
+ };
70
+ export declare class SigintsClient {
71
+ private connection;
72
+ private programId;
73
+ private streamRegistryProgramId?;
74
+ private backendUrl;
75
+ private keyboxAuth?;
76
+ private agentAuth?;
77
+ private orbitflare?;
78
+ private seenSignals;
79
+ constructor(cfg: StreamSdkConfig);
80
+ static fromBackend(backendUrl: string, options?: {
81
+ keyboxAuth?: KeyboxAuth;
82
+ agentAuth?: AgentAuth;
83
+ orbitflare?: OrbitflareConfig;
84
+ }): Promise<SigintsClient>;
85
+ static generateKeys(): X25519Keypair;
86
+ registerEncryptionKey(streamId: string, publicKeyDerBase64: string, subscriberWallet?: string): Promise<string>;
87
+ registerSubscription(streamId: string, subscriberWallet: string): Promise<SubscribeResponse>;
88
+ syncWalletKey(wallet: string, streamId: string, encPubKeyDerBase64?: string): Promise<SyncWalletKeyResponse>;
89
+ fetchStream<T = any>(streamId: string): Promise<T>;
90
+ fetchLatestSignal(streamId: string): Promise<SignalMetadata | null>;
91
+ fetchSignalByHash(signalHash: string): Promise<SignalMetadata>;
92
+ fetchCiphertext(pointer: string): Promise<SignalPayload>;
93
+ fetchPublic(pointer: string): Promise<PublicSignalPayload>;
94
+ fetchKeyboxEntry(pointer: string, encPubKeyDerBase64: string): Promise<WrappedKey>;
95
+ decryptSignal(meta: SignalMetadata, keys?: SubscriberKeys): Promise<string>;
96
+ listenForSignals(options: ListenOptions): Promise<() => void>;
97
+ private listenForSignalsWebsocket;
98
+ private listenForSignalsJetstream;
99
+ private handleDecodedSignal;
100
+ fetchSignalRecordCreatedAt(streamPubkey: string, _signalHash: string): Promise<number | null>;
101
+ private waitForMetadata;
102
+ prepareSignal(input: PrepareSignalInput): Promise<SignalMetadata>;
103
+ buildRecordSignalInstruction(params: Omit<RecordSignalParams, "programId" | "streamRegistryProgramId">): Promise<import("@solana/web3.js").TransactionInstruction>;
104
+ buildRecordSignalDelegatedInstruction(params: Omit<RecordSignalDelegatedParams, "programId" | "streamRegistryProgramId">): Promise<import("@solana/web3.js").TransactionInstruction>;
105
+ private buildPublicAuth;
106
+ }
107
+ type DecodedSignalRecord = {
108
+ stream: string;
109
+ signalHash: string;
110
+ signalPointerHash: string;
111
+ keyboxHash: string;
112
+ keyboxPointerHash: string;
113
+ createdAt: number;
114
+ bump: number;
115
+ };
116
+ declare function decodeSignalRecord(data: Buffer): DecodedSignalRecord | null;
117
+ export * from "./tradeIntent";
118
+ declare function normalizeCreatedAt(createdAt: number): number;
119
+ declare function normalizeMetadata(meta: SignalMetadata): SignalMetadata;
120
+ declare function hexToBytes(input: string, label: string): Uint8Array;
121
+ export { decryptSignal, generateX25519Keypair, subscriberIdFromPubkey, unwrapKeyForSubscriber };
122
+ export type { WrappedKey, X25519Keypair };
123
+ export { buildRecordSignalIx as buildRecordSignalInstruction, buildRecordSignalDelegatedIx as buildRecordSignalDelegatedInstruction, registerSubscriptionRequest as registerSubscription, syncWalletKeyRequest as syncWalletKey, fetchStreamRequest as fetchStream, };
124
+ export type { PrepareSignalInput, RecordSignalParams, RecordSignalDelegatedParams } from "./publish";
125
+ export { getJson, postJson, deleteJson, createBackendClient, fetchSolanaConfig, fetchStreams, fetchStreamSubscribers, createStream, fetchOnchainSubscriptions, fetchSignals, fetchSignalEvents, fetchLatestSignal, fetchSignalByHash, fetchCiphertext, fetchPublicPayload, buildPublicPayloadMessage, fetchKeyboxEntry, fetchHealth, getTestWallet, testWalletSend, testWalletSignMessage, deleteComment, deletePost, fetchFeed, fetchFollowingFeed, fetchTrendingFeed, fetchPost, prepareSignal, createIntent, createSlashReport, addLike, removeLike, fetchLikeCount, fetchFollowCounts, fetchFollowingIds, fetchComments, addComment, followProfile, searchAgents, fetchAgents, createAgent, createAgentSubscription, fetchAgentSubscriptions, deleteAgentSubscription, fetchUserProfile, loginUser, type LoginUserResponse, type PublicPayloadAuth, } from "./backend";
126
+ export * from "./solana/index";
127
+ export * from "./transactions";
128
+ export declare const __testing: {
129
+ decodeSignalRecord: typeof decodeSignalRecord;
130
+ normalizeCreatedAt: typeof normalizeCreatedAt;
131
+ normalizeMetadata: typeof normalizeMetadata;
132
+ hexToBytes: typeof hexToBytes;
133
+ };
134
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}