@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,158 @@
1
+ import { spawn } from "node:child_process";
2
+ import fs from "node:fs";
3
+ import os from "node:os";
4
+ import path from "node:path";
5
+ import { createEnvelope, MessageDeduplicator } from "../protocol/index.js";
6
+ import { TIPO_MENSAJE, TIPO_TRANSPORTE } from "../types/index.js";
7
+ export const DEFAULT_TOR_CONFIG = {
8
+ enabled: false,
9
+ localPort: 8080,
10
+ socksPort: 9050,
11
+ controlPort: 9051,
12
+ torBinary: "tor",
13
+ };
14
+ /**
15
+ * Resolve data directory for Tor state and hidden service keys.
16
+ */
17
+ export function getTorDataDir(customPath) {
18
+ if (customPath)
19
+ return customPath;
20
+ const home = os.homedir();
21
+ if (process.platform === "win32") {
22
+ return path.join(process.env.APPDATA || path.join(home, "AppData", "Roaming"), "edge-mesh", "tor");
23
+ }
24
+ if (process.platform === "darwin") {
25
+ return path.join(home, "Library", "Application Support", "edge-mesh", "tor");
26
+ }
27
+ return path.join(home, ".local", "share", "edge-mesh", "tor");
28
+ }
29
+ /**
30
+ * Generate standard torrc configuration for an Onion v3 Hidden Service.
31
+ */
32
+ export function generateTorrc(config, dataDir) {
33
+ const hiddenServiceDir = path.join(dataDir, "onion");
34
+ const localPort = config.localPort ?? 8080;
35
+ const socksPort = config.socksPort ?? 9050;
36
+ const controlPort = config.controlPort ?? 9051;
37
+ return [
38
+ `DataDirectory ${dataDir}`,
39
+ `SocksPort ${socksPort}`,
40
+ `ControlPort ${controlPort}`,
41
+ `HiddenServiceDir ${hiddenServiceDir}`,
42
+ `HiddenServicePort ${localPort} 127.0.0.1:${localPort}`,
43
+ `HiddenServiceVersion 3`,
44
+ "",
45
+ ].join("\n");
46
+ }
47
+ /**
48
+ * TorOnionTransport provides opt-in Tor Onion v3 Hidden Service connectivity.
49
+ */
50
+ export class TorOnionTransport {
51
+ tipo = TIPO_TRANSPORTE.TOR;
52
+ eventTarget;
53
+ nodoId;
54
+ config;
55
+ deduplicator;
56
+ torProcess = null;
57
+ onionAddress = null;
58
+ conectado = false;
59
+ dataDir;
60
+ constructor(nodoId, config = {}) {
61
+ this.nodoId = nodoId;
62
+ this.eventTarget = new EventTarget();
63
+ this.deduplicator = new MessageDeduplicator();
64
+ this.config = { ...DEFAULT_TOR_CONFIG, ...config };
65
+ this.dataDir = getTorDataDir(this.config.dataDir);
66
+ }
67
+ async start(localPort) {
68
+ if (!this.config.enabled) {
69
+ return null;
70
+ }
71
+ const port = localPort ?? this.config.localPort ?? 8080;
72
+ const hiddenServiceDir = path.join(this.dataDir, "onion");
73
+ try {
74
+ fs.mkdirSync(hiddenServiceDir, { recursive: true, mode: 0o700 });
75
+ }
76
+ catch (err) {
77
+ console.warn(`[TorTransport] Failed to create data dir: ${err.message}`);
78
+ return null;
79
+ }
80
+ const torrcPath = path.join(this.dataDir, "torrc");
81
+ const torrcContent = generateTorrc({ ...this.config, localPort: port }, this.dataDir);
82
+ fs.writeFileSync(torrcPath, torrcContent, { mode: 0o600 });
83
+ const hostnamePath = path.join(hiddenServiceDir, "hostname");
84
+ if (fs.existsSync(hostnamePath)) {
85
+ this.onionAddress = fs.readFileSync(hostnamePath, "utf8").trim();
86
+ }
87
+ const torBin = this.config.torBinary ?? "tor";
88
+ try {
89
+ this.torProcess = spawn(torBin, ["-f", torrcPath], {
90
+ stdio: ["ignore", "pipe", "pipe"],
91
+ });
92
+ this.torProcess.on("error", (err) => {
93
+ console.warn(`[TorTransport] Tor binary execution error: ${err.message}`);
94
+ this.conectado = false;
95
+ });
96
+ this.torProcess.on("exit", () => {
97
+ this.conectado = false;
98
+ });
99
+ this.conectado = true;
100
+ }
101
+ catch (err) {
102
+ console.warn(`[TorTransport] Failed to spawn Tor process: ${err.message}`);
103
+ this.conectado = false;
104
+ }
105
+ return this.getOnionAddress();
106
+ }
107
+ getOnionAddress() {
108
+ if (this.onionAddress)
109
+ return this.onionAddress;
110
+ const hostnamePath = path.join(this.dataDir, "onion", "hostname");
111
+ if (fs.existsSync(hostnamePath)) {
112
+ this.onionAddress = fs.readFileSync(hostnamePath, "utf8").trim();
113
+ }
114
+ return this.onionAddress;
115
+ }
116
+ async conectar(_peerId) {
117
+ this.conectado = true;
118
+ }
119
+ async desconectar() {
120
+ this.conectado = false;
121
+ if (this.torProcess) {
122
+ this.torProcess.kill("SIGTERM");
123
+ this.torProcess = null;
124
+ }
125
+ }
126
+ async transmitir(datos, tipo) {
127
+ if (!this.conectado)
128
+ return;
129
+ const env = createEnvelope(tipo ?? TIPO_MENSAJE.SYNC, this.nodoId, "todos", datos);
130
+ this.emit("mensaje", { envolvente: env });
131
+ }
132
+ async enviar(destino, datos, tipo) {
133
+ if (!this.conectado)
134
+ return;
135
+ const env = createEnvelope(tipo ?? TIPO_MENSAJE.SYNC, this.nodoId, destino, datos);
136
+ this.emit("mensaje", { envolvente: env });
137
+ }
138
+ obtenerConexiones() {
139
+ return this.conectado && this.onionAddress ? [this.onionAddress] : [];
140
+ }
141
+ estaConectado() {
142
+ return this.conectado;
143
+ }
144
+ async cerrar() {
145
+ await this.desconectar();
146
+ }
147
+ on(tipo, handler) {
148
+ this.eventTarget.addEventListener(tipo, handler);
149
+ }
150
+ off(tipo, handler) {
151
+ this.eventTarget.removeEventListener(tipo, handler);
152
+ }
153
+ emit(tipo, detalle) {
154
+ const evento = new CustomEvent(tipo, { detail: detalle });
155
+ this.eventTarget.dispatchEvent(evento);
156
+ }
157
+ }
158
+ //# sourceMappingURL=tor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tor.js","sourceRoot":"","sources":["../../src/transport/tor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { Envolvente, NodoId, TipoTransporte } from "../types/index.js";
2
+ export interface TransportEventMap {
3
+ conectado: CustomEvent<{
4
+ readonly nodoId: NodoId;
5
+ }>;
6
+ desconectado: CustomEvent<{
7
+ readonly nodoId: NodoId;
8
+ }>;
9
+ mensaje: CustomEvent<{
10
+ readonly envolvente: Envolvente;
11
+ readonly from?: NodoId;
12
+ }>;
13
+ error: CustomEvent<{
14
+ readonly mensaje: string;
15
+ readonly error?: Error;
16
+ }>;
17
+ }
18
+ /**
19
+ * Minimal transport port used by EdgeMesh.
20
+ * PeerJS and Memory transports implement this surface.
21
+ */
22
+ export interface ITransport {
23
+ readonly tipo: TipoTransporte;
24
+ readonly eventTarget: EventTarget;
25
+ readonly nodoId: NodoId;
26
+ on<K extends keyof TransportEventMap>(tipo: K, handler: (ev: TransportEventMap[K]) => void): void;
27
+ off<K extends keyof TransportEventMap>(tipo: K, handler: (ev: TransportEventMap[K]) => void): void;
28
+ enviar(destino: NodoId, payload: unknown, tipoMensaje?: string): Promise<void>;
29
+ transmitir(payload: unknown, tipoMensaje?: string): Promise<void>;
30
+ estaConectado(): boolean;
31
+ obtenerConexiones(): readonly string[];
32
+ cerrar(): Promise<void>;
33
+ }
34
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/transport/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE5E,MAAM,WAAW,iBAAiB;IACjC,SAAS,EAAE,WAAW,CAAC;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpD,YAAY,EAAE,WAAW,CAAC;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,OAAO,EAAE,WAAW,CAAC;QACpB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;QAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC,CAAC;IACH,KAAK,EAAE,WAAW,CAAC;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;CACzE;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,EAAE,CAAC,CAAC,SAAS,MAAM,iBAAiB,EACnC,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,IAAI,GACzC,IAAI,CAAC;IACR,GAAG,CAAC,CAAC,SAAS,MAAM,iBAAiB,EACpC,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,IAAI,GACzC,IAAI,CAAC;IAER,MAAM,CACL,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,WAAW,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,aAAa,IAAI,OAAO,CAAC;IACzB,iBAAiB,IAAI,SAAS,MAAM,EAAE,CAAC;IACvC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/transport/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,293 @@
1
+ export declare const TIPO_MENSAJE: {
2
+ readonly SYNC: "sync";
3
+ readonly ACK: "ack";
4
+ readonly HEARTBEAT: "heartbeat";
5
+ readonly HALLAZGO: "hallazgo";
6
+ readonly VOTACION: "votacion";
7
+ readonly SNAPSHOT: "snapshot";
8
+ readonly OP_LOG: "op_log";
9
+ readonly AUTHZ: "authz";
10
+ readonly NAMESPACE: "namespace";
11
+ readonly GOVERNANCE: "governance";
12
+ readonly IDENTITY: "identity";
13
+ readonly ERROR: "error";
14
+ /** Presentación, solicitud y respuesta de una `CredencialMedica`. */
15
+ readonly CREDENCIAL: "credencial";
16
+ /** Aval de un par (`Aval`) y su revocación. */
17
+ readonly AVAL: "aval";
18
+ /** Instantánea de un registro nacional, direccionada por hash. */
19
+ readonly REGISTRO: "registro";
20
+ readonly PQC_HANDSHAKE: "pqc_handshake";
21
+ readonly KEM_REPLY: "kem_reply";
22
+ readonly PQC_ACK: "pqc_ack";
23
+ readonly PEER_LIST_UPDATE: "peer_list_update";
24
+ readonly GOSSIP: "gossip";
25
+ };
26
+ export type TipoMensaje = (typeof TIPO_MENSAJE)[keyof typeof TIPO_MENSAJE];
27
+ export declare const ESTADO_NODO: {
28
+ readonly OFFLINE: "offline";
29
+ readonly CONECTANDO: "conectando";
30
+ readonly ONLINE: "online";
31
+ readonly SUSPENDIDO: "suspendido";
32
+ readonly RECONECTANDO: "reconectando";
33
+ readonly ELIMINADO: "eliminado";
34
+ };
35
+ export type EstadoNodo = (typeof ESTADO_NODO)[keyof typeof ESTADO_NODO];
36
+ export declare const ESTADO_SALUD: {
37
+ readonly SALUDABLE: "saludable";
38
+ readonly LENTO: "lento";
39
+ readonly FALLANDO: "fallando";
40
+ readonly DESCONOCIDO: "desconocido";
41
+ };
42
+ export type EstadoSalud = (typeof ESTADO_SALUD)[keyof typeof ESTADO_SALUD];
43
+ export declare const POLITICA_GOBERNANZA: {
44
+ readonly DEMOCRATICA: "democratica";
45
+ readonly AUTORITARIA: "autoritaria";
46
+ readonly CONSENSO: "consenso";
47
+ readonly PLURALIDAD: "pluralidad";
48
+ };
49
+ export type PoliticaGobernanza = (typeof POLITICA_GOBERNANZA)[keyof typeof POLITICA_GOBERNANZA];
50
+ export declare const TIPO_TRANSPORTE: {
51
+ readonly PEERJS: "peerjs";
52
+ readonly WEBSOCKET: "websocket";
53
+ readonly MEMORIA: "memoria";
54
+ readonly TOR: "tor";
55
+ };
56
+ export type TipoTransporte = (typeof TIPO_TRANSPORTE)[keyof typeof TIPO_TRANSPORTE];
57
+ export declare function isTipoMensaje(valor: unknown): valor is TipoMensaje;
58
+ export declare function isEstadoNodo(valor: unknown): valor is EstadoNodo;
59
+ export type NodoId = string & {
60
+ readonly __brand: "NodoId";
61
+ };
62
+ export type ParPublico = Uint8Array;
63
+ export interface Envolvente {
64
+ readonly id: string;
65
+ readonly tipo: TipoMensaje;
66
+ readonly origen: NodoId;
67
+ readonly destino: NodoId | "*";
68
+ readonly timestamp: number;
69
+ readonly firma: Uint8Array | null;
70
+ readonly payload: unknown;
71
+ readonly version: number;
72
+ readonly nonce: string;
73
+ }
74
+ export type PayloadSync = {
75
+ readonly tipoSync: "estado" | "delta" | "solicitud";
76
+ readonly docId: string;
77
+ readonly datos: Uint8Array;
78
+ readonly clock: number;
79
+ };
80
+ export type PayloadHeartbeat = {
81
+ readonly nodoId: NodoId;
82
+ readonly timestamp: number;
83
+ readonly secuencia: number;
84
+ };
85
+ export type PayloadHallazgo = {
86
+ readonly id: string;
87
+ readonly tipo: string;
88
+ readonly datos: unknown;
89
+ readonly nodoOrigen: NodoId;
90
+ readonly ttl: number;
91
+ };
92
+ export type PayloadVotacion = {
93
+ readonly propuesta: string;
94
+ readonly voto: "a_favor" | "en_contra" | "abstencion";
95
+ readonly nodoId: NodoId;
96
+ readonly peso: number;
97
+ readonly justificacion: string | null;
98
+ readonly firma?: Uint8Array | number[] | string | null;
99
+ readonly timestamp?: number;
100
+ };
101
+ export interface VerificadorVotos {
102
+ obtenerClavePublica(nodoId: NodoId): ParPublico | Uint8Array | undefined | null;
103
+ verificarFirma(mensaje: Uint8Array, firma: Uint8Array, clave: ParPublico | Uint8Array): boolean | Promise<boolean>;
104
+ }
105
+ export type PayloadSnapshot = {
106
+ readonly docId: string;
107
+ readonly version: number;
108
+ readonly datos: Uint8Array;
109
+ readonly nodosConfirmados: readonly NodoId[];
110
+ };
111
+ export type PayloadOpLog = {
112
+ readonly docId: string;
113
+ readonly operaciones: readonly Operacion[];
114
+ readonly desde: number;
115
+ readonly hasta: number;
116
+ };
117
+ export type PayloadAuthz = {
118
+ readonly accion: "conceder" | "revocar" | "verificar";
119
+ readonly espacio: string;
120
+ readonly sujeto: NodoId;
121
+ readonly capacidad: string;
122
+ };
123
+ export type PayloadNamespace = {
124
+ readonly accion: "crear" | "unir" | "abandonar" | "listar";
125
+ readonly espacio: string;
126
+ readonly nodoId: NodoId;
127
+ };
128
+ export type PayloadIdentity = {
129
+ readonly nodoId: NodoId;
130
+ readonly parPublico: ParPublico;
131
+ readonly algoritmo: string;
132
+ readonly prueba: Uint8Array;
133
+ };
134
+ export type PayloadError = {
135
+ readonly codigo: number;
136
+ readonly mensaje: string;
137
+ readonly origen: NodoId | null;
138
+ readonly idMensajeOriginal: string | null;
139
+ };
140
+ export interface Operacion {
141
+ readonly id: string;
142
+ readonly tipo: string;
143
+ readonly datos: unknown;
144
+ readonly timestamp: number;
145
+ readonly autor: NodoId;
146
+ readonly secuencia: number;
147
+ }
148
+ export interface GovernancePolicy {
149
+ readonly politica: PoliticaGobernanza;
150
+ readonly umbral: number;
151
+ readonly ventanaMs: number;
152
+ readonly pesoNodo: Readonly<Record<string, number>>;
153
+ readonly reglas: readonly string[];
154
+ }
155
+ export interface NamespacePartition {
156
+ readonly id: string;
157
+ readonly nombre: string;
158
+ readonly nodos: readonly NodoId[];
159
+ readonly fechaCreacion: number;
160
+ readonly metadatos: Readonly<Record<string, string>>;
161
+ }
162
+ export interface NamespaceCapabilityGrant {
163
+ readonly id: string;
164
+ readonly espacio: string;
165
+ readonly sujeto: NodoId;
166
+ readonly capacidad: string;
167
+ readonly fechaEmision: number;
168
+ readonly fechaExpiracion: number;
169
+ readonly firma: Uint8Array;
170
+ }
171
+ export interface HealthStatus {
172
+ readonly nodoId: NodoId;
173
+ readonly estado: EstadoSalud;
174
+ readonly ultimoHeartbeat: number;
175
+ readonly latenciaMs: number;
176
+ readonly fallosConsecutivos: number;
177
+ }
178
+ export interface EdgeMeshEventMap {
179
+ nodoConectado: CustomEvent<{
180
+ readonly nodoId: NodoId;
181
+ }>;
182
+ nodoDesconectado: CustomEvent<{
183
+ readonly nodoId: NodoId;
184
+ }>;
185
+ mensajeRecibido: CustomEvent<{
186
+ readonly envolvente: Envolvente;
187
+ }>;
188
+ syncCompletado: CustomEvent<{
189
+ readonly docId: string;
190
+ readonly clock: number;
191
+ }>;
192
+ error: CustomEvent<{
193
+ readonly mensaje: string;
194
+ readonly error?: Error;
195
+ }>;
196
+ estadoCambiado: CustomEvent<{
197
+ readonly estadoAnterior: EstadoNodo;
198
+ readonly estadoNuevo: EstadoNodo;
199
+ }>;
200
+ hallazgoRecibido: CustomEvent<{
201
+ readonly hallazgo: PayloadHallazgo;
202
+ }>;
203
+ votacionRecibida: CustomEvent<{
204
+ readonly votacion: PayloadVotacion;
205
+ }>;
206
+ saludCambiada: CustomEvent<{
207
+ readonly nodoId: NodoId;
208
+ readonly salud: EstadoSalud;
209
+ }>;
210
+ failover: CustomEvent<{
211
+ readonly antiguoMaster: NodoId | null;
212
+ readonly nuevoMaster: NodoId;
213
+ readonly razon: "timeout" | "forced" | "manual";
214
+ }>;
215
+ }
216
+ export type EdgeMeshEvent = EdgeMeshEventMap[keyof EdgeMeshEventMap];
217
+ export interface StorageEntry<T = unknown> {
218
+ readonly key: string;
219
+ readonly valor: T;
220
+ readonly timestamp: number;
221
+ readonly version: number;
222
+ }
223
+ export type StorageFilter = {
224
+ readonly prefijo?: string;
225
+ readonly desde?: number;
226
+ readonly hasta?: number;
227
+ readonly limite?: number;
228
+ };
229
+ export interface EdgeMeshConfig {
230
+ readonly nodoId: NodoId;
231
+ /**
232
+ * When set, EdgeMesh opens its own PeerJS transport with this id.
233
+ * Prefer omitting this when the host app already owns PeerJS (e.g. Shelf p2p-mesh-core).
234
+ */
235
+ readonly peerId?: string;
236
+ /** Serialized keypair bytes from `serializeKeypair`, not a raw private key. */
237
+ readonly identitySecret?: Uint8Array;
238
+ readonly heartbeatIntervalMs?: number;
239
+ readonly heartbeatTimeoutMs?: number;
240
+ readonly snapshotInterval?: number;
241
+ readonly snapshotConfig?: any;
242
+ readonly storagePrefix?: string;
243
+ readonly storageBackend?: "mem" | "idb";
244
+ readonly governancePolicy?: GovernancePolicy;
245
+ readonly transportConfig?: Record<string, unknown>;
246
+ readonly maxReconnectAttempts?: number;
247
+ readonly logLevel?: "debug" | "info" | "warn" | "error";
248
+ /**
249
+ * When true (default), remote SYNC requires write/sync capability for the origin peer.
250
+ * Remote AUTHZ grants require a valid signature from a registered admin/master key.
251
+ */
252
+ readonly requireAuthz?: boolean;
253
+ /**
254
+ * When true (default), remote SYNC/AUTHZ envelopes must carry a verifiable ML-DSA signature from a peer
255
+ * key registered with `registrarClavePublica`. Set to false only for legacy/unsigned deployments.
256
+ */
257
+ readonly requireSignedEnvelopes?: boolean;
258
+ /**
259
+ * Namespace used when authorizing generic CRDT sync writes.
260
+ * Defaults to "global".
261
+ */
262
+ readonly defaultSyncNamespace?: string;
263
+ /**
264
+ * Optional external Yjs document (Phase B: share host app CRDT doc).
265
+ * When provided, EdgeMesh does **not** destroy it on `detener()`.
266
+ * Use a structural type to avoid forcing yjs types on pure type consumers.
267
+ */
268
+ readonly yDoc?: {
269
+ on: (...args: never[]) => unknown;
270
+ off: (...args: never[]) => unknown;
271
+ getMap: (name: string) => unknown;
272
+ destroy: () => void;
273
+ [key: string]: unknown;
274
+ };
275
+ /**
276
+ * When true, local Yjs updates are relayed over the attached ITransport.
277
+ * Default: `false` if `yDoc` is provided (host app owns YJS broadcast, e.g. p2pManager),
278
+ * otherwise `true`.
279
+ */
280
+ readonly relayLocalYjs?: boolean;
281
+ /**
282
+ * When true (or omitted/undefined), PQC Handshake and encryption on SYNC path are enabled.
283
+ * Set to false to disable/simulate fallback behavior.
284
+ */
285
+ readonly enablePqcEncryption?: boolean;
286
+ readonly initialMaster?: NodoId;
287
+ readonly authorityTimeoutMs?: number;
288
+ readonly sybilThreshold?: number;
289
+ readonly requireSignedVotes?: boolean;
290
+ readonly gossipFanOut?: number;
291
+ readonly gossipTTL?: number;
292
+ }
293
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ // ─── CONST OBJECT PATTERNS ────────────────────────────────────────────────
2
+ export const TIPO_MENSAJE = {
3
+ SYNC: "sync",
4
+ ACK: "ack",
5
+ HEARTBEAT: "heartbeat",
6
+ // La clave estaba mal escrita (`HALLazGO`); el valor de cable nunca lo estuvo,
7
+ // así que corregirla no rompe a ningún par. Se renombra porque una clave de enum
8
+ // mal escrita es la clase de defecto que sobrevive años y luego alguien
9
+ // empareja mal contra ella.
10
+ HALLAZGO: "hallazgo",
11
+ VOTACION: "votacion",
12
+ SNAPSHOT: "snapshot",
13
+ OP_LOG: "op_log",
14
+ AUTHZ: "authz",
15
+ NAMESPACE: "namespace",
16
+ GOVERNANCE: "governance",
17
+ IDENTITY: "identity",
18
+ ERROR: "error",
19
+ // ── CAPA MÉDICA (docs/medico/protocolo.md §7) ──
20
+ //
21
+ // El tráfico de credenciales NO pasa por AUTHZ a propósito: una concesión
22
+ // authz es estado de *capacidad local*, mientras que una credencial es una
23
+ // *afirmación replicada*. Confundirlas vuelve ambas inauditables — una
24
+ // concesión se puede revocar sin tocar el registro que la replicó, y un
25
+ // registro parece revocable cuando no lo es.
26
+ /** Presentación, solicitud y respuesta de una `CredencialMedica`. */
27
+ CREDENCIAL: "credencial",
28
+ /** Aval de un par (`Aval`) y su revocación. */
29
+ AVAL: "aval",
30
+ /** Instantánea de un registro nacional, direccionada por hash. */
31
+ REGISTRO: "registro",
32
+ PQC_HANDSHAKE: "pqc_handshake",
33
+ KEM_REPLY: "kem_reply",
34
+ PQC_ACK: "pqc_ack",
35
+ PEER_LIST_UPDATE: "peer_list_update",
36
+ GOSSIP: "gossip",
37
+ };
38
+ export const ESTADO_NODO = {
39
+ OFFLINE: "offline",
40
+ CONECTANDO: "conectando",
41
+ ONLINE: "online",
42
+ SUSPENDIDO: "suspendido",
43
+ RECONECTANDO: "reconectando",
44
+ ELIMINADO: "eliminado",
45
+ };
46
+ export const ESTADO_SALUD = {
47
+ SALUDABLE: "saludable",
48
+ LENTO: "lento",
49
+ FALLANDO: "fallando",
50
+ DESCONOCIDO: "desconocido",
51
+ };
52
+ export const POLITICA_GOBERNANZA = {
53
+ DEMOCRATICA: "democratica",
54
+ AUTORITARIA: "autoritaria",
55
+ CONSENSO: "consenso",
56
+ PLURALIDAD: "pluralidad",
57
+ };
58
+ export const TIPO_TRANSPORTE = {
59
+ PEERJS: "peerjs",
60
+ WEBSOCKET: "websocket",
61
+ MEMORIA: "memoria",
62
+ TOR: "tor",
63
+ };
64
+ // ─── TYPE GUARDS ───────────────────────────────────────────────────────────
65
+ export function isTipoMensaje(valor) {
66
+ return (typeof valor === "string" &&
67
+ Object.values(TIPO_MENSAJE).includes(valor));
68
+ }
69
+ export function isEstadoNodo(valor) {
70
+ return (typeof valor === "string" &&
71
+ Object.values(ESTADO_NODO).includes(valor));
72
+ }
73
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAE7E,MAAM,CAAC,MAAM,YAAY,GAAG;IAC3B,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,SAAS,EAAE,WAAW;IACtB,+EAA+E;IAC/E,iFAAiF;IACjF,wEAAwE;IACxE,4BAA4B;IAC5B,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,OAAO;IACd,kDAAkD;IAClD,EAAE;IACF,0EAA0E;IAC1E,2EAA2E;IAC3E,uEAAuE;IACvE,wEAAwE;IACxE,6CAA6C;IAC7C,qEAAqE;IACrE,UAAU,EAAE,YAAY;IACxB,+CAA+C;IAC/C,IAAI,EAAE,MAAM;IACZ,kEAAkE;IAClE,QAAQ,EAAE,UAAU;IACpB,aAAa,EAAE,eAAe;IAC9B,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;IAClB,gBAAgB,EAAE,kBAAkB;IACpC,MAAM,EAAE,QAAQ;CACP,CAAC;AAIX,MAAM,CAAC,MAAM,WAAW,GAAG;IAC1B,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,YAAY;IACxB,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,YAAY;IACxB,YAAY,EAAE,cAAc;IAC5B,SAAS,EAAE,WAAW;CACb,CAAC;AAIX,MAAM,CAAC,MAAM,YAAY,GAAG;IAC3B,SAAS,EAAE,WAAW;IACtB,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,UAAU;IACpB,WAAW,EAAE,aAAa;CACjB,CAAC;AAIX,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAClC,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,aAAa;IAC1B,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,YAAY;CACf,CAAC;AAKX,MAAM,CAAC,MAAM,eAAe,GAAG;IAC9B,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;IAClB,GAAG,EAAE,KAAK;CACD,CAAC;AAKX,8EAA8E;AAE9E,MAAM,UAAU,aAAa,CAAC,KAAc;IAC3C,OAAO,CACN,OAAO,KAAK,KAAK,QAAQ;QACzB,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAoB,CAAC,CAC1D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAc;IAC1C,OAAO,CACN,OAAO,KAAK,KAAK,QAAQ;QACzB,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAmB,CAAC,CACxD,CAAC;AACH,CAAC"}
@@ -0,0 +1,24 @@
1
+ /** A deviceId is the fingerprint of the device's ML-DSA-65 identity key (`deviceIdOf`): 43 base64url characters. */
2
+ export declare const DEVICE_ID_RE: RegExp;
3
+ export declare const isDeviceId: (x: unknown) => x is string;
4
+ /** True iff `deviceId` is the fingerprint of the base64url identity key `pub` (the binding every check relies on). */
5
+ export declare function idMatchesPub(deviceId: string, pub: string): Promise<boolean>;
6
+ /**
7
+ * Mesh role of a device: the root of the mesh's web/trust store is the owner; a grant that may delegate
8
+ * (`delegate >= 1`) makes an admin; any other grant a member.
9
+ */
10
+ export type Role = "owner" | "admin" | "member";
11
+ /** The locally pinned trust anchor (never read from the shared doc): the mesh owner's identity. */
12
+ export interface TrustRoot {
13
+ mid: string;
14
+ deviceId: string;
15
+ pub: string;
16
+ }
17
+ /** SF1: epochs stay far below any integer edge (u32 on the wire, safe integers in JS). */
18
+ export declare const MAX_EPOCH: number;
19
+ /** SF1: a received rotation may skip at most this many epochs ahead of the local one. */
20
+ export declare const MAX_EPOCH_SKIP = 8;
21
+ export declare const isEpoch: (x: unknown) => x is number;
22
+ /** Who may admit whom: the owner admits admins and members, an admin admits members, members admit nobody. */
23
+ export declare function canIssue(issuer: Role, subject: Role): boolean;
24
+ //# sourceMappingURL=admission.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admission.d.ts","sourceRoot":"","sources":["../../src/web/admission.ts"],"names":[],"mappings":"AAKA,oHAAoH;AACpH,eAAO,MAAM,YAAY,QAAwB,CAAC;AAClD,eAAO,MAAM,UAAU,MAAO,OAAO,KAAG,CAAC,IAAI,MACC,CAAC;AAG/C,sHAAsH;AACtH,wBAAsB,YAAY,CACjC,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GACT,OAAO,CAAC,OAAO,CAAC,CAelB;AAED;;;GAGG;AACH,MAAM,MAAM,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEhD,mGAAmG;AACnG,MAAM,WAAW,SAAS;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,0FAA0F;AAC1F,eAAO,MAAM,SAAS,QAAc,CAAC;AACrC,yFAAyF;AACzF,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,eAAO,MAAM,OAAO,MAAO,OAAO,KAAG,CAAC,IAAI,MACmC,CAAC;AAE9E,8GAA8G;AAC9G,wBAAgB,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,GAAG,OAAO,CAI7D"}