@swal/edge-mesh 0.0.0-stage → 0.1.1
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.
- package/LICENSE +128 -0
- package/NOTICE +37 -0
- package/README.md +470 -2
- package/dist/adapters/gpu-agent/index.d.ts +61 -0
- package/dist/adapters/gpu-agent/index.d.ts.map +1 -0
- package/dist/adapters/gpu-agent/index.js +364 -0
- package/dist/adapters/gpu-agent/index.js.map +1 -0
- package/dist/adapters/maloca-salud/citas-distribuidas.d.ts +19 -0
- package/dist/adapters/maloca-salud/citas-distribuidas.d.ts.map +1 -0
- package/dist/adapters/maloca-salud/citas-distribuidas.js +51 -0
- package/dist/adapters/maloca-salud/citas-distribuidas.js.map +1 -0
- package/dist/adapters/maloca-salud/eps-bridge.d.ts +15 -0
- package/dist/adapters/maloca-salud/eps-bridge.d.ts.map +1 -0
- package/dist/adapters/maloca-salud/eps-bridge.js +27 -0
- package/dist/adapters/maloca-salud/eps-bridge.js.map +1 -0
- package/dist/adapters/maloca-salud/patient-profile.d.ts +20 -0
- package/dist/adapters/maloca-salud/patient-profile.d.ts.map +1 -0
- package/dist/adapters/maloca-salud/patient-profile.js +36 -0
- package/dist/adapters/maloca-salud/patient-profile.js.map +1 -0
- package/dist/adapters/maloca-salud/types.d.ts +40 -0
- package/dist/adapters/maloca-salud/types.d.ts.map +1 -0
- package/dist/adapters/maloca-salud/types.js +2 -0
- package/dist/adapters/maloca-salud/types.js.map +1 -0
- package/dist/adapters/maloca-veeduria/contract-bridge.d.ts +31 -0
- package/dist/adapters/maloca-veeduria/contract-bridge.d.ts.map +1 -0
- package/dist/adapters/maloca-veeduria/contract-bridge.js +103 -0
- package/dist/adapters/maloca-veeduria/contract-bridge.js.map +1 -0
- package/dist/adapters/maloca-veeduria/evidentia-veeduria.d.ts +14 -0
- package/dist/adapters/maloca-veeduria/evidentia-veeduria.d.ts.map +1 -0
- package/dist/adapters/maloca-veeduria/evidentia-veeduria.js +40 -0
- package/dist/adapters/maloca-veeduria/evidentia-veeduria.js.map +1 -0
- package/dist/adapters/maloca-veeduria/licitante-profile.d.ts +21 -0
- package/dist/adapters/maloca-veeduria/licitante-profile.d.ts.map +1 -0
- package/dist/adapters/maloca-veeduria/licitante-profile.js +58 -0
- package/dist/adapters/maloca-veeduria/licitante-profile.js.map +1 -0
- package/dist/adapters/maloca-veeduria/types.d.ts +30 -0
- package/dist/adapters/maloca-veeduria/types.d.ts.map +1 -0
- package/dist/adapters/maloca-veeduria/types.js +2 -0
- package/dist/adapters/maloca-veeduria/types.js.map +1 -0
- package/dist/adapters/maloca-xavier/agent-profile.d.ts +32 -0
- package/dist/adapters/maloca-xavier/agent-profile.d.ts.map +1 -0
- package/dist/adapters/maloca-xavier/agent-profile.js +56 -0
- package/dist/adapters/maloca-xavier/agent-profile.js.map +1 -0
- package/dist/adapters/maloca-xavier/codegraph-bridge.d.ts +27 -0
- package/dist/adapters/maloca-xavier/codegraph-bridge.d.ts.map +1 -0
- package/dist/adapters/maloca-xavier/codegraph-bridge.js +58 -0
- package/dist/adapters/maloca-xavier/codegraph-bridge.js.map +1 -0
- package/dist/adapters/maloca-xavier/llm-router.d.ts +25 -0
- package/dist/adapters/maloca-xavier/llm-router.d.ts.map +1 -0
- package/dist/adapters/maloca-xavier/llm-router.js +58 -0
- package/dist/adapters/maloca-xavier/llm-router.js.map +1 -0
- package/dist/authz/index.d.ts +81 -0
- package/dist/authz/index.d.ts.map +1 -0
- package/dist/authz/index.js +271 -0
- package/dist/authz/index.js.map +1 -0
- package/dist/chat/index.d.ts +138 -0
- package/dist/chat/index.d.ts.map +1 -0
- package/dist/chat/index.js +394 -0
- package/dist/chat/index.js.map +1 -0
- package/dist/chat/offline-queue.d.ts +32 -0
- package/dist/chat/offline-queue.d.ts.map +1 -0
- package/dist/chat/offline-queue.js +93 -0
- package/dist/chat/offline-queue.js.map +1 -0
- package/dist/core/DefaultEdgeMeshNode.d.ts +17 -0
- package/dist/core/DefaultEdgeMeshNode.d.ts.map +1 -0
- package/dist/core/DefaultEdgeMeshNode.js +57 -0
- package/dist/core/DefaultEdgeMeshNode.js.map +1 -0
- package/dist/core/node.d.ts +26 -0
- package/dist/core/node.d.ts.map +1 -0
- package/dist/core/node.js +16 -0
- package/dist/core/node.js.map +1 -0
- package/dist/edge-mesh.d.ts +139 -0
- package/dist/edge-mesh.d.ts.map +1 -0
- package/dist/edge-mesh.js +1146 -0
- package/dist/edge-mesh.js.map +1 -0
- package/dist/gos/GosBridge.d.ts +49 -0
- package/dist/gos/GosBridge.d.ts.map +1 -0
- package/dist/gos/GosBridge.js +133 -0
- package/dist/gos/GosBridge.js.map +1 -0
- package/dist/governance/authority.d.ts +44 -0
- package/dist/governance/authority.d.ts.map +1 -0
- package/dist/governance/authority.js +123 -0
- package/dist/governance/authority.js.map +1 -0
- package/dist/governance/index.d.ts +66 -0
- package/dist/governance/index.d.ts.map +1 -0
- package/dist/governance/index.js +210 -0
- package/dist/governance/index.js.map +1 -0
- package/dist/governance/merge.d.ts +31 -0
- package/dist/governance/merge.d.ts.map +1 -0
- package/dist/governance/merge.js +167 -0
- package/dist/governance/merge.js.map +1 -0
- package/dist/identity/index.d.ts +199 -0
- package/dist/identity/index.d.ts.map +1 -0
- package/dist/identity/index.js +415 -0
- package/dist/identity/index.js.map +1 -0
- package/dist/index.d.ts +71 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +56 -0
- package/dist/index.js.map +1 -0
- package/dist/maloca/backoffice.d.ts +31 -0
- package/dist/maloca/backoffice.d.ts.map +1 -0
- package/dist/maloca/backoffice.js +40 -0
- package/dist/maloca/backoffice.js.map +1 -0
- package/dist/maloca/event-bus.d.ts +60 -0
- package/dist/maloca/event-bus.d.ts.map +1 -0
- package/dist/maloca/event-bus.js +175 -0
- package/dist/maloca/event-bus.js.map +1 -0
- package/dist/maloca/evidentia.d.ts +136 -0
- package/dist/maloca/evidentia.d.ts.map +1 -0
- package/dist/maloca/evidentia.js +447 -0
- package/dist/maloca/evidentia.js.map +1 -0
- package/dist/maloca/gateway/api.d.ts +146 -0
- package/dist/maloca/gateway/api.d.ts.map +1 -0
- package/dist/maloca/gateway/api.js +228 -0
- package/dist/maloca/gateway/api.js.map +1 -0
- package/dist/maloca/gateway/auth.d.ts +20 -0
- package/dist/maloca/gateway/auth.d.ts.map +1 -0
- package/dist/maloca/gateway/auth.js +115 -0
- package/dist/maloca/gateway/auth.js.map +1 -0
- package/dist/maloca/gateway/dashboard.d.ts +42 -0
- package/dist/maloca/gateway/dashboard.d.ts.map +1 -0
- package/dist/maloca/gateway/dashboard.js +67 -0
- package/dist/maloca/gateway/dashboard.js.map +1 -0
- package/dist/maloca/gateway/websocket.d.ts +34 -0
- package/dist/maloca/gateway/websocket.d.ts.map +1 -0
- package/dist/maloca/gateway/websocket.js +71 -0
- package/dist/maloca/gateway/websocket.js.map +1 -0
- package/dist/maloca/karma.d.ts +165 -0
- package/dist/maloca/karma.d.ts.map +1 -0
- package/dist/maloca/karma.js +307 -0
- package/dist/maloca/karma.js.map +1 -0
- package/dist/maloca/kernel.d.ts +20 -0
- package/dist/maloca/kernel.d.ts.map +1 -0
- package/dist/maloca/kernel.js +76 -0
- package/dist/maloca/kernel.js.map +1 -0
- package/dist/maloca/metadata.d.ts +30 -0
- package/dist/maloca/metadata.d.ts.map +1 -0
- package/dist/maloca/metadata.js +80 -0
- package/dist/maloca/metadata.js.map +1 -0
- package/dist/maloca/perfil.d.ts +57 -0
- package/dist/maloca/perfil.d.ts.map +1 -0
- package/dist/maloca/perfil.js +113 -0
- package/dist/maloca/perfil.js.map +1 -0
- package/dist/maloca/plugin-registry.d.ts +27 -0
- package/dist/maloca/plugin-registry.d.ts.map +1 -0
- package/dist/maloca/plugin-registry.js +76 -0
- package/dist/maloca/plugin-registry.js.map +1 -0
- package/dist/maloca/polygon-bridge.d.ts +63 -0
- package/dist/maloca/polygon-bridge.d.ts.map +1 -0
- package/dist/maloca/polygon-bridge.js +198 -0
- package/dist/maloca/polygon-bridge.js.map +1 -0
- package/dist/maloca/types.d.ts +44 -0
- package/dist/maloca/types.d.ts.map +1 -0
- package/dist/maloca/types.js +2 -0
- package/dist/maloca/types.js.map +1 -0
- package/dist/medico/aval.d.ts +149 -0
- package/dist/medico/aval.d.ts.map +1 -0
- package/dist/medico/aval.js +281 -0
- package/dist/medico/aval.js.map +1 -0
- package/dist/medico/canonica.d.ts +96 -0
- package/dist/medico/canonica.d.ts.map +1 -0
- package/dist/medico/canonica.js +148 -0
- package/dist/medico/canonica.js.map +1 -0
- package/dist/medico/credencial.d.ts +160 -0
- package/dist/medico/credencial.d.ts.map +1 -0
- package/dist/medico/credencial.js +240 -0
- package/dist/medico/credencial.js.map +1 -0
- package/dist/medico/index.d.ts +36 -0
- package/dist/medico/index.d.ts.map +1 -0
- package/dist/medico/index.js +39 -0
- package/dist/medico/index.js.map +1 -0
- package/dist/medico/malla.d.ts +218 -0
- package/dist/medico/malla.d.ts.map +1 -0
- package/dist/medico/malla.js +347 -0
- package/dist/medico/malla.js.map +1 -0
- package/dist/medico/registro-profesional.d.ts +84 -0
- package/dist/medico/registro-profesional.d.ts.map +1 -0
- package/dist/medico/registro-profesional.js +135 -0
- package/dist/medico/registro-profesional.js.map +1 -0
- package/dist/medico/registro.d.ts +149 -0
- package/dist/medico/registro.d.ts.map +1 -0
- package/dist/medico/registro.js +173 -0
- package/dist/medico/registro.js.map +1 -0
- package/dist/medico/types.d.ts +287 -0
- package/dist/medico/types.d.ts.map +1 -0
- package/dist/medico/types.js +135 -0
- package/dist/medico/types.js.map +1 -0
- package/dist/medico/verificacion-registro.d.ts +300 -0
- package/dist/medico/verificacion-registro.d.ts.map +1 -0
- package/dist/medico/verificacion-registro.js +319 -0
- package/dist/medico/verificacion-registro.js.map +1 -0
- package/dist/mesh/index.d.ts +457 -0
- package/dist/mesh/index.d.ts.map +1 -0
- package/dist/mesh/index.js +929 -0
- package/dist/mesh/index.js.map +1 -0
- package/dist/namespaces/encrypted-plugin.d.ts +56 -0
- package/dist/namespaces/encrypted-plugin.d.ts.map +1 -0
- package/dist/namespaces/encrypted-plugin.js +173 -0
- package/dist/namespaces/encrypted-plugin.js.map +1 -0
- package/dist/namespaces/index.d.ts +52 -0
- package/dist/namespaces/index.d.ts.map +1 -0
- package/dist/namespaces/index.js +134 -0
- package/dist/namespaces/index.js.map +1 -0
- package/dist/namespaces/ivn-proofs.d.ts +54 -0
- package/dist/namespaces/ivn-proofs.d.ts.map +1 -0
- package/dist/namespaces/ivn-proofs.js +162 -0
- package/dist/namespaces/ivn-proofs.js.map +1 -0
- package/dist/namespaces/offers-gossip.d.ts +95 -0
- package/dist/namespaces/offers-gossip.d.ts.map +1 -0
- package/dist/namespaces/offers-gossip.js +213 -0
- package/dist/namespaces/offers-gossip.js.map +1 -0
- package/dist/node-memory/idb-store.d.ts +22 -0
- package/dist/node-memory/idb-store.d.ts.map +1 -0
- package/dist/node-memory/idb-store.js +157 -0
- package/dist/node-memory/idb-store.js.map +1 -0
- package/dist/node-memory/index.d.ts +14 -0
- package/dist/node-memory/index.d.ts.map +1 -0
- package/dist/node-memory/index.js +159 -0
- package/dist/node-memory/index.js.map +1 -0
- package/dist/node-memory/sync-flush.d.ts +11 -0
- package/dist/node-memory/sync-flush.d.ts.map +1 -0
- package/dist/node-memory/sync-flush.js +37 -0
- package/dist/node-memory/sync-flush.js.map +1 -0
- package/dist/node-memory/types.d.ts +34 -0
- package/dist/node-memory/types.d.ts.map +1 -0
- package/dist/node-memory/types.js +2 -0
- package/dist/node-memory/types.js.map +1 -0
- package/dist/node-memory/xavier-store.d.ts +12 -0
- package/dist/node-memory/xavier-store.d.ts.map +1 -0
- package/dist/node-memory/xavier-store.js +75 -0
- package/dist/node-memory/xavier-store.js.map +1 -0
- package/dist/op-log/index.d.ts +49 -0
- package/dist/op-log/index.d.ts.map +1 -0
- package/dist/op-log/index.js +190 -0
- package/dist/op-log/index.js.map +1 -0
- package/dist/presence/health.d.ts +54 -0
- package/dist/presence/health.d.ts.map +1 -0
- package/dist/presence/health.js +139 -0
- package/dist/presence/health.js.map +1 -0
- package/dist/presence/index.d.ts +85 -0
- package/dist/presence/index.d.ts.map +1 -0
- package/dist/presence/index.js +255 -0
- package/dist/presence/index.js.map +1 -0
- package/dist/presence/peer-health.d.ts +40 -0
- package/dist/presence/peer-health.d.ts.map +1 -0
- package/dist/presence/peer-health.js +118 -0
- package/dist/presence/peer-health.js.map +1 -0
- package/dist/protocol/canonical.d.ts +10 -0
- package/dist/protocol/canonical.d.ts.map +1 -0
- package/dist/protocol/canonical.js +32 -0
- package/dist/protocol/canonical.js.map +1 -0
- package/dist/protocol/crypto.d.ts +299 -0
- package/dist/protocol/crypto.d.ts.map +1 -0
- package/dist/protocol/crypto.js +739 -0
- package/dist/protocol/crypto.js.map +1 -0
- package/dist/protocol/index.d.ts +30 -0
- package/dist/protocol/index.d.ts.map +1 -0
- package/dist/protocol/index.js +116 -0
- package/dist/protocol/index.js.map +1 -0
- package/dist/protocol/utils.d.ts +5 -0
- package/dist/protocol/utils.d.ts.map +1 -0
- package/dist/protocol/utils.js +27 -0
- package/dist/protocol/utils.js.map +1 -0
- package/dist/salones/manager.d.ts +100 -0
- package/dist/salones/manager.d.ts.map +1 -0
- package/dist/salones/manager.js +240 -0
- package/dist/salones/manager.js.map +1 -0
- package/dist/security/rate-limiter.d.ts +13 -0
- package/dist/security/rate-limiter.d.ts.map +1 -0
- package/dist/security/rate-limiter.js +32 -0
- package/dist/security/rate-limiter.js.map +1 -0
- package/dist/snapshot/index.d.ts +90 -0
- package/dist/snapshot/index.d.ts.map +1 -0
- package/dist/snapshot/index.js +189 -0
- package/dist/snapshot/index.js.map +1 -0
- package/dist/storage/index.d.ts +49 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +192 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/optimizer.d.ts +28 -0
- package/dist/storage/optimizer.d.ts.map +1 -0
- package/dist/storage/optimizer.js +71 -0
- package/dist/storage/optimizer.js.map +1 -0
- package/dist/storage/ydoc-persistence.d.ts +27 -0
- package/dist/storage/ydoc-persistence.d.ts.map +1 -0
- package/dist/storage/ydoc-persistence.js +128 -0
- package/dist/storage/ydoc-persistence.js.map +1 -0
- package/dist/sync/ChunkSyncManager.d.ts +41 -0
- package/dist/sync/ChunkSyncManager.d.ts.map +1 -0
- package/dist/sync/ChunkSyncManager.js +115 -0
- package/dist/sync/ChunkSyncManager.js.map +1 -0
- package/dist/sync/conflict-resolver.d.ts +33 -0
- package/dist/sync/conflict-resolver.d.ts.map +1 -0
- package/dist/sync/conflict-resolver.js +54 -0
- package/dist/sync/conflict-resolver.js.map +1 -0
- package/dist/sync/engine.d.ts +168 -0
- package/dist/sync/engine.d.ts.map +1 -0
- package/dist/sync/engine.js +315 -0
- package/dist/sync/engine.js.map +1 -0
- package/dist/sync/index.d.ts +3 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +3 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/transport/TorTransportAdapter.d.ts +70 -0
- package/dist/transport/TorTransportAdapter.d.ts.map +1 -0
- package/dist/transport/TorTransportAdapter.js +192 -0
- package/dist/transport/TorTransportAdapter.js.map +1 -0
- package/dist/transport/memory.d.ts +31 -0
- package/dist/transport/memory.d.ts.map +1 -0
- package/dist/transport/memory.js +114 -0
- package/dist/transport/memory.js.map +1 -0
- package/dist/transport/peerjs.d.ts +52 -0
- package/dist/transport/peerjs.d.ts.map +1 -0
- package/dist/transport/peerjs.js +336 -0
- package/dist/transport/peerjs.js.map +1 -0
- package/dist/transport/pqc-handshake.d.ts +72 -0
- package/dist/transport/pqc-handshake.d.ts.map +1 -0
- package/dist/transport/pqc-handshake.js +129 -0
- package/dist/transport/pqc-handshake.js.map +1 -0
- package/dist/transport/relay-config.d.ts +11 -0
- package/dist/transport/relay-config.d.ts.map +1 -0
- package/dist/transport/relay-config.js +48 -0
- package/dist/transport/relay-config.js.map +1 -0
- package/dist/transport/relay-server.d.ts +37 -0
- package/dist/transport/relay-server.d.ts.map +1 -0
- package/dist/transport/relay-server.js +246 -0
- package/dist/transport/relay-server.js.map +1 -0
- package/dist/transport/tor.d.ts +47 -0
- package/dist/transport/tor.d.ts.map +1 -0
- package/dist/transport/tor.js +158 -0
- package/dist/transport/tor.js.map +1 -0
- package/dist/transport/types.d.ts +34 -0
- package/dist/transport/types.d.ts.map +1 -0
- package/dist/transport/types.js +2 -0
- package/dist/transport/types.js.map +1 -0
- package/dist/types/index.d.ts +293 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +73 -0
- package/dist/types/index.js.map +1 -0
- package/dist/web/admission.d.ts +24 -0
- package/dist/web/admission.d.ts.map +1 -0
- package/dist/web/admission.js +41 -0
- package/dist/web/admission.js.map +1 -0
- package/dist/web/crypto.d.ts +18 -0
- package/dist/web/crypto.d.ts.map +1 -0
- package/dist/web/crypto.js +78 -0
- package/dist/web/crypto.js.map +1 -0
- package/dist/web/exchange.d.ts +23 -0
- package/dist/web/exchange.d.ts.map +1 -0
- package/dist/web/exchange.js +54 -0
- package/dist/web/exchange.js.map +1 -0
- package/dist/web/fragment.d.ts +58 -0
- package/dist/web/fragment.d.ts.map +1 -0
- package/dist/web/fragment.js +198 -0
- package/dist/web/fragment.js.map +1 -0
- package/dist/web/index.d.ts +25 -0
- package/dist/web/index.d.ts.map +1 -0
- package/dist/web/index.js +14 -0
- package/dist/web/index.js.map +1 -0
- package/dist/web/merge/index.d.ts +104 -0
- package/dist/web/merge/index.d.ts.map +1 -0
- package/dist/web/merge/index.js +236 -0
- package/dist/web/merge/index.js.map +1 -0
- package/dist/web/oplog/hlc.d.ts +19 -0
- package/dist/web/oplog/hlc.d.ts.map +1 -0
- package/dist/web/oplog/hlc.js +39 -0
- package/dist/web/oplog/hlc.js.map +1 -0
- package/dist/web/oplog/index.d.ts +10 -0
- package/dist/web/oplog/index.d.ts.map +1 -0
- package/dist/web/oplog/index.js +6 -0
- package/dist/web/oplog/index.js.map +1 -0
- package/dist/web/oplog/log.d.ts +182 -0
- package/dist/web/oplog/log.d.ts.map +1 -0
- package/dist/web/oplog/log.js +693 -0
- package/dist/web/oplog/log.js.map +1 -0
- package/dist/web/oplog/store.d.ts +40 -0
- package/dist/web/oplog/store.d.ts.map +1 -0
- package/dist/web/oplog/store.js +85 -0
- package/dist/web/oplog/store.js.map +1 -0
- package/dist/web/oplog/sync.d.ts +54 -0
- package/dist/web/oplog/sync.d.ts.map +1 -0
- package/dist/web/oplog/sync.js +162 -0
- package/dist/web/oplog/sync.js.map +1 -0
- package/dist/web/oplog/types.d.ts +119 -0
- package/dist/web/oplog/types.d.ts.map +1 -0
- package/dist/web/oplog/types.js +2 -0
- package/dist/web/oplog/types.js.map +1 -0
- package/dist/web/pairing.d.ts +186 -0
- package/dist/web/pairing.d.ts.map +1 -0
- package/dist/web/pairing.js +395 -0
- package/dist/web/pairing.js.map +1 -0
- package/dist/web/pq.d.ts +36 -0
- package/dist/web/pq.d.ts.map +1 -0
- package/dist/web/pq.js +59 -0
- package/dist/web/pq.js.map +1 -0
- package/dist/web/provider.d.ts +188 -0
- package/dist/web/provider.d.ts.map +1 -0
- package/dist/web/provider.js +2042 -0
- package/dist/web/provider.js.map +1 -0
- package/dist/web/rooms.d.ts +20 -0
- package/dist/web/rooms.d.ts.map +1 -0
- package/dist/web/rooms.js +51 -0
- package/dist/web/rooms.js.map +1 -0
- package/dist/web/rotation.d.ts +73 -0
- package/dist/web/rotation.d.ts.map +1 -0
- package/dist/web/rotation.js +130 -0
- package/dist/web/rotation.js.map +1 -0
- package/dist/web/secstate.d.ts +213 -0
- package/dist/web/secstate.d.ts.map +1 -0
- package/dist/web/secstate.js +789 -0
- package/dist/web/secstate.js.map +1 -0
- package/dist/web/store.d.ts +9 -0
- package/dist/web/store.d.ts.map +1 -0
- package/dist/web/store.js +32 -0
- package/dist/web/store.js.map +1 -0
- package/dist/web/transports/loopback.d.ts +11 -0
- package/dist/web/transports/loopback.d.ts.map +1 -0
- package/dist/web/transports/loopback.js +97 -0
- package/dist/web/transports/loopback.js.map +1 -0
- package/dist/web/transports/qr-sdp.d.ts +27 -0
- package/dist/web/transports/qr-sdp.d.ts.map +1 -0
- package/dist/web/transports/qr-sdp.js +131 -0
- package/dist/web/transports/qr-sdp.js.map +1 -0
- package/dist/web/transports/ws.d.ts +12 -0
- package/dist/web/transports/ws.d.ts.map +1 -0
- package/dist/web/transports/ws.js +139 -0
- package/dist/web/transports/ws.js.map +1 -0
- package/dist/web/trust/canonical.d.ts +8 -0
- package/dist/web/trust/canonical.d.ts.map +1 -0
- package/dist/web/trust/canonical.js +27 -0
- package/dist/web/trust/canonical.js.map +1 -0
- package/dist/web/trust/docs.d.ts +51 -0
- package/dist/web/trust/docs.d.ts.map +1 -0
- package/dist/web/trust/docs.js +170 -0
- package/dist/web/trust/docs.js.map +1 -0
- package/dist/web/trust/index.d.ts +10 -0
- package/dist/web/trust/index.d.ts.map +1 -0
- package/dist/web/trust/index.js +7 -0
- package/dist/web/trust/index.js.map +1 -0
- package/dist/web/trust/keys.d.ts +37 -0
- package/dist/web/trust/keys.d.ts.map +1 -0
- package/dist/web/trust/keys.js +75 -0
- package/dist/web/trust/keys.js.map +1 -0
- package/dist/web/trust/store.d.ts +150 -0
- package/dist/web/trust/store.d.ts.map +1 -0
- package/dist/web/trust/store.js +587 -0
- package/dist/web/trust/store.js.map +1 -0
- package/dist/web/trust/types.d.ts +134 -0
- package/dist/web/trust/types.d.ts.map +1 -0
- package/dist/web/trust/types.js +4 -0
- package/dist/web/trust/types.js.map +1 -0
- package/dist/web/types.d.ts +115 -0
- package/dist/web/types.d.ts.map +1 -0
- package/dist/web/types.js +2 -0
- package/dist/web/types.js.map +1 -0
- package/dist/web/util.d.ts +12 -0
- package/dist/web/util.d.ts.map +1 -0
- package/dist/web/util.js +54 -0
- package/dist/web/util.js.map +1 -0
- package/dist/web/webrtc.d.ts +35 -0
- package/dist/web/webrtc.d.ts.map +1 -0
- package/dist/web/webrtc.js +304 -0
- package/dist/web/webrtc.js.map +1 -0
- package/package.json +139 -4
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import { Contract, ContractFactory, Interface, JsonRpcProvider, Wallet, } from "ethers";
|
|
2
|
+
// ─── EMBEDDED CONTRACT METADATA ──────────────────────────────────────────
|
|
3
|
+
export const EVIDENTIA_ANCHOR_ABI = [
|
|
4
|
+
"event AnchorSubmitted(bytes32 indexed merkleRoot, string cid, uint256 timestamp)",
|
|
5
|
+
"function anchors(bytes32) view returns (string cid, uint256 timestamp)",
|
|
6
|
+
"function submitAnchor(bytes32 merkleRoot, string calldata cid) external",
|
|
7
|
+
"function submitAnchors(bytes32[] calldata merkleRoots, string[] calldata cids) external",
|
|
8
|
+
"function verifyProof(bytes32 merkleRoot, bytes32 leaf, bytes32[] calldata proof) external view returns (bool)",
|
|
9
|
+
];
|
|
10
|
+
export const EVIDENTIA_ANCHOR_BYTECODE = "6080604052348015600e575f5ffd5b50610d728061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80633d2fa6de1461004e5780639da7347c1461006a578063b01b6d531461009a578063f6a1a14b146100cb575b5f5ffd5b61006860048036038101906100639190610570565b6100e7565b005b610084600480360381019061007f9190610622565b6101b1565b60405161009191906106ad565b60405180910390f35b6100b460048036038101906100af91906106c6565b610286565b6040516100c2929190610779565b60405180910390f35b6100e560048036038101906100e091906107fc565b61032b565b005b604051806040016040528083838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050508152602001428152505f5f8581526020019081526020015f205f820151815f0190816101629190610ab5565b5060208201518160010155905050827f07833cba3144cd16b692ac14ef1b6f77f743ee5519895d3a98e4aaf7637fe45d8383426040516101a493929190610bbe565b60405180910390a2505050565b5f5f5f5f8781526020019081526020015f2060010154036101d4575f905061027e565b5f8490505f5f90505b84849050811015610276575f8585838181106101fc576101fb610bee565b5b90506020020135905080831161023c57828160405160200161021f929190610c3b565b604051602081830303815290604052805190602001209250610268565b808360405160200161024f929190610c3b565b6040516020818303038152906040528051906020012092505b5080806001019150506101dd565b508581149150505b949350505050565b5f602052805f5260405f205f91509050805f0180546102a4906108d4565b80601f01602080910402602001604051908101604052809291908181526020018280546102d0906108d4565b801561031b5780601f106102f25761010080835404028352916020019161031b565b820191905f5260205f20905b8154815290600101906020018083116102fe57829003601f168201915b5050505050908060010154905082565b818190508484905014610373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036a90610cb0565b60405180910390fd5b5f5f90505b848490508110156104cd5760405180604001604052808484848181106103a1576103a0610bee565b5b90506020028101906103b39190610cda565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050508152602001428152505f5f87878581811061041357610412610bee565b5b9050602002013581526020019081526020015f205f820151815f01908161043a9190610ab5565b506020820151816001015590505084848281811061045b5761045a610bee565b5b905060200201357f07833cba3144cd16b692ac14ef1b6f77f743ee5519895d3a98e4aaf7637fe45d84848481811061049657610495610bee565b5b90506020028101906104a89190610cda565b426040516104b893929190610bbe565b60405180910390a28080600101915050610378565b5050505050565b5f5ffd5b5f5ffd5b5f819050919050565b6104ee816104dc565b81146104f8575f5ffd5b50565b5f81359050610509816104e5565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126105305761052f61050f565b5b8235905067ffffffffffffffff81111561054d5761054c610513565b5b60208301915083600182028301111561056957610568610517565b5b9250929050565b5f5f5f60408486031215610587576105866104d4565b5b5f610594868287016104fb565b935050602084013567ffffffffffffffff8111156105b5576105b46104d8565b5b6105c18682870161051b565b92509250509250925092565b5f5f83601f8401126105e2576105e161050f565b5b8235905067ffffffffffffffff8111156105ff576105fe610513565b5b60208301915083602082028301111561061b5761061a610517565b5b9250929050565b5f5f5f5f6060858703121561063a576106396104d4565b5b5f610647878288016104fb565b935050604085013567ffffffffffffffff811115610679576106786104d8565b5b610685878288016105cd565b925092505092959194509250565b5f8115159050919050565b6106a781610693565b82525050565b5f6020820190506106c05f83018461069e565b92915050565b5f602082840312156106db576106da6104d4565b5b5f6106e8848285016104fb565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610733826106f1565b61073d81856106fb565b935061074d81856020860161070b565b61075681610719565b840191505092915050565b5f819050919050565b61077381610761565b82525050565b5f6040820190508181035f8301526107918185610729565b90506107a0602083018461076a565b9392505050565b5f5f83601f8401126107bc576107bb61050f565b5b8235905067ffffffffffffffff8111156107d9576107d8610513565b5b6020830191508360208202830111156107f5576107f4610517565b5b9250929050565b5f5f5f5f60408587031215610814576108136104d4565b5b5f85013567ffffffffffffffff811115610831576108306104d8565b5b61083d878288016105cd565b9450945050602085013567ffffffffffffffff8111156108605761085f6104d8565b5b61086c878288016107a7565b925092505092959194509250565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806108eb57607f821691505b6020821081036108fe576108fd6108a7565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026109607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610925565b61096a8683610925565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6109a56109a061099b84610761565b610982565b610761565b9050919050565b5f819050919050565b6109be8361098b565b6109d26109ca826109ac565b848454610931565b825550505050565b5f5f905090565b6109e96109da565b6109f48184846109b5565b505050565b5f5b82811015610a1a57610a0f5f8284016109e1565b6001810190506109fb565b505050565b601f821115610a6d5782821115610a6c57610a3981610904565b610a4283610916565b610a4b85610916565b6020861015610a58575f90505b808301610a67828403826109f9565b505050505b5b505050565b5f82821c905092915050565b5f610a8d5f1984600802610a72565b1980831691505092915050565b5f610aa58383610a7e565b9150826002028217905092915050565b610abe826106f1565b67ffffffffffffffff811115610ad757610ad661087a565b5b610ae182546108d4565b610aec828285610a1f565b5f60209050601f831160018114610b1d575f8415610b0b578287015190505b610b158582610a9a565b865550610b7c565b601f198416610b2b86610904565b5f5b82811015610b5257848901518255600182019150602085019450602081019050610b2d565b86831015610b6f5784890151610b6b601f891682610a7e565b8355505b6001600288020188555050505b505050505050565b828183375f83830152505050565b5f610b9d83856106fb565b9350610baa838584610b84565b610bb383610719565b840190509392505050565b5f6040820190508181035f830152610bd7818587610b92565b9050610be6602083018461076a565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b610c35610c30826104dc565b610c1b565b82525050565b5f610c468285610c24565b602082019150610c568284610c24565b6020820191508190509392505050565b7f4c656e677468206d69736d6174636800000000000000000000000000000000005f82015250565b5f610c9a600f836106fb565b9150610ca582610c66565b602082019050919050565b5f6020820190508181035f830152610cc781610c8e565b9050919050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83356001602003843603038112610cf657610cf5610cce565b5b80840192508235915067ffffffffffffffff821115610d1857610d17610cd2565b5b602083019250600182023603831315610d3457610d33610cd6565b5b50925092905056fea264697066735822122013ec0094c28329a28c56d8464436cda8ddcaa624fbccab6a1d017cf97d31d0c064736f6c63430008240033";
|
|
11
|
+
// ─── POLYGON BRIDGE IMPLEMENTATION ────────────────────────────────────────
|
|
12
|
+
export class PolygonBridgeImpl {
|
|
13
|
+
config;
|
|
14
|
+
provider = null;
|
|
15
|
+
wallet = null;
|
|
16
|
+
contract = null;
|
|
17
|
+
offlineQueue = [];
|
|
18
|
+
constructor(config) {
|
|
19
|
+
this.config = config;
|
|
20
|
+
if (config.rpcUrl) {
|
|
21
|
+
this.provider = new JsonRpcProvider(config.rpcUrl);
|
|
22
|
+
if (config.privateKey) {
|
|
23
|
+
this.wallet = new Wallet(config.privateKey, this.provider);
|
|
24
|
+
}
|
|
25
|
+
if (config.contractAddress) {
|
|
26
|
+
const signerOrProvider = this.wallet || this.provider;
|
|
27
|
+
this.contract = new Contract(config.contractAddress, EVIDENTIA_ANCHOR_ABI, signerOrProvider);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Envía un anchor individual (merkleRoot + cid) a Polygon.
|
|
33
|
+
* Si la red o el proveedor no están disponibles, se encola localmente y lanza un error.
|
|
34
|
+
*/
|
|
35
|
+
async submitAnchor(anchor) {
|
|
36
|
+
if (!this.provider || !this.contract) {
|
|
37
|
+
this.offlineQueue.push(anchor);
|
|
38
|
+
throw new Error("Polygon provider or contract not configured. Anchor queued.");
|
|
39
|
+
}
|
|
40
|
+
try {
|
|
41
|
+
// Enviar la transacción llamando a la función submitAnchor en Solidity
|
|
42
|
+
const tx = await this.contract.submitAnchor(anchor.merkleRoot, anchor.cid);
|
|
43
|
+
const receipt = await tx.wait();
|
|
44
|
+
if (!receipt) {
|
|
45
|
+
throw new Error("Failed to retrieve transaction receipt");
|
|
46
|
+
}
|
|
47
|
+
return receipt.hash;
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
this.offlineQueue.push(anchor);
|
|
51
|
+
throw error;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Obtiene los detalles de un Anchor basándose en el hash de transacción o logs.
|
|
56
|
+
*/
|
|
57
|
+
async getAnchor(txHash) {
|
|
58
|
+
if (!this.provider)
|
|
59
|
+
return null;
|
|
60
|
+
try {
|
|
61
|
+
const tx = await this.provider.getTransaction(txHash);
|
|
62
|
+
if (!tx)
|
|
63
|
+
return null;
|
|
64
|
+
const iface = new Interface(EVIDENTIA_ANCHOR_ABI);
|
|
65
|
+
// Intentar parsear los datos de entrada de la transacción
|
|
66
|
+
try {
|
|
67
|
+
const parsed = iface.parseTransaction({
|
|
68
|
+
data: tx.data,
|
|
69
|
+
value: tx.value,
|
|
70
|
+
});
|
|
71
|
+
if (parsed) {
|
|
72
|
+
if (parsed.name === "submitAnchor") {
|
|
73
|
+
return {
|
|
74
|
+
merkleRoot: parsed.args[0],
|
|
75
|
+
cid: parsed.args[1],
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
if (parsed.name === "submitAnchors") {
|
|
79
|
+
// Si fue batch, retornamos el primer anchor
|
|
80
|
+
const roots = parsed.args[0];
|
|
81
|
+
const cids = parsed.args[1];
|
|
82
|
+
if (roots.length > 0) {
|
|
83
|
+
return {
|
|
84
|
+
merkleRoot: roots[0],
|
|
85
|
+
cid: cids[0],
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
catch (err) {
|
|
92
|
+
// Fallback a logs de la transacción
|
|
93
|
+
}
|
|
94
|
+
// Intentar recuperar desde logs del recibo
|
|
95
|
+
const receipt = await this.provider.getTransactionReceipt(txHash);
|
|
96
|
+
if (receipt) {
|
|
97
|
+
for (const log of receipt.logs) {
|
|
98
|
+
try {
|
|
99
|
+
const parsedLog = iface.parseLog(log);
|
|
100
|
+
if (parsedLog && parsedLog.name === "AnchorSubmitted") {
|
|
101
|
+
return {
|
|
102
|
+
merkleRoot: parsedLog.args[0],
|
|
103
|
+
cid: parsedLog.args[1],
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
catch (logErr) {
|
|
108
|
+
// Ignorar logs que no pertenezcan al contrato
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
catch (err) {
|
|
114
|
+
// Capturar cualquier error de red/rpc
|
|
115
|
+
}
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Verifica un Merkle proof contra el root on-chain de Polygon.
|
|
120
|
+
*/
|
|
121
|
+
async verifyOnChain(merkleRoot, proof, leaf) {
|
|
122
|
+
if (!this.contract) {
|
|
123
|
+
throw new Error("Polygon contract not configured.");
|
|
124
|
+
}
|
|
125
|
+
try {
|
|
126
|
+
const leafHash = leaf || merkleRoot;
|
|
127
|
+
return await this.contract.verifyProof(merkleRoot, leafHash, proof);
|
|
128
|
+
}
|
|
129
|
+
catch (err) {
|
|
130
|
+
return false;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Obtiene el último bloque de Polygon.
|
|
135
|
+
*/
|
|
136
|
+
async getLastAnchorBlock() {
|
|
137
|
+
if (!this.provider)
|
|
138
|
+
return 0;
|
|
139
|
+
try {
|
|
140
|
+
return await this.provider.getBlockNumber();
|
|
141
|
+
}
|
|
142
|
+
catch (err) {
|
|
143
|
+
return 0;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Retorna la cola de anchors fuera de línea.
|
|
148
|
+
*/
|
|
149
|
+
getQueue() {
|
|
150
|
+
return this.offlineQueue;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Vacía la cola.
|
|
154
|
+
*/
|
|
155
|
+
clearQueue() {
|
|
156
|
+
this.offlineQueue = [];
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Envía todos los anchors encolados en una sola transacción batch.
|
|
160
|
+
*/
|
|
161
|
+
async flushQueue() {
|
|
162
|
+
if (this.offlineQueue.length === 0) {
|
|
163
|
+
return null;
|
|
164
|
+
}
|
|
165
|
+
if (!this.provider || !this.contract) {
|
|
166
|
+
throw new Error("Polygon provider or contract not configured for flushing queue.");
|
|
167
|
+
}
|
|
168
|
+
const batch = [...this.offlineQueue];
|
|
169
|
+
const merkleRoots = batch.map((a) => a.merkleRoot);
|
|
170
|
+
const cids = batch.map((a) => a.cid);
|
|
171
|
+
try {
|
|
172
|
+
const tx = await this.contract.submitAnchors(merkleRoots, cids);
|
|
173
|
+
const receipt = await tx.wait();
|
|
174
|
+
if (!receipt) {
|
|
175
|
+
throw new Error("Failed to retrieve transaction receipt for batch flush");
|
|
176
|
+
}
|
|
177
|
+
// Limpiar la cola en caso de éxito
|
|
178
|
+
this.offlineQueue = [];
|
|
179
|
+
return receipt.hash;
|
|
180
|
+
}
|
|
181
|
+
catch (error) {
|
|
182
|
+
throw error;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Despliega programáticamente una instancia del contrato EvidentiaAnchor.
|
|
187
|
+
*/
|
|
188
|
+
static async deploy(rpcUrl, privateKey) {
|
|
189
|
+
const provider = new JsonRpcProvider(rpcUrl);
|
|
190
|
+
const wallet = new Wallet(privateKey, provider);
|
|
191
|
+
const factory = new ContractFactory(EVIDENTIA_ANCHOR_ABI, EVIDENTIA_ANCHOR_BYTECODE, wallet);
|
|
192
|
+
const contract = await factory.deploy();
|
|
193
|
+
await contract.waitForDeployment();
|
|
194
|
+
const address = await contract.getAddress();
|
|
195
|
+
return address;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
//# sourceMappingURL=polygon-bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"polygon-bridge.js","sourceRoot":"","sources":["../../src/maloca/polygon-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { NodoId, ParPublico } from "../types/index.js";
|
|
2
|
+
export interface PerfilHumano {
|
|
3
|
+
readonly id: string;
|
|
4
|
+
readonly identidad: ParPublico;
|
|
5
|
+
readonly alias: string;
|
|
6
|
+
readonly nodos: readonly NodoId[];
|
|
7
|
+
readonly proyectos: readonly string[];
|
|
8
|
+
readonly karma?: Karma | number;
|
|
9
|
+
readonly metadatos: Readonly<Record<string, unknown>>;
|
|
10
|
+
}
|
|
11
|
+
export interface PerfilServicio {
|
|
12
|
+
readonly id: string;
|
|
13
|
+
readonly tipo: string;
|
|
14
|
+
readonly version: string;
|
|
15
|
+
readonly capacidades: readonly string[];
|
|
16
|
+
}
|
|
17
|
+
export interface TransaccionKarma {
|
|
18
|
+
readonly id: string;
|
|
19
|
+
readonly tipo: string;
|
|
20
|
+
readonly proyecto: string;
|
|
21
|
+
readonly sujeto: NodoId;
|
|
22
|
+
readonly delta: number;
|
|
23
|
+
readonly razon: string;
|
|
24
|
+
readonly emisor: NodoId;
|
|
25
|
+
readonly timestamp: number;
|
|
26
|
+
readonly firma: Uint8Array;
|
|
27
|
+
}
|
|
28
|
+
export interface Karma {
|
|
29
|
+
readonly total: number;
|
|
30
|
+
readonly historial: readonly TransaccionKarma[];
|
|
31
|
+
readonly pesosPorProyecto: Readonly<Record<string, number>>;
|
|
32
|
+
readonly ultimoDecay: number;
|
|
33
|
+
}
|
|
34
|
+
export interface MetadatosCompartidos {
|
|
35
|
+
readonly red: {
|
|
36
|
+
readonly nombre: string;
|
|
37
|
+
readonly version: string;
|
|
38
|
+
readonly nodosActivos: number;
|
|
39
|
+
};
|
|
40
|
+
readonly perfiles: number;
|
|
41
|
+
readonly repositorios: readonly string[];
|
|
42
|
+
readonly plugins: readonly string[];
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/maloca/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACtD;AAED,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;CAC3B;AAED,MAAM,WAAW,KAAK;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAChD,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;KAC9B,CAAC;IACF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/maloca/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `Aval` — the peer endorsement, and the line it cannot cross.
|
|
3
|
+
*
|
|
4
|
+
* ─── WHY AN AVAL IS STRUCTURALLY NOT A CITA ─────────────────────────────────
|
|
5
|
+
*
|
|
6
|
+
* An `Aval` is a peer assertion *about a claim*: `avalador → avalado`, subject =
|
|
7
|
+
* a credential hash, carrying `metodoVerificacion` (how the checker checked) and
|
|
8
|
+
* no patient, no date of encounter, no diagnosis, no content. A `Cita` is a
|
|
9
|
+
* patient assertion *about an encounter*, and needs none of those fields.
|
|
10
|
+
*
|
|
11
|
+
* Conflating them destroys the anti-Sybil property, so the separation is
|
|
12
|
+
* enforced three ways here: the type carries a closed `objetoAval` union, the
|
|
13
|
+
* endorsement counter in {@link resumirAvales} only counts the two objects that
|
|
14
|
+
* are about licensure, and {@link OBJETO_QUE_CUENTA} is the single place that
|
|
15
|
+
* decision lives.
|
|
16
|
+
*
|
|
17
|
+
* ─── THE LOAD-BEARING RULE ───────────────────────────────────────────────────
|
|
18
|
+
*
|
|
19
|
+
* Only `licencia_verificada` and `especialidad_verificada` promote a credential
|
|
20
|
+
* to `atestiguada_pares`. An `Aval` of `interaccion_clinica` proves the claimer
|
|
21
|
+
* *treated patients*, not that they are *licensed*. Allowing clinical `Aval`s to
|
|
22
|
+
* count is precisely the hole that lets a well-liked non-doctor buy their way
|
|
23
|
+
* into a network of doctors — money can buy encounters, and it cannot buy a
|
|
24
|
+
* government record.
|
|
25
|
+
*/
|
|
26
|
+
import type { PostQuantumIdentity } from "../identity/index.js";
|
|
27
|
+
import type { TransaccionKarma } from "../maloca/types.js";
|
|
28
|
+
import type { NodoId, ParPublico } from "../types/index.js";
|
|
29
|
+
import { hashCredencial } from "./canonica.js";
|
|
30
|
+
import { type AlcanceAval, type Aval, type MetodoVerificacion, type ObjetoAval, type ResumenAvales } from "./types.js";
|
|
31
|
+
/** Why an `Aval` was refused. Every value means it does not count. */
|
|
32
|
+
export declare const MOTIVO_RECHAZO_AVAL: {
|
|
33
|
+
/** `avalador === avalado`. The `auto_emision` rule, copied. */
|
|
34
|
+
readonly AUTO_ENDORSEMENT: "auto_endorsement";
|
|
35
|
+
/** No signature bytes. */
|
|
36
|
+
readonly FIRMA_AUSENTE: "firma_ausente";
|
|
37
|
+
/** Signature does not verify against the avalador's public key. */
|
|
38
|
+
readonly FIRMA_INVALIDA: "firma_invalida";
|
|
39
|
+
/** `objetoAval`, `alcance`, `revocable` or `metodoVerificacion.clase` invalid. */
|
|
40
|
+
readonly CAMPO_INVALIDO: "campo_invalido";
|
|
41
|
+
/** `emitidoEn` / `vigenteHasta` incoherent. */
|
|
42
|
+
readonly VIGENCIA_INVALIDA: "vigencia_invalida";
|
|
43
|
+
/** The `Aval` has lapsed. */
|
|
44
|
+
readonly AVAL_CADUCADO: "aval_caducado";
|
|
45
|
+
/** `metodoVerificacion: 'registro_por_pais'` without `versionRegistro`. */
|
|
46
|
+
readonly VERSION_REGISTRO_AUSENTE: "version_registro_ausente";
|
|
47
|
+
};
|
|
48
|
+
export type MotivoRechazoAval = (typeof MOTIVO_RECHAZO_AVAL)[keyof typeof MOTIVO_RECHAZO_AVAL];
|
|
49
|
+
export type ResultadoValidacionAval = {
|
|
50
|
+
readonly ok: true;
|
|
51
|
+
readonly aval: Aval;
|
|
52
|
+
} | {
|
|
53
|
+
readonly ok: false;
|
|
54
|
+
readonly motivo: MotivoRechazoAval;
|
|
55
|
+
readonly detalle: string;
|
|
56
|
+
/** Always `false` — an `Aval` that does not validate never counts. */
|
|
57
|
+
readonly cuentaParaPromocion: false;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* The only `objetoAval` values that may promote a credential to
|
|
61
|
+
* `atestiguada_pares`.
|
|
62
|
+
*
|
|
63
|
+
* Exported as data so that the rule has exactly one definition in the codebase.
|
|
64
|
+
* If a test, a counter or a threshold function disagreed with this set, a
|
|
65
|
+
* clinical `Aval` would end up counting toward licensure somewhere.
|
|
66
|
+
*/
|
|
67
|
+
export declare const OBJETO_QUE_CUENTA: readonly ["licencia_verificada", "especialidad_verificada"];
|
|
68
|
+
export declare function avalCuentaParaPromocion(objeto: ObjetoAval): boolean;
|
|
69
|
+
/** Inputs for {@link crearAval}. */
|
|
70
|
+
export interface BorradorAval {
|
|
71
|
+
readonly avalador: NodoId;
|
|
72
|
+
readonly avalado: NodoId;
|
|
73
|
+
readonly objetoAval: ObjetoAval;
|
|
74
|
+
/** `id` of the credential being endorsed. */
|
|
75
|
+
readonly credencialRef: string;
|
|
76
|
+
/** The exact credential bytes the avalador checked. Hashed internally. */
|
|
77
|
+
readonly hashCredencial: string;
|
|
78
|
+
readonly metodoVerificacion: MetodoVerificacion;
|
|
79
|
+
/** Hash of the artefact relied upon, if any. */
|
|
80
|
+
readonly evidenciaHash: string;
|
|
81
|
+
readonly alcance: AlcanceAval;
|
|
82
|
+
readonly emitidoEn: number;
|
|
83
|
+
readonly vigenteHasta: number;
|
|
84
|
+
/** Uniqueness component of the id, so replaying does not collide. */
|
|
85
|
+
readonly nonce: string;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Structural validation of an `Aval`, no signature check. Cheap first, PQC last,
|
|
89
|
+
* same ordering as the credential path.
|
|
90
|
+
*
|
|
91
|
+
* @param ahora - injected clock (ms epoch). The function never reads the clock
|
|
92
|
+
* itself, which is what keeps it pure.
|
|
93
|
+
*/
|
|
94
|
+
export declare function validarAval(aval: Aval, ahora: number): ResultadoValidacionAval;
|
|
95
|
+
/**
|
|
96
|
+
* Verify the avalador's signature over the canonical `Aval` bytes.
|
|
97
|
+
*
|
|
98
|
+
* Note the key must be the *avalador's*, never the avalado's: the whole content
|
|
99
|
+
* of an endorsement is that a second party looked and agreed.
|
|
100
|
+
*/
|
|
101
|
+
export declare function verificarFirmaAval(aval: Aval, identidad: PostQuantumIdentity, parPublicoAvalador: ParPublico): Promise<boolean>;
|
|
102
|
+
/** Full validation: structure, then signature. */
|
|
103
|
+
export declare function validarAvalFirmado(aval: Aval, identidad: PostQuantumIdentity, parPublicoAvalador: ParPublico, ahora: number): Promise<ResultadoValidacionAval>;
|
|
104
|
+
/**
|
|
105
|
+
* Build and sign an `Aval`.
|
|
106
|
+
*
|
|
107
|
+
* `hashCredencial` is computed from the credential object rather than taken on
|
|
108
|
+
* trust, so an `Aval` cannot be minted against a hash that does not match the
|
|
109
|
+
* bytes it claims to have checked.
|
|
110
|
+
*/
|
|
111
|
+
export declare function crearAval(borrador: BorradorAval, identidadAvalador: PostQuantumIdentity, credencialVerificada: {
|
|
112
|
+
readonly hash: string;
|
|
113
|
+
}): Promise<Aval>;
|
|
114
|
+
/** Convenience: hash a credential's canonical bytes for use in `crearAval`. */
|
|
115
|
+
export declare function prepararCredencialParaAval(credencial: Parameters<typeof hashCredencial>[0]): Promise<string>;
|
|
116
|
+
/** Convenience: `sha256(normalize(numeroLicencia))`. Never pass the number itself. */
|
|
117
|
+
export declare function idLicenciaDesdeNumero(numeroLicencia: string): Promise<string>;
|
|
118
|
+
/**
|
|
119
|
+
* Fold live `Aval`s into a {@link ResumenAvales}.
|
|
120
|
+
*
|
|
121
|
+
* This fold, not a stored fact, is what makes `atestiguada_pares` revocable:
|
|
122
|
+
* drop a revocation and the count falls on the next recomputation.
|
|
123
|
+
*
|
|
124
|
+
* Only unexpired, self-consistent `Aval`s are counted, and only the two
|
|
125
|
+
* licensure objects feed {@link ResumenAvales.verificacionesLicencia}.
|
|
126
|
+
* `avaladoresUnicos` counts distinct signers, not `Aval`s, so one peer endorsing
|
|
127
|
+
* fifty times cannot move the threshold.
|
|
128
|
+
*
|
|
129
|
+
* @param ahora - injected clock. Pure: the function never reads time itself.
|
|
130
|
+
*/
|
|
131
|
+
export declare function resumirAvales(avales: readonly Aval[], ahora: number): ResumenAvales;
|
|
132
|
+
/**
|
|
133
|
+
* Adapt an `Aval` to the existing {@link TransaccionKarma} shape.
|
|
134
|
+
*
|
|
135
|
+
* The signature envelope of an endorsement — `id`, `emisor`, `timestamp`,
|
|
136
|
+
* `firma` — is karma's, reused rather than reinvented, so an `Aval` can ride
|
|
137
|
+
* the OpLog and the replay/idempotency path that already exist.
|
|
138
|
+
*
|
|
139
|
+
* `razon` states *what was verified and how*, so the karma ledger is auditable
|
|
140
|
+
* without a join back to the `Aval`. The subject is the **endorsed** node, which
|
|
141
|
+
* is the node earning standing — matching karma's `sujeto` semantics.
|
|
142
|
+
*
|
|
143
|
+
* `delta` is deliberately left to the caller as `deltaPorAvalacion`: the weight
|
|
144
|
+
* of an `Aval` is a policy decision (DECISIÓN B.3), and this module must not
|
|
145
|
+
* quietly pick one. Note that karma is a *signal* and never grants access
|
|
146
|
+
* (`docs/medico/reglas-red.md` §1).
|
|
147
|
+
*/
|
|
148
|
+
export declare function aTransaccionKarma(aval: Aval, deltaPorAvalacion: number): TransaccionKarma;
|
|
149
|
+
//# sourceMappingURL=aval.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aval.d.ts","sourceRoot":"","sources":["../../src/medico/aval.ts"],"names":[],"mappings":"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"}
|