@unicitylabs/sphere-sdk 0.3.8 → 0.3.9
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.
- package/dist/connect/index.cjs +770 -0
- package/dist/connect/index.cjs.map +1 -0
- package/dist/connect/index.d.cts +312 -0
- package/dist/connect/index.d.ts +312 -0
- package/dist/connect/index.js +747 -0
- package/dist/connect/index.js.map +1 -0
- package/dist/core/index.cjs +87 -7
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.d.cts +57 -1
- package/dist/core/index.d.ts +57 -1
- package/dist/core/index.js +87 -7
- package/dist/core/index.js.map +1 -1
- package/dist/impl/browser/connect/index.cjs +271 -0
- package/dist/impl/browser/connect/index.cjs.map +1 -0
- package/dist/impl/browser/connect/index.d.cts +137 -0
- package/dist/impl/browser/connect/index.d.ts +137 -0
- package/dist/impl/browser/connect/index.js +248 -0
- package/dist/impl/browser/connect/index.js.map +1 -0
- package/dist/impl/browser/index.cjs +167 -32
- package/dist/impl/browser/index.cjs.map +1 -1
- package/dist/impl/browser/index.js +170 -33
- package/dist/impl/browser/index.js.map +1 -1
- package/dist/impl/browser/ipfs.cjs.map +1 -1
- package/dist/impl/browser/ipfs.js.map +1 -1
- package/dist/impl/nodejs/connect/index.cjs +372 -0
- package/dist/impl/nodejs/connect/index.cjs.map +1 -0
- package/dist/impl/nodejs/connect/index.d.cts +178 -0
- package/dist/impl/nodejs/connect/index.d.ts +178 -0
- package/dist/impl/nodejs/connect/index.js +333 -0
- package/dist/impl/nodejs/connect/index.js.map +1 -0
- package/dist/impl/nodejs/index.cjs +114 -4
- package/dist/impl/nodejs/index.cjs.map +1 -1
- package/dist/impl/nodejs/index.d.cts +49 -0
- package/dist/impl/nodejs/index.d.ts +49 -0
- package/dist/impl/nodejs/index.js +117 -5
- package/dist/impl/nodejs/index.js.map +1 -1
- package/dist/index.cjs +87 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +57 -1
- package/dist/index.d.ts +57 -1
- package/dist/index.js +87 -7
- package/dist/index.js.map +1 -1
- package/package.json +31 -1
package/dist/index.cjs
CHANGED
|
@@ -7749,6 +7749,28 @@ var CommunicationsModule = class {
|
|
|
7749
7749
|
this.unsubscribeMessages = deps.transport.onMessage((msg) => {
|
|
7750
7750
|
this.handleIncomingMessage(msg);
|
|
7751
7751
|
});
|
|
7752
|
+
if (deps.transport.onReadReceipt) {
|
|
7753
|
+
deps.transport.onReadReceipt((receipt) => {
|
|
7754
|
+
const msg = this.messages.get(receipt.messageEventId);
|
|
7755
|
+
if (msg && msg.senderPubkey === this.deps.identity.chainPubkey) {
|
|
7756
|
+
msg.isRead = true;
|
|
7757
|
+
this.save();
|
|
7758
|
+
this.deps.emitEvent("message:read", {
|
|
7759
|
+
messageIds: [receipt.messageEventId],
|
|
7760
|
+
peerPubkey: receipt.senderTransportPubkey
|
|
7761
|
+
});
|
|
7762
|
+
}
|
|
7763
|
+
});
|
|
7764
|
+
}
|
|
7765
|
+
if (deps.transport.onTypingIndicator) {
|
|
7766
|
+
deps.transport.onTypingIndicator((indicator) => {
|
|
7767
|
+
this.deps.emitEvent("message:typing", {
|
|
7768
|
+
senderPubkey: indicator.senderTransportPubkey,
|
|
7769
|
+
senderNametag: indicator.senderNametag,
|
|
7770
|
+
timestamp: indicator.timestamp
|
|
7771
|
+
});
|
|
7772
|
+
});
|
|
7773
|
+
}
|
|
7752
7774
|
}
|
|
7753
7775
|
/**
|
|
7754
7776
|
* Load messages from storage
|
|
@@ -7792,7 +7814,7 @@ var CommunicationsModule = class {
|
|
|
7792
7814
|
recipientPubkey,
|
|
7793
7815
|
content,
|
|
7794
7816
|
timestamp: Date.now(),
|
|
7795
|
-
isRead:
|
|
7817
|
+
isRead: false
|
|
7796
7818
|
};
|
|
7797
7819
|
this.messages.set(message.id, message);
|
|
7798
7820
|
if (this.config.autoSave) {
|
|
@@ -7838,6 +7860,16 @@ var CommunicationsModule = class {
|
|
|
7838
7860
|
if (this.config.autoSave) {
|
|
7839
7861
|
await this.save();
|
|
7840
7862
|
}
|
|
7863
|
+
if (this.config.readReceipts && this.deps?.transport.sendReadReceipt) {
|
|
7864
|
+
for (const id of messageIds) {
|
|
7865
|
+
const msg = this.messages.get(id);
|
|
7866
|
+
if (msg && msg.senderPubkey !== this.deps.identity.chainPubkey) {
|
|
7867
|
+
this.deps.transport.sendReadReceipt(msg.senderPubkey, id).catch((err) => {
|
|
7868
|
+
console.warn("[Communications] Failed to send read receipt:", err);
|
|
7869
|
+
});
|
|
7870
|
+
}
|
|
7871
|
+
}
|
|
7872
|
+
}
|
|
7841
7873
|
}
|
|
7842
7874
|
/**
|
|
7843
7875
|
* Get unread count
|
|
@@ -7851,6 +7883,15 @@ var CommunicationsModule = class {
|
|
|
7851
7883
|
}
|
|
7852
7884
|
return messages.length;
|
|
7853
7885
|
}
|
|
7886
|
+
/**
|
|
7887
|
+
* Send typing indicator to a peer
|
|
7888
|
+
*/
|
|
7889
|
+
async sendTypingIndicator(peerPubkey) {
|
|
7890
|
+
this.ensureInitialized();
|
|
7891
|
+
if (this.deps.transport.sendTypingIndicator) {
|
|
7892
|
+
await this.deps.transport.sendTypingIndicator(peerPubkey);
|
|
7893
|
+
}
|
|
7894
|
+
}
|
|
7854
7895
|
/**
|
|
7855
7896
|
* Subscribe to incoming DMs
|
|
7856
7897
|
*/
|
|
@@ -7920,7 +7961,26 @@ var CommunicationsModule = class {
|
|
|
7920
7961
|
// Private: Message Handling
|
|
7921
7962
|
// ===========================================================================
|
|
7922
7963
|
handleIncomingMessage(msg) {
|
|
7964
|
+
if (msg.isSelfWrap && msg.recipientTransportPubkey) {
|
|
7965
|
+
if (this.messages.has(msg.id)) return;
|
|
7966
|
+
const message2 = {
|
|
7967
|
+
id: msg.id,
|
|
7968
|
+
senderPubkey: this.deps.identity.chainPubkey,
|
|
7969
|
+
senderNametag: msg.senderNametag,
|
|
7970
|
+
recipientPubkey: msg.recipientTransportPubkey,
|
|
7971
|
+
content: msg.content,
|
|
7972
|
+
timestamp: msg.timestamp,
|
|
7973
|
+
isRead: false
|
|
7974
|
+
};
|
|
7975
|
+
this.messages.set(message2.id, message2);
|
|
7976
|
+
this.deps.emitEvent("message:dm", message2);
|
|
7977
|
+
if (this.config.autoSave) {
|
|
7978
|
+
this.save();
|
|
7979
|
+
}
|
|
7980
|
+
return;
|
|
7981
|
+
}
|
|
7923
7982
|
if (msg.senderTransportPubkey === this.deps?.identity.chainPubkey) return;
|
|
7983
|
+
if (this.messages.has(msg.id)) return;
|
|
7924
7984
|
const message = {
|
|
7925
7985
|
id: msg.id,
|
|
7926
7986
|
senderPubkey: msg.senderTransportPubkey,
|
|
@@ -12209,12 +12269,22 @@ var Sphere = class _Sphere {
|
|
|
12209
12269
|
return;
|
|
12210
12270
|
}
|
|
12211
12271
|
try {
|
|
12212
|
-
|
|
12272
|
+
const transportPubkey = this._identity?.chainPubkey?.slice(2);
|
|
12273
|
+
if (transportPubkey && this._transport.resolve) {
|
|
12213
12274
|
try {
|
|
12214
|
-
const existing = await this._transport.resolve(
|
|
12275
|
+
const existing = await this._transport.resolve(transportPubkey);
|
|
12215
12276
|
if (existing) {
|
|
12216
|
-
|
|
12217
|
-
|
|
12277
|
+
let recoveredNametag = existing.nametag;
|
|
12278
|
+
let fromLegacy = false;
|
|
12279
|
+
if (!recoveredNametag && !this._identity?.nametag && this._transport.recoverNametag) {
|
|
12280
|
+
try {
|
|
12281
|
+
recoveredNametag = await this._transport.recoverNametag() ?? void 0;
|
|
12282
|
+
if (recoveredNametag) fromLegacy = true;
|
|
12283
|
+
} catch {
|
|
12284
|
+
}
|
|
12285
|
+
}
|
|
12286
|
+
if (recoveredNametag && !this._identity?.nametag) {
|
|
12287
|
+
this._identity.nametag = recoveredNametag;
|
|
12218
12288
|
await this._updateCachedProxyAddress();
|
|
12219
12289
|
const entry = await this.ensureAddressTracked(this._currentAddressIndex);
|
|
12220
12290
|
let nametags = this._addressNametags.get(entry.addressId);
|
|
@@ -12223,10 +12293,20 @@ var Sphere = class _Sphere {
|
|
|
12223
12293
|
this._addressNametags.set(entry.addressId, nametags);
|
|
12224
12294
|
}
|
|
12225
12295
|
if (!nametags.has(0)) {
|
|
12226
|
-
nametags.set(0,
|
|
12296
|
+
nametags.set(0, recoveredNametag);
|
|
12227
12297
|
await this.persistAddressNametags();
|
|
12228
12298
|
}
|
|
12229
|
-
this.emitEvent("nametag:recovered", { nametag:
|
|
12299
|
+
this.emitEvent("nametag:recovered", { nametag: recoveredNametag });
|
|
12300
|
+
if (fromLegacy) {
|
|
12301
|
+
await this._transport.publishIdentityBinding(
|
|
12302
|
+
this._identity.chainPubkey,
|
|
12303
|
+
this._identity.l1Address,
|
|
12304
|
+
this._identity.directAddress || "",
|
|
12305
|
+
recoveredNametag
|
|
12306
|
+
);
|
|
12307
|
+
console.log(`[Sphere] Migrated legacy binding with nametag @${recoveredNametag}`);
|
|
12308
|
+
return;
|
|
12309
|
+
}
|
|
12230
12310
|
}
|
|
12231
12311
|
console.log("[Sphere] Existing binding found, skipping re-publish");
|
|
12232
12312
|
return;
|