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 +0,0 @@
1
- {"version":3,"file":"policy-8HcjulLD.cjs","names":["PolicyError","npubToHex","NodePolicyInputSchema"],"sources":["../node_modules/@frostr/igloo-core/dist/policy.js"],"sourcesContent":["import { NodePolicyInputSchema, PolicyError } from './types.js';\nimport { npubToHex } from './nostr.js';\nconst COMPRESSED_PUBKEY_REGEX = /^(02|03)[0-9a-fA-F]{64}$/;\nconst STRIPPED_PUBKEY_REGEX = /^[0-9a-fA-F]{64}$/;\nconst policyMetadataStore = new WeakMap();\nfunction normalizePolicyPubkey(pubkey) {\n if (!pubkey) {\n throw new PolicyError('Peer pubkey is required');\n }\n let normalized = pubkey.trim();\n if (normalized.startsWith('npub')) {\n try {\n normalized = npubToHex(normalized);\n }\n catch (error) {\n throw new PolicyError('Failed to convert npub to hex', { pubkey, error });\n }\n }\n if (COMPRESSED_PUBKEY_REGEX.test(normalized)) {\n normalized = normalized.slice(2);\n }\n if (STRIPPED_PUBKEY_REGEX.test(normalized)) {\n return normalized.toLowerCase();\n }\n throw new PolicyError('Peer pubkey must be a 64-character hex string', { pubkey });\n}\nfunction normalizePeerPubkeyLoose(pubkey) {\n if (!pubkey)\n return '';\n const trimmed = pubkey.trim();\n if (STRIPPED_PUBKEY_REGEX.test(trimmed)) {\n return trimmed.toLowerCase();\n }\n if (COMPRESSED_PUBKEY_REGEX.test(trimmed)) {\n return trimmed.slice(2).toLowerCase();\n }\n return trimmed.toLowerCase();\n}\nfunction extractPolicyExtras(policy) {\n const { label, roles, metadata, note, source } = policy;\n const extras = {};\n if (label)\n extras.label = label;\n if (roles && roles.length)\n extras.roles = [...roles];\n if (metadata && Object.keys(metadata).length)\n extras.metadata = metadata;\n if (note)\n extras.note = note;\n if (source)\n extras.source = source;\n return Object.keys(extras).length ? extras : undefined;\n}\nfunction getPolicyMetadataMap(node) {\n let map = policyMetadataStore.get(node);\n if (!map) {\n map = new Map();\n policyMetadataStore.set(node, map);\n }\n return map;\n}\nfunction normalizeNodePolicyInputInternal(policy) {\n const parsed = NodePolicyInputSchema.parse(policy);\n const pubkey = normalizePolicyPubkey(parsed.pubkey);\n const allowSend = parsed.allowSend ?? parsed.send ?? parsed.policy?.send ?? true;\n const allowReceive = parsed.allowReceive ?? parsed.recv ?? parsed.policy?.recv ?? true;\n return {\n pubkey,\n allowSend,\n allowReceive,\n label: parsed.label,\n roles: parsed.roles,\n metadata: parsed.metadata,\n note: parsed.note,\n source: parsed.source ?? 'config'\n };\n}\nexport function normalizeNodePolicyInput(policy) {\n return normalizeNodePolicyInputInternal(policy);\n}\nexport function normalizeNodePolicies(policies) {\n if (!policies || policies.length === 0) {\n return [];\n }\n const dedup = new Map();\n for (const policy of policies) {\n const normalized = normalizeNodePolicyInputInternal(policy);\n dedup.set(normalized.pubkey, normalized);\n }\n return Array.from(dedup.values());\n}\nfunction toPeerConfig(policy) {\n return {\n pubkey: policy.pubkey,\n policy: {\n send: policy.allowSend,\n recv: policy.allowReceive\n }\n };\n}\nexport function prepareNodePolicies(policies) {\n const normalizedPolicies = normalizeNodePolicies(policies);\n const peerConfigs = normalizedPolicies.map(toPeerConfig);\n return { peerConfigs, normalizedPolicies };\n}\nfunction syncPolicyMetadata(node, policies, merge) {\n const map = getPolicyMetadataMap(node);\n if (!merge) {\n map.clear();\n }\n for (const policy of policies) {\n const extras = extractPolicyExtras(policy);\n if (extras) {\n if (merge && map.has(policy.pubkey)) {\n map.set(policy.pubkey, {\n ...map.get(policy.pubkey),\n ...extras\n });\n }\n else {\n map.set(policy.pubkey, extras);\n }\n }\n else if (!merge) {\n map.delete(policy.pubkey);\n }\n }\n}\nfunction syncPeersWithPolicies(node, policyMap, merge) {\n const peers = node.peers;\n if (!peers)\n return;\n for (const peer of peers) {\n const key = normalizePeerPubkeyLoose(peer.pubkey);\n const policy = policyMap.get(key);\n if (policy) {\n peer.policy = { send: policy.send, recv: policy.recv };\n }\n else if (!merge) {\n peer.policy = { send: true, recv: true };\n }\n }\n}\nfunction collectPolicyMapFromConfig(node) {\n const map = new Map();\n const configPolicies = node.config?.policies;\n if (!configPolicies)\n return map;\n for (const peerConfig of configPolicies) {\n const key = normalizePeerPubkeyLoose(peerConfig.pubkey);\n const send = peerConfig.policy?.send ?? true;\n const recv = peerConfig.policy?.recv ?? true;\n map.set(key, { send, recv });\n }\n return map;\n}\nfunction buildNodePolicySummary(pubkey, policy, peer, extras, defaultSource) {\n const status = peer?.status === 'online' || peer?.status === 'offline'\n ? peer.status\n : 'unknown';\n const lastUpdated = typeof peer?.updated === 'number' && !Number.isNaN(peer.updated)\n ? new Date(peer.updated)\n : undefined;\n return {\n pubkey,\n allowSend: policy.send,\n allowReceive: policy.recv,\n label: extras?.label,\n roles: extras?.roles,\n metadata: extras?.metadata,\n note: extras?.note,\n source: extras?.source ?? defaultSource,\n status,\n lastUpdated\n };\n}\nexport function registerNodePolicyMetadata(node, policies) {\n if (!policies.length)\n return;\n syncPolicyMetadata(node, policies, false);\n}\nexport function setNodePolicies(node, policies, options = {}) {\n const { merge = false } = options;\n const { normalizedPolicies } = prepareNodePolicies(policies);\n const policyMap = merge\n ? collectPolicyMapFromConfig(node)\n : new Map();\n for (const policy of normalizedPolicies) {\n policyMap.set(policy.pubkey, {\n send: policy.allowSend,\n recv: policy.allowReceive\n });\n }\n const config = node.config;\n if (!config) {\n throw new PolicyError('Bifrost node config is not available');\n }\n const newConfigPolicies = Array.from(policyMap.entries()).map(([pubkey, policy]) => ({\n pubkey,\n policy\n }));\n config.policies = newConfigPolicies;\n syncPeersWithPolicies(node, policyMap, merge);\n syncPolicyMetadata(node, normalizedPolicies, merge);\n return getNodePolicies(node);\n}\nexport function updateNodePolicy(node, policy) {\n const summaries = setNodePolicies(node, [policy], { merge: true });\n const targetPubkey = normalizePolicyPubkey(policy.pubkey);\n return summaries.find(summary => summary.pubkey === targetPubkey);\n}\nexport function getNodePolicies(node) {\n const peers = node.peers;\n const configMap = collectPolicyMapFromConfig(node);\n const metadataMap = getPolicyMetadataMap(node);\n const summaries = [];\n const seen = new Set();\n if (peers) {\n for (const peer of peers) {\n const key = normalizePeerPubkeyLoose(peer.pubkey);\n const policy = configMap.get(key) ?? peer.policy ?? { send: true, recv: true };\n const extras = metadataMap.get(key);\n summaries.push(buildNodePolicySummary(key, policy, peer, extras, 'runtime'));\n seen.add(key);\n }\n }\n for (const [pubkey, policy] of configMap.entries()) {\n if (seen.has(pubkey))\n continue;\n const extras = metadataMap.get(pubkey);\n summaries.push(buildNodePolicySummary(pubkey, policy, undefined, extras, 'config'));\n }\n return summaries.sort((a, b) => a.pubkey.localeCompare(b.pubkey));\n}\nexport function getNodePolicy(node, pubkey) {\n const normalized = normalizePolicyPubkey(pubkey);\n return getNodePolicies(node).find(policy => policy.pubkey === normalized);\n}\nexport function canSendToPeer(node, pubkey) {\n const normalized = normalizePolicyPubkey(pubkey);\n const configMap = collectPolicyMapFromConfig(node);\n if (configMap.has(normalized)) {\n return configMap.get(normalized).send !== false;\n }\n const peers = node.peers;\n const peer = peers?.find(p => normalizePeerPubkeyLoose(p.pubkey) === normalized);\n return peer?.policy?.send ?? true;\n}\nexport function canReceiveFromPeer(node, pubkey) {\n const normalized = normalizePolicyPubkey(pubkey);\n const configMap = collectPolicyMapFromConfig(node);\n if (configMap.has(normalized)) {\n return configMap.get(normalized).recv !== false;\n }\n const peers = node.peers;\n const peer = peers?.find(p => normalizePeerPubkeyLoose(p.pubkey) === normalized);\n return peer?.policy?.recv ?? true;\n}\nexport function summarizeNodePolicyMatrix(node) {\n const summaries = getNodePolicies(node);\n return summaries.reduce((acc, summary) => {\n acc[summary.pubkey] = {\n send: summary.allowSend,\n recv: summary.allowReceive,\n status: summary.status\n };\n return acc;\n }, {});\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import "./types-CTm_FHYD.mjs";
2
- import "./nostr-D4E52XRU.mjs";
3
- import { a as normalizeNodePolicies, c as registerNodePolicyMetadata, 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
-
5
- export { canReceiveFromPeer, canSendToPeer, getNodePolicies, getNodePolicy, setNodePolicies, summarizeNodePolicyMatrix, updateNodePolicy };
@@ -1,11 +0,0 @@
1
- require('./types-B-TLIS13.cjs');
2
- require('./nostr-Hv2tsnuI.cjs');
3
- const require_policy = require('./policy-8HcjulLD.cjs');
4
-
5
- exports.canReceiveFromPeer = require_policy.canReceiveFromPeer;
6
- exports.canSendToPeer = require_policy.canSendToPeer;
7
- exports.getNodePolicies = require_policy.getNodePolicies;
8
- exports.getNodePolicy = require_policy.getNodePolicy;
9
- exports.setNodePolicies = require_policy.setNodePolicies;
10
- exports.summarizeNodePolicyMatrix = require_policy.summarizeNodePolicyMatrix;
11
- exports.updateNodePolicy = require_policy.updateNodePolicy;
@@ -1,228 +0,0 @@
1
- import { m as PolicyError, u as NodePolicyInputSchema } from "./types-CTm_FHYD.mjs";
2
- import { a as npubToHex } from "./nostr-D4E52XRU.mjs";
3
-
4
- //#region node_modules/@frostr/igloo-core/dist/policy.js
5
- const COMPRESSED_PUBKEY_REGEX = /^(02|03)[0-9a-fA-F]{64}$/;
6
- const STRIPPED_PUBKEY_REGEX = /^[0-9a-fA-F]{64}$/;
7
- const policyMetadataStore = /* @__PURE__ */ new WeakMap();
8
- function normalizePolicyPubkey(pubkey) {
9
- if (!pubkey) throw new PolicyError("Peer pubkey is required");
10
- let normalized = pubkey.trim();
11
- if (normalized.startsWith("npub")) try {
12
- normalized = npubToHex(normalized);
13
- } catch (error) {
14
- throw new PolicyError("Failed to convert npub to hex", {
15
- pubkey,
16
- error
17
- });
18
- }
19
- if (COMPRESSED_PUBKEY_REGEX.test(normalized)) normalized = normalized.slice(2);
20
- if (STRIPPED_PUBKEY_REGEX.test(normalized)) return normalized.toLowerCase();
21
- throw new PolicyError("Peer pubkey must be a 64-character hex string", { pubkey });
22
- }
23
- function normalizePeerPubkeyLoose(pubkey) {
24
- if (!pubkey) return "";
25
- const trimmed = pubkey.trim();
26
- if (STRIPPED_PUBKEY_REGEX.test(trimmed)) return trimmed.toLowerCase();
27
- if (COMPRESSED_PUBKEY_REGEX.test(trimmed)) return trimmed.slice(2).toLowerCase();
28
- return trimmed.toLowerCase();
29
- }
30
- function extractPolicyExtras(policy) {
31
- const { label, roles, metadata, note, source } = policy;
32
- const extras = {};
33
- if (label) extras.label = label;
34
- if (roles && roles.length) extras.roles = [...roles];
35
- if (metadata && Object.keys(metadata).length) extras.metadata = metadata;
36
- if (note) extras.note = note;
37
- if (source) extras.source = source;
38
- return Object.keys(extras).length ? extras : void 0;
39
- }
40
- function getPolicyMetadataMap(node) {
41
- let map = policyMetadataStore.get(node);
42
- if (!map) {
43
- map = /* @__PURE__ */ new Map();
44
- policyMetadataStore.set(node, map);
45
- }
46
- return map;
47
- }
48
- function normalizeNodePolicyInputInternal(policy) {
49
- const parsed = NodePolicyInputSchema.parse(policy);
50
- return {
51
- pubkey: normalizePolicyPubkey(parsed.pubkey),
52
- allowSend: parsed.allowSend ?? parsed.send ?? parsed.policy?.send ?? true,
53
- allowReceive: parsed.allowReceive ?? parsed.recv ?? parsed.policy?.recv ?? true,
54
- label: parsed.label,
55
- roles: parsed.roles,
56
- metadata: parsed.metadata,
57
- note: parsed.note,
58
- source: parsed.source ?? "config"
59
- };
60
- }
61
- function normalizeNodePolicyInput(policy) {
62
- return normalizeNodePolicyInputInternal(policy);
63
- }
64
- function normalizeNodePolicies(policies) {
65
- if (!policies || policies.length === 0) return [];
66
- const dedup = /* @__PURE__ */ new Map();
67
- for (const policy of policies) {
68
- const normalized = normalizeNodePolicyInputInternal(policy);
69
- dedup.set(normalized.pubkey, normalized);
70
- }
71
- return Array.from(dedup.values());
72
- }
73
- function toPeerConfig(policy) {
74
- return {
75
- pubkey: policy.pubkey,
76
- policy: {
77
- send: policy.allowSend,
78
- recv: policy.allowReceive
79
- }
80
- };
81
- }
82
- function prepareNodePolicies(policies) {
83
- const normalizedPolicies = normalizeNodePolicies(policies);
84
- return {
85
- peerConfigs: normalizedPolicies.map(toPeerConfig),
86
- normalizedPolicies
87
- };
88
- }
89
- function syncPolicyMetadata(node, policies, merge) {
90
- const map = getPolicyMetadataMap(node);
91
- if (!merge) map.clear();
92
- for (const policy of policies) {
93
- const extras = extractPolicyExtras(policy);
94
- if (extras) if (merge && map.has(policy.pubkey)) map.set(policy.pubkey, {
95
- ...map.get(policy.pubkey),
96
- ...extras
97
- });
98
- else map.set(policy.pubkey, extras);
99
- else if (!merge) map.delete(policy.pubkey);
100
- }
101
- }
102
- function syncPeersWithPolicies(node, policyMap, merge) {
103
- const peers = node.peers;
104
- if (!peers) return;
105
- for (const peer of peers) {
106
- const key = normalizePeerPubkeyLoose(peer.pubkey);
107
- const policy = policyMap.get(key);
108
- if (policy) peer.policy = {
109
- send: policy.send,
110
- recv: policy.recv
111
- };
112
- else if (!merge) peer.policy = {
113
- send: true,
114
- recv: true
115
- };
116
- }
117
- }
118
- function collectPolicyMapFromConfig(node) {
119
- const map = /* @__PURE__ */ new Map();
120
- const configPolicies = node.config?.policies;
121
- if (!configPolicies) return map;
122
- for (const peerConfig of configPolicies) {
123
- const key = normalizePeerPubkeyLoose(peerConfig.pubkey);
124
- const send = peerConfig.policy?.send ?? true;
125
- const recv = peerConfig.policy?.recv ?? true;
126
- map.set(key, {
127
- send,
128
- recv
129
- });
130
- }
131
- return map;
132
- }
133
- function buildNodePolicySummary(pubkey, policy, peer, extras, defaultSource) {
134
- const status = peer?.status === "online" || peer?.status === "offline" ? peer.status : "unknown";
135
- const lastUpdated = typeof peer?.updated === "number" && !Number.isNaN(peer.updated) ? new Date(peer.updated) : void 0;
136
- return {
137
- pubkey,
138
- allowSend: policy.send,
139
- allowReceive: policy.recv,
140
- label: extras?.label,
141
- roles: extras?.roles,
142
- metadata: extras?.metadata,
143
- note: extras?.note,
144
- source: extras?.source ?? defaultSource,
145
- status,
146
- lastUpdated
147
- };
148
- }
149
- function registerNodePolicyMetadata(node, policies) {
150
- if (!policies.length) return;
151
- syncPolicyMetadata(node, policies, false);
152
- }
153
- function setNodePolicies(node, policies, options = {}) {
154
- const { merge = false } = options;
155
- const { normalizedPolicies } = prepareNodePolicies(policies);
156
- const policyMap = merge ? collectPolicyMapFromConfig(node) : /* @__PURE__ */ new Map();
157
- for (const policy of normalizedPolicies) policyMap.set(policy.pubkey, {
158
- send: policy.allowSend,
159
- recv: policy.allowReceive
160
- });
161
- const config = node.config;
162
- if (!config) throw new PolicyError("Bifrost node config is not available");
163
- config.policies = Array.from(policyMap.entries()).map(([pubkey, policy]) => ({
164
- pubkey,
165
- policy
166
- }));
167
- syncPeersWithPolicies(node, policyMap, merge);
168
- syncPolicyMetadata(node, normalizedPolicies, merge);
169
- return getNodePolicies(node);
170
- }
171
- function updateNodePolicy(node, policy) {
172
- const summaries = setNodePolicies(node, [policy], { merge: true });
173
- const targetPubkey = normalizePolicyPubkey(policy.pubkey);
174
- return summaries.find((summary) => summary.pubkey === targetPubkey);
175
- }
176
- function getNodePolicies(node) {
177
- const peers = node.peers;
178
- const configMap = collectPolicyMapFromConfig(node);
179
- const metadataMap = getPolicyMetadataMap(node);
180
- const summaries = [];
181
- const seen = /* @__PURE__ */ new Set();
182
- if (peers) for (const peer of peers) {
183
- const key = normalizePeerPubkeyLoose(peer.pubkey);
184
- const policy = configMap.get(key) ?? peer.policy ?? {
185
- send: true,
186
- recv: true
187
- };
188
- const extras = metadataMap.get(key);
189
- summaries.push(buildNodePolicySummary(key, policy, peer, extras, "runtime"));
190
- seen.add(key);
191
- }
192
- for (const [pubkey, policy] of configMap.entries()) {
193
- if (seen.has(pubkey)) continue;
194
- const extras = metadataMap.get(pubkey);
195
- summaries.push(buildNodePolicySummary(pubkey, policy, void 0, extras, "config"));
196
- }
197
- return summaries.sort((a, b) => a.pubkey.localeCompare(b.pubkey));
198
- }
199
- function getNodePolicy(node, pubkey) {
200
- const normalized = normalizePolicyPubkey(pubkey);
201
- return getNodePolicies(node).find((policy) => policy.pubkey === normalized);
202
- }
203
- function canSendToPeer(node, pubkey) {
204
- const normalized = normalizePolicyPubkey(pubkey);
205
- const configMap = collectPolicyMapFromConfig(node);
206
- if (configMap.has(normalized)) return configMap.get(normalized).send !== false;
207
- return (node.peers?.find((p) => normalizePeerPubkeyLoose(p.pubkey) === normalized))?.policy?.send ?? true;
208
- }
209
- function canReceiveFromPeer(node, pubkey) {
210
- const normalized = normalizePolicyPubkey(pubkey);
211
- const configMap = collectPolicyMapFromConfig(node);
212
- if (configMap.has(normalized)) return configMap.get(normalized).recv !== false;
213
- return (node.peers?.find((p) => normalizePeerPubkeyLoose(p.pubkey) === normalized))?.policy?.recv ?? true;
214
- }
215
- function summarizeNodePolicyMatrix(node) {
216
- return getNodePolicies(node).reduce((acc, summary) => {
217
- acc[summary.pubkey] = {
218
- send: summary.allowSend,
219
- recv: summary.allowReceive,
220
- status: summary.status
221
- };
222
- return acc;
223
- }, {});
224
- }
225
-
226
- //#endregion
227
- export { normalizeNodePolicies as a, registerNodePolicyMetadata as c, updateNodePolicy as d, getNodePolicy as i, setNodePolicies as l, canSendToPeer as n, normalizeNodePolicyInput as o, getNodePolicies as r, prepareNodePolicies as s, canReceiveFromPeer as t, summarizeNodePolicyMatrix as u };
228
- //# sourceMappingURL=policy-D_nFHHjo.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"policy-D_nFHHjo.mjs","names":[],"sources":["../node_modules/@frostr/igloo-core/dist/policy.js"],"sourcesContent":["import { NodePolicyInputSchema, PolicyError } from './types.js';\nimport { npubToHex } from './nostr.js';\nconst COMPRESSED_PUBKEY_REGEX = /^(02|03)[0-9a-fA-F]{64}$/;\nconst STRIPPED_PUBKEY_REGEX = /^[0-9a-fA-F]{64}$/;\nconst policyMetadataStore = new WeakMap();\nfunction normalizePolicyPubkey(pubkey) {\n if (!pubkey) {\n throw new PolicyError('Peer pubkey is required');\n }\n let normalized = pubkey.trim();\n if (normalized.startsWith('npub')) {\n try {\n normalized = npubToHex(normalized);\n }\n catch (error) {\n throw new PolicyError('Failed to convert npub to hex', { pubkey, error });\n }\n }\n if (COMPRESSED_PUBKEY_REGEX.test(normalized)) {\n normalized = normalized.slice(2);\n }\n if (STRIPPED_PUBKEY_REGEX.test(normalized)) {\n return normalized.toLowerCase();\n }\n throw new PolicyError('Peer pubkey must be a 64-character hex string', { pubkey });\n}\nfunction normalizePeerPubkeyLoose(pubkey) {\n if (!pubkey)\n return '';\n const trimmed = pubkey.trim();\n if (STRIPPED_PUBKEY_REGEX.test(trimmed)) {\n return trimmed.toLowerCase();\n }\n if (COMPRESSED_PUBKEY_REGEX.test(trimmed)) {\n return trimmed.slice(2).toLowerCase();\n }\n return trimmed.toLowerCase();\n}\nfunction extractPolicyExtras(policy) {\n const { label, roles, metadata, note, source } = policy;\n const extras = {};\n if (label)\n extras.label = label;\n if (roles && roles.length)\n extras.roles = [...roles];\n if (metadata && Object.keys(metadata).length)\n extras.metadata = metadata;\n if (note)\n extras.note = note;\n if (source)\n extras.source = source;\n return Object.keys(extras).length ? extras : undefined;\n}\nfunction getPolicyMetadataMap(node) {\n let map = policyMetadataStore.get(node);\n if (!map) {\n map = new Map();\n policyMetadataStore.set(node, map);\n }\n return map;\n}\nfunction normalizeNodePolicyInputInternal(policy) {\n const parsed = NodePolicyInputSchema.parse(policy);\n const pubkey = normalizePolicyPubkey(parsed.pubkey);\n const allowSend = parsed.allowSend ?? parsed.send ?? parsed.policy?.send ?? true;\n const allowReceive = parsed.allowReceive ?? parsed.recv ?? parsed.policy?.recv ?? true;\n return {\n pubkey,\n allowSend,\n allowReceive,\n label: parsed.label,\n roles: parsed.roles,\n metadata: parsed.metadata,\n note: parsed.note,\n source: parsed.source ?? 'config'\n };\n}\nexport function normalizeNodePolicyInput(policy) {\n return normalizeNodePolicyInputInternal(policy);\n}\nexport function normalizeNodePolicies(policies) {\n if (!policies || policies.length === 0) {\n return [];\n }\n const dedup = new Map();\n for (const policy of policies) {\n const normalized = normalizeNodePolicyInputInternal(policy);\n dedup.set(normalized.pubkey, normalized);\n }\n return Array.from(dedup.values());\n}\nfunction toPeerConfig(policy) {\n return {\n pubkey: policy.pubkey,\n policy: {\n send: policy.allowSend,\n recv: policy.allowReceive\n }\n };\n}\nexport function prepareNodePolicies(policies) {\n const normalizedPolicies = normalizeNodePolicies(policies);\n const peerConfigs = normalizedPolicies.map(toPeerConfig);\n return { peerConfigs, normalizedPolicies };\n}\nfunction syncPolicyMetadata(node, policies, merge) {\n const map = getPolicyMetadataMap(node);\n if (!merge) {\n map.clear();\n }\n for (const policy of policies) {\n const extras = extractPolicyExtras(policy);\n if (extras) {\n if (merge && map.has(policy.pubkey)) {\n map.set(policy.pubkey, {\n ...map.get(policy.pubkey),\n ...extras\n });\n }\n else {\n map.set(policy.pubkey, extras);\n }\n }\n else if (!merge) {\n map.delete(policy.pubkey);\n }\n }\n}\nfunction syncPeersWithPolicies(node, policyMap, merge) {\n const peers = node.peers;\n if (!peers)\n return;\n for (const peer of peers) {\n const key = normalizePeerPubkeyLoose(peer.pubkey);\n const policy = policyMap.get(key);\n if (policy) {\n peer.policy = { send: policy.send, recv: policy.recv };\n }\n else if (!merge) {\n peer.policy = { send: true, recv: true };\n }\n }\n}\nfunction collectPolicyMapFromConfig(node) {\n const map = new Map();\n const configPolicies = node.config?.policies;\n if (!configPolicies)\n return map;\n for (const peerConfig of configPolicies) {\n const key = normalizePeerPubkeyLoose(peerConfig.pubkey);\n const send = peerConfig.policy?.send ?? true;\n const recv = peerConfig.policy?.recv ?? true;\n map.set(key, { send, recv });\n }\n return map;\n}\nfunction buildNodePolicySummary(pubkey, policy, peer, extras, defaultSource) {\n const status = peer?.status === 'online' || peer?.status === 'offline'\n ? peer.status\n : 'unknown';\n const lastUpdated = typeof peer?.updated === 'number' && !Number.isNaN(peer.updated)\n ? new Date(peer.updated)\n : undefined;\n return {\n pubkey,\n allowSend: policy.send,\n allowReceive: policy.recv,\n label: extras?.label,\n roles: extras?.roles,\n metadata: extras?.metadata,\n note: extras?.note,\n source: extras?.source ?? defaultSource,\n status,\n lastUpdated\n };\n}\nexport function registerNodePolicyMetadata(node, policies) {\n if (!policies.length)\n return;\n syncPolicyMetadata(node, policies, false);\n}\nexport function setNodePolicies(node, policies, options = {}) {\n const { merge = false } = options;\n const { normalizedPolicies } = prepareNodePolicies(policies);\n const policyMap = merge\n ? collectPolicyMapFromConfig(node)\n : new Map();\n for (const policy of normalizedPolicies) {\n policyMap.set(policy.pubkey, {\n send: policy.allowSend,\n recv: policy.allowReceive\n });\n }\n const config = node.config;\n if (!config) {\n throw new PolicyError('Bifrost node config is not available');\n }\n const newConfigPolicies = Array.from(policyMap.entries()).map(([pubkey, policy]) => ({\n pubkey,\n policy\n }));\n config.policies = newConfigPolicies;\n syncPeersWithPolicies(node, policyMap, merge);\n syncPolicyMetadata(node, normalizedPolicies, merge);\n return getNodePolicies(node);\n}\nexport function updateNodePolicy(node, policy) {\n const summaries = setNodePolicies(node, [policy], { merge: true });\n const targetPubkey = normalizePolicyPubkey(policy.pubkey);\n return summaries.find(summary => summary.pubkey === targetPubkey);\n}\nexport function getNodePolicies(node) {\n const peers = node.peers;\n const configMap = collectPolicyMapFromConfig(node);\n const metadataMap = getPolicyMetadataMap(node);\n const summaries = [];\n const seen = new Set();\n if (peers) {\n for (const peer of peers) {\n const key = normalizePeerPubkeyLoose(peer.pubkey);\n const policy = configMap.get(key) ?? peer.policy ?? { send: true, recv: true };\n const extras = metadataMap.get(key);\n summaries.push(buildNodePolicySummary(key, policy, peer, extras, 'runtime'));\n seen.add(key);\n }\n }\n for (const [pubkey, policy] of configMap.entries()) {\n if (seen.has(pubkey))\n continue;\n const extras = metadataMap.get(pubkey);\n summaries.push(buildNodePolicySummary(pubkey, policy, undefined, extras, 'config'));\n }\n return summaries.sort((a, b) => a.pubkey.localeCompare(b.pubkey));\n}\nexport function getNodePolicy(node, pubkey) {\n const normalized = normalizePolicyPubkey(pubkey);\n return getNodePolicies(node).find(policy => policy.pubkey === normalized);\n}\nexport function canSendToPeer(node, pubkey) {\n const normalized = normalizePolicyPubkey(pubkey);\n const configMap = collectPolicyMapFromConfig(node);\n if (configMap.has(normalized)) {\n return configMap.get(normalized).send !== false;\n }\n const peers = node.peers;\n const peer = peers?.find(p => normalizePeerPubkeyLoose(p.pubkey) === normalized);\n return peer?.policy?.send ?? true;\n}\nexport function canReceiveFromPeer(node, pubkey) {\n const normalized = normalizePolicyPubkey(pubkey);\n const configMap = collectPolicyMapFromConfig(node);\n if (configMap.has(normalized)) {\n return configMap.get(normalized).recv !== false;\n }\n const peers = node.peers;\n const peer = peers?.find(p => normalizePeerPubkeyLoose(p.pubkey) === normalized);\n return peer?.policy?.recv ?? true;\n}\nexport function summarizeNodePolicyMatrix(node) {\n const summaries = getNodePolicies(node);\n return summaries.reduce((acc, summary) => {\n acc[summary.pubkey] = {\n send: summary.allowSend,\n recv: summary.allowReceive,\n status: summary.status\n };\n return acc;\n }, {});\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- const require_prf_handler = require('./prf-handler-D3EqUNWe.cjs');
2
-
3
- exports.getPrfSecret = require_prf_handler.getPrfSecret;