ns-auth-sdk 1.14.0 → 1.14.2

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 (153) hide show
  1. package/dist/{cjs-CSUAVztq.cjs → browser-index.cjs} +5476 -296
  2. package/dist/browser-index.cjs.map +1 -0
  3. package/dist/browser-index.d.cts +1998 -0
  4. package/dist/browser-index.d.cts.map +1 -0
  5. package/dist/browser-index.d.mts +1998 -0
  6. package/dist/browser-index.d.mts.map +1 -0
  7. package/dist/{cjs-sm5h7qxv.mjs → browser-index.mjs} +5169 -69
  8. package/dist/browser-index.mjs.map +1 -0
  9. package/dist/{group-coordination-BlFpBVpn.mjs → group-coordination-BV6PKlKp.mjs} +1 -1
  10. package/dist/{group-coordination-BlFpBVpn.mjs.map → group-coordination-BV6PKlKp.mjs.map} +1 -1
  11. package/dist/{group-coordination-ImuoJEoy.mjs → group-coordination-BytkmY9j.mjs} +1 -1
  12. package/dist/{group-coordination-LGIyipaX.cjs → group-coordination-DL39hJ3R.cjs} +1 -1
  13. package/dist/{group-coordination-LGIyipaX.cjs.map → group-coordination-DL39hJ3R.cjs.map} +1 -1
  14. package/dist/{group-coordination-Cf18OjZt.cjs → group-coordination-DLban6a7.cjs} +1 -1
  15. package/dist/index.cjs +8899 -41
  16. package/dist/index.cjs.map +1 -1
  17. package/dist/index.d.cts.map +1 -1
  18. package/dist/index.mjs +9072 -213
  19. package/dist/index.mjs.map +1 -1
  20. package/dist/{prf-handler-D3EqUNWe.cjs → prf-handler-BNd7gmXJ.cjs} +1 -1
  21. package/dist/{prf-handler-D3EqUNWe.cjs.map → prf-handler-BNd7gmXJ.cjs.map} +1 -1
  22. package/dist/prf-handler-CRMgzJG2.cjs +3 -0
  23. package/dist/{prf-handler-Dly_WZGn.mjs → prf-handler-DG99ZkS2.mjs} +1 -1
  24. package/dist/{prf-handler-Db8CsoIP.mjs → prf-handler-Dj2WTO9i.mjs} +1 -1
  25. package/dist/{prf-handler-Db8CsoIP.mjs.map → prf-handler-Dj2WTO9i.mjs.map} +1 -1
  26. package/dist/zkm.service-Bv88tVS5.mjs +3 -0
  27. package/dist/zkm.service-D2BZ_aqA.cjs +3 -0
  28. package/dist/{zkm.service-DfSPbuOl.cjs → zkm.service-DX06sSfB.cjs} +1 -1
  29. package/dist/{zkm.service-DfSPbuOl.cjs.map → zkm.service-DX06sSfB.cjs.map} +1 -1
  30. package/dist/{zkm.service-B24N_0FB.mjs → zkm.service-j0HlN7Oq.mjs} +1 -1
  31. package/dist/{zkm.service-B24N_0FB.mjs.map → zkm.service-j0HlN7Oq.mjs.map} +1 -1
  32. package/package.json +19 -6
  33. package/dist/_esm-C7FRLTj2.cjs +0 -9030
  34. package/dist/_esm-C7FRLTj2.cjs.map +0 -1
  35. package/dist/_esm-D_oMW5T5.mjs +0 -9028
  36. package/dist/_esm-D_oMW5T5.mjs.map +0 -1
  37. package/dist/base64-js-B8y7dH5k.mjs +0 -93
  38. package/dist/base64-js-B8y7dH5k.mjs.map +0 -1
  39. package/dist/base64-js-Tm-kCeud.cjs +0 -98
  40. package/dist/base64-js-Tm-kCeud.cjs.map +0 -1
  41. package/dist/ccip-157tdxqP.cjs +0 -7947
  42. package/dist/ccip-157tdxqP.cjs.map +0 -1
  43. package/dist/ccip-BEMMdVyd.cjs +0 -4
  44. package/dist/ccip-BSmCdJ3K.mjs +0 -3
  45. package/dist/ccip-okqXkslP.mjs +0 -6567
  46. package/dist/ccip-okqXkslP.mjs.map +0 -1
  47. package/dist/chains-CTeD2UcS.mjs +0 -33
  48. package/dist/chains-CTeD2UcS.mjs.map +0 -1
  49. package/dist/chains-Du-lv_5i.cjs +0 -33
  50. package/dist/chains-Du-lv_5i.cjs.map +0 -1
  51. package/dist/chunk-Bnu9O96Y.cjs +0 -60
  52. package/dist/chunk-CVYhg9ik.mjs +0 -45
  53. package/dist/cjs-CSUAVztq.cjs.map +0 -1
  54. package/dist/cjs-sm5h7qxv.mjs.map +0 -1
  55. package/dist/defineChain-7QG67hYU.cjs +0 -30
  56. package/dist/defineChain-7QG67hYU.cjs.map +0 -1
  57. package/dist/defineChain-DBem8ZQY.mjs +0 -24
  58. package/dist/defineChain-DBem8ZQY.mjs.map +0 -1
  59. package/dist/dist-BPmSxkxc.cjs +0 -10676
  60. package/dist/dist-BPmSxkxc.cjs.map +0 -1
  61. package/dist/dist-BSjH4t6s.cjs +0 -12932
  62. package/dist/dist-BSjH4t6s.cjs.map +0 -1
  63. package/dist/dist-C-KjTK4Q.cjs +0 -447
  64. package/dist/dist-C-KjTK4Q.cjs.map +0 -1
  65. package/dist/dist-C2h97xM-.mjs +0 -355
  66. package/dist/dist-C2h97xM-.mjs.map +0 -1
  67. package/dist/dist-CT7grDWb.mjs +0 -12920
  68. package/dist/dist-CT7grDWb.mjs.map +0 -1
  69. package/dist/dist-D7fRmK6G.mjs +0 -10632
  70. package/dist/dist-D7fRmK6G.mjs.map +0 -1
  71. package/dist/dist-DlmcyFmM.mjs +0 -16951
  72. package/dist/dist-DlmcyFmM.mjs.map +0 -1
  73. package/dist/dist-O0uZr5OF.cjs +0 -17122
  74. package/dist/dist-O0uZr5OF.cjs.map +0 -1
  75. package/dist/echo-BB-JgAYZ.cjs +0 -339
  76. package/dist/echo-BB-JgAYZ.cjs.map +0 -1
  77. package/dist/echo-Bwy4_Cvh.mjs +0 -316
  78. package/dist/echo-Bwy4_Cvh.mjs.map +0 -1
  79. package/dist/echo-D6X2IuNW.cjs +0 -9
  80. package/dist/echo-DvfG_heb.mjs +0 -8
  81. package/dist/esm-BcHKCX5i.mjs +0 -569
  82. package/dist/esm-BcHKCX5i.mjs.map +0 -1
  83. package/dist/esm-Bh_YwFIz.cjs +0 -599
  84. package/dist/esm-Bh_YwFIz.cjs.map +0 -1
  85. package/dist/esm-C0XO9TQm.cjs +0 -30449
  86. package/dist/esm-C0XO9TQm.cjs.map +0 -1
  87. package/dist/esm-vMUVj9k4.mjs +0 -30440
  88. package/dist/esm-vMUVj9k4.mjs.map +0 -1
  89. package/dist/keyset-CKMQXvsb.mjs +0 -172
  90. package/dist/keyset-CKMQXvsb.mjs.map +0 -1
  91. package/dist/keyset-Cxdgu110.cjs +0 -237
  92. package/dist/keyset-Cxdgu110.cjs.map +0 -1
  93. package/dist/keyset-DLxpGhdu.cjs +0 -6
  94. package/dist/keyset-IKjlhvqF.mjs +0 -4
  95. package/dist/node-3EUJ4ga9.cjs +0 -9
  96. package/dist/node-C2UpE11T.cjs +0 -444
  97. package/dist/node-C2UpE11T.cjs.map +0 -1
  98. package/dist/node-CHdpTQdN.mjs +0 -8679
  99. package/dist/node-CHdpTQdN.mjs.map +0 -1
  100. package/dist/node-DQt1CVGl.mjs +0 -6
  101. package/dist/node-Dy8ww1LG.cjs +0 -8680
  102. package/dist/node-Dy8ww1LG.cjs.map +0 -1
  103. package/dist/node-IX55IH6z.mjs +0 -397
  104. package/dist/node-IX55IH6z.mjs.map +0 -1
  105. package/dist/nostr-BTOpBN_5.cjs +0 -11
  106. package/dist/nostr-D4E52XRU.mjs +0 -224
  107. package/dist/nostr-D4E52XRU.mjs.map +0 -1
  108. package/dist/nostr-Hv2tsnuI.cjs +0 -272
  109. package/dist/nostr-Hv2tsnuI.cjs.map +0 -1
  110. package/dist/nostr-ZwJe_DlZ.mjs +0 -4
  111. package/dist/pako.esm-DTVnlCJh.cjs +0 -3856
  112. package/dist/pako.esm-DTVnlCJh.cjs.map +0 -1
  113. package/dist/pako.esm-ORhkEHM2.mjs +0 -3838
  114. package/dist/pako.esm-ORhkEHM2.mjs.map +0 -1
  115. package/dist/peer-B9g3OQ5D.cjs +0 -18
  116. package/dist/peer-CptDj7zu.mjs +0 -745
  117. package/dist/peer-CptDj7zu.mjs.map +0 -1
  118. package/dist/peer-CtqL0yiE.mjs +0 -9
  119. package/dist/peer-XrPL0O6z.cjs +0 -822
  120. package/dist/peer-XrPL0O6z.cjs.map +0 -1
  121. package/dist/ping-BXKREIdI.mjs +0 -7
  122. package/dist/ping-BtVhKocl.cjs +0 -379
  123. package/dist/ping-BtVhKocl.cjs.map +0 -1
  124. package/dist/ping-D5fpMhGC.cjs +0 -11
  125. package/dist/ping-DOD50kW_.mjs +0 -332
  126. package/dist/ping-DOD50kW_.mjs.map +0 -1
  127. package/dist/policy-8HcjulLD.cjs +0 -293
  128. package/dist/policy-8HcjulLD.cjs.map +0 -1
  129. package/dist/policy-BA6MEOBY.mjs +0 -5
  130. package/dist/policy-BFNdXvmM.cjs +0 -11
  131. package/dist/policy-D_nFHHjo.mjs +0 -228
  132. package/dist/policy-D_nFHHjo.mjs.map +0 -1
  133. package/dist/prf-handler-BNiyCQMt.cjs +0 -3
  134. package/dist/src-CVfTUJQl.mjs +0 -822
  135. package/dist/src-CVfTUJQl.mjs.map +0 -1
  136. package/dist/src-D5S86Xpf.cjs +0 -827
  137. package/dist/src-D5S86Xpf.cjs.map +0 -1
  138. package/dist/types-B-TLIS13.cjs +0 -212
  139. package/dist/types-B-TLIS13.cjs.map +0 -1
  140. package/dist/types-CTm_FHYD.mjs +0 -111
  141. package/dist/types-CTm_FHYD.mjs.map +0 -1
  142. package/dist/validation-1xwWVXqE.mjs +0 -3
  143. package/dist/validation-DnpurN79.cjs +0 -405
  144. package/dist/validation-DnpurN79.cjs.map +0 -1
  145. package/dist/validation-IsAUvsvy.mjs +0 -334
  146. package/dist/validation-IsAUvsvy.mjs.map +0 -1
  147. package/dist/validation-yCvZCqIs.cjs +0 -6
  148. package/dist/wrapper-C5NpyacC.cjs +0 -3552
  149. package/dist/wrapper-C5NpyacC.cjs.map +0 -1
  150. package/dist/wrapper-CHq_CV4J.mjs +0 -3552
  151. package/dist/wrapper-CHq_CV4J.mjs.map +0 -1
  152. package/dist/zkm.service-BrXyI4BS.mjs +0 -3
  153. package/dist/zkm.service-BvQ01wSH.cjs +0 -3
