@swal/edge-mesh 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (464) hide show
  1. package/LICENSE +128 -0
  2. package/NOTICE +37 -0
  3. package/README.md +470 -2
  4. package/dist/adapters/gpu-agent/index.d.ts +61 -0
  5. package/dist/adapters/gpu-agent/index.d.ts.map +1 -0
  6. package/dist/adapters/gpu-agent/index.js +364 -0
  7. package/dist/adapters/gpu-agent/index.js.map +1 -0
  8. package/dist/adapters/maloca-salud/citas-distribuidas.d.ts +19 -0
  9. package/dist/adapters/maloca-salud/citas-distribuidas.d.ts.map +1 -0
  10. package/dist/adapters/maloca-salud/citas-distribuidas.js +51 -0
  11. package/dist/adapters/maloca-salud/citas-distribuidas.js.map +1 -0
  12. package/dist/adapters/maloca-salud/eps-bridge.d.ts +15 -0
  13. package/dist/adapters/maloca-salud/eps-bridge.d.ts.map +1 -0
  14. package/dist/adapters/maloca-salud/eps-bridge.js +27 -0
  15. package/dist/adapters/maloca-salud/eps-bridge.js.map +1 -0
  16. package/dist/adapters/maloca-salud/patient-profile.d.ts +20 -0
  17. package/dist/adapters/maloca-salud/patient-profile.d.ts.map +1 -0
  18. package/dist/adapters/maloca-salud/patient-profile.js +36 -0
  19. package/dist/adapters/maloca-salud/patient-profile.js.map +1 -0
  20. package/dist/adapters/maloca-salud/types.d.ts +40 -0
  21. package/dist/adapters/maloca-salud/types.d.ts.map +1 -0
  22. package/dist/adapters/maloca-salud/types.js +2 -0
  23. package/dist/adapters/maloca-salud/types.js.map +1 -0
  24. package/dist/adapters/maloca-veeduria/contract-bridge.d.ts +31 -0
  25. package/dist/adapters/maloca-veeduria/contract-bridge.d.ts.map +1 -0
  26. package/dist/adapters/maloca-veeduria/contract-bridge.js +103 -0
  27. package/dist/adapters/maloca-veeduria/contract-bridge.js.map +1 -0
  28. package/dist/adapters/maloca-veeduria/evidentia-veeduria.d.ts +14 -0
  29. package/dist/adapters/maloca-veeduria/evidentia-veeduria.d.ts.map +1 -0
  30. package/dist/adapters/maloca-veeduria/evidentia-veeduria.js +40 -0
  31. package/dist/adapters/maloca-veeduria/evidentia-veeduria.js.map +1 -0
  32. package/dist/adapters/maloca-veeduria/licitante-profile.d.ts +21 -0
  33. package/dist/adapters/maloca-veeduria/licitante-profile.d.ts.map +1 -0
  34. package/dist/adapters/maloca-veeduria/licitante-profile.js +58 -0
  35. package/dist/adapters/maloca-veeduria/licitante-profile.js.map +1 -0
  36. package/dist/adapters/maloca-veeduria/types.d.ts +30 -0
  37. package/dist/adapters/maloca-veeduria/types.d.ts.map +1 -0
  38. package/dist/adapters/maloca-veeduria/types.js +2 -0
  39. package/dist/adapters/maloca-veeduria/types.js.map +1 -0
  40. package/dist/adapters/maloca-xavier/agent-profile.d.ts +32 -0
  41. package/dist/adapters/maloca-xavier/agent-profile.d.ts.map +1 -0
  42. package/dist/adapters/maloca-xavier/agent-profile.js +56 -0
  43. package/dist/adapters/maloca-xavier/agent-profile.js.map +1 -0
  44. package/dist/adapters/maloca-xavier/codegraph-bridge.d.ts +27 -0
  45. package/dist/adapters/maloca-xavier/codegraph-bridge.d.ts.map +1 -0
  46. package/dist/adapters/maloca-xavier/codegraph-bridge.js +58 -0
  47. package/dist/adapters/maloca-xavier/codegraph-bridge.js.map +1 -0
  48. package/dist/adapters/maloca-xavier/llm-router.d.ts +25 -0
  49. package/dist/adapters/maloca-xavier/llm-router.d.ts.map +1 -0
  50. package/dist/adapters/maloca-xavier/llm-router.js +58 -0
  51. package/dist/adapters/maloca-xavier/llm-router.js.map +1 -0
  52. package/dist/authz/index.d.ts +81 -0
  53. package/dist/authz/index.d.ts.map +1 -0
  54. package/dist/authz/index.js +271 -0
  55. package/dist/authz/index.js.map +1 -0
  56. package/dist/chat/index.d.ts +138 -0
  57. package/dist/chat/index.d.ts.map +1 -0
  58. package/dist/chat/index.js +394 -0
  59. package/dist/chat/index.js.map +1 -0
  60. package/dist/chat/offline-queue.d.ts +32 -0
  61. package/dist/chat/offline-queue.d.ts.map +1 -0
  62. package/dist/chat/offline-queue.js +93 -0
  63. package/dist/chat/offline-queue.js.map +1 -0
  64. package/dist/core/DefaultEdgeMeshNode.d.ts +17 -0
  65. package/dist/core/DefaultEdgeMeshNode.d.ts.map +1 -0
  66. package/dist/core/DefaultEdgeMeshNode.js +57 -0
  67. package/dist/core/DefaultEdgeMeshNode.js.map +1 -0
  68. package/dist/core/node.d.ts +26 -0
  69. package/dist/core/node.d.ts.map +1 -0
  70. package/dist/core/node.js +16 -0
  71. package/dist/core/node.js.map +1 -0
  72. package/dist/edge-mesh.d.ts +139 -0
  73. package/dist/edge-mesh.d.ts.map +1 -0
  74. package/dist/edge-mesh.js +1146 -0
  75. package/dist/edge-mesh.js.map +1 -0
  76. package/dist/gos/GosBridge.d.ts +49 -0
  77. package/dist/gos/GosBridge.d.ts.map +1 -0
  78. package/dist/gos/GosBridge.js +133 -0
  79. package/dist/gos/GosBridge.js.map +1 -0
  80. package/dist/governance/authority.d.ts +44 -0
  81. package/dist/governance/authority.d.ts.map +1 -0
  82. package/dist/governance/authority.js +123 -0
  83. package/dist/governance/authority.js.map +1 -0
  84. package/dist/governance/index.d.ts +66 -0
  85. package/dist/governance/index.d.ts.map +1 -0
  86. package/dist/governance/index.js +210 -0
  87. package/dist/governance/index.js.map +1 -0
  88. package/dist/governance/merge.d.ts +31 -0
  89. package/dist/governance/merge.d.ts.map +1 -0
  90. package/dist/governance/merge.js +167 -0
  91. package/dist/governance/merge.js.map +1 -0
  92. package/dist/identity/index.d.ts +199 -0
  93. package/dist/identity/index.d.ts.map +1 -0
  94. package/dist/identity/index.js +415 -0
  95. package/dist/identity/index.js.map +1 -0
  96. package/dist/index.d.ts +71 -0
  97. package/dist/index.d.ts.map +1 -0
  98. package/dist/index.js +56 -0
  99. package/dist/index.js.map +1 -0
  100. package/dist/maloca/backoffice.d.ts +31 -0
  101. package/dist/maloca/backoffice.d.ts.map +1 -0
  102. package/dist/maloca/backoffice.js +40 -0
  103. package/dist/maloca/backoffice.js.map +1 -0
  104. package/dist/maloca/event-bus.d.ts +60 -0
  105. package/dist/maloca/event-bus.d.ts.map +1 -0
  106. package/dist/maloca/event-bus.js +175 -0
  107. package/dist/maloca/event-bus.js.map +1 -0
  108. package/dist/maloca/evidentia.d.ts +136 -0
  109. package/dist/maloca/evidentia.d.ts.map +1 -0
  110. package/dist/maloca/evidentia.js +447 -0
  111. package/dist/maloca/evidentia.js.map +1 -0
  112. package/dist/maloca/gateway/api.d.ts +146 -0
  113. package/dist/maloca/gateway/api.d.ts.map +1 -0
  114. package/dist/maloca/gateway/api.js +228 -0
  115. package/dist/maloca/gateway/api.js.map +1 -0
  116. package/dist/maloca/gateway/auth.d.ts +20 -0
  117. package/dist/maloca/gateway/auth.d.ts.map +1 -0
  118. package/dist/maloca/gateway/auth.js +115 -0
  119. package/dist/maloca/gateway/auth.js.map +1 -0
  120. package/dist/maloca/gateway/dashboard.d.ts +42 -0
  121. package/dist/maloca/gateway/dashboard.d.ts.map +1 -0
  122. package/dist/maloca/gateway/dashboard.js +67 -0
  123. package/dist/maloca/gateway/dashboard.js.map +1 -0
  124. package/dist/maloca/gateway/websocket.d.ts +34 -0
  125. package/dist/maloca/gateway/websocket.d.ts.map +1 -0
  126. package/dist/maloca/gateway/websocket.js +71 -0
  127. package/dist/maloca/gateway/websocket.js.map +1 -0
  128. package/dist/maloca/karma.d.ts +165 -0
  129. package/dist/maloca/karma.d.ts.map +1 -0
  130. package/dist/maloca/karma.js +307 -0
  131. package/dist/maloca/karma.js.map +1 -0
  132. package/dist/maloca/kernel.d.ts +20 -0
  133. package/dist/maloca/kernel.d.ts.map +1 -0
  134. package/dist/maloca/kernel.js +76 -0
  135. package/dist/maloca/kernel.js.map +1 -0
  136. package/dist/maloca/metadata.d.ts +30 -0
  137. package/dist/maloca/metadata.d.ts.map +1 -0
  138. package/dist/maloca/metadata.js +80 -0
  139. package/dist/maloca/metadata.js.map +1 -0
  140. package/dist/maloca/perfil.d.ts +57 -0
  141. package/dist/maloca/perfil.d.ts.map +1 -0
  142. package/dist/maloca/perfil.js +113 -0
  143. package/dist/maloca/perfil.js.map +1 -0
  144. package/dist/maloca/plugin-registry.d.ts +27 -0
  145. package/dist/maloca/plugin-registry.d.ts.map +1 -0
  146. package/dist/maloca/plugin-registry.js +76 -0
  147. package/dist/maloca/plugin-registry.js.map +1 -0
  148. package/dist/maloca/polygon-bridge.d.ts +63 -0
  149. package/dist/maloca/polygon-bridge.d.ts.map +1 -0
  150. package/dist/maloca/polygon-bridge.js +198 -0
  151. package/dist/maloca/polygon-bridge.js.map +1 -0
  152. package/dist/maloca/types.d.ts +44 -0
  153. package/dist/maloca/types.d.ts.map +1 -0
  154. package/dist/maloca/types.js +2 -0
  155. package/dist/maloca/types.js.map +1 -0
  156. package/dist/medico/aval.d.ts +149 -0
  157. package/dist/medico/aval.d.ts.map +1 -0
  158. package/dist/medico/aval.js +281 -0
  159. package/dist/medico/aval.js.map +1 -0
  160. package/dist/medico/canonica.d.ts +96 -0
  161. package/dist/medico/canonica.d.ts.map +1 -0
  162. package/dist/medico/canonica.js +148 -0
  163. package/dist/medico/canonica.js.map +1 -0
  164. package/dist/medico/credencial.d.ts +160 -0
  165. package/dist/medico/credencial.d.ts.map +1 -0
  166. package/dist/medico/credencial.js +240 -0
  167. package/dist/medico/credencial.js.map +1 -0
  168. package/dist/medico/index.d.ts +36 -0
  169. package/dist/medico/index.d.ts.map +1 -0
  170. package/dist/medico/index.js +39 -0
  171. package/dist/medico/index.js.map +1 -0
  172. package/dist/medico/malla.d.ts +218 -0
  173. package/dist/medico/malla.d.ts.map +1 -0
  174. package/dist/medico/malla.js +347 -0
  175. package/dist/medico/malla.js.map +1 -0
  176. package/dist/medico/registro-profesional.d.ts +84 -0
  177. package/dist/medico/registro-profesional.d.ts.map +1 -0
  178. package/dist/medico/registro-profesional.js +135 -0
  179. package/dist/medico/registro-profesional.js.map +1 -0
  180. package/dist/medico/registro.d.ts +149 -0
  181. package/dist/medico/registro.d.ts.map +1 -0
  182. package/dist/medico/registro.js +173 -0
  183. package/dist/medico/registro.js.map +1 -0
  184. package/dist/medico/types.d.ts +287 -0
  185. package/dist/medico/types.d.ts.map +1 -0
  186. package/dist/medico/types.js +135 -0
  187. package/dist/medico/types.js.map +1 -0
  188. package/dist/medico/verificacion-registro.d.ts +300 -0
  189. package/dist/medico/verificacion-registro.d.ts.map +1 -0
  190. package/dist/medico/verificacion-registro.js +319 -0
  191. package/dist/medico/verificacion-registro.js.map +1 -0
  192. package/dist/mesh/index.d.ts +457 -0
  193. package/dist/mesh/index.d.ts.map +1 -0
  194. package/dist/mesh/index.js +929 -0
  195. package/dist/mesh/index.js.map +1 -0
  196. package/dist/namespaces/encrypted-plugin.d.ts +56 -0
  197. package/dist/namespaces/encrypted-plugin.d.ts.map +1 -0
  198. package/dist/namespaces/encrypted-plugin.js +173 -0
  199. package/dist/namespaces/encrypted-plugin.js.map +1 -0
  200. package/dist/namespaces/index.d.ts +52 -0
  201. package/dist/namespaces/index.d.ts.map +1 -0
  202. package/dist/namespaces/index.js +134 -0
  203. package/dist/namespaces/index.js.map +1 -0
  204. package/dist/namespaces/ivn-proofs.d.ts +54 -0
  205. package/dist/namespaces/ivn-proofs.d.ts.map +1 -0
  206. package/dist/namespaces/ivn-proofs.js +162 -0
  207. package/dist/namespaces/ivn-proofs.js.map +1 -0
  208. package/dist/namespaces/offers-gossip.d.ts +95 -0
  209. package/dist/namespaces/offers-gossip.d.ts.map +1 -0
  210. package/dist/namespaces/offers-gossip.js +213 -0
  211. package/dist/namespaces/offers-gossip.js.map +1 -0
  212. package/dist/node-memory/idb-store.d.ts +22 -0
  213. package/dist/node-memory/idb-store.d.ts.map +1 -0
  214. package/dist/node-memory/idb-store.js +154 -0
  215. package/dist/node-memory/idb-store.js.map +1 -0
  216. package/dist/node-memory/index.d.ts +14 -0
  217. package/dist/node-memory/index.d.ts.map +1 -0
  218. package/dist/node-memory/index.js +159 -0
  219. package/dist/node-memory/index.js.map +1 -0
  220. package/dist/node-memory/sync-flush.d.ts +11 -0
  221. package/dist/node-memory/sync-flush.d.ts.map +1 -0
  222. package/dist/node-memory/sync-flush.js +37 -0
  223. package/dist/node-memory/sync-flush.js.map +1 -0
  224. package/dist/node-memory/types.d.ts +34 -0
  225. package/dist/node-memory/types.d.ts.map +1 -0
  226. package/dist/node-memory/types.js +2 -0
  227. package/dist/node-memory/types.js.map +1 -0
  228. package/dist/node-memory/xavier-store.d.ts +12 -0
  229. package/dist/node-memory/xavier-store.d.ts.map +1 -0
  230. package/dist/node-memory/xavier-store.js +75 -0
  231. package/dist/node-memory/xavier-store.js.map +1 -0
  232. package/dist/op-log/index.d.ts +49 -0
  233. package/dist/op-log/index.d.ts.map +1 -0
  234. package/dist/op-log/index.js +190 -0
  235. package/dist/op-log/index.js.map +1 -0
  236. package/dist/presence/health.d.ts +54 -0
  237. package/dist/presence/health.d.ts.map +1 -0
  238. package/dist/presence/health.js +139 -0
  239. package/dist/presence/health.js.map +1 -0
  240. package/dist/presence/index.d.ts +85 -0
  241. package/dist/presence/index.d.ts.map +1 -0
  242. package/dist/presence/index.js +255 -0
  243. package/dist/presence/index.js.map +1 -0
  244. package/dist/presence/peer-health.d.ts +40 -0
  245. package/dist/presence/peer-health.d.ts.map +1 -0
  246. package/dist/presence/peer-health.js +118 -0
  247. package/dist/presence/peer-health.js.map +1 -0
  248. package/dist/protocol/canonical.d.ts +10 -0
  249. package/dist/protocol/canonical.d.ts.map +1 -0
  250. package/dist/protocol/canonical.js +32 -0
  251. package/dist/protocol/canonical.js.map +1 -0
  252. package/dist/protocol/crypto.d.ts +299 -0
  253. package/dist/protocol/crypto.d.ts.map +1 -0
  254. package/dist/protocol/crypto.js +739 -0
  255. package/dist/protocol/crypto.js.map +1 -0
  256. package/dist/protocol/index.d.ts +30 -0
  257. package/dist/protocol/index.d.ts.map +1 -0
  258. package/dist/protocol/index.js +116 -0
  259. package/dist/protocol/index.js.map +1 -0
  260. package/dist/protocol/utils.d.ts +5 -0
  261. package/dist/protocol/utils.d.ts.map +1 -0
  262. package/dist/protocol/utils.js +27 -0
  263. package/dist/protocol/utils.js.map +1 -0
  264. package/dist/salones/manager.d.ts +100 -0
  265. package/dist/salones/manager.d.ts.map +1 -0
  266. package/dist/salones/manager.js +240 -0
  267. package/dist/salones/manager.js.map +1 -0
  268. package/dist/security/rate-limiter.d.ts +13 -0
  269. package/dist/security/rate-limiter.d.ts.map +1 -0
  270. package/dist/security/rate-limiter.js +32 -0
  271. package/dist/security/rate-limiter.js.map +1 -0
  272. package/dist/snapshot/index.d.ts +90 -0
  273. package/dist/snapshot/index.d.ts.map +1 -0
  274. package/dist/snapshot/index.js +189 -0
  275. package/dist/snapshot/index.js.map +1 -0
  276. package/dist/storage/index.d.ts +49 -0
  277. package/dist/storage/index.d.ts.map +1 -0
  278. package/dist/storage/index.js +176 -0
  279. package/dist/storage/index.js.map +1 -0
  280. package/dist/storage/optimizer.d.ts +28 -0
  281. package/dist/storage/optimizer.d.ts.map +1 -0
  282. package/dist/storage/optimizer.js +50 -0
  283. package/dist/storage/optimizer.js.map +1 -0
  284. package/dist/storage/ydoc-persistence.d.ts +27 -0
  285. package/dist/storage/ydoc-persistence.d.ts.map +1 -0
  286. package/dist/storage/ydoc-persistence.js +128 -0
  287. package/dist/storage/ydoc-persistence.js.map +1 -0
  288. package/dist/sync/ChunkSyncManager.d.ts +41 -0
  289. package/dist/sync/ChunkSyncManager.d.ts.map +1 -0
  290. package/dist/sync/ChunkSyncManager.js +115 -0
  291. package/dist/sync/ChunkSyncManager.js.map +1 -0
  292. package/dist/sync/conflict-resolver.d.ts +33 -0
  293. package/dist/sync/conflict-resolver.d.ts.map +1 -0
  294. package/dist/sync/conflict-resolver.js +54 -0
  295. package/dist/sync/conflict-resolver.js.map +1 -0
  296. package/dist/sync/engine.d.ts +168 -0
  297. package/dist/sync/engine.d.ts.map +1 -0
  298. package/dist/sync/engine.js +315 -0
  299. package/dist/sync/engine.js.map +1 -0
  300. package/dist/sync/index.d.ts +3 -0
  301. package/dist/sync/index.d.ts.map +1 -0
  302. package/dist/sync/index.js +3 -0
  303. package/dist/sync/index.js.map +1 -0
  304. package/dist/transport/TorTransportAdapter.d.ts +70 -0
  305. package/dist/transport/TorTransportAdapter.d.ts.map +1 -0
  306. package/dist/transport/TorTransportAdapter.js +192 -0
  307. package/dist/transport/TorTransportAdapter.js.map +1 -0
  308. package/dist/transport/memory.d.ts +31 -0
  309. package/dist/transport/memory.d.ts.map +1 -0
  310. package/dist/transport/memory.js +114 -0
  311. package/dist/transport/memory.js.map +1 -0
  312. package/dist/transport/peerjs.d.ts +45 -0
  313. package/dist/transport/peerjs.d.ts.map +1 -0
  314. package/dist/transport/peerjs.js +301 -0
  315. package/dist/transport/peerjs.js.map +1 -0
  316. package/dist/transport/pqc-handshake.d.ts +72 -0
  317. package/dist/transport/pqc-handshake.d.ts.map +1 -0
  318. package/dist/transport/pqc-handshake.js +129 -0
  319. package/dist/transport/pqc-handshake.js.map +1 -0
  320. package/dist/transport/relay-config.d.ts +11 -0
  321. package/dist/transport/relay-config.d.ts.map +1 -0
  322. package/dist/transport/relay-config.js +48 -0
  323. package/dist/transport/relay-config.js.map +1 -0
  324. package/dist/transport/relay-server.d.ts +37 -0
  325. package/dist/transport/relay-server.d.ts.map +1 -0
  326. package/dist/transport/relay-server.js +230 -0
  327. package/dist/transport/relay-server.js.map +1 -0
  328. package/dist/transport/tor.d.ts +47 -0
  329. package/dist/transport/tor.d.ts.map +1 -0
  330. package/dist/transport/tor.js +158 -0
  331. package/dist/transport/tor.js.map +1 -0
  332. package/dist/transport/types.d.ts +34 -0
  333. package/dist/transport/types.d.ts.map +1 -0
  334. package/dist/transport/types.js +2 -0
  335. package/dist/transport/types.js.map +1 -0
  336. package/dist/types/index.d.ts +293 -0
  337. package/dist/types/index.d.ts.map +1 -0
  338. package/dist/types/index.js +73 -0
  339. package/dist/types/index.js.map +1 -0
  340. package/dist/web/admission.d.ts +24 -0
  341. package/dist/web/admission.d.ts.map +1 -0
  342. package/dist/web/admission.js +41 -0
  343. package/dist/web/admission.js.map +1 -0
  344. package/dist/web/crypto.d.ts +18 -0
  345. package/dist/web/crypto.d.ts.map +1 -0
  346. package/dist/web/crypto.js +78 -0
  347. package/dist/web/crypto.js.map +1 -0
  348. package/dist/web/exchange.d.ts +23 -0
  349. package/dist/web/exchange.d.ts.map +1 -0
  350. package/dist/web/exchange.js +54 -0
  351. package/dist/web/exchange.js.map +1 -0
  352. package/dist/web/fragment.d.ts +58 -0
  353. package/dist/web/fragment.d.ts.map +1 -0
  354. package/dist/web/fragment.js +198 -0
  355. package/dist/web/fragment.js.map +1 -0
  356. package/dist/web/index.d.ts +25 -0
  357. package/dist/web/index.d.ts.map +1 -0
  358. package/dist/web/index.js +14 -0
  359. package/dist/web/index.js.map +1 -0
  360. package/dist/web/merge/index.d.ts +104 -0
  361. package/dist/web/merge/index.d.ts.map +1 -0
  362. package/dist/web/merge/index.js +236 -0
  363. package/dist/web/merge/index.js.map +1 -0
  364. package/dist/web/oplog/hlc.d.ts +19 -0
  365. package/dist/web/oplog/hlc.d.ts.map +1 -0
  366. package/dist/web/oplog/hlc.js +39 -0
  367. package/dist/web/oplog/hlc.js.map +1 -0
  368. package/dist/web/oplog/index.d.ts +10 -0
  369. package/dist/web/oplog/index.d.ts.map +1 -0
  370. package/dist/web/oplog/index.js +6 -0
  371. package/dist/web/oplog/index.js.map +1 -0
  372. package/dist/web/oplog/log.d.ts +182 -0
  373. package/dist/web/oplog/log.d.ts.map +1 -0
  374. package/dist/web/oplog/log.js +693 -0
  375. package/dist/web/oplog/log.js.map +1 -0
  376. package/dist/web/oplog/store.d.ts +40 -0
  377. package/dist/web/oplog/store.d.ts.map +1 -0
  378. package/dist/web/oplog/store.js +85 -0
  379. package/dist/web/oplog/store.js.map +1 -0
  380. package/dist/web/oplog/sync.d.ts +54 -0
  381. package/dist/web/oplog/sync.d.ts.map +1 -0
  382. package/dist/web/oplog/sync.js +162 -0
  383. package/dist/web/oplog/sync.js.map +1 -0
  384. package/dist/web/oplog/types.d.ts +119 -0
  385. package/dist/web/oplog/types.d.ts.map +1 -0
  386. package/dist/web/oplog/types.js +2 -0
  387. package/dist/web/oplog/types.js.map +1 -0
  388. package/dist/web/pairing.d.ts +186 -0
  389. package/dist/web/pairing.d.ts.map +1 -0
  390. package/dist/web/pairing.js +395 -0
  391. package/dist/web/pairing.js.map +1 -0
  392. package/dist/web/pq.d.ts +36 -0
  393. package/dist/web/pq.d.ts.map +1 -0
  394. package/dist/web/pq.js +59 -0
  395. package/dist/web/pq.js.map +1 -0
  396. package/dist/web/provider.d.ts +188 -0
  397. package/dist/web/provider.d.ts.map +1 -0
  398. package/dist/web/provider.js +2042 -0
  399. package/dist/web/provider.js.map +1 -0
  400. package/dist/web/rooms.d.ts +20 -0
  401. package/dist/web/rooms.d.ts.map +1 -0
  402. package/dist/web/rooms.js +51 -0
  403. package/dist/web/rooms.js.map +1 -0
  404. package/dist/web/rotation.d.ts +73 -0
  405. package/dist/web/rotation.d.ts.map +1 -0
  406. package/dist/web/rotation.js +130 -0
  407. package/dist/web/rotation.js.map +1 -0
  408. package/dist/web/secstate.d.ts +213 -0
  409. package/dist/web/secstate.d.ts.map +1 -0
  410. package/dist/web/secstate.js +789 -0
  411. package/dist/web/secstate.js.map +1 -0
  412. package/dist/web/store.d.ts +9 -0
  413. package/dist/web/store.d.ts.map +1 -0
  414. package/dist/web/store.js +32 -0
  415. package/dist/web/store.js.map +1 -0
  416. package/dist/web/transports/loopback.d.ts +11 -0
  417. package/dist/web/transports/loopback.d.ts.map +1 -0
  418. package/dist/web/transports/loopback.js +97 -0
  419. package/dist/web/transports/loopback.js.map +1 -0
  420. package/dist/web/transports/qr-sdp.d.ts +27 -0
  421. package/dist/web/transports/qr-sdp.d.ts.map +1 -0
  422. package/dist/web/transports/qr-sdp.js +131 -0
  423. package/dist/web/transports/qr-sdp.js.map +1 -0
  424. package/dist/web/transports/ws.d.ts +12 -0
  425. package/dist/web/transports/ws.d.ts.map +1 -0
  426. package/dist/web/transports/ws.js +139 -0
  427. package/dist/web/transports/ws.js.map +1 -0
  428. package/dist/web/trust/canonical.d.ts +8 -0
  429. package/dist/web/trust/canonical.d.ts.map +1 -0
  430. package/dist/web/trust/canonical.js +27 -0
  431. package/dist/web/trust/canonical.js.map +1 -0
  432. package/dist/web/trust/docs.d.ts +51 -0
  433. package/dist/web/trust/docs.d.ts.map +1 -0
  434. package/dist/web/trust/docs.js +170 -0
  435. package/dist/web/trust/docs.js.map +1 -0
  436. package/dist/web/trust/index.d.ts +10 -0
  437. package/dist/web/trust/index.d.ts.map +1 -0
  438. package/dist/web/trust/index.js +7 -0
  439. package/dist/web/trust/index.js.map +1 -0
  440. package/dist/web/trust/keys.d.ts +37 -0
  441. package/dist/web/trust/keys.d.ts.map +1 -0
  442. package/dist/web/trust/keys.js +75 -0
  443. package/dist/web/trust/keys.js.map +1 -0
  444. package/dist/web/trust/store.d.ts +150 -0
  445. package/dist/web/trust/store.d.ts.map +1 -0
  446. package/dist/web/trust/store.js +587 -0
  447. package/dist/web/trust/store.js.map +1 -0
  448. package/dist/web/trust/types.d.ts +134 -0
  449. package/dist/web/trust/types.d.ts.map +1 -0
  450. package/dist/web/trust/types.js +4 -0
  451. package/dist/web/trust/types.js.map +1 -0
  452. package/dist/web/types.d.ts +115 -0
  453. package/dist/web/types.d.ts.map +1 -0
  454. package/dist/web/types.js +2 -0
  455. package/dist/web/types.js.map +1 -0
  456. package/dist/web/util.d.ts +12 -0
  457. package/dist/web/util.d.ts.map +1 -0
  458. package/dist/web/util.js +54 -0
  459. package/dist/web/util.js.map +1 -0
  460. package/dist/web/webrtc.d.ts +35 -0
  461. package/dist/web/webrtc.d.ts.map +1 -0
  462. package/dist/web/webrtc.js +304 -0
  463. package/dist/web/webrtc.js.map +1 -0
  464. package/package.json +138 -4
