@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
package/dist/web/pq.js ADDED
@@ -0,0 +1,59 @@
1
+ // Post-quantum primitives of the browser mesh (AGENTS.md §2): identity signatures are ML-DSA-65 (FIPS 204) and key
2
+ // exchanges combine ML-KEM-768 (FIPS 203) with ECDH P-256 (hybrid: both secrets REQUIRED, so the exchange stays
3
+ // secure if either primitive holds). Implementation: `@noble/post-quantum` (pure JS) + WebCrypto for ECDH/HKDF.
4
+ import { ml_dsa65 } from "@noble/post-quantum/ml-dsa.js";
5
+ import { ml_kem768 } from "@noble/post-quantum/ml-kem.js";
6
+ import { hkdf } from "./crypto.js";
7
+ import { canonicalBytes, sha256B64u } from "./trust/canonical.js";
8
+ import { b64uEncode, concat } from "./util.js";
9
+ export const IDENTITY_ALG = "ML-DSA-65";
10
+ export const KEM_ALG = "ML-KEM-768";
11
+ export const ML_DSA_PUBLIC_KEY_BYTES = 1952;
12
+ export const ML_DSA_SECRET_KEY_BYTES = 4032;
13
+ export const ML_DSA_SIGNATURE_BYTES = 3309;
14
+ export const ML_KEM_PUBLIC_KEY_BYTES = 1184;
15
+ export const ML_KEM_SECRET_KEY_BYTES = 2400;
16
+ export const ML_KEM_CIPHERTEXT_BYTES = 1088;
17
+ /**
18
+ * Device id = fingerprint of the ML-DSA-65 identity key, with ONE canonical encoding shared with `web/trust`
19
+ * (`keyFingerprint`): base64url(SHA-256(canonicalJson({ alg: "ML-DSA-65", pub: base64url(raw 1952-byte key) }))),
20
+ * 43 characters (full 256-bit hash: 128-bit second-preimage resistance even against Grover). The algorithm is part of
21
+ * the hashed value, so a key of another algorithm can never produce the same id.
22
+ */
23
+ export function deviceIdOf(publicKey) {
24
+ return sha256B64u(canonicalBytes({ alg: IDENTITY_ALG, pub: b64uEncode(publicKey) }));
25
+ }
26
+ /** New ML-DSA-65 identity key pair (raw bytes). */
27
+ export const identityKeygen = () => ml_dsa65.keygen();
28
+ export const identitySign = (secretKey, data) => ml_dsa65.sign(data, secretKey);
29
+ /** ML-DSA-65 verification with exact sizes; never throws (anything else, e.g. an ECDSA key or signature: false). */
30
+ export function identityVerify(publicKey, data, signature) {
31
+ if (publicKey.length !== ML_DSA_PUBLIC_KEY_BYTES ||
32
+ signature.length !== ML_DSA_SIGNATURE_BYTES)
33
+ return false;
34
+ try {
35
+ return ml_dsa65.verify(signature, data, publicKey);
36
+ }
37
+ catch {
38
+ return false;
39
+ }
40
+ }
41
+ /** New ML-KEM-768 key pair (raw bytes): `publicKey` is the encapsulation key, `secretKey` the decapsulation key. */
42
+ export const kemKeygen = () => ml_kem768.keygen();
43
+ export function kemEncapsulate(publicKey) {
44
+ if (publicKey.length !== ML_KEM_PUBLIC_KEY_BYTES)
45
+ throw new Error("not an ML-KEM-768 encapsulation key");
46
+ return ml_kem768.encapsulate(publicKey);
47
+ }
48
+ export function kemDecapsulate(cipherText, secretKey) {
49
+ if (cipherText.length !== ML_KEM_CIPHERTEXT_BYTES)
50
+ throw new Error("not an ML-KEM-768 ciphertext");
51
+ return ml_kem768.decapsulate(cipherText, secretKey);
52
+ }
53
+ /** Hybrid combiner: HKDF-SHA-256(ikm = ML-KEM secret || ECDH secret, salt, info). Both inputs are required. */
54
+ export function hybridSecret(kemSecret, ecdhSecret, info, salt) {
55
+ if (kemSecret.length !== 32 || ecdhSecret.length !== 32)
56
+ throw new Error("hybrid key exchange needs both secrets");
57
+ return hkdf(concat(kemSecret, ecdhSecret), info, salt);
58
+ }
59
+ //# sourceMappingURL=pq.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pq.js","sourceRoot":"","sources":["../../src/web/pq.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,188 @@
1
+ import { Awareness } from "y-protocols/awareness";
2
+ import * as Y from "yjs";
3
+ import { type Role, type TrustRoot } from "./admission.js";
4
+ import { type RotDoc } from "./rotation.js";
5
+ import { type SecDoc } from "./secstate.js";
6
+ import { type MeshStore } from "./store.js";
7
+ import type { TrustStore } from "./trust/store.js";
8
+ import type { TrustSchema } from "./trust/types.js";
9
+ import type { Device, RtcOptions, SigTransport, VaultClient } from "./types.js";
10
+ export type MeshStatus = "off" | "connecting" | "online";
11
+ export type MeshEvent = "status" | "peers" | "devices" | "sas" | "paired" | "revoked" | "rejected" | "error";
12
+ export interface MeshOptions {
13
+ appId: string;
14
+ topic: string;
15
+ doc: Y.Doc;
16
+ vault: VaultClient;
17
+ /** Tried/used in order; ALL optional. Default [] = no network at all. No public defaults. */
18
+ signaling?: SigTransport[];
19
+ persist?: "idb";
20
+ deviceName?: string;
21
+ rtc?: RtcOptions;
22
+ now?: () => number;
23
+ /**
24
+ * Device-local store for the security state (pinned root, signed grants, revocations, key records, rotations).
25
+ * Default: `vault.store`, else IndexedDB when persist:'idb', else memory (a reloaded device then has to be paired
26
+ * again). Nothing of it lives in the shared Y.Doc.
27
+ */
28
+ store?: MeshStore;
29
+ /**
30
+ * Schema of the mesh's web/trust store (round 5: the single source of membership and authority). Default
31
+ * `MESH_SCHEMA` (module "mesh", roles "admin"/"member"). An app may pass its own schema (it must keep the module
32
+ * "mesh" and the roles "admin" and "member") to issue its own permissions into the same store (`mesh.security`).
33
+ */
34
+ trustSchema?: TrustSchema;
35
+ /**
36
+ * Extra membership filter on top of the signed grants: called for every device the trust store makes a member,
37
+ * with its identity key. Only devices it accepts receive rotation wraps and appear in `devices()`.
38
+ */
39
+ authorizeDevice?: (deviceId: string, devicePub: Uint8Array) => boolean | Promise<boolean>;
40
+ /**
41
+ * Extra policy for revocations: may `issuer` revoke `target`? Checked before a local revoke() (on top of web/trust:
42
+ * the owner revokes anybody, an admin the devices it admitted) and for every device an incoming owner rotation cuts.
43
+ */
44
+ canRotate?: (issuer: string, target: string) => boolean | Promise<boolean>;
45
+ /**
46
+ * Data authorization hook: called before applying every incoming Yjs update with the AUTHENTICATED peer that
47
+ * delivered it (with signFrames on). Default: allow. Note that a sync reply may carry other members' changes:
48
+ * `sender` is the delivering device, not necessarily the author (per-author authorization needs a signed log).
49
+ * A refused update is dropped and reported as a 'rejected' event.
50
+ */
51
+ authorizeUpdate?: (sender: string, update: Uint8Array) => boolean | Promise<boolean>;
52
+ /**
53
+ * Sign every data frame with the device identity key and require valid signatures from ADMITTED devices
54
+ * (default true). Per-sender subkeys alone do not authenticate the sender: every member can derive them.
55
+ * `false` restores the legacy unsigned wire; it must then be off on every device of the mesh.
56
+ */
57
+ signFrames?: boolean;
58
+ /**
59
+ * Namespace of this mesh instance within the app (e.g. a restaurant id); it is bound into the room ids and
60
+ * every channel frame. Must be identical on all devices. Default: fingerprint of the owner's identity key.
61
+ */
62
+ instance?: string;
63
+ /** Largest message handed to a link; bigger ones are fragmented (H5). Default 64 KiB. */
64
+ maxFrameBytes?: number;
65
+ /** Largest reassembled message accepted from a peer. Default 64 MiB. */
66
+ maxMessageBytes?: number;
67
+ /**
68
+ * Rejoin the pinned mesh on start (default true). Pass `false` with a fresh `Y.Doc` to move this device to another
69
+ * mesh with `pairJoin` while the old one may still be reachable: otherwise the new instance resumes the old mesh
70
+ * and its doc fills with the old mesh's data, which `pairJoin` then refuses to carry over.
71
+ */
72
+ resume?: boolean;
73
+ /** A data link whose handshake (S1) has not completed after this long is closed (note 9). Default 120 s. */
74
+ handshakeTimeoutMs?: number;
75
+ }
76
+ export interface PairHostOptions {
77
+ /** Role of the admitted guest. Default "member". Only the owner admits admins. */
78
+ role?: Exclude<Role, "owner">;
79
+ /** Application data for this guest (e.g. a signed capability grant), sent inside the encrypted grant. */
80
+ extra?: (guest: Device) => unknown | Promise<unknown>;
81
+ }
82
+ /** A private, encrypted, signed message channel of one kind inside the mesh (e.g. "oplog"). */
83
+ export interface MeshChannel {
84
+ /** `{appId}/{instance}/{kind}`: frames from any other app or instance are rejected. */
85
+ readonly namespace: string;
86
+ /** Send to every connected, authenticated member (or only `to`). Large payloads are fragmented. */
87
+ send(data: Uint8Array, opts?: {
88
+ to?: string;
89
+ }): Promise<void>;
90
+ /** `from` is the authenticated sender (signFrames on). */
91
+ onMessage(cb: (data: Uint8Array, from: string) => void): () => void;
92
+ close(): void;
93
+ }
94
+ export interface PairJoinResult {
95
+ host?: Device;
96
+ extra?: unknown;
97
+ }
98
+ export interface PairOffer {
99
+ /** Show as QR / copy-paste. */
100
+ payload: string;
101
+ expiresAt: number;
102
+ cancel(): void;
103
+ }
104
+ /** Read access to the mesh's security state, plus adding documents (e.g. app-issued grants, a backup). */
105
+ export interface MeshSecurity {
106
+ /** Membership and authority (web/trust). */
107
+ readonly trust: TrustStore;
108
+ /** Every security document held (grants, revocations, key records, recent owner rotations). */
109
+ docs(): Promise<SecDoc[]>;
110
+ /** Verified owner rotations kept (the most recent ones), oldest first. */
111
+ rotations(): Array<RotDoc & {
112
+ id: string;
113
+ }>;
114
+ /** Key-agreement keys of a device (base64url), or null if unknown. */
115
+ keyAgreement(deviceId: string): {
116
+ ecdh: string;
117
+ kem: string;
118
+ } | null;
119
+ /** Grant ids executed (cut) by owner rotations. */
120
+ executedCuts(): string[];
121
+ /** Add a signed document (verified like any received one) and hand it to the mesh. */
122
+ add(doc: unknown): Promise<{
123
+ status: string;
124
+ id?: string;
125
+ reason?: string;
126
+ }>;
127
+ /** Several documents at once (any order; e.g. a backup). */
128
+ addMany(docs: readonly unknown[]): Promise<Array<{
129
+ status: string;
130
+ id?: string;
131
+ reason?: string;
132
+ }>>;
133
+ /** Sign a grant with this device's identity (owner, or an admin for members). Not added: pass it to `add`. */
134
+ issueGrant(subjectPub: string, opts: {
135
+ role: "admin" | "member";
136
+ name?: string;
137
+ }): Promise<unknown>;
138
+ }
139
+ export interface Mesh {
140
+ readonly status: MeshStatus;
141
+ readonly peers: string[];
142
+ readonly epoch: number;
143
+ readonly awareness: Awareness;
144
+ /** Resolves when local persistence is loaded and this device is registered. */
145
+ readonly ready: Promise<void>;
146
+ /** Pinned trust root (mesh owner), or null before the first pairing. */
147
+ readonly root: TrustRoot | null;
148
+ /** `{appId}/{instance}` of this mesh ("" instance before the first pairing unless MeshOptions.instance). */
149
+ readonly namespace: string;
150
+ /** Own message channel of a kind (letters, digits, '-', '_', '.'), separate from the shared Y.Doc. */
151
+ channel(kind: string): MeshChannel;
152
+ pairHost(opts?: PairHostOptions): Promise<PairOffer>;
153
+ pairJoin(payload: string, opts?: {
154
+ confirmSas?: (code: string) => Promise<boolean> | boolean;
155
+ }): Promise<PairJoinResult>;
156
+ /** This device plus every device a valid signed grant makes a member (and the owner). */
157
+ devices(): Device[];
158
+ /** Verified role of a device (default: this one), or null if it is not a member. */
159
+ role(deviceId?: string): Role | null;
160
+ /**
161
+ * Revoke a device: signs web/trust revocations of its grants (the owner: all of them; an admin: the ones it issued,
162
+ * directly or below), and its writes and links are cut at once everywhere. Only owner devices re-key the mesh; after
163
+ * an admin's revocation `rekeyPending` stays true until an owner device is online and has re-keyed (UI: "pendiente
164
+ * de que el dueño se conecte"): until then the revoked device still holds the current mesh key. `heads` (web/oplog
165
+ * `headIds()`) keep the device's op history up to there; without them none of its ops stays authorized.
166
+ */
167
+ revoke(deviceId: string, opts?: {
168
+ heads?: Readonly<Record<string, number | {
169
+ seq: number;
170
+ id: string;
171
+ }>>;
172
+ reason?: string;
173
+ }): Promise<void>;
174
+ /**
175
+ * Owner only: give devices that lost membership through a revoked admin (revocations cascade) a grant of their own
176
+ * from the owner. They get the current key with the next re-key.
177
+ */
178
+ reanchor(deviceIds: string[]): Promise<void>;
179
+ /** Security state (round 5: signed documents outside the Y.Doc), or null before the first pairing. */
180
+ readonly security: MeshSecurity | null;
181
+ /** A known revocation has not been followed by an owner re-key yet (the revoked device may still read new data). */
182
+ readonly rekeyPending: boolean;
183
+ leave(): void;
184
+ destroy(): void;
185
+ on(event: MeshEvent, cb: (data: any) => void): () => void;
186
+ }
187
+ export declare function createMesh(opts: MeshOptions): Mesh;
188
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/web/provider.ts"],"names":[],"mappings":"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"}