@@ -1,355 +0,0 @@
1
- import { _ as SecretKeySchema, a as IglooError, c as NodeConfigSchema, d as NostrError, f as NostrKeySchema, g as RelayUrlSchema, h as RecoveryError, i as HexKeySchema, l as NodeError, m as PolicyError, n as EchoError, o as KeysetError, p as NostrValidationError, r as EchoListenerConfigSchema, s as KeysetParamsSchema, t as BifrostValidationError, u as NodePolicyInputSchema } from "./types-CTm_FHYD.mjs";
2
- import { a as npubToHex, c as validateNostrKey, i as hexToNsec, n as generateNostrKeyPair, o as nsecToHex, r as hexToNpub, s as validateHexKey, t as derivePublicKey } from "./nostr-D4E52XRU.mjs";
3
- import { a as normalizeNodePolicies, d as updateNodePolicy, i as getNodePolicy, l as setNodePolicies, n as canSendToPeer, o as normalizeNodePolicyInput, r as getNodePolicies, s as prepareNodePolicies, t as canReceiveFromPeer, u as summarizeNodePolicyMatrix } from "./policy-D_nFHHjo.mjs";
4
- import { a as createBifrostNode, c as setupNodeEvents, i as createAndConnectNode, n as closeNode, o as createConnectedNode, r as connectNode, s as isNodeReady, t as cleanupBifrostNode } from "./node-IX55IH6z.mjs";
5
- import { a as getShareDetailsWithGroup, c as validateKeysetParams, d as validateSharesCompatibility, i as getShareDetails, l as validateSecretKey, n as decodeShare, o as recoverSecretKey, r as generateKeysetWithSecret, s as recoverSecretKeyFromCredentials, t as decodeGroup, u as validateShareCredentialsCompatibility } from "./keyset-CKMQXvsb.mjs";
6
- import { i as startListeningForAllEchoes, n as awaitShareEcho, r as sendEcho, t as DEFAULT_ECHO_RELAYS } from "./echo-Bwy4_Cvh.mjs";
7
- import { a as pingPeer, c as runPingDiagnostics, i as createPingMonitor, n as DEFAULT_PING_RELAYS, o as pingPeers$1, r as DEFAULT_PING_TIMEOUT, s as pingPeersFromCredentials, t as DEFAULT_PING_INTERVAL } from "./ping-DOD50kW_.mjs";
8
- import { a as validateGroup, c as validateNsec, d as validateShare, f as validateWithOptions, i as validateCredentialSet, l as validateRelay, n as validateBfcred, o as validateHexPrivkey, r as validateCredentialFormat, s as validateMinimumShares, t as VALIDATION_CONSTANTS, u as validateRelayList } from "./validation-IsAUvsvy.mjs";
9
- import { a as checkPeerStatus, c as createPeerManagerRobust, d as normalizePubkey, f as pingPeers, i as addPubkeyPrefix, l as extractPeersFromCredentials, n as PeerManager, o as comparePubkeys, p as validatePeerCredentials, r as StaticPeerManager, s as createPeerManager, t as DEFAULT_PEER_MONITOR_CONFIG, u as extractSelfPubkeyFromCredentials } from "./peer-CptDj7zu.mjs";
10
-
11
- //#region node_modules/@frostr/igloo-core/dist/index.js
12
- var IglooCore = class {
13
- constructor(defaultRelays = ["wss://relay.damus.io", "wss://relay.primal.net"]) {
14
- this.defaultRelays = defaultRelays;
15
- }
16
- /**
17
- * Generate a new keyset from a secret key
18
- */
19
- async generateKeyset(threshold, totalMembers, secretKey) {
20
- const { generateKeysetWithSecret: generateKeysetWithSecret$1 } = await import("./keyset-IKjlhvqF.mjs");
21
- return generateKeysetWithSecret$1(threshold, totalMembers, secretKey);
22
- }
23
- /**
24
- * Create and connect a BifrostNode
25
- */
26
- async createNode(groupCredential, shareCredential, relaysOrOptions) {
27
- const { createAndConnectNode: createAndConnectNode$1 } = await import("./node-DQt1CVGl.mjs");
28
- let relays;
29
- let policies;
30
- let eventConfig;
31
- if (Array.isArray(relaysOrOptions)) relays = relaysOrOptions;
32
- else if (relaysOrOptions) {
33
- relays = relaysOrOptions.relays;
34
- policies = relaysOrOptions.policies;
35
- eventConfig = relaysOrOptions.eventConfig;
36
- }
37
- return createAndConnectNode$1({
38
- group: groupCredential,
39
- share: shareCredential,
40
- relays: relays || this.defaultRelays,
41
- policies
42
- }, eventConfig);
43
- }
44
- /**
45
- * Create and connect a BifrostNode with enhanced state information
46
- */
47
- async createEnhancedNode(groupCredential, shareCredential, relaysOrOptions, legacyOptions) {
48
- const { createConnectedNode: createConnectedNode$1 } = await import("./node-DQt1CVGl.mjs");
49
- let relays;
50
- let policies;
51
- let connectionTimeout;
52
- let autoReconnect;
53
- let eventConfig;
54
- if (Array.isArray(relaysOrOptions)) {
55
- relays = relaysOrOptions;
56
- if (legacyOptions) {
57
- connectionTimeout = legacyOptions.connectionTimeout;
58
- autoReconnect = legacyOptions.autoReconnect;
59
- }
60
- } else if (relaysOrOptions) {
61
- relays = relaysOrOptions.relays;
62
- policies = relaysOrOptions.policies;
63
- connectionTimeout = relaysOrOptions.connectionTimeout;
64
- autoReconnect = relaysOrOptions.autoReconnect;
65
- eventConfig = relaysOrOptions.eventConfig;
66
- }
67
- return createConnectedNode$1({
68
- group: groupCredential,
69
- share: shareCredential,
70
- relays: relays || this.defaultRelays,
71
- policies,
72
- connectionTimeout,
73
- autoReconnect
74
- }, eventConfig);
75
- }
76
- /**
77
- * Check if a BifrostNode is ready
78
- */
79
- async isNodeReady(node) {
80
- const { isNodeReady: isNodeReady$1 } = await import("./node-DQt1CVGl.mjs");
81
- return isNodeReady$1(node);
82
- }
83
- /**
84
- * Clean up a BifrostNode completely
85
- */
86
- async cleanupNode(node) {
87
- const { cleanupBifrostNode: cleanupBifrostNode$1 } = await import("./node-DQt1CVGl.mjs");
88
- return cleanupBifrostNode$1(node);
89
- }
90
- /**
91
- * Set node-level peer policies (optionally merging with existing configuration)
92
- */
93
- async setNodePolicies(node, policies, options = {}) {
94
- const { setNodePolicies: setNodePolicies$1 } = await import("./policy-BA6MEOBY.mjs");
95
- return setNodePolicies$1(node, policies, options);
96
- }
97
- /**
98
- * Update (merge) a single node policy
99
- */
100
- async updateNodePolicy(node, policy) {
101
- const { updateNodePolicy: updateNodePolicy$1 } = await import("./policy-BA6MEOBY.mjs");
102
- return updateNodePolicy$1(node, policy);
103
- }
104
- /**
105
- * Retrieve current policy summaries for the node
106
- */
107
- async getNodePolicies(node) {
108
- const { getNodePolicies: getNodePolicies$1 } = await import("./policy-BA6MEOBY.mjs");
109
- return getNodePolicies$1(node);
110
- }
111
- /**
112
- * Lookup a policy for a specific peer by pubkey
113
- */
114
- async getNodePolicy(node, pubkey) {
115
- const { getNodePolicy: getNodePolicy$1 } = await import("./policy-BA6MEOBY.mjs");
116
- return getNodePolicy$1(node, pubkey);
117
- }
118
- /**
119
- * Determine if outbound messaging is allowed for a peer
120
- */
121
- async canNodeSendTo(node, pubkey) {
122
- const { canSendToPeer: canSendToPeer$1 } = await import("./policy-BA6MEOBY.mjs");
123
- return canSendToPeer$1(node, pubkey);
124
- }
125
- /**
126
- * Determine if inbound messaging is allowed for a peer
127
- */
128
- async canNodeReceiveFrom(node, pubkey) {
129
- const { canReceiveFromPeer: canReceiveFromPeer$1 } = await import("./policy-BA6MEOBY.mjs");
130
- return canReceiveFromPeer$1(node, pubkey);
131
- }
132
- /**
133
- * Summarize policies as a quick matrix keyed by pubkey
134
- */
135
- async summarizeNodePolicies(node) {
136
- const { summarizeNodePolicyMatrix: summarizeNodePolicyMatrix$1 } = await import("./policy-BA6MEOBY.mjs");
137
- return summarizeNodePolicyMatrix$1(node);
138
- }
139
- /**
140
- * Wait for an echo on a specific share
141
- */
142
- async waitForEcho(groupCredential, shareCredential, timeout = 3e4) {
143
- const { awaitShareEcho: awaitShareEcho$1 } = await import("./echo-DvfG_heb.mjs");
144
- return awaitShareEcho$1(groupCredential, shareCredential, {
145
- relays: this.defaultRelays,
146
- timeout
147
- });
148
- }
149
- /**
150
- * Start listening for echoes on all shares
151
- */
152
- async startEchoListeners(groupCredential, shareCredentials, onEchoReceived) {
153
- const { startListeningForAllEchoes: startListeningForAllEchoes$1 } = await import("./echo-DvfG_heb.mjs");
154
- return startListeningForAllEchoes$1(groupCredential, shareCredentials, onEchoReceived, { relays: this.defaultRelays });
155
- }
156
- /**
157
- * Recover secret key from shares
158
- */
159
- async recoverSecret(groupCredential, shareCredentials) {
160
- const { recoverSecretKeyFromCredentials: recoverSecretKeyFromCredentials$1 } = await import("./keyset-IKjlhvqF.mjs");
161
- return recoverSecretKeyFromCredentials$1(groupCredential, shareCredentials);
162
- }
163
- /**
164
- * Get details about a share
165
- */
166
- async getShareInfo(shareCredential) {
167
- const { getShareDetails: getShareDetails$1 } = await import("./keyset-IKjlhvqF.mjs");
168
- return getShareDetails$1(shareCredential);
169
- }
170
- /**
171
- * Generate a new nostr key pair
172
- */
173
- async generateKeys() {
174
- const { generateNostrKeyPair: generateNostrKeyPair$1 } = await import("./nostr-ZwJe_DlZ.mjs");
175
- return generateNostrKeyPair$1();
176
- }
177
- /**
178
- * Convert between nostr key formats
179
- */
180
- async convertKey(key, targetFormat) {
181
- const { nsecToHex: nsecToHex$1, hexToNsec: hexToNsec$1, hexToNpub: hexToNpub$1, npubToHex: npubToHex$1, validateHexKey: validateHexKey$1, validateNostrKey: validateNostrKey$1 } = await import("./nostr-ZwJe_DlZ.mjs");
182
- if (key.startsWith("nsec")) {
183
- validateNostrKey$1(key);
184
- switch (targetFormat) {
185
- case "hex": return nsecToHex$1(key);
186
- case "nsec": return key;
187
- case "npub": throw new Error("Cannot convert private key to public key format directly");
188
- }
189
- } else if (key.startsWith("npub")) {
190
- validateNostrKey$1(key);
191
- switch (targetFormat) {
192
- case "hex": return npubToHex$1(key);
193
- case "npub": return key;
194
- case "nsec": throw new Error("Cannot convert public key to private key");
195
- }
196
- } else {
197
- validateHexKey$1(key);
198
- switch (targetFormat) {
199
- case "hex": return key;
200
- case "nsec": return hexToNsec$1(key);
201
- case "npub": return hexToNpub$1(key);
202
- }
203
- }
204
- }
205
- /**
206
- * Derive public key from private key
207
- */
208
- async derivePublicKey(privateKey) {
209
- const { derivePublicKey: derivePublicKey$1, validateHexKey: validateHexKey$1, validateNostrKey: validateNostrKey$1 } = await import("./nostr-ZwJe_DlZ.mjs");
210
- if (privateKey.startsWith("nsec")) validateNostrKey$1(privateKey);
211
- else validateHexKey$1(privateKey);
212
- return derivePublicKey$1(privateKey);
213
- }
214
- /**
215
- * Validate a credential set (group, shares, relays)
216
- */
217
- async validateCredentials(credentials) {
218
- const { validateCredentialSet: validateCredentialSet$1 } = await import("./validation-1xwWVXqE.mjs");
219
- return validateCredentialSet$1(credentials);
220
- }
221
- /**
222
- * Validate and normalize relay URLs
223
- */
224
- async validateRelays(relays) {
225
- const { validateRelayList: validateRelayList$1 } = await import("./validation-1xwWVXqE.mjs");
226
- return validateRelayList$1(relays);
227
- }
228
- /**
229
- * Validate a single credential by type
230
- */
231
- async validateCredential(credential, type) {
232
- const { validateCredentialFormat: validateCredentialFormat$1 } = await import("./validation-1xwWVXqE.mjs");
233
- return validateCredentialFormat$1(credential, type);
234
- }
235
- /**
236
- * Validate credentials with advanced options
237
- */
238
- async validateWithOptions(credentials, options = {}) {
239
- const { validateWithOptions: validateWithOptions$1 } = await import("./validation-1xwWVXqE.mjs");
240
- return validateWithOptions$1(credentials, options);
241
- }
242
- /**
243
- * Create a peer manager for monitoring peer status
244
- */
245
- async createPeerManager(node, groupCredential, shareCredential, config) {
246
- const { createPeerManager: createPeerManager$1 } = await import("./peer-CtqL0yiE.mjs");
247
- return createPeerManager$1(node, groupCredential, shareCredential, config);
248
- }
249
- /**
250
- * Create a robust peer manager with enhanced error handling and fallback options
251
- */
252
- async createPeerManagerRobust(node, groupCredential, shareCredential, config) {
253
- const { createPeerManagerRobust: createPeerManagerRobust$1 } = await import("./peer-CtqL0yiE.mjs");
254
- return createPeerManagerRobust$1(node, groupCredential, shareCredential, config);
255
- }
256
- /**
257
- * Validate peer credentials before creating peer manager
258
- */
259
- async validatePeerCredentials(groupCredential, shareCredential) {
260
- const { validatePeerCredentials: validatePeerCredentials$1 } = await import("./peer-CtqL0yiE.mjs");
261
- return validatePeerCredentials$1(groupCredential, shareCredential);
262
- }
263
- /**
264
- * Extract peer list from credentials
265
- */
266
- async extractPeers(groupCredential, shareCredential) {
267
- const { extractPeersFromCredentials: extractPeersFromCredentials$1 } = await import("./peer-CtqL0yiE.mjs");
268
- return extractPeersFromCredentials$1(groupCredential, shareCredential);
269
- }
270
- /**
271
- * Check peer status using ping
272
- */
273
- async checkPeerStatus(node, groupCredential, shareCredential) {
274
- const { checkPeerStatus: checkPeerStatus$1 } = await import("./peer-CtqL0yiE.mjs");
275
- return checkPeerStatus$1(node, groupCredential, shareCredential);
276
- }
277
- /**
278
- * Simple ping to get online peers
279
- */
280
- async pingPeers(node, timeout) {
281
- const { pingPeers: pingPeers$2 } = await import("./peer-CtqL0yiE.mjs");
282
- return pingPeers$2(node, timeout);
283
- }
284
- /**
285
- * Ping a specific peer with detailed results
286
- */
287
- async pingPeer(node, peerPubkey, options) {
288
- const { pingPeer: pingPeer$1 } = await import("./ping-BXKREIdI.mjs");
289
- return pingPeer$1(node, peerPubkey, options);
290
- }
291
- /**
292
- * Ping multiple peers with detailed results and latency
293
- */
294
- async pingPeersAdvanced(node, peerPubkeys, options) {
295
- const { pingPeers: pingPeers$2 } = await import("./ping-BXKREIdI.mjs");
296
- return pingPeers$2(node, peerPubkeys, options);
297
- }
298
- /**
299
- * Create a ping monitor for continuous peer monitoring
300
- */
301
- async createPingMonitor(node, peerPubkeys, config) {
302
- const { createPingMonitor: createPingMonitor$1 } = await import("./ping-BXKREIdI.mjs");
303
- return createPingMonitor$1(node, peerPubkeys, config);
304
- }
305
- /**
306
- * Run comprehensive ping diagnostics
307
- */
308
- async runPingDiagnostics(node, peerPubkeys, options) {
309
- const { runPingDiagnostics: runPingDiagnostics$1 } = await import("./ping-BXKREIdI.mjs");
310
- return runPingDiagnostics$1(node, peerPubkeys, options);
311
- }
312
- /**
313
- * Ping peers from credentials (convenience method)
314
- */
315
- async pingPeersFromCredentials(groupCredential, shareCredential, options) {
316
- const { pingPeersFromCredentials: pingPeersFromCredentials$1 } = await import("./ping-BXKREIdI.mjs");
317
- return pingPeersFromCredentials$1(groupCredential, shareCredential, {
318
- relays: this.defaultRelays,
319
- ...options
320
- });
321
- }
322
- /**
323
- * Normalize a pubkey by removing 02/03 prefix if present
324
- */
325
- async normalizePubkey(pubkey) {
326
- const { normalizePubkey: normalizePubkey$1 } = await import("./peer-CtqL0yiE.mjs");
327
- return normalizePubkey$1(pubkey);
328
- }
329
- /**
330
- * Add prefix to a pubkey if missing
331
- */
332
- async addPubkeyPrefix(pubkey, prefix = "02") {
333
- const { addPubkeyPrefix: addPubkeyPrefix$1 } = await import("./peer-CtqL0yiE.mjs");
334
- return addPubkeyPrefix$1(pubkey, prefix);
335
- }
336
- /**
337
- * Compare two pubkeys after normalization
338
- */
339
- async comparePubkeys(pubkey1, pubkey2) {
340
- const { comparePubkeys: comparePubkeys$1 } = await import("./peer-CtqL0yiE.mjs");
341
- return comparePubkeys$1(pubkey1, pubkey2);
342
- }
343
- /**
344
- * Extract self pubkey from credentials with enhanced error handling
345
- */
346
- async extractSelfPubkey(groupCredential, shareCredential, options) {
347
- const { extractSelfPubkeyFromCredentials: extractSelfPubkeyFromCredentials$1 } = await import("./peer-CtqL0yiE.mjs");
348
- return extractSelfPubkeyFromCredentials$1(groupCredential, shareCredential, options);
349
- }
350
- };
351
- const igloo = new IglooCore();
352
-
353
- //#endregion
354
- export { BifrostValidationError, DEFAULT_ECHO_RELAYS, DEFAULT_PEER_MONITOR_CONFIG, DEFAULT_PING_INTERVAL, DEFAULT_PING_RELAYS, DEFAULT_PING_TIMEOUT, EchoError, EchoListenerConfigSchema, HexKeySchema, IglooCore, IglooError, KeysetError, KeysetParamsSchema, NodeConfigSchema, NodeError, NodePolicyInputSchema, NostrError, NostrKeySchema, NostrValidationError, PeerManager, PolicyError, RecoveryError, RelayUrlSchema, SecretKeySchema, StaticPeerManager, VALIDATION_CONSTANTS, addPubkeyPrefix, awaitShareEcho, canReceiveFromPeer, canSendToPeer, checkPeerStatus, cleanupBifrostNode, closeNode, comparePubkeys, connectNode, createAndConnectNode, createBifrostNode, createConnectedNode, createPeerManager, createPeerManagerRobust, createPingMonitor, decodeGroup, decodeShare, derivePublicKey, extractPeersFromCredentials, extractSelfPubkeyFromCredentials, generateKeysetWithSecret, generateNostrKeyPair, getNodePolicies, getNodePolicy, getShareDetails, getShareDetailsWithGroup, hexToNpub, hexToNsec, igloo, isNodeReady, normalizeNodePolicies, normalizeNodePolicyInput, normalizePubkey, npubToHex, nsecToHex, pingPeer, pingPeers, pingPeers$1 as pingPeersAdvanced, pingPeersFromCredentials, prepareNodePolicies, recoverSecretKey, recoverSecretKeyFromCredentials, runPingDiagnostics, sendEcho, setNodePolicies, setupNodeEvents, startListeningForAllEchoes, summarizeNodePolicyMatrix, updateNodePolicy, validateBfcred, validateCredentialFormat, validateCredentialSet, validateGroup, validateHexKey, validateHexPrivkey, validateKeysetParams, validateMinimumShares, validateNostrKey, validateNsec, validatePeerCredentials, validateRelay, validateRelayList, validateSecretKey, validateShare, validateShareCredentialsCompatibility, validateSharesCompatibility, validateWithOptions };
355
- //# sourceMappingURL=dist-C2h97xM-.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dist-C2h97xM-.mjs","names":["generateKeysetWithSecret","createAndConnectNode","createConnectedNode","isNodeReady","cleanupBifrostNode","setNodePolicies","updateNodePolicy","getNodePolicies","getNodePolicy","canSendToPeer","canReceiveFromPeer","summarizeNodePolicyMatrix","awaitShareEcho","startListeningForAllEchoes","recoverSecretKeyFromCredentials","getShareDetails","generateNostrKeyPair","nsecToHex","npubToHex","hexToNsec","hexToNpub","derivePublicKey","validateCredentialSet","validateRelayList","validateCredentialFormat","validateWithOptions","createPeerManager","createPeerManagerRobust","validatePeerCredentials","extractPeersFromCredentials","checkPeerStatus","pingPeers","pingPeer","createPingMonitor","runPingDiagnostics","pingPeersFromCredentials","normalizePubkey","addPubkeyPrefix","comparePubkeys","extractSelfPubkeyFromCredentials"],"sources":["../node_modules/@frostr/igloo-core/dist/index.js"],"sourcesContent":["// Export all types\nexport * from './types.js';\n// Export keyset management\nexport { generateKeysetWithSecret, decodeShare, decodeGroup, getShareDetails, getShareDetailsWithGroup, recoverSecretKey, recoverSecretKeyFromCredentials, validateKeysetParams, validateSecretKey, validateSharesCompatibility, validateShareCredentialsCompatibility } from './keyset.js';\n// Export node management\nexport { createBifrostNode, setupNodeEvents, connectNode, closeNode, createAndConnectNode, createConnectedNode, isNodeReady, cleanupBifrostNode } from './node.js';\n// Export echo functionality\nexport { awaitShareEcho, startListeningForAllEchoes, sendEcho, DEFAULT_ECHO_RELAYS } from './echo.js';\n// Export ping functionality\nexport { pingPeer, pingPeers as pingPeersAdvanced, createPingMonitor, pingPeersFromCredentials, runPingDiagnostics, DEFAULT_PING_RELAYS, DEFAULT_PING_TIMEOUT, DEFAULT_PING_INTERVAL } from './ping.js';\n// Export nostr utilities\nexport { nsecToHex, hexToNsec, hexToNpub, npubToHex, generateNostrKeyPair, derivePublicKey, validateHexKey, validateNostrKey } from './nostr.js';\n// Export validation functions\nexport { validateNsec, validateHexPrivkey, validateShare, validateGroup, validateRelay, validateBfcred, validateCredentialFormat, validateRelayList, validateCredentialSet, validateMinimumShares, validateWithOptions, VALIDATION_CONSTANTS } from './validation.js';\n// Export peer management functions\nexport { PeerManager, StaticPeerManager, createPeerManager, createPeerManagerRobust, validatePeerCredentials, extractPeersFromCredentials, pingPeers, checkPeerStatus, DEFAULT_PEER_MONITOR_CONFIG, \n// Pubkey utility functions\nnormalizePubkey, addPubkeyPrefix, comparePubkeys, extractSelfPubkeyFromCredentials } from './peer.js';\n// Export policy helpers\nexport { normalizeNodePolicyInput, normalizeNodePolicies, prepareNodePolicies, setNodePolicies, updateNodePolicy, getNodePolicies, getNodePolicy, canSendToPeer, canReceiveFromPeer, summarizeNodePolicyMatrix } from './policy.js';\n// Export a convenience class for easier usage\nexport class IglooCore {\n constructor(defaultRelays = [\n \"wss://relay.damus.io\",\n \"wss://relay.primal.net\"\n ]) {\n this.defaultRelays = defaultRelays;\n }\n /**\n * Generate a new keyset from a secret key\n */\n async generateKeyset(threshold, totalMembers, secretKey) {\n const { generateKeysetWithSecret } = await import('./keyset.js');\n return generateKeysetWithSecret(threshold, totalMembers, secretKey);\n }\n /**\n * Create and connect a BifrostNode\n */\n async createNode(groupCredential, shareCredential, relaysOrOptions) {\n const { createAndConnectNode } = await import('./node.js');\n let relays;\n let policies;\n let eventConfig;\n if (Array.isArray(relaysOrOptions)) {\n relays = relaysOrOptions;\n }\n else if (relaysOrOptions) {\n relays = relaysOrOptions.relays;\n policies = relaysOrOptions.policies;\n eventConfig = relaysOrOptions.eventConfig;\n }\n return createAndConnectNode({\n group: groupCredential,\n share: shareCredential,\n relays: relays || this.defaultRelays,\n policies\n }, eventConfig);\n }\n /**\n * Create and connect a BifrostNode with enhanced state information\n */\n async createEnhancedNode(groupCredential, shareCredential, relaysOrOptions, legacyOptions) {\n const { createConnectedNode } = await import('./node.js');\n let relays;\n let policies;\n let connectionTimeout;\n let autoReconnect;\n let eventConfig;\n if (Array.isArray(relaysOrOptions)) {\n relays = relaysOrOptions;\n if (legacyOptions) {\n connectionTimeout = legacyOptions.connectionTimeout;\n autoReconnect = legacyOptions.autoReconnect;\n }\n }\n else if (relaysOrOptions) {\n relays = relaysOrOptions.relays;\n policies = relaysOrOptions.policies;\n connectionTimeout = relaysOrOptions.connectionTimeout;\n autoReconnect = relaysOrOptions.autoReconnect;\n eventConfig = relaysOrOptions.eventConfig;\n }\n return createConnectedNode({\n group: groupCredential,\n share: shareCredential,\n relays: relays || this.defaultRelays,\n policies,\n connectionTimeout,\n autoReconnect\n }, eventConfig);\n }\n /**\n * Check if a BifrostNode is ready\n */\n async isNodeReady(node) {\n const { isNodeReady } = await import('./node.js');\n return isNodeReady(node);\n }\n /**\n * Clean up a BifrostNode completely\n */\n async cleanupNode(node) {\n const { cleanupBifrostNode } = await import('./node.js');\n return cleanupBifrostNode(node);\n }\n /**\n * Set node-level peer policies (optionally merging with existing configuration)\n */\n async setNodePolicies(node, policies, options = {}) {\n const { setNodePolicies } = await import('./policy.js');\n return setNodePolicies(node, policies, options);\n }\n /**\n * Update (merge) a single node policy\n */\n async updateNodePolicy(node, policy) {\n const { updateNodePolicy } = await import('./policy.js');\n return updateNodePolicy(node, policy);\n }\n /**\n * Retrieve current policy summaries for the node\n */\n async getNodePolicies(node) {\n const { getNodePolicies } = await import('./policy.js');\n return getNodePolicies(node);\n }\n /**\n * Lookup a policy for a specific peer by pubkey\n */\n async getNodePolicy(node, pubkey) {\n const { getNodePolicy } = await import('./policy.js');\n return getNodePolicy(node, pubkey);\n }\n /**\n * Determine if outbound messaging is allowed for a peer\n */\n async canNodeSendTo(node, pubkey) {\n const { canSendToPeer } = await import('./policy.js');\n return canSendToPeer(node, pubkey);\n }\n /**\n * Determine if inbound messaging is allowed for a peer\n */\n async canNodeReceiveFrom(node, pubkey) {\n const { canReceiveFromPeer } = await import('./policy.js');\n return canReceiveFromPeer(node, pubkey);\n }\n /**\n * Summarize policies as a quick matrix keyed by pubkey\n */\n async summarizeNodePolicies(node) {\n const { summarizeNodePolicyMatrix } = await import('./policy.js');\n return summarizeNodePolicyMatrix(node);\n }\n /**\n * Wait for an echo on a specific share\n */\n async waitForEcho(groupCredential, shareCredential, timeout = 30000) {\n const { awaitShareEcho } = await import('./echo.js');\n return awaitShareEcho(groupCredential, shareCredential, {\n relays: this.defaultRelays,\n timeout\n });\n }\n /**\n * Start listening for echoes on all shares\n */\n async startEchoListeners(groupCredential, shareCredentials, onEchoReceived) {\n const { startListeningForAllEchoes } = await import('./echo.js');\n return startListeningForAllEchoes(groupCredential, shareCredentials, onEchoReceived, { relays: this.defaultRelays });\n }\n /**\n * Recover secret key from shares\n */\n async recoverSecret(groupCredential, shareCredentials) {\n const { recoverSecretKeyFromCredentials } = await import('./keyset.js');\n return recoverSecretKeyFromCredentials(groupCredential, shareCredentials);\n }\n /**\n * Get details about a share\n */\n async getShareInfo(shareCredential) {\n const { getShareDetails } = await import('./keyset.js');\n return getShareDetails(shareCredential);\n }\n /**\n * Generate a new nostr key pair\n */\n async generateKeys() {\n const { generateNostrKeyPair } = await import('./nostr.js');\n return generateNostrKeyPair();\n }\n /**\n * Convert between nostr key formats\n */\n async convertKey(key, targetFormat) {\n const { nsecToHex, hexToNsec, hexToNpub, npubToHex, validateHexKey, validateNostrKey } = await import('./nostr.js');\n if (key.startsWith('nsec')) {\n validateNostrKey(key); // Validate before conversion\n switch (targetFormat) {\n case 'hex': return nsecToHex(key);\n case 'nsec': return key;\n case 'npub': throw new Error('Cannot convert private key to public key format directly');\n }\n }\n else if (key.startsWith('npub')) {\n validateNostrKey(key); // Validate before conversion\n switch (targetFormat) {\n case 'hex': return npubToHex(key);\n case 'npub': return key;\n case 'nsec': throw new Error('Cannot convert public key to private key');\n }\n }\n else {\n // Assume hex format - validate it\n validateHexKey(key);\n switch (targetFormat) {\n case 'hex': return key;\n case 'nsec': return hexToNsec(key);\n case 'npub': return hexToNpub(key);\n }\n }\n }\n /**\n * Derive public key from private key\n */\n async derivePublicKey(privateKey) {\n const { derivePublicKey, validateHexKey, validateNostrKey } = await import('./nostr.js');\n // Validate input before deriving\n if (privateKey.startsWith('nsec')) {\n validateNostrKey(privateKey);\n }\n else {\n validateHexKey(privateKey);\n }\n return derivePublicKey(privateKey);\n }\n /**\n * Validate a credential set (group, shares, relays)\n */\n async validateCredentials(credentials) {\n const { validateCredentialSet } = await import('./validation.js');\n return validateCredentialSet(credentials);\n }\n /**\n * Validate and normalize relay URLs\n */\n async validateRelays(relays) {\n const { validateRelayList } = await import('./validation.js');\n return validateRelayList(relays);\n }\n /**\n * Validate a single credential by type\n */\n async validateCredential(credential, type) {\n const { validateCredentialFormat } = await import('./validation.js');\n return validateCredentialFormat(credential, type);\n }\n /**\n * Validate credentials with advanced options\n */\n async validateWithOptions(credentials, options = {}) {\n const { validateWithOptions } = await import('./validation.js');\n return validateWithOptions(credentials, options);\n }\n // Peer Management Methods\n /**\n * Create a peer manager for monitoring peer status\n */\n async createPeerManager(node, groupCredential, shareCredential, config) {\n const { createPeerManager } = await import('./peer.js');\n return createPeerManager(node, groupCredential, shareCredential, config);\n }\n /**\n * Create a robust peer manager with enhanced error handling and fallback options\n */\n async createPeerManagerRobust(node, groupCredential, shareCredential, config) {\n const { createPeerManagerRobust } = await import('./peer.js');\n return createPeerManagerRobust(node, groupCredential, shareCredential, config);\n }\n /**\n * Validate peer credentials before creating peer manager\n */\n async validatePeerCredentials(groupCredential, shareCredential) {\n const { validatePeerCredentials } = await import('./peer.js');\n return validatePeerCredentials(groupCredential, shareCredential);\n }\n /**\n * Extract peer list from credentials\n */\n async extractPeers(groupCredential, shareCredential) {\n const { extractPeersFromCredentials } = await import('./peer.js');\n return extractPeersFromCredentials(groupCredential, shareCredential);\n }\n /**\n * Check peer status using ping\n */\n async checkPeerStatus(node, groupCredential, shareCredential) {\n const { checkPeerStatus } = await import('./peer.js');\n return checkPeerStatus(node, groupCredential, shareCredential);\n }\n /**\n * Simple ping to get online peers\n */\n async pingPeers(node, timeout) {\n const { pingPeers } = await import('./peer.js');\n return pingPeers(node, timeout);\n }\n /**\n * Ping a specific peer with detailed results\n */\n async pingPeer(node, peerPubkey, options) {\n const { pingPeer } = await import('./ping.js');\n return pingPeer(node, peerPubkey, options);\n }\n /**\n * Ping multiple peers with detailed results and latency\n */\n async pingPeersAdvanced(node, peerPubkeys, options) {\n const { pingPeers } = await import('./ping.js');\n return pingPeers(node, peerPubkeys, options);\n }\n /**\n * Create a ping monitor for continuous peer monitoring\n */\n async createPingMonitor(node, peerPubkeys, config) {\n const { createPingMonitor } = await import('./ping.js');\n return createPingMonitor(node, peerPubkeys, config);\n }\n /**\n * Run comprehensive ping diagnostics\n */\n async runPingDiagnostics(node, peerPubkeys, options) {\n const { runPingDiagnostics } = await import('./ping.js');\n return runPingDiagnostics(node, peerPubkeys, options);\n }\n /**\n * Ping peers from credentials (convenience method)\n */\n async pingPeersFromCredentials(groupCredential, shareCredential, options) {\n const { pingPeersFromCredentials } = await import('./ping.js');\n return pingPeersFromCredentials(groupCredential, shareCredential, {\n relays: this.defaultRelays,\n ...options\n });\n }\n // Pubkey Utility Methods\n /**\n * Normalize a pubkey by removing 02/03 prefix if present\n */\n async normalizePubkey(pubkey) {\n const { normalizePubkey } = await import('./peer.js');\n return normalizePubkey(pubkey);\n }\n /**\n * Add prefix to a pubkey if missing\n */\n async addPubkeyPrefix(pubkey, prefix = '02') {\n const { addPubkeyPrefix } = await import('./peer.js');\n return addPubkeyPrefix(pubkey, prefix);\n }\n /**\n * Compare two pubkeys after normalization\n */\n async comparePubkeys(pubkey1, pubkey2) {\n const { comparePubkeys } = await import('./peer.js');\n return comparePubkeys(pubkey1, pubkey2);\n }\n /**\n * Extract self pubkey from credentials with enhanced error handling\n */\n async extractSelfPubkey(groupCredential, shareCredential, options) {\n const { extractSelfPubkeyFromCredentials } = await import('./peer.js');\n return extractSelfPubkeyFromCredentials(groupCredential, shareCredential, options);\n }\n}\n// Create a default instance\nexport const igloo = new IglooCore();\n"],"x_google_ignoreList":[0],"mappings":"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"}