@@ -0,0 +1,40 @@
1
+ import { createNodeMemory } from "../node-memory/index.js";
2
+ /**
3
+ * Maloca Backoffice unificado que adopta edge-mesh, Xavier y node-memory.
4
+ */
5
+ export class MalocaBackoffice {
6
+ mesh;
7
+ nodeMemory;
8
+ instanceId;
9
+ constructor(opts) {
10
+ this.mesh = opts.mesh;
11
+ this.instanceId = opts.instanceId;
12
+ this.nodeMemory = createNodeMemory({
13
+ mesh: opts.mesh,
14
+ appId: "maloca",
15
+ instanceId: opts.instanceId,
16
+ xavierUrl: opts.xavierUrl,
17
+ xavierToken: opts.xavierToken,
18
+ ttlMs: opts.ttlMs,
19
+ });
20
+ }
21
+ /**
22
+ * Persiste una sesión o decisión como un documento Y.Doc
23
+ */
24
+ async registrarSesion(doc, tipo = "sesion") {
25
+ await this.nodeMemory.persistYDoc(doc, tipo);
26
+ }
27
+ /**
28
+ * Guarda una decisión o evento semántico en la memoria del agente (Xavier)
29
+ */
30
+ async registrarDecision(descripcion, titulo) {
31
+ await this.nodeMemory.saveMemory(descripcion, titulo, "decisiones");
32
+ }
33
+ /**
34
+ * Recupera RAG/decisiones desde Xavier
35
+ */
36
+ async buscarDecisiones(query, limit) {
37
+ return this.nodeMemory.loadFromXavier(`app/maloca/instance/${this.instanceId}`, query, limit);
38
+ }
39
+ }
40
+ //# sourceMappingURL=backoffice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backoffice.js","sourceRoot":"","sources":["../../src/maloca/backoffice.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAmB,MAAM,yBAAyB,CAAC;AAU5E;;GAEG;AACH,MAAM,OAAO,gBAAgB;IACnB,IAAI,CAAW;IACf,UAAU,CAAa;IACvB,UAAU,CAAS;IAE5B,YAAY,IAA6B;QACxC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAElC,IAAI,CAAC,UAAU,GAAG,gBAAgB,CAAC;YAClC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,QAAQ;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;SACjB,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,GAAQ,EAAE,IAAI,GAAG,QAAQ;QAC9C,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,WAAmB,EAAE,MAAc;QAC1D,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IACrE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,KAAa,EAAE,KAAc;QACnD,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,CACpC,uBAAuB,IAAI,CAAC,UAAU,EAAE,EACxC,KAAK,EACL,KAAK,CACL,CAAC;IACH,CAAC;CACD"}
@@ -0,0 +1,60 @@
1
+ import type { MeshManager } from "../mesh/index.js";
2
+ import type { OpLog } from "../op-log/index.js";
3
+ import { type IStorage } from "../storage/index.js";
4
+ import type { NodoId } from "../types/index.js";
5
+ export declare const TIPO_EVENTO_MALOCA: {
6
+ readonly NODE_CONNECT: "NODE_CONNECT";
7
+ readonly NODE_DISCONNECT: "NODE_DISCONNECT";
8
+ readonly PROFILE_CREATED: "PROFILE_CREATED";
9
+ readonly PROFILE_UPDATED: "PROFILE_UPDATED";
10
+ readonly KARMA_TRANSACTION: "KARMA_TRANSACTION";
11
+ readonly PLUGIN_REGISTERED: "PLUGIN_REGISTERED";
12
+ readonly PLUGIN_DISCOVERED: "PLUGIN_DISCOVERED";
13
+ readonly DOC_NOTARIZED: "DOC_NOTARIZED";
14
+ readonly MESH_HEARTBEAT: "MESH_HEARTBEAT";
15
+ };
16
+ export type TipoEventoMaloca = (typeof TIPO_EVENTO_MALOCA)[keyof typeof TIPO_EVENTO_MALOCA];
17
+ export interface EventoMaloca {
18
+ readonly tipo: TipoEventoMaloca | string;
19
+ readonly origen: NodoId;
20
+ readonly destino?: NodoId | "*";
21
+ readonly payload: unknown;
22
+ readonly firma?: Uint8Array;
23
+ readonly timestamp: number;
24
+ }
25
+ export interface MeshEvent extends EventoMaloca {
26
+ }
27
+ export interface PersistentEventQueue {
28
+ enqueue(event: MeshEvent): Promise<void>;
29
+ dequeueAll(): Promise<MeshEvent[]>;
30
+ replay(namespace: string): Promise<MeshEvent[]>;
31
+ clear(): Promise<void>;
32
+ size(): Promise<number>;
33
+ }
34
+ export declare class PersistentEventQueueImpl implements PersistentEventQueue {
35
+ private readonly storage;
36
+ private readonly namespace;
37
+ constructor(storage: IStorage, namespace: string);
38
+ enqueue(event: MeshEvent): Promise<void>;
39
+ dequeueAll(): Promise<MeshEvent[]>;
40
+ replay(namespace: string): Promise<MeshEvent[]>;
41
+ clear(): Promise<void>;
42
+ size(): Promise<number>;
43
+ }
44
+ export declare class EventBus extends EventTarget {
45
+ private readonly mesh;
46
+ private readonly opLog;
47
+ private readonly handlers;
48
+ private readonly NAMESPACE;
49
+ readonly queue: PersistentEventQueue;
50
+ constructor(mesh: MeshManager, opLog: OpLog, storage?: IStorage);
51
+ emit(tipo: TipoEventoMaloca | string, payload: unknown, destino?: NodoId | "*"): Promise<void>;
52
+ subscribe(tipo: TipoEventoMaloca | string, handler: (evento: EventoMaloca) => void): void;
53
+ unsubscribe(tipo: TipoEventoMaloca | string, handler: (evento: EventoMaloca) => void): void;
54
+ broadcastToPlugin(_pluginId: string, evento: Omit<EventoMaloca, "origen" | "timestamp" | "destino">): Promise<void>;
55
+ getEventLog(): Promise<readonly EventoMaloca[]>;
56
+ private reconnectHandler;
57
+ private procesarEventoRemoto;
58
+ private notificarHandlers;
59
+ }
60
+ //# sourceMappingURL=event-bus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../src/maloca/event-bus.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,175 @@
1
+ import { InMemoryStorage } from "../storage/index.js";
2
+ // ─── EVENT TYPES ───────────────────────────────────────────────────────────
3
+ export const TIPO_EVENTO_MALOCA = {
4
+ NODE_CONNECT: "NODE_CONNECT",
5
+ NODE_DISCONNECT: "NODE_DISCONNECT",
6
+ PROFILE_CREATED: "PROFILE_CREATED",
7
+ PROFILE_UPDATED: "PROFILE_UPDATED",
8
+ KARMA_TRANSACTION: "KARMA_TRANSACTION",
9
+ PLUGIN_REGISTERED: "PLUGIN_REGISTERED",
10
+ PLUGIN_DISCOVERED: "PLUGIN_DISCOVERED",
11
+ DOC_NOTARIZED: "DOC_NOTARIZED",
12
+ MESH_HEARTBEAT: "MESH_HEARTBEAT",
13
+ };
14
+ export class PersistentEventQueueImpl {
15
+ storage;
16
+ namespace;
17
+ constructor(storage, namespace) {
18
+ this.storage = storage;
19
+ this.namespace = namespace;
20
+ }
21
+ async enqueue(event) {
22
+ const key = `events:bus:${this.namespace}:${event.timestamp}:${Math.random().toString(36).substring(2, 9)}`;
23
+ await this.storage.set(key, event);
24
+ }
25
+ async dequeueAll() {
26
+ return this.replay(this.namespace);
27
+ }
28
+ async replay(namespace) {
29
+ const prefix = `events:bus:${namespace}`;
30
+ const entries = await this.storage.list({ prefijo: prefix });
31
+ const now = Date.now();
32
+ const validEvents = [];
33
+ for (const entry of entries) {
34
+ const event = entry.valor;
35
+ if (now - event.timestamp < 3600000) {
36
+ validEvents.push(event);
37
+ }
38
+ await this.storage.delete(entry.key);
39
+ }
40
+ return validEvents;
41
+ }
42
+ async clear() {
43
+ const prefix = `events:bus:${this.namespace}`;
44
+ await this.storage.clear(prefix);
45
+ }
46
+ async size() {
47
+ const prefix = `events:bus:${this.namespace}`;
48
+ const entries = await this.storage.list({ prefijo: prefix });
49
+ const now = Date.now();
50
+ let count = 0;
51
+ for (const entry of entries) {
52
+ const event = entry.valor;
53
+ if (now - event.timestamp < 3600000) {
54
+ count++;
55
+ }
56
+ else {
57
+ await this.storage.delete(entry.key);
58
+ }
59
+ }
60
+ return count;
61
+ }
62
+ }
63
+ // ─── EVENT BUS ─────────────────────────────────────────────────────────────
64
+ export class EventBus extends EventTarget {
65
+ mesh;
66
+ opLog;
67
+ handlers;
68
+ NAMESPACE = "_maloca:events";
69
+ queue;
70
+ constructor(mesh, opLog, storage) {
71
+ super();
72
+ this.mesh = mesh;
73
+ this.opLog = opLog;
74
+ this.handlers = new Map();
75
+ const actualStorage = storage ??
76
+ opLog.storage ??
77
+ new InMemoryStorage();
78
+ this.queue = new PersistentEventQueueImpl(actualStorage, this.NAMESPACE);
79
+ // Unir a namespace para ruteo de gossip
80
+ void this.mesh.unirANamespace(this.NAMESPACE);
81
+ // Escuchar eventos de la red
82
+ this.mesh.addEventListener("gossipRecibido", (ev) => {
83
+ const customEv = ev;
84
+ const { mensaje } = customEv.detail;
85
+ if (mensaje.namespace === this.NAMESPACE) {
86
+ this.procesarEventoRemoto(mensaje.payload);
87
+ }
88
+ });
89
+ // Replay automático al reconectar
90
+ this.mesh.addEventListener("peerConectado", () => {
91
+ void this.reconnectHandler();
92
+ });
93
+ }
94
+ async emit(tipo, payload, destino = "*") {
95
+ const evento = {
96
+ tipo,
97
+ origen: this.mesh.config.nodoId,
98
+ destino,
99
+ payload,
100
+ timestamp: Date.now(),
101
+ };
102
+ // Registrar en OpLog local
103
+ await this.opLog.append(`event:${tipo}`, evento, this.mesh.config.nodoId);
104
+ // Emitir localmente
105
+ this.notificarHandlers(evento);
106
+ // Si es para toda la red o un nodo remoto
107
+ if (destino === "*" || destino !== this.mesh.config.nodoId) {
108
+ const peers = this.mesh.obtenerPeersEnNamespace(this.NAMESPACE);
109
+ if (peers.length === 0) {
110
+ await this.queue.enqueue(evento);
111
+ }
112
+ else {
113
+ await this.mesh.transmitirConGossip(this.NAMESPACE, evento);
114
+ }
115
+ }
116
+ }
117
+ subscribe(tipo, handler) {
118
+ const tipoStr = tipo;
119
+ let set = this.handlers.get(tipoStr);
120
+ if (!set) {
121
+ set = new Set();
122
+ this.handlers.set(tipoStr, set);
123
+ }
124
+ set.add(handler);
125
+ }
126
+ unsubscribe(tipo, handler) {
127
+ const set = this.handlers.get(tipo);
128
+ if (set) {
129
+ set.delete(handler);
130
+ }
131
+ }
132
+ async broadcastToPlugin(_pluginId, evento) {
133
+ await this.emit(evento.tipo, evento.payload);
134
+ }
135
+ async getEventLog() {
136
+ const ops = await this.opLog.obtenerTodas();
137
+ return ops
138
+ .filter((op) => op.tipo.startsWith("event:"))
139
+ .map((op) => op.datos);
140
+ }
141
+ async reconnectHandler() {
142
+ const peers = this.mesh.obtenerPeersEnNamespace(this.NAMESPACE);
143
+ if (peers.length > 0) {
144
+ const eventsToReplay = await this.queue.dequeueAll();
145
+ for (const event of eventsToReplay) {
146
+ await this.mesh.transmitirConGossip(this.NAMESPACE, event);
147
+ }
148
+ }
149
+ }
150
+ procesarEventoRemoto(evento) {
151
+ // Evitar procesar eventos propios que vuelvan por gossip (aunque MeshManager ya lo hace)
152
+ if (evento.origen === this.mesh.config.nodoId)
153
+ return;
154
+ // Verificar si es para nosotros o broadcast
155
+ if (evento.destino === "*" || evento.destino === this.mesh.config.nodoId) {
156
+ this.notificarHandlers(evento);
157
+ }
158
+ }
159
+ notificarHandlers(evento) {
160
+ const handlers = this.handlers.get(evento.tipo);
161
+ if (handlers) {
162
+ for (const handler of handlers) {
163
+ try {
164
+ handler(evento);
165
+ }
166
+ catch (err) {
167
+ console.error(`Error en handler de evento ${evento.tipo}:`, err);
168
+ }
169
+ }
170
+ }
171
+ // También emitir vía EventTarget estándar
172
+ this.dispatchEvent(new CustomEvent(evento.tipo, { detail: evento }));
173
+ }
174
+ }
175
+ //# sourceMappingURL=event-bus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../src/maloca/event-bus.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,136 @@
1
+ import type { PostQuantumIdentity } from "../identity/index.js";
2
+ import type { MeshManager } from "../mesh/index.js";
3
+ import type { NodoId, ParPublico } from "../types/index.js";
4
+ import type { PolygonBridge } from "./polygon-bridge.js";
5
+ /**
6
+ * Bloque de procedencia: quien emitio la evidencia, cuando, y QUE respalda.
7
+ *
8
+ * Sin el, una notarizacion es solo una afirmacion firmada: la firma prueba que
9
+ * alguna clave dijo algo, pero no sobre que se estaba atestiguando. En el mesh
10
+ * medico (medicos verificados) el sujeto de la atestiguacion es justamente el
11
+ * punto: "un medico acreditado atestigua que este registro de vacunacion es
12
+ * cierto" debe ser distinguible de "un nodo dijo algo sobre un documento".
13
+ */
14
+ export interface Procedencia {
15
+ /** Fecha de emision (epoch ms). */
16
+ readonly fechaEmision: number;
17
+ /** Nodo emisor. Debe coincidir con `Evidentia.emisor` (se comprueba al verificar). */
18
+ readonly emisor: NodoId;
19
+ /** Que respalda realmente la evidencia, en palabras del emisor. */
20
+ readonly queRespalda: string;
21
+ /** Etiqueta legible del emisor (p. ej. "Cardenal XYZ, licencia 1234"). */
22
+ readonly descripcionEmisor?: string;
23
+ /** Puntero opcional a la prueba subyacente (id externo, hash, URL). */
24
+ readonly referencia?: string;
25
+ }
26
+ export interface Evidentia {
27
+ readonly hash: string;
28
+ readonly tipo: string;
29
+ readonly contenidoHash: string;
30
+ readonly emisor: NodoId;
31
+ readonly firmaPQC: string;
32
+ readonly red: string;
33
+ readonly confirmaciones: number;
34
+ readonly timestamp: number;
35
+ /** Bloque de procedencia firmado. Obligatorio: una evidencia sin el se rechaza. */
36
+ readonly procedencia: Procedencia;
37
+ }
38
+ /** Resultado de una verificacion completa, con el motivo del rechazo. */
39
+ export interface VerificacionEvidencia {
40
+ readonly valido: boolean;
41
+ readonly motivo: string;
42
+ }
43
+ /**
44
+ * Campos exactos cubiertos por la firma ML-DSA-65.
45
+ *
46
+ * `hash`, `firmaPQC`, `confirmaciones` y `red` se excluyen a proposito: son
47
+ * derivados, mutables o metadatos de transporte. Todo lo que aporta significado
48
+ * (que, quien, cuando, que prueba) SI va firmado.
49
+ */
50
+ export interface EvidentiaFirmada {
51
+ readonly version: 1;
52
+ readonly tipo: string;
53
+ readonly contenidoHash: string;
54
+ readonly emisor: NodoId;
55
+ readonly timestamp: number;
56
+ readonly procedencia: Procedencia;
57
+ }
58
+ /** Serializacion canonica de bytes del cuerpo firmado (mensaje ML-DSA). */
59
+ export declare function canonicalEvidentiaBytes(cuerpo: EvidentiaFirmada): Uint8Array;
60
+ /** Construye el cuerpo firmado a partir de una Evidentia completa. */
61
+ export declare function cuerpoFirmado(ev: Evidentia): EvidentiaFirmada;
62
+ export declare class EvidentiaManager extends EventTarget {
63
+ private readonly identity;
64
+ private readonly mesh;
65
+ private readonly evidentias;
66
+ private readonly NAMESPACE;
67
+ private readonly bridge?;
68
+ /** Claves publicas de emisores conocidas fuera de banda. Nunca se leen de una evidencia. */
69
+ private readonly clavesPublicas;
70
+ constructor(identity: PostQuantumIdentity, mesh: MeshManager, bridge?: PolygonBridge);
71
+ /**
72
+ * Registra una clave publica de emisor. Solo pueden registrarse aqui claves
73
+ * obtenidas por un canal de confianza (handshake de identidad, roster de
74
+ * administracion) — `verify()` se niega a confiar en una pubkey que viaje
75
+ * dentro de la misma evidencia que se le pide validar.
76
+ */
77
+ registrarEmisor(emisor: NodoId | string, parPublico: ParPublico): void;
78
+ clavePublicaDe(emisor: NodoId | string): ParPublico | undefined;
79
+ notarize(contenido: unknown, tipo: string, procedencia?: Partial<Procedencia>): Promise<Evidentia>;
80
+ /**
81
+ * Verificacion completa de una evidencia conocida localmente.
82
+ *
83
+ * Devuelve false (y emite `evidenciaRechazada`) salvo que pase TODAS las
84
+ * comprobaciones: integridad del id, coherencia de la procedencia, clave de
85
+ * emisor registrada, y una firma ML-DSA-65 valida sobre el cuerpo canonico.
86
+ *
87
+ * La verificacion on-chain del bridge, cuando existe, sigue siendo una fuente
88
+ * valida: un anchor confirmado en cadena prueba que el hash quedo anclado. Pero
89
+ * ya no es la UNICA via — antes, si el bridge fallaba, caia a `return true`, es
90
+ * decir: verificacion que en realidad no verificaba nada.
91
+ */
92
+ verify(hash: string): Promise<boolean>;
93
+ /**
94
+ * Verifica una evidencia recibida de la red (aun no confiable localmente).
95
+ * Mismas comprobaciones que `verify()`; la usan quienes ingieren pruebas
96
+ * gosseadas y deben rechazar todo lo que no puedan atribuir criptograficamente.
97
+ */
98
+ verificarEvidentia(ev: Evidentia): Promise<VerificacionEvidencia>;
99
+ getProof(hash: string): Evidentia | null;
100
+ getBridge(): PolygonBridge | undefined;
101
+ private calcularHashNotarizacion;
102
+ broadcastToBlockchain(evidentia: Evidentia): Promise<void>;
103
+ }
104
+ export interface Leaf {
105
+ readonly id: string;
106
+ readonly hash: string;
107
+ readonly timestamp: number;
108
+ readonly data?: unknown;
109
+ }
110
+ export declare class MerkleTree {
111
+ private leaves;
112
+ private root;
113
+ private buildPromise;
114
+ private buildGeneration;
115
+ signature?: string;
116
+ constructor(leaves?: Leaf[]);
117
+ getLeaves(): Leaf[];
118
+ toJSON(): {
119
+ leaves: Leaf[];
120
+ signature?: string;
121
+ };
122
+ add(leaf: Leaf): Promise<void>;
123
+ getRoot(): Promise<string>;
124
+ private rebuild;
125
+ verify(leaf: Leaf, proof: string[]): Promise<boolean>;
126
+ getProof(leaf: Leaf): Promise<string[]>;
127
+ }
128
+ export declare function hashLeaf(leaf: Leaf): Promise<string>;
129
+ export interface MerkleMergeResult {
130
+ mergedTree: MerkleTree;
131
+ conflictCount: number;
132
+ resolvedLeaves: Leaf[];
133
+ pendingLeaves: Leaf[];
134
+ }
135
+ export declare function mergeMerkleTrees(treeA: MerkleTree, treeB: MerkleTree, identity?: PostQuantumIdentity): Promise<MerkleMergeResult>;
136
+ //# sourceMappingURL=evidentia.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidentia.d.ts","sourceRoot":"","sources":["../../src/maloca/evidentia.ts"],"names":[],"mappings":"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"}