@unicitylabs/nostr-js-sdk 0.3.3 → 0.4.0-dev.1
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/README.md +79 -13
- package/dist/browser/index.js +2219 -1905
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/index.min.js +6 -6
- package/dist/browser/index.min.js.map +1 -1
- package/dist/browser/index.umd.js +2225 -1904
- package/dist/browser/index.umd.js.map +1 -1
- package/dist/browser/index.umd.min.js +6 -6
- package/dist/browser/index.umd.min.js.map +1 -1
- package/dist/cjs/client/NostrClient.js +106 -19
- package/dist/cjs/client/NostrClient.js.map +1 -1
- package/dist/cjs/nametag/NametagBinding.js +131 -9
- package/dist/cjs/nametag/NametagBinding.js.map +1 -1
- package/dist/cjs/nametag/NametagUtils.js +140 -0
- package/dist/cjs/nametag/NametagUtils.js.map +1 -1
- package/dist/esm/client/NostrClient.js +106 -19
- package/dist/esm/client/NostrClient.js.map +1 -1
- package/dist/esm/nametag/NametagBinding.js +128 -9
- package/dist/esm/nametag/NametagBinding.js.map +1 -1
- package/dist/esm/nametag/NametagUtils.js +104 -1
- package/dist/esm/nametag/NametagUtils.js.map +1 -1
- package/dist/types/client/NostrClient.d.ts +50 -1
- package/dist/types/client/NostrClient.d.ts.map +1 -1
- package/dist/types/nametag/NametagBinding.d.ts +63 -1
- package/dist/types/nametag/NametagBinding.d.ts.map +1 -1
- package/dist/types/nametag/NametagUtils.d.ts +28 -0
- package/dist/types/nametag/NametagUtils.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NametagUtils.js","sourceRoot":"","sources":["../../../src/nametag/NametagUtils.ts"],"names":[],"mappings":";AAAA;;;GAGG
|
|
1
|
+
{"version":3,"file":"NametagUtils.js","sourceRoot":"","sources":["../../../src/nametag/NametagUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ import { Event } from '../protocol/Event.js';
|
|
|
6
6
|
import * as EventKinds from '../protocol/EventKinds.js';
|
|
7
7
|
import { createWebSocket, extractMessageData, OPEN, CLOSED, } from './WebSocketAdapter.js';
|
|
8
8
|
import * as NIP17 from '../messaging/nip17.js';
|
|
9
|
+
import { createBindingEvent, createNametagToPubkeyFilter, createAddressToBindingFilter, createIdentityBindingEvent, parseBindingInfo, } from '../nametag/NametagBinding.js';
|
|
9
10
|
/** Connection timeout in milliseconds */
|
|
10
11
|
const CONNECTION_TIMEOUT_MS = 30000;
|
|
11
12
|
/** Default options */
|
|
@@ -657,13 +658,36 @@ export class NostrClient {
|
|
|
657
658
|
}
|
|
658
659
|
/**
|
|
659
660
|
* Publish a nametag binding.
|
|
661
|
+
* Checks for existing claims by other pubkeys before publishing.
|
|
660
662
|
* @param nametagId Nametag identifier
|
|
661
663
|
* @param unicityAddress Unicity address
|
|
662
664
|
* @returns Promise that resolves with success status
|
|
665
|
+
* @throws Error if nametag is invalid or already claimed by another pubkey
|
|
663
666
|
*/
|
|
664
|
-
async publishNametagBinding(nametagId, unicityAddress) {
|
|
665
|
-
|
|
666
|
-
const
|
|
667
|
+
async publishNametagBinding(nametagId, unicityAddress, identity) {
|
|
668
|
+
// Check if already claimed by another pubkey
|
|
669
|
+
const existingOwner = await this.queryPubkeyByNametag(nametagId);
|
|
670
|
+
if (existingOwner && existingOwner !== this.keyManager.getPublicKeyHex()) {
|
|
671
|
+
throw new Error(`Nametag "${nametagId}" is already claimed by another pubkey`);
|
|
672
|
+
}
|
|
673
|
+
const event = await createBindingEvent(this.keyManager, nametagId, unicityAddress, undefined, identity);
|
|
674
|
+
try {
|
|
675
|
+
await this.publishEvent(event);
|
|
676
|
+
return true;
|
|
677
|
+
}
|
|
678
|
+
catch {
|
|
679
|
+
return false;
|
|
680
|
+
}
|
|
681
|
+
}
|
|
682
|
+
/**
|
|
683
|
+
* Publish a base identity binding (no nametag).
|
|
684
|
+
* Uses d-tag = SHA256('unicity:identity:' + nostrPubkey) so each wallet
|
|
685
|
+
* has exactly one identity binding. Subsequent calls replace the previous event.
|
|
686
|
+
* @param identity Identity parameters (publicKey, l1Address, directAddress)
|
|
687
|
+
* @returns true if published successfully
|
|
688
|
+
*/
|
|
689
|
+
async publishIdentityBinding(identity) {
|
|
690
|
+
const event = createIdentityBindingEvent(this.keyManager, identity);
|
|
667
691
|
try {
|
|
668
692
|
await this.publishEvent(event);
|
|
669
693
|
return true;
|
|
@@ -713,36 +737,99 @@ export class NostrClient {
|
|
|
713
737
|
}
|
|
714
738
|
}
|
|
715
739
|
/**
|
|
716
|
-
* Query
|
|
717
|
-
*
|
|
718
|
-
*
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
740
|
+
* Query binding events with first-seen-wins anti-hijacking resolution.
|
|
741
|
+
*
|
|
742
|
+
* Strategy: first-seen-wins across authors, latest-wins for same author.
|
|
743
|
+
* - Across authors: the pubkey that first published wins (earliest created_at)
|
|
744
|
+
* - Same author: the most recent event is used (latest created_at = most complete data)
|
|
745
|
+
* - Tie-breaking: deterministic by lexicographic pubkey comparison (lowest wins)
|
|
746
|
+
*
|
|
747
|
+
* Events with invalid signatures are silently skipped to prevent relay injection attacks.
|
|
748
|
+
*
|
|
749
|
+
* Known limitations:
|
|
750
|
+
* - Timestamps are self-reported (NIP-01). An attacker can set created_at to 0.
|
|
751
|
+
* Chain-anchored proof of registration time is the only reliable defense.
|
|
752
|
+
* - TOCTOU: between conflict check and publish, another user can claim the same nametag.
|
|
753
|
+
* This is inherent to Nostr's eventually-consistent relay model.
|
|
754
|
+
*
|
|
755
|
+
* @param filter Subscription filter
|
|
756
|
+
* @param extractResult Callback to extract the desired result from the winning event
|
|
757
|
+
* @returns Promise resolving to the extracted result, or null
|
|
758
|
+
*/
|
|
759
|
+
queryWithFirstSeenWins(filter, extractResult) {
|
|
723
760
|
return new Promise((resolve) => {
|
|
761
|
+
let subscriptionId = '';
|
|
724
762
|
const timeoutId = setTimeout(() => {
|
|
725
|
-
|
|
763
|
+
if (subscriptionId)
|
|
764
|
+
this.unsubscribe(subscriptionId);
|
|
726
765
|
resolve(null);
|
|
727
766
|
}, this.queryTimeoutMs);
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
const subscriptionId = this.subscribe(filter, {
|
|
767
|
+
const authors = new Map();
|
|
768
|
+
subscriptionId = this.subscribe(filter, {
|
|
731
769
|
onEvent: (event) => {
|
|
732
|
-
//
|
|
733
|
-
if (event.
|
|
734
|
-
|
|
735
|
-
|
|
770
|
+
// Verify signature to prevent relay injection of forged events (#4)
|
|
771
|
+
if (!event.verify())
|
|
772
|
+
return;
|
|
773
|
+
const existing = authors.get(event.pubkey);
|
|
774
|
+
if (!existing) {
|
|
775
|
+
authors.set(event.pubkey, { firstSeen: event.created_at, latestEvent: event });
|
|
776
|
+
}
|
|
777
|
+
else {
|
|
778
|
+
if (event.created_at < existing.firstSeen) {
|
|
779
|
+
existing.firstSeen = event.created_at;
|
|
780
|
+
}
|
|
781
|
+
if (event.created_at > existing.latestEvent.created_at) {
|
|
782
|
+
existing.latestEvent = event;
|
|
783
|
+
}
|
|
736
784
|
}
|
|
737
785
|
},
|
|
738
786
|
onEndOfStoredEvents: () => {
|
|
739
787
|
clearTimeout(timeoutId);
|
|
740
788
|
this.unsubscribe(subscriptionId);
|
|
741
|
-
|
|
789
|
+
let winnerEntry = null;
|
|
790
|
+
let winnerPubkey = '';
|
|
791
|
+
for (const [pubkey, entry] of authors) {
|
|
792
|
+
if (!winnerEntry
|
|
793
|
+
|| entry.firstSeen < winnerEntry.firstSeen
|
|
794
|
+
|| (entry.firstSeen === winnerEntry.firstSeen && pubkey < winnerPubkey)) {
|
|
795
|
+
winnerEntry = entry;
|
|
796
|
+
winnerPubkey = pubkey;
|
|
797
|
+
}
|
|
798
|
+
}
|
|
799
|
+
resolve(winnerEntry ? extractResult(winnerEntry.latestEvent) : null);
|
|
742
800
|
},
|
|
743
801
|
});
|
|
744
802
|
});
|
|
745
803
|
}
|
|
804
|
+
/**
|
|
805
|
+
* Query for a public key by nametag.
|
|
806
|
+
* Uses first-seen-wins anti-hijacking resolution.
|
|
807
|
+
* @param nametagId Nametag identifier
|
|
808
|
+
* @returns Promise that resolves with the public key hex, or null if not found
|
|
809
|
+
*/
|
|
810
|
+
async queryPubkeyByNametag(nametagId) {
|
|
811
|
+
return this.queryWithFirstSeenWins(createNametagToPubkeyFilter(nametagId), (event) => event.pubkey);
|
|
812
|
+
}
|
|
813
|
+
/**
|
|
814
|
+
* Query for full binding info by nametag.
|
|
815
|
+
* Returns extended identity fields (chain pubkey, addresses, etc.) when available.
|
|
816
|
+
* Uses first-seen-wins across authors, latest-wins for same author.
|
|
817
|
+
* @param nametagId Nametag identifier
|
|
818
|
+
* @returns Promise that resolves with BindingInfo, or null if not found
|
|
819
|
+
*/
|
|
820
|
+
async queryBindingByNametag(nametagId) {
|
|
821
|
+
return this.queryWithFirstSeenWins(createNametagToPubkeyFilter(nametagId), parseBindingInfo);
|
|
822
|
+
}
|
|
823
|
+
/**
|
|
824
|
+
* Query for binding info by address (reverse lookup).
|
|
825
|
+
* Supports DIRECT://, PROXY://, alpha1..., or chain pubkey lookups.
|
|
826
|
+
* Uses first-seen-wins across authors, latest-wins for same author.
|
|
827
|
+
* @param address Address string
|
|
828
|
+
* @returns Promise that resolves with BindingInfo, or null if not found
|
|
829
|
+
*/
|
|
830
|
+
async queryBindingByAddress(address) {
|
|
831
|
+
return this.queryWithFirstSeenWins(createAddressToBindingFilter(address), parseBindingInfo);
|
|
832
|
+
}
|
|
746
833
|
/**
|
|
747
834
|
* Create and publish a signed event.
|
|
748
835
|
* @param data Unsigned event data
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NostrClient.js","sourceRoot":"","sources":["../../../src/client/NostrClient.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,KAAK,EAAqB,MAAM,sBAAsB,CAAC;AAEhE,OAAO,KAAK,UAAU,MAAM,2BAA2B,CAAC;AAExD,OAAO,EACL,eAAe,EACf,kBAAkB,EAElB,IAAI,EACJ,MAAM,GACP,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,KAAK,MAAM,uBAAuB,CAAC;AAG/C,yCAAyC;AACzC,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAEpC,sBAAsB;AACtB,MAAM,wBAAwB,GAAG,IAAI,CAAC;AACtC,MAAM,6BAA6B,GAAG,IAAI,CAAC;AAC3C,MAAM,iCAAiC,GAAG,KAAK,CAAC;AAChD,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,yBAAyB,GAAG,GAAG,CAAC;AA0EtC;;GAEG;AACH,MAAM,OAAO,WAAW;IACd,UAAU,CAAkB;IAC5B,MAAM,GAAiC,IAAI,GAAG,EAAE,CAAC;IACjD,aAAa,GAAkC,IAAI,GAAG,EAAE,CAAC;IACzD,UAAU,GAAkB,EAAE,CAAC;IAC/B,UAAU,GAA2B,IAAI,GAAG,EAAE,CAAC;IAC/C,mBAAmB,GAAG,CAAC,CAAC;IACxB,MAAM,GAAG,KAAK,CAAC;IAEvB,wBAAwB;IAChB,cAAc,CAAS;IACvB,aAAa,CAAU;IACvB,mBAAmB,CAAS;IAC5B,sBAAsB,CAAS;IAC/B,cAAc,CAAS;IAE/B,6BAA6B;IACrB,mBAAmB,GAA8B,EAAE,CAAC;IAE5D;;;;OAIG;IACH,YAAY,UAA2B,EAAE,OAA4B;QACnE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,OAAO,EAAE,cAAc,IAAI,wBAAwB,CAAC;QAC1E,IAAI,CAAC,aAAa,GAAG,OAAO,EAAE,aAAa,IAAI,IAAI,CAAC;QACpD,IAAI,CAAC,mBAAmB,GAAG,OAAO,EAAE,mBAAmB,IAAI,6BAA6B,CAAC;QACzF,IAAI,CAAC,sBAAsB,GAAG,OAAO,EAAE,sBAAsB,IAAI,iCAAiC,CAAC;QACnG,IAAI,CAAC,cAAc,GAAG,OAAO,EAAE,cAAc,IAAI,wBAAwB,CAAC;IAC5E,CAAC;IAED;;;OAGG;IACH,qBAAqB,CAAC,QAAiC;QACrD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACH,wBAAwB,CAAC,QAAiC;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED;;OAEG;IACK,mBAAmB,CACzB,SAAoE,EACpE,QAAgB,EAChB,KAAuB;QAEvB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAChD,IAAI,CAAC;gBACH,QAAQ,SAAS,EAAE,CAAC;oBAClB,KAAK,SAAS;wBACZ,QAAQ,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC;wBAC/B,MAAM;oBACR,KAAK,YAAY;wBACf,QAAQ,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,KAAe,CAAC,CAAC;wBACnD,MAAM;oBACR,KAAK,cAAc;wBACjB,QAAQ,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,KAAe,CAAC,CAAC;wBACrD,MAAM;oBACR,KAAK,aAAa;wBAChB,QAAQ,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,CAAC;wBACnC,MAAM;gBACV,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,yBAAyB;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,eAAe,CAAC,SAAiB;QAC/B,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,GAAG,SAAmB;QAClC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,kBAAkB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5E,MAAM,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACxC,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,cAAc,CAAC,GAAW,EAAE,WAAW,GAAG,KAAK;QAC3D,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,aAAa,EAAE,SAAS,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAChC,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,GAAG,YAAY,CAAC,CAAC,CAAC;YACtD,CAAC,EAAE,qBAAqB,CAAC,CAAC;YAE1B,eAAe,CAAC,GAAG,CAAC;iBACjB,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBACf,MAAM,KAAK,GAAoB;oBAC7B,GAAG;oBACH,MAAM;oBACN,SAAS,EAAE,KAAK;oBAChB,YAAY,EAAE,KAAK;oBACnB,iBAAiB,EAAE,CAAC;oBACpB,cAAc,EAAE,IAAI;oBACpB,SAAS,EAAE,IAAI;oBACf,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE;oBACxB,YAAY,EAAE,aAAa,EAAE,YAAY,IAAI,KAAK;iBACnD,CAAC;gBAEF,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE;oBACnB,YAAY,CAAC,SAAS,CAAC,CAAC;oBACxB,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;oBACvB,KAAK,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAE,iCAAiC;oBAC/D,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAChC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;oBAE5B,oCAAoC;oBACpC,IAAI,WAAW,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;wBACtC,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;oBAC/C,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;oBAC3C,CAAC;oBACD,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;oBAE1B,0BAA0B;oBAC1B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;oBAEzB,6BAA6B;oBAC7B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;oBAEzB,sBAAsB;oBACtB,IAAI,CAAC,eAAe,EAAE,CAAC;oBAEvB,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC;gBAEF,MAAM,CAAC,SAAS,GAAG,CAAC,KAAK,EAAE,EAAE;oBAC3B,IAAI,CAAC;wBACH,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;wBACvC,wDAAwD;wBACxD,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBAC/B,IAAI,CAAC,EAAE,CAAC;4BACN,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;wBAC9B,CAAC;wBACD,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBACrC,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;oBAC9D,CAAC;gBACH,CAAC,CAAC;gBAEF,MAAM,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE;oBACzB,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC;oBACrC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;oBACxB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;oBAExB,IAAI,YAAY,EAAE,CAAC;wBACjB,MAAM,MAAM,GAAG,KAAK,EAAE,MAAM,IAAI,mBAAmB,CAAC;wBACpD,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;oBACtD,CAAC;oBAED,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;wBAC9D,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;oBAC9B,CAAC;gBACH,CAAC,CAAC;gBAEF,MAAM,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE;oBACzB,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;wBACrB,YAAY,CAAC,SAAS,CAAC,CAAC;wBACxB,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,GAAG,KAAK,KAAK,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC,CAAC,CAAC;oBACxF,CAAC;gBACH,CAAC,CAAC;gBAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC9B,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACf,YAAY,CAAC,SAAS,CAAC,CAAC;gBACxB,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,GAAW;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO;QAEzD,qCAAqC;QACrC,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YACzB,YAAY,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACrC,CAAC;QAED,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;QAC1B,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAE1B,2CAA2C;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC3C,MAAM,gBAAgB,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;QAC9E,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAEtE,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,GAAG,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAEvE,KAAK,CAAC,cAAc,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;YAC3C,IAAI,IAAI,CAAC,MAAM;gBAAE,OAAO;YAExB,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;YAE5B,IAAI,CAAC;gBACH,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC3B,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACvC,CAAC;YAAC,MAAM,CAAC;gBACP,8CAA8C;gBAC9C,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACvC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;QACH,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,GAAW;QAChC,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC;YAAE,OAAO;QAErC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,6BAA6B;QAC7B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAExB,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;YACjC,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBACtC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACxB,OAAO;YACT,CAAC;YAED,+CAA+C;YAC/C,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC;YAC1D,IAAI,iBAAiB,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;gBAChD,kDAAkD;gBAClD,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,mCAAmC,iBAAiB,sBAAsB,CAAC,CAAC;gBACrG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACxB,IAAI,CAAC;oBACH,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBACvB,CAAC;gBAAC,MAAM,CAAC;oBACP,sBAAsB;gBACxB,CAAC;gBACD,OAAO;YACT,CAAC;YAED,mEAAmE;YACnE,mFAAmF;YACnF,qEAAqE;YACrE,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,CAAC;gBACzB,2EAA2E;gBAC3E,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC1D,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAChC,oEAAoE;gBACpE,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACjC,CAAC;YAAC,MAAM,CAAC;gBACP,sCAAsC;gBACtC,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,0BAA0B,CAAC,CAAC;gBACvD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACxB,IAAI,CAAC;oBACH,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBACvB,CAAC;gBAAC,MAAM,CAAC;oBACP,sBAAsB;gBACxB,CAAC;YACH,CAAC;QACH,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,GAAW;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,KAAK,EAAE,SAAS,EAAE,CAAC;YACrB,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC/B,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,GAAW;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS;YAAE,OAAO;QAE/C,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACrE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QAErB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;iBAC5B,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;iBACvC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,IAAY,EAAE,OAAe;QACtD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAc,CAAC;YAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO;YAEpD,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAE5B,QAAQ,WAAW,EAAE,CAAC;gBACpB,KAAK,OAAO;oBACV,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;oBAC9B,MAAM;gBACR,KAAK,IAAI;oBACP,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;oBAC3B,MAAM;gBACR,KAAK,MAAM;oBACT,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;oBAC7B,MAAM;gBACR,KAAK,QAAQ;oBACX,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;oBAC/B,MAAM;gBACR,KAAK,QAAQ;oBACX,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;oBAC/B,MAAM;gBACR,KAAK,MAAM;oBACT,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACnC,MAAM;YACV,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,4BAA4B;QAC9B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,IAAe;QACxC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO;QAE5B,MAAM,cAAc,GAAG,IAAI,CAAC,CAAC,CAAW,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAE1B,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5D,IAAI,CAAC,YAAY;YAAE,OAAO;QAE1B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACxC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,wBAAwB;QAC1B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,IAAe;QACrC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO;QAE5B,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAW,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAY,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAW,CAAC;QAElC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEhC,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,IAAe;QACvC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO;QAE5B,MAAM,cAAc,GAAG,IAAI,CAAC,CAAC,CAAW,CAAC;QACzC,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAE5D,IAAI,YAAY,EAAE,QAAQ,CAAC,mBAAmB,EAAE,CAAC;YAC/C,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,IAAe;QACzC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAW,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,IAAe;QACzC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO;QAE5B,MAAM,cAAc,GAAG,IAAI,CAAC,CAAC,CAAW,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAW,CAAC;QAElC,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5D,IAAI,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;YACnC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,wBAAwB,OAAO,EAAE,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,QAAgB,EAAE,IAAe;QACzD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO;QAE5B,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAW,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS;YAAE,OAAO;QAE/C,8CAA8C;QAC9C,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE;YAC9C,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,IAAI,EAAE;gBACJ,CAAC,OAAO,EAAE,QAAQ,CAAC;gBACnB,CAAC,WAAW,EAAE,SAAS,CAAC;aACzB;YACD,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;QAEH,qBAAqB;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC7D,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE3B,8EAA8E;QAC9E,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC,EAAE,yBAAyB,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,oBAAoB;QACpB,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC1C,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5B,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAExB,sBAAsB;QACtB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QAErB,kDAAkD;QAClD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACvC,kBAAkB;YAClB,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACpB,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC/B,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;YACzB,CAAC;YACD,uBAAuB;YACvB,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;gBACzB,YAAY,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;gBACnC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;YAC9B,CAAC;YACD,eAAe;YACf,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;gBACvD,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;YAClD,CAAC;YACD,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,GAAG,EAAE,qBAAqB,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,WAAW;QACT,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,SAAS;gBAAE,OAAO,IAAI,CAAC;QACnC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACH,kBAAkB;QAChB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QACpC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACvC,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACpB,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,KAAY;QAC7B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,4BAA4B;YAC5B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;oBACnB,KAAK;oBACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;oBACrB,OAAO;oBACP,MAAM;iBACP,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc,CAAC,KAAY;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC1D,IAAI,IAAI,GAAG,KAAK,CAAC;QAEjB,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,EAAE,CAAC;gBACzD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC3B,IAAI,GAAG,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC;QAED,oCAAoC;QACpC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACjC,mEAAmE;gBACnE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACpB,CAAC,EAAE,IAAI,CAAC,CAAC;YAET,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,uBAAuB,CAC3B,kBAA0B,EAC1B,OAAe;QAEf,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CACvD,OAAO,EACP,kBAAkB,CACnB,CAAC;QAEF,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE;YAC1C,IAAI,EAAE,UAAU,CAAC,YAAY;YAC7B,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;YACjC,OAAO,EAAE,gBAAgB;SAC1B,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,iBAAiB,CACrB,kBAA0B,EAC1B,SAAiB,EACjB,OAIC;QAED,MAAM,qBAAqB,GAAG,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAC;QAChF,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC,wBAAwB,CAChE,IAAI,CAAC,UAAU,EACf,kBAAkB,EAClB,SAAS,EACT,OAAO,CACR,CAAC;QACF,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,kBAAkB,CACtB,eAAuB,EACvB,OAOC;QAED,MAAM,sBAAsB,GAAG,MAAM,MAAM,CAAC,sCAAsC,CAAC,CAAC;QACpF,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,yBAAyB,CAClE,IAAI,CAAC,UAAU,EACf,eAAe,EACf,OAAO,CACR,CAAC;QACF,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,0BAA0B,CAC9B,eAAuB,EACvB,QAKC;QAED,MAAM,sBAAsB,GAAG,MAAM,MAAM,CAAC,sCAAsC,CAAC,CAAC;QACpF,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,iCAAiC,CAC1E,IAAI,CAAC,UAAU,EACf,eAAe,EACf;YACE,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,eAAe,EAAE,QAAQ,CAAC,eAAe;YACzC,MAAM,EAAE,QAAQ,CAAC,MAAM,KAAK,UAAU;gBACpC,CAAC,CAAC,sBAAsB,CAAC,cAAc,CAAC,QAAQ;gBAChD,CAAC,CAAC,sBAAsB,CAAC,cAAc,CAAC,OAAO;YACjD,MAAM,EAAE,QAAQ,CAAC,MAAM;SACxB,CACF,CAAC;QACF,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,yBAAyB,CAC7B,2BAAmC,EACnC,eAAuB,EACvB,SAAiB,EACjB,MAAe;QAEf,OAAO,IAAI,CAAC,0BAA0B,CAAC,2BAA2B,EAAE;YAClE,SAAS;YACT,eAAe;YACf,MAAM,EAAE,UAAU;YAClB,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,qBAAqB,CACzB,SAAiB,EACjB,cAAsB;QAEtB,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,kBAAkB,CACnD,IAAI,CAAC,UAAU,EACf,SAAS,EACT,cAAc,CACf,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAqBD,SAAS,CACP,aAA8B,EAC9B,gBAA6C,EAC7C,aAAkC;QAElC,IAAI,cAAsB,CAAC;QAC3B,IAAI,MAAc,CAAC;QACnB,IAAI,QAA4B,CAAC;QAEjC,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;YACtC,cAAc,GAAG,aAAa,CAAC;YAC/B,MAAM,GAAG,gBAA0B,CAAC;YACpC,QAAQ,GAAG,aAAc,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,cAAc,GAAG,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACrD,MAAM,GAAG,aAAa,CAAC;YACvB,QAAQ,GAAG,gBAAsC,CAAC;QACpD,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QAE7D,oDAAoD;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACzE,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,EAAE,CAAC;gBACzD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,cAAsB;QAChC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC;YAAE,OAAO;QAEpD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAE1C,qCAAqC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;QAC1D,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,EAAE,CAAC;gBACzD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,oBAAoB,CAAC,SAAiB;QAC1C,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,cAAc,CAAC,2BAA2B,CAAC,SAAS,CAAC,CAAC;QAErE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAChC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;gBACjC,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YAExB,IAAI,MAAM,GAAkB,IAAI,CAAC;YACjC,IAAI,eAAe,GAAG,CAAC,CAAC;YAExB,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;gBAC5C,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;oBACjB,+BAA+B;oBAC/B,IAAI,KAAK,CAAC,UAAU,GAAG,eAAe,EAAE,CAAC;wBACvC,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC;wBACnC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;oBACxB,CAAC;gBACH,CAAC;gBACD,mBAAmB,EAAE,GAAG,EAAE;oBACxB,YAAY,CAAC,SAAS,CAAC,CAAC;oBACxB,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;oBACjC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClB,CAAC;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,qBAAqB,CAAC,IAAuB;QACjD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,gDAAgD;IAEhD;;;;;;OAMG;IACH,KAAK,CAAC,kBAAkB,CACtB,kBAA0B,EAC1B,OAAe,EACf,OAA+B;QAE/B,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,CACnC,IAAI,CAAC,UAAU,EACf,kBAAkB,EAClB,OAAO,EACP,OAAO,CACR,CAAC;QACF,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,2BAA2B,CAC/B,gBAAwB,EACxB,OAAe,EACf,OAA+B;QAE/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,sBAAsB,gBAAgB,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,eAAe,CACnB,kBAA0B,EAC1B,cAAsB;QAEtB,MAAM,QAAQ,GAAG,KAAK,CAAC,iBAAiB,CACtC,IAAI,CAAC,UAAU,EACf,kBAAkB,EAClB,cAAc,CACf,CAAC;QACF,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED;;;;OAIG;IACH,oBAAoB,CAAC,QAAe;QAClC,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"NostrClient.js","sourceRoot":"","sources":["../../../src/client/NostrClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { Event } from '../protocol/Event.js';
|
|
|
6
6
|
import { Filter } from '../protocol/Filter.js';
|
|
7
7
|
import * as EventKinds from '../protocol/EventKinds.js';
|
|
8
8
|
import * as NametagUtils from './NametagUtils.js';
|
|
9
|
-
/** Default country code for phone number normalization */
|
|
9
|
+
/** Default country code for phone number normalization (shared with NametagUtils) */
|
|
10
10
|
const DEFAULT_COUNTRY = 'US';
|
|
11
11
|
/**
|
|
12
12
|
* Create a nametag binding event.
|
|
@@ -24,27 +24,99 @@ const DEFAULT_COUNTRY = 'US';
|
|
|
24
24
|
* @param nametagId Nametag identifier (phone number or username)
|
|
25
25
|
* @param unicityAddress Unicity blockchain address
|
|
26
26
|
* @param defaultCountry Default country code for phone normalization
|
|
27
|
+
* @param identity Optional extended identity parameters
|
|
27
28
|
* @returns Signed event
|
|
28
29
|
*/
|
|
29
|
-
export async function createBindingEvent(keyManager, nametagId, unicityAddress, defaultCountry = DEFAULT_COUNTRY) {
|
|
30
|
+
export async function createBindingEvent(keyManager, nametagId, unicityAddress, defaultCountry = DEFAULT_COUNTRY, identity) {
|
|
31
|
+
if (!NametagUtils.isValidNametag(nametagId, defaultCountry)) {
|
|
32
|
+
throw new Error(`Invalid nametag: "${nametagId}". Must be 3-20 chars [a-z0-9_-] or a valid phone number.`);
|
|
33
|
+
}
|
|
30
34
|
const hashedNametag = NametagUtils.hashNametag(nametagId, defaultCountry);
|
|
31
35
|
const content = {
|
|
32
36
|
nametag_hash: hashedNametag,
|
|
33
37
|
address: unicityAddress,
|
|
34
|
-
verified: Date.now(),
|
|
38
|
+
verified: Math.floor(Date.now() / 1000),
|
|
35
39
|
};
|
|
40
|
+
const tags = [
|
|
41
|
+
['d', hashedNametag],
|
|
42
|
+
['nametag', hashedNametag],
|
|
43
|
+
['t', hashedNametag],
|
|
44
|
+
['address', unicityAddress],
|
|
45
|
+
['t', NametagUtils.hashAddressForTag(unicityAddress)],
|
|
46
|
+
];
|
|
47
|
+
// Add extended identity fields when provided
|
|
48
|
+
if (identity) {
|
|
49
|
+
const encryptedNametag = await NametagUtils.encryptNametag(nametagId, keyManager.getPrivateKeyHex());
|
|
50
|
+
content.encrypted_nametag = encryptedNametag;
|
|
51
|
+
// Plaintext nametag is intentionally stored in content for public resolution.
|
|
52
|
+
// Nametags must be publicly resolvable (sending to @alice requires knowing her
|
|
53
|
+
// addresses). Tag hashing provides relay-level privacy (operators see hashes in
|
|
54
|
+
// indexed tags, not plaintext). The encrypted copy enables private key recovery.
|
|
55
|
+
content.nametag = nametagId;
|
|
56
|
+
if (identity.publicKey) {
|
|
57
|
+
content.public_key = identity.publicKey;
|
|
58
|
+
tags.push(['t', NametagUtils.hashAddressForTag(identity.publicKey)]);
|
|
59
|
+
tags.push(['pubkey', identity.publicKey]);
|
|
60
|
+
}
|
|
61
|
+
if (identity.l1Address) {
|
|
62
|
+
content.l1_address = identity.l1Address;
|
|
63
|
+
tags.push(['t', NametagUtils.hashAddressForTag(identity.l1Address)]);
|
|
64
|
+
tags.push(['l1', identity.l1Address]);
|
|
65
|
+
}
|
|
66
|
+
if (identity.directAddress) {
|
|
67
|
+
content.direct_address = identity.directAddress;
|
|
68
|
+
tags.push(['t', NametagUtils.hashAddressForTag(identity.directAddress)]);
|
|
69
|
+
}
|
|
70
|
+
if (identity.proxyAddress) {
|
|
71
|
+
content.proxy_address = identity.proxyAddress;
|
|
72
|
+
tags.push(['t', NametagUtils.hashAddressForTag(identity.proxyAddress)]);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
36
75
|
const event = Event.create(keyManager, {
|
|
37
76
|
kind: EventKinds.APP_DATA,
|
|
38
|
-
tags
|
|
39
|
-
['d', hashedNametag],
|
|
40
|
-
['nametag', hashedNametag],
|
|
41
|
-
['t', hashedNametag],
|
|
42
|
-
['address', unicityAddress],
|
|
43
|
-
],
|
|
77
|
+
tags,
|
|
44
78
|
content: JSON.stringify(content),
|
|
45
79
|
});
|
|
46
80
|
return event;
|
|
47
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* Create a base identity binding event (no nametag).
|
|
84
|
+
* Uses d-tag = SHA256('unicity:identity:' + nostrPubkey) so each wallet
|
|
85
|
+
* has exactly one identity binding event.
|
|
86
|
+
*
|
|
87
|
+
* @param keyManager Key manager with signing keys
|
|
88
|
+
* @param identity Identity parameters (publicKey, l1Address, directAddress)
|
|
89
|
+
* @returns Signed event
|
|
90
|
+
*/
|
|
91
|
+
export function createIdentityBindingEvent(keyManager, identity) {
|
|
92
|
+
const nostrPubkey = keyManager.getPublicKeyHex();
|
|
93
|
+
const dTag = NametagUtils.sha256Hex('unicity:identity:' + nostrPubkey);
|
|
94
|
+
const content = {};
|
|
95
|
+
const tags = [
|
|
96
|
+
['d', dTag],
|
|
97
|
+
];
|
|
98
|
+
if (identity.publicKey) {
|
|
99
|
+
content.public_key = identity.publicKey;
|
|
100
|
+
tags.push(['t', NametagUtils.hashAddressForTag(identity.publicKey)]);
|
|
101
|
+
}
|
|
102
|
+
if (identity.l1Address) {
|
|
103
|
+
content.l1_address = identity.l1Address;
|
|
104
|
+
tags.push(['t', NametagUtils.hashAddressForTag(identity.l1Address)]);
|
|
105
|
+
}
|
|
106
|
+
if (identity.directAddress) {
|
|
107
|
+
content.direct_address = identity.directAddress;
|
|
108
|
+
tags.push(['t', NametagUtils.hashAddressForTag(identity.directAddress)]);
|
|
109
|
+
}
|
|
110
|
+
if (identity.proxyAddress) {
|
|
111
|
+
content.proxy_address = identity.proxyAddress;
|
|
112
|
+
tags.push(['t', NametagUtils.hashAddressForTag(identity.proxyAddress)]);
|
|
113
|
+
}
|
|
114
|
+
return Event.create(keyManager, {
|
|
115
|
+
kind: EventKinds.APP_DATA,
|
|
116
|
+
tags,
|
|
117
|
+
content: JSON.stringify(content),
|
|
118
|
+
});
|
|
119
|
+
}
|
|
48
120
|
/**
|
|
49
121
|
* Create a filter to query pubkey by nametag.
|
|
50
122
|
* Query direction: nametag → pubkey
|
|
@@ -60,6 +132,20 @@ export function createNametagToPubkeyFilter(nametagId, defaultCountry = DEFAULT_
|
|
|
60
132
|
.tTags(hashedNametag)
|
|
61
133
|
.build();
|
|
62
134
|
}
|
|
135
|
+
/**
|
|
136
|
+
* Create a filter to query binding events by address hash.
|
|
137
|
+
* Query direction: address → binding event
|
|
138
|
+
*
|
|
139
|
+
* @param address Address string (DIRECT://..., alpha1..., PROXY://..., or chain pubkey)
|
|
140
|
+
* @returns Filter for nametag binding events
|
|
141
|
+
*/
|
|
142
|
+
export function createAddressToBindingFilter(address) {
|
|
143
|
+
const hashedAddress = NametagUtils.hashAddressForTag(address);
|
|
144
|
+
return Filter.builder()
|
|
145
|
+
.kinds(EventKinds.APP_DATA)
|
|
146
|
+
.tTags(hashedAddress)
|
|
147
|
+
.build();
|
|
148
|
+
}
|
|
63
149
|
/**
|
|
64
150
|
* Create a filter to query nametags by pubkey.
|
|
65
151
|
* Query direction: pubkey → nametags
|
|
@@ -74,6 +160,39 @@ export function createPubkeyToNametagFilter(nostrPubkey) {
|
|
|
74
160
|
.limit(10)
|
|
75
161
|
.build();
|
|
76
162
|
}
|
|
163
|
+
/**
|
|
164
|
+
* Parse binding info from an event.
|
|
165
|
+
* Extracts both basic and extended identity fields from event content when possible.
|
|
166
|
+
* On parse failure, returns minimal binding info.
|
|
167
|
+
*
|
|
168
|
+
* @param event Binding event
|
|
169
|
+
* @returns BindingInfo with parsed fields when possible, or minimal info if content cannot be parsed
|
|
170
|
+
*/
|
|
171
|
+
export function parseBindingInfo(event) {
|
|
172
|
+
try {
|
|
173
|
+
const content = JSON.parse(event.content);
|
|
174
|
+
return {
|
|
175
|
+
transportPubkey: event.pubkey,
|
|
176
|
+
publicKey: content.public_key,
|
|
177
|
+
l1Address: content.l1_address,
|
|
178
|
+
directAddress: content.direct_address,
|
|
179
|
+
proxyAddress: content.proxy_address,
|
|
180
|
+
nametag: content.nametag,
|
|
181
|
+
timestamp: event.created_at * 1000,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
catch (e) {
|
|
185
|
+
// Content is not valid JSON — return minimal info.
|
|
186
|
+
// This can happen with old-format events or data corruption.
|
|
187
|
+
if (typeof console !== 'undefined') {
|
|
188
|
+
console.warn(`[nostr-sdk] Failed to parse binding event content (event ${event.id?.slice(0, 8)}):`, e);
|
|
189
|
+
}
|
|
190
|
+
return {
|
|
191
|
+
transportPubkey: event.pubkey,
|
|
192
|
+
timestamp: event.created_at * 1000,
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
}
|
|
77
196
|
/**
|
|
78
197
|
* Parse the hashed nametag from a binding event.
|
|
79
198
|
* Tries tags first, then content JSON.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NametagBinding.js","sourceRoot":"","sources":["../../../src/nametag/NametagBinding.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,KAAK,UAAU,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAC;AAElD,
|
|
1
|
+
{"version":3,"file":"NametagBinding.js","sourceRoot":"","sources":["../../../src/nametag/NametagBinding.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,38 @@
|
|
|
3
3
|
* Supports phone number normalization to E.164 format.
|
|
4
4
|
*/
|
|
5
5
|
import { sha256 } from '@noble/hashes/sha256';
|
|
6
|
+
import { hkdf } from '@noble/hashes/hkdf';
|
|
6
7
|
import { bytesToHex } from '@noble/hashes/utils';
|
|
7
8
|
import { parsePhoneNumber, isValidPhoneNumber } from 'libphonenumber-js';
|
|
9
|
+
/**
|
|
10
|
+
* Get the Web Crypto API (works in both Node.js and browser).
|
|
11
|
+
*/
|
|
12
|
+
async function getWebCrypto() {
|
|
13
|
+
if (typeof globalThis.crypto?.subtle !== 'undefined') {
|
|
14
|
+
return globalThis.crypto;
|
|
15
|
+
}
|
|
16
|
+
// Node.js environment - import webcrypto
|
|
17
|
+
const nodeCrypto = await import('crypto');
|
|
18
|
+
return nodeCrypto.webcrypto;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Base64 encode (works in both Node.js and browser).
|
|
22
|
+
*/
|
|
23
|
+
function toBase64(bytes) {
|
|
24
|
+
if (typeof Buffer !== 'undefined') {
|
|
25
|
+
return Buffer.from(bytes).toString('base64');
|
|
26
|
+
}
|
|
27
|
+
return btoa(String.fromCharCode(...Array.from(bytes)));
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Base64 decode (works in both Node.js and browser).
|
|
31
|
+
*/
|
|
32
|
+
function fromBase64(base64) {
|
|
33
|
+
if (typeof Buffer !== 'undefined') {
|
|
34
|
+
return new Uint8Array(Buffer.from(base64, 'base64'));
|
|
35
|
+
}
|
|
36
|
+
return Uint8Array.from(atob(base64), c => c.charCodeAt(0));
|
|
37
|
+
}
|
|
8
38
|
/** Salt prefix for nametag hashing */
|
|
9
39
|
const NAMETAG_SALT = 'unicity:nametag:';
|
|
10
40
|
/** Minimum nametag length (after normalization) */
|
|
@@ -13,12 +43,14 @@ export const NAMETAG_MIN_LENGTH = 3;
|
|
|
13
43
|
export const NAMETAG_MAX_LENGTH = 20;
|
|
14
44
|
/** Default country code for phone number normalization */
|
|
15
45
|
const DEFAULT_COUNTRY = 'US';
|
|
46
|
+
/** Salt prefix for address hashing */
|
|
47
|
+
const ADDRESS_SALT = 'unicity:address:';
|
|
16
48
|
/**
|
|
17
49
|
* Compute SHA-256 hash of a string.
|
|
18
50
|
* @param input String to hash
|
|
19
51
|
* @returns Hex-encoded hash
|
|
20
52
|
*/
|
|
21
|
-
function sha256Hex(input) {
|
|
53
|
+
export function sha256Hex(input) {
|
|
22
54
|
const bytes = new TextEncoder().encode(input);
|
|
23
55
|
return bytesToHex(sha256(bytes));
|
|
24
56
|
}
|
|
@@ -167,4 +199,75 @@ export function isValidNametag(nametag, defaultCountry = DEFAULT_COUNTRY) {
|
|
|
167
199
|
const pattern = new RegExp(`^[a-z0-9_-]{${NAMETAG_MIN_LENGTH},${NAMETAG_MAX_LENGTH}}$`);
|
|
168
200
|
return pattern.test(normalized);
|
|
169
201
|
}
|
|
202
|
+
/**
|
|
203
|
+
* Hash an address for use as an indexed relay tag.
|
|
204
|
+
* Enables reverse lookup: address → binding event.
|
|
205
|
+
* @param address Address string (e.g., DIRECT://..., alpha1..., PROXY://...)
|
|
206
|
+
* @returns Hex-encoded SHA-256 hash
|
|
207
|
+
*/
|
|
208
|
+
export function hashAddressForTag(address) {
|
|
209
|
+
return sha256Hex(ADDRESS_SALT + address);
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Derive an AES-256 encryption key from a private key using HKDF-SHA256.
|
|
213
|
+
* @param privateKeyHex Hex-encoded private key
|
|
214
|
+
* @returns 32-byte derived key
|
|
215
|
+
*/
|
|
216
|
+
function deriveNametagEncryptionKey(privateKeyHex) {
|
|
217
|
+
const privateKeyBytes = hexToBytes(privateKeyHex);
|
|
218
|
+
const saltInput = new TextEncoder().encode('sphere-nametag-salt');
|
|
219
|
+
const salt = sha256(saltInput);
|
|
220
|
+
const info = new TextEncoder().encode('nametag-encryption');
|
|
221
|
+
return hkdf(sha256, privateKeyBytes, salt, info, 32);
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Convert hex string to Uint8Array.
|
|
225
|
+
*/
|
|
226
|
+
function hexToBytes(hex) {
|
|
227
|
+
const bytes = new Uint8Array(hex.length / 2);
|
|
228
|
+
for (let i = 0; i < hex.length; i += 2) {
|
|
229
|
+
bytes[i / 2] = parseInt(hex.substring(i, i + 2), 16);
|
|
230
|
+
}
|
|
231
|
+
return bytes;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Encrypt a nametag with AES-GCM using a key derived from the private key.
|
|
235
|
+
* Enables nametag recovery on wallet import.
|
|
236
|
+
* @param nametag Plain text nametag
|
|
237
|
+
* @param privateKeyHex Hex-encoded private key for key derivation
|
|
238
|
+
* @returns Base64-encoded encrypted data (IV + ciphertext + auth tag)
|
|
239
|
+
*/
|
|
240
|
+
export async function encryptNametag(nametag, privateKeyHex) {
|
|
241
|
+
const webCrypto = await getWebCrypto();
|
|
242
|
+
const key = deriveNametagEncryptionKey(privateKeyHex);
|
|
243
|
+
const iv = webCrypto.getRandomValues(new Uint8Array(12));
|
|
244
|
+
const data = new TextEncoder().encode(nametag);
|
|
245
|
+
const cryptoKey = await webCrypto.subtle.importKey('raw', new Uint8Array(key).buffer, { name: 'AES-GCM' }, false, ['encrypt']);
|
|
246
|
+
const encrypted = await webCrypto.subtle.encrypt({ name: 'AES-GCM', iv: new Uint8Array(iv).buffer }, cryptoKey, new Uint8Array(data).buffer);
|
|
247
|
+
const combined = new Uint8Array(iv.length + encrypted.byteLength);
|
|
248
|
+
combined.set(iv, 0);
|
|
249
|
+
combined.set(new Uint8Array(encrypted), iv.length);
|
|
250
|
+
return toBase64(combined);
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Decrypt a nametag encrypted with encryptNametag().
|
|
254
|
+
* @param encryptedBase64 Base64-encoded encrypted data (IV + ciphertext + auth tag)
|
|
255
|
+
* @param privateKeyHex Hex-encoded private key for key derivation
|
|
256
|
+
* @returns Decrypted nametag, or null if decryption fails (wrong key)
|
|
257
|
+
*/
|
|
258
|
+
export async function decryptNametag(encryptedBase64, privateKeyHex) {
|
|
259
|
+
try {
|
|
260
|
+
const webCrypto = await getWebCrypto();
|
|
261
|
+
const key = deriveNametagEncryptionKey(privateKeyHex);
|
|
262
|
+
const combined = fromBase64(encryptedBase64);
|
|
263
|
+
const iv = combined.slice(0, 12);
|
|
264
|
+
const ciphertext = combined.slice(12);
|
|
265
|
+
const cryptoKey = await webCrypto.subtle.importKey('raw', new Uint8Array(key).buffer, { name: 'AES-GCM' }, false, ['decrypt']);
|
|
266
|
+
const decrypted = await webCrypto.subtle.decrypt({ name: 'AES-GCM', iv: new Uint8Array(iv).buffer }, cryptoKey, new Uint8Array(ciphertext).buffer);
|
|
267
|
+
return new TextDecoder().decode(decrypted);
|
|
268
|
+
}
|
|
269
|
+
catch {
|
|
270
|
+
return null;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
170
273
|
//# sourceMappingURL=NametagUtils.js.map
|