@rookdaemon/agora 0.2.8 → 0.2.9
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/dist/chunk-JUOGKXFN.js +1645 -0
- package/dist/chunk-JUOGKXFN.js.map +1 -0
- package/dist/cli.d.ts +0 -2
- package/dist/cli.js +1163 -1137
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +1613 -30
- package/dist/index.js +1135 -29
- package/dist/index.js.map +1 -1
- package/package.json +4 -2
- package/dist/cli.d.ts.map +0 -1
- package/dist/config.d.ts +0 -59
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -115
- package/dist/config.js.map +0 -1
- package/dist/discovery/bootstrap.d.ts +0 -32
- package/dist/discovery/bootstrap.d.ts.map +0 -1
- package/dist/discovery/bootstrap.js +0 -36
- package/dist/discovery/bootstrap.js.map +0 -1
- package/dist/discovery/peer-discovery.d.ts +0 -59
- package/dist/discovery/peer-discovery.d.ts.map +0 -1
- package/dist/discovery/peer-discovery.js +0 -108
- package/dist/discovery/peer-discovery.js.map +0 -1
- package/dist/identity/keypair.d.ts +0 -42
- package/dist/identity/keypair.d.ts.map +0 -1
- package/dist/identity/keypair.js +0 -83
- package/dist/identity/keypair.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/message/envelope.d.ts +0 -59
- package/dist/message/envelope.d.ts.map +0 -1
- package/dist/message/envelope.js +0 -83
- package/dist/message/envelope.js.map +0 -1
- package/dist/message/types/paper-discovery.d.ts +0 -28
- package/dist/message/types/paper-discovery.d.ts.map +0 -1
- package/dist/message/types/paper-discovery.js +0 -2
- package/dist/message/types/paper-discovery.js.map +0 -1
- package/dist/message/types/peer-discovery.d.ts +0 -78
- package/dist/message/types/peer-discovery.d.ts.map +0 -1
- package/dist/message/types/peer-discovery.js +0 -90
- package/dist/message/types/peer-discovery.js.map +0 -1
- package/dist/peer/client.d.ts +0 -50
- package/dist/peer/client.d.ts.map +0 -1
- package/dist/peer/client.js +0 -138
- package/dist/peer/client.js.map +0 -1
- package/dist/peer/manager.d.ts +0 -65
- package/dist/peer/manager.d.ts.map +0 -1
- package/dist/peer/manager.js +0 -153
- package/dist/peer/manager.js.map +0 -1
- package/dist/peer/server.d.ts +0 -65
- package/dist/peer/server.d.ts.map +0 -1
- package/dist/peer/server.js +0 -154
- package/dist/peer/server.js.map +0 -1
- package/dist/registry/capability.d.ts +0 -44
- package/dist/registry/capability.d.ts.map +0 -1
- package/dist/registry/capability.js +0 -94
- package/dist/registry/capability.js.map +0 -1
- package/dist/registry/discovery-service.d.ts +0 -64
- package/dist/registry/discovery-service.d.ts.map +0 -1
- package/dist/registry/discovery-service.js +0 -129
- package/dist/registry/discovery-service.js.map +0 -1
- package/dist/registry/messages.d.ts +0 -105
- package/dist/registry/messages.d.ts.map +0 -1
- package/dist/registry/messages.js +0 -2
- package/dist/registry/messages.js.map +0 -1
- package/dist/registry/peer-store.d.ts +0 -57
- package/dist/registry/peer-store.d.ts.map +0 -1
- package/dist/registry/peer-store.js +0 -92
- package/dist/registry/peer-store.js.map +0 -1
- package/dist/registry/peer.d.ts +0 -20
- package/dist/registry/peer.d.ts.map +0 -1
- package/dist/registry/peer.js +0 -2
- package/dist/registry/peer.js.map +0 -1
- package/dist/relay/client.d.ts +0 -112
- package/dist/relay/client.d.ts.map +0 -1
- package/dist/relay/client.js +0 -281
- package/dist/relay/client.js.map +0 -1
- package/dist/relay/jwt-auth.d.ts +0 -40
- package/dist/relay/jwt-auth.d.ts.map +0 -1
- package/dist/relay/jwt-auth.js +0 -109
- package/dist/relay/jwt-auth.js.map +0 -1
- package/dist/relay/message-buffer.d.ts +0 -41
- package/dist/relay/message-buffer.d.ts.map +0 -1
- package/dist/relay/message-buffer.js +0 -53
- package/dist/relay/message-buffer.js.map +0 -1
- package/dist/relay/rest-api.d.ts +0 -68
- package/dist/relay/rest-api.d.ts.map +0 -1
- package/dist/relay/rest-api.js +0 -225
- package/dist/relay/rest-api.js.map +0 -1
- package/dist/relay/run-relay.d.ts +0 -33
- package/dist/relay/run-relay.d.ts.map +0 -1
- package/dist/relay/run-relay.js +0 -57
- package/dist/relay/run-relay.js.map +0 -1
- package/dist/relay/server.d.ts +0 -91
- package/dist/relay/server.d.ts.map +0 -1
- package/dist/relay/server.js +0 -385
- package/dist/relay/server.js.map +0 -1
- package/dist/relay/store.d.ts +0 -19
- package/dist/relay/store.d.ts.map +0 -1
- package/dist/relay/store.js +0 -55
- package/dist/relay/store.js.map +0 -1
- package/dist/relay/types.d.ts +0 -35
- package/dist/relay/types.d.ts.map +0 -1
- package/dist/relay/types.js +0 -2
- package/dist/relay/types.js.map +0 -1
- package/dist/reputation/commit-reveal.d.ts +0 -45
- package/dist/reputation/commit-reveal.d.ts.map +0 -1
- package/dist/reputation/commit-reveal.js +0 -125
- package/dist/reputation/commit-reveal.js.map +0 -1
- package/dist/reputation/scoring.d.ts +0 -31
- package/dist/reputation/scoring.d.ts.map +0 -1
- package/dist/reputation/scoring.js +0 -105
- package/dist/reputation/scoring.js.map +0 -1
- package/dist/reputation/store.d.ts +0 -83
- package/dist/reputation/store.d.ts.map +0 -1
- package/dist/reputation/store.js +0 -202
- package/dist/reputation/store.js.map +0 -1
- package/dist/reputation/types.d.ts +0 -150
- package/dist/reputation/types.d.ts.map +0 -1
- package/dist/reputation/types.js +0 -113
- package/dist/reputation/types.js.map +0 -1
- package/dist/reputation/verification.d.ts +0 -28
- package/dist/reputation/verification.d.ts.map +0 -1
- package/dist/reputation/verification.js +0 -91
- package/dist/reputation/verification.js.map +0 -1
- package/dist/service.d.ts +0 -90
- package/dist/service.d.ts.map +0 -1
- package/dist/service.js +0 -176
- package/dist/service.js.map +0 -1
- package/dist/transport/http.d.ts +0 -41
- package/dist/transport/http.d.ts.map +0 -1
- package/dist/transport/http.js +0 -103
- package/dist/transport/http.js.map +0 -1
- package/dist/transport/peer-config.d.ts +0 -38
- package/dist/transport/peer-config.d.ts.map +0 -1
- package/dist/transport/peer-config.js +0 -41
- package/dist/transport/peer-config.js.map +0 -1
- package/dist/transport/relay.d.ts +0 -30
- package/dist/transport/relay.d.ts.map +0 -1
- package/dist/transport/relay.js +0 -85
- package/dist/transport/relay.js.map +0 -1
- package/dist/utils.d.ts +0 -40
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js +0 -59
- package/dist/utils.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"peer-discovery.js","sourceRoot":"","sources":["../../src/discovery/peer-discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Represents an ed25519 key pair for agent identity
|
|
3
|
-
*/
|
|
4
|
-
export interface KeyPair {
|
|
5
|
-
publicKey: string;
|
|
6
|
-
privateKey: string;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* Generates a new ed25519 key pair
|
|
10
|
-
* @returns KeyPair with hex-encoded public and private keys
|
|
11
|
-
*/
|
|
12
|
-
export declare function generateKeyPair(): KeyPair;
|
|
13
|
-
/**
|
|
14
|
-
* Signs a message with the private key
|
|
15
|
-
* @param message - The message to sign (string or Buffer)
|
|
16
|
-
* @param privateKeyHex - The private key in hex format
|
|
17
|
-
* @returns Signature as hex string
|
|
18
|
-
*/
|
|
19
|
-
export declare function signMessage(message: string | Buffer, privateKeyHex: string): string;
|
|
20
|
-
/**
|
|
21
|
-
* Verifies a signature with the public key
|
|
22
|
-
* @param message - The original message (string or Buffer)
|
|
23
|
-
* @param signatureHex - The signature in hex format
|
|
24
|
-
* @param publicKeyHex - The public key in hex format
|
|
25
|
-
* @returns true if signature is valid, false otherwise
|
|
26
|
-
*/
|
|
27
|
-
export declare function verifySignature(message: string | Buffer, signatureHex: string, publicKeyHex: string): boolean;
|
|
28
|
-
/**
|
|
29
|
-
* Exports a key pair to a JSON-serializable format
|
|
30
|
-
* @param keyPair - The key pair to export
|
|
31
|
-
* @returns KeyPair object with hex-encoded keys
|
|
32
|
-
*/
|
|
33
|
-
export declare function exportKeyPair(keyPair: KeyPair): KeyPair;
|
|
34
|
-
/**
|
|
35
|
-
* Imports a key pair from hex strings
|
|
36
|
-
* @param publicKeyHex - The public key in hex format
|
|
37
|
-
* @param privateKeyHex - The private key in hex format
|
|
38
|
-
* @returns KeyPair object
|
|
39
|
-
* @throws Error if keys are not valid hex strings
|
|
40
|
-
*/
|
|
41
|
-
export declare function importKeyPair(publicKeyHex: string, privateKeyHex: string): KeyPair;
|
|
42
|
-
//# sourceMappingURL=keypair.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keypair.d.ts","sourceRoot":"","sources":["../../src/identity/keypair.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAOzC;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAWnF;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,OAAO,CAcT;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAKvD;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAclF"}
|
package/dist/identity/keypair.js
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { sign, verify, generateKeyPairSync } from 'node:crypto';
|
|
2
|
-
/**
|
|
3
|
-
* Generates a new ed25519 key pair
|
|
4
|
-
* @returns KeyPair with hex-encoded public and private keys
|
|
5
|
-
*/
|
|
6
|
-
export function generateKeyPair() {
|
|
7
|
-
const { publicKey, privateKey } = generateKeyPairSync('ed25519');
|
|
8
|
-
return {
|
|
9
|
-
publicKey: publicKey.export({ type: 'spki', format: 'der' }).toString('hex'),
|
|
10
|
-
privateKey: privateKey.export({ type: 'pkcs8', format: 'der' }).toString('hex'),
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Signs a message with the private key
|
|
15
|
-
* @param message - The message to sign (string or Buffer)
|
|
16
|
-
* @param privateKeyHex - The private key in hex format
|
|
17
|
-
* @returns Signature as hex string
|
|
18
|
-
*/
|
|
19
|
-
export function signMessage(message, privateKeyHex) {
|
|
20
|
-
const messageBuffer = typeof message === 'string' ? Buffer.from(message) : message;
|
|
21
|
-
const privateKey = Buffer.from(privateKeyHex, 'hex');
|
|
22
|
-
const signature = sign(null, messageBuffer, {
|
|
23
|
-
key: privateKey,
|
|
24
|
-
format: 'der',
|
|
25
|
-
type: 'pkcs8',
|
|
26
|
-
});
|
|
27
|
-
return signature.toString('hex');
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Verifies a signature with the public key
|
|
31
|
-
* @param message - The original message (string or Buffer)
|
|
32
|
-
* @param signatureHex - The signature in hex format
|
|
33
|
-
* @param publicKeyHex - The public key in hex format
|
|
34
|
-
* @returns true if signature is valid, false otherwise
|
|
35
|
-
*/
|
|
36
|
-
export function verifySignature(message, signatureHex, publicKeyHex) {
|
|
37
|
-
const messageBuffer = typeof message === 'string' ? Buffer.from(message) : message;
|
|
38
|
-
const signature = Buffer.from(signatureHex, 'hex');
|
|
39
|
-
const publicKey = Buffer.from(publicKeyHex, 'hex');
|
|
40
|
-
try {
|
|
41
|
-
return verify(null, messageBuffer, {
|
|
42
|
-
key: publicKey,
|
|
43
|
-
format: 'der',
|
|
44
|
-
type: 'spki',
|
|
45
|
-
}, signature);
|
|
46
|
-
}
|
|
47
|
-
catch {
|
|
48
|
-
return false;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Exports a key pair to a JSON-serializable format
|
|
53
|
-
* @param keyPair - The key pair to export
|
|
54
|
-
* @returns KeyPair object with hex-encoded keys
|
|
55
|
-
*/
|
|
56
|
-
export function exportKeyPair(keyPair) {
|
|
57
|
-
return {
|
|
58
|
-
publicKey: keyPair.publicKey,
|
|
59
|
-
privateKey: keyPair.privateKey,
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Imports a key pair from hex strings
|
|
64
|
-
* @param publicKeyHex - The public key in hex format
|
|
65
|
-
* @param privateKeyHex - The private key in hex format
|
|
66
|
-
* @returns KeyPair object
|
|
67
|
-
* @throws Error if keys are not valid hex strings
|
|
68
|
-
*/
|
|
69
|
-
export function importKeyPair(publicKeyHex, privateKeyHex) {
|
|
70
|
-
// Validate that keys are valid hex strings
|
|
71
|
-
const hexPattern = /^[0-9a-f]+$/i;
|
|
72
|
-
if (!hexPattern.test(publicKeyHex)) {
|
|
73
|
-
throw new Error('Invalid public key: must be a hex string');
|
|
74
|
-
}
|
|
75
|
-
if (!hexPattern.test(privateKeyHex)) {
|
|
76
|
-
throw new Error('Invalid private key: must be a hex string');
|
|
77
|
-
}
|
|
78
|
-
return {
|
|
79
|
-
publicKey: publicKeyHex,
|
|
80
|
-
privateKey: privateKeyHex,
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
//# sourceMappingURL=keypair.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keypair.js","sourceRoot":"","sources":["../../src/identity/keypair.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAUhE;;;GAGG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAEjE,OAAO;QACL,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC5E,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;KAChF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,OAAwB,EAAE,aAAqB;IACzE,MAAM,aAAa,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACnF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAErD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE;QAC1C,GAAG,EAAE,UAAU;QACf,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,OAAO;KACd,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAwB,EACxB,YAAoB,EACpB,YAAoB;IAEpB,MAAM,aAAa,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACnF,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAEnD,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,EAAE,aAAa,EAAE;YACjC,GAAG,EAAE,SAAS;YACd,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,MAAM;SACb,EAAE,SAAS,CAAC,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,YAAoB,EAAE,aAAqB;IACvE,2CAA2C;IAC3C,MAAM,UAAU,GAAG,cAAc,CAAC;IAClC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO;QACL,SAAS,EAAE,YAAY;QACvB,UAAU,EAAE,aAAa;KAC1B,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,KAAK,UAAU,EACf,KAAK,oBAAoB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,gBAAgB,EAChB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACtE,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Message types on the Agora network.
|
|
3
|
-
* Every piece of data flowing between agents is wrapped in an envelope.
|
|
4
|
-
*/
|
|
5
|
-
export type MessageType = 'announce' | 'discover' | 'request' | 'response' | 'publish' | 'subscribe' | 'verify' | 'ack' | 'error' | 'paper_discovery' | 'peer_list_request' | 'peer_list_response' | 'peer_referral' | 'capability_announce' | 'capability_query' | 'capability_response' | 'commit' | 'reveal' | 'verification' | 'revocation' | 'reputation_query' | 'reputation_response';
|
|
6
|
-
/**
|
|
7
|
-
* The signed envelope that wraps every message on the network.
|
|
8
|
-
* Content-addressed: the ID is the hash of the canonical payload.
|
|
9
|
-
* Signed: every envelope carries a signature from the sender's private key.
|
|
10
|
-
*/
|
|
11
|
-
export interface Envelope<T = unknown> {
|
|
12
|
-
/** Content-addressed ID: SHA-256 hash of canonical payload */
|
|
13
|
-
id: string;
|
|
14
|
-
/** Message type */
|
|
15
|
-
type: MessageType;
|
|
16
|
-
/** Sender's public key (hex-encoded ed25519) */
|
|
17
|
-
sender: string;
|
|
18
|
-
/** Unix timestamp (ms) when the message was created */
|
|
19
|
-
timestamp: number;
|
|
20
|
-
/** Optional: ID of the message this is responding to */
|
|
21
|
-
inReplyTo?: string;
|
|
22
|
-
/** The actual payload */
|
|
23
|
-
payload: T;
|
|
24
|
-
/** ed25519 signature over the canonical form (hex-encoded) */
|
|
25
|
-
signature: string;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Canonical form of an envelope for signing/hashing.
|
|
29
|
-
* Deterministic JSON serialization: recursively sorted keys, no whitespace.
|
|
30
|
-
*/
|
|
31
|
-
export declare function canonicalize(type: MessageType, sender: string, timestamp: number, payload: unknown, inReplyTo?: string): string;
|
|
32
|
-
/**
|
|
33
|
-
* Compute the content-addressed ID for a message.
|
|
34
|
-
*/
|
|
35
|
-
export declare function computeId(canonical: string): string;
|
|
36
|
-
/**
|
|
37
|
-
* Create a signed envelope.
|
|
38
|
-
* @param type - Message type
|
|
39
|
-
* @param sender - Sender's public key (hex)
|
|
40
|
-
* @param privateKey - Sender's private key (hex) for signing
|
|
41
|
-
* @param payload - The message payload
|
|
42
|
-
* @param timestamp - Timestamp for the envelope (ms), defaults to Date.now()
|
|
43
|
-
* @param inReplyTo - Optional ID of the message being replied to
|
|
44
|
-
* @returns A signed Envelope
|
|
45
|
-
*/
|
|
46
|
-
export declare function createEnvelope<T>(type: MessageType, sender: string, privateKey: string, payload: T, timestamp?: number, inReplyTo?: string): Envelope<T>;
|
|
47
|
-
/**
|
|
48
|
-
* Verify an envelope's integrity and authenticity.
|
|
49
|
-
* Checks:
|
|
50
|
-
* 1. Canonical form matches the ID (content-addressing)
|
|
51
|
-
* 2. Signature is valid for the sender's public key
|
|
52
|
-
*
|
|
53
|
-
* @returns Object with `valid` boolean and optional `reason` for failure
|
|
54
|
-
*/
|
|
55
|
-
export declare function verifyEnvelope(envelope: Envelope): {
|
|
56
|
-
valid: boolean;
|
|
57
|
-
reason?: string;
|
|
58
|
-
};
|
|
59
|
-
//# sourceMappingURL=envelope.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/message/envelope.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,MAAM,WAAW,GACnB,UAAU,GACV,UAAU,GACV,SAAS,GACT,UAAU,GACV,SAAS,GACT,WAAW,GACX,QAAQ,GACR,KAAK,GACL,OAAO,GACP,iBAAiB,GACjB,mBAAmB,GACnB,oBAAoB,GACpB,eAAe,GACf,qBAAqB,GACrB,kBAAkB,GAClB,qBAAqB,GACrB,QAAQ,GACR,QAAQ,GACR,cAAc,GACd,YAAY,GACZ,kBAAkB,GAClB,qBAAqB,CAAC;AAE1B;;;;GAIG;AACH,MAAM,WAAW,QAAQ,CAAC,CAAC,GAAG,OAAO;IACnC,8DAA8D;IAC9D,EAAE,EAAE,MAAM,CAAC;IACX,mBAAmB;IACnB,IAAI,EAAE,WAAW,CAAC;IAClB,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,OAAO,EAAE,CAAC,CAAC;IACX,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC;CACnB;AAgBD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAM/H;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC9B,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,CAAC,EACV,SAAS,GAAE,MAAmB,EAC9B,SAAS,CAAC,EAAE,MAAM,GACjB,QAAQ,CAAC,CAAC,CAAC,CAcb;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAmBtF"}
|
package/dist/message/envelope.js
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { createHash } from 'node:crypto';
|
|
2
|
-
import { signMessage, verifySignature } from '../identity/keypair.js';
|
|
3
|
-
/**
|
|
4
|
-
* Deterministic JSON serialization with recursively sorted keys.
|
|
5
|
-
*/
|
|
6
|
-
function stableStringify(value) {
|
|
7
|
-
if (value === null || value === undefined)
|
|
8
|
-
return JSON.stringify(value);
|
|
9
|
-
if (typeof value !== 'object')
|
|
10
|
-
return JSON.stringify(value);
|
|
11
|
-
if (Array.isArray(value)) {
|
|
12
|
-
return '[' + value.map(stableStringify).join(',') + ']';
|
|
13
|
-
}
|
|
14
|
-
const keys = Object.keys(value).sort();
|
|
15
|
-
const pairs = keys.map(k => JSON.stringify(k) + ':' + stableStringify(value[k]));
|
|
16
|
-
return '{' + pairs.join(',') + '}';
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Canonical form of an envelope for signing/hashing.
|
|
20
|
-
* Deterministic JSON serialization: recursively sorted keys, no whitespace.
|
|
21
|
-
*/
|
|
22
|
-
export function canonicalize(type, sender, timestamp, payload, inReplyTo) {
|
|
23
|
-
const obj = { payload, sender, timestamp, type };
|
|
24
|
-
if (inReplyTo !== undefined) {
|
|
25
|
-
obj.inReplyTo = inReplyTo;
|
|
26
|
-
}
|
|
27
|
-
return stableStringify(obj);
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Compute the content-addressed ID for a message.
|
|
31
|
-
*/
|
|
32
|
-
export function computeId(canonical) {
|
|
33
|
-
return createHash('sha256').update(canonical).digest('hex');
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Create a signed envelope.
|
|
37
|
-
* @param type - Message type
|
|
38
|
-
* @param sender - Sender's public key (hex)
|
|
39
|
-
* @param privateKey - Sender's private key (hex) for signing
|
|
40
|
-
* @param payload - The message payload
|
|
41
|
-
* @param timestamp - Timestamp for the envelope (ms), defaults to Date.now()
|
|
42
|
-
* @param inReplyTo - Optional ID of the message being replied to
|
|
43
|
-
* @returns A signed Envelope
|
|
44
|
-
*/
|
|
45
|
-
export function createEnvelope(type, sender, privateKey, payload, timestamp = Date.now(), inReplyTo) {
|
|
46
|
-
const canonical = canonicalize(type, sender, timestamp, payload, inReplyTo);
|
|
47
|
-
const id = computeId(canonical);
|
|
48
|
-
const signature = signMessage(canonical, privateKey);
|
|
49
|
-
return {
|
|
50
|
-
id,
|
|
51
|
-
type,
|
|
52
|
-
sender,
|
|
53
|
-
timestamp,
|
|
54
|
-
...(inReplyTo !== undefined ? { inReplyTo } : {}),
|
|
55
|
-
payload,
|
|
56
|
-
signature,
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Verify an envelope's integrity and authenticity.
|
|
61
|
-
* Checks:
|
|
62
|
-
* 1. Canonical form matches the ID (content-addressing)
|
|
63
|
-
* 2. Signature is valid for the sender's public key
|
|
64
|
-
*
|
|
65
|
-
* @returns Object with `valid` boolean and optional `reason` for failure
|
|
66
|
-
*/
|
|
67
|
-
export function verifyEnvelope(envelope) {
|
|
68
|
-
const { id, type, sender, timestamp, payload, signature, inReplyTo } = envelope;
|
|
69
|
-
// Reconstruct canonical form
|
|
70
|
-
const canonical = canonicalize(type, sender, timestamp, payload, inReplyTo);
|
|
71
|
-
// Check content-addressed ID
|
|
72
|
-
const expectedId = computeId(canonical);
|
|
73
|
-
if (id !== expectedId) {
|
|
74
|
-
return { valid: false, reason: 'id_mismatch' };
|
|
75
|
-
}
|
|
76
|
-
// Check signature
|
|
77
|
-
const sigValid = verifySignature(canonical, signature, sender);
|
|
78
|
-
if (!sigValid) {
|
|
79
|
-
return { valid: false, reason: 'signature_invalid' };
|
|
80
|
-
}
|
|
81
|
-
return { valid: true };
|
|
82
|
-
}
|
|
83
|
-
//# sourceMappingURL=envelope.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/message/envelope.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Payload for 'paper_discovery' messages.
|
|
3
|
-
* An agent publishes a discovered academic paper to the network.
|
|
4
|
-
* Each paper gets its own envelope for easy referencing and threading.
|
|
5
|
-
*/
|
|
6
|
-
export interface PaperDiscoveryPayload {
|
|
7
|
-
/** arXiv identifier (e.g. "2501.12345") */
|
|
8
|
-
arxiv_id: string;
|
|
9
|
-
/** Paper title */
|
|
10
|
-
title: string;
|
|
11
|
-
/** List of author names */
|
|
12
|
-
authors: string[];
|
|
13
|
-
/** Key contribution in 1-2 sentences */
|
|
14
|
-
claim: string;
|
|
15
|
-
/** Confidence score (0-1) in the relevance/importance assessment */
|
|
16
|
-
confidence: number;
|
|
17
|
-
/** Tags describing relevance domains */
|
|
18
|
-
relevance_tags: string[];
|
|
19
|
-
/** Agent ID of the discoverer */
|
|
20
|
-
discoverer: string;
|
|
21
|
-
/** ISO 8601 timestamp of discovery */
|
|
22
|
-
timestamp: string;
|
|
23
|
-
/** URL to the abstract page */
|
|
24
|
-
abstract_url: string;
|
|
25
|
-
/** URL to the PDF (optional) */
|
|
26
|
-
pdf_url?: string;
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=paper-discovery.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"paper-discovery.d.ts","sourceRoot":"","sources":["../../../src/message/types/paper-discovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"paper-discovery.js","sourceRoot":"","sources":["../../../src/message/types/paper-discovery.ts"],"names":[],"mappings":""}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Peer discovery message types for the Agora network.
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Request peer list from relay
|
|
6
|
-
*/
|
|
7
|
-
export interface PeerListRequestPayload {
|
|
8
|
-
/** Optional filters */
|
|
9
|
-
filters?: {
|
|
10
|
-
/** Only peers seen in last N ms */
|
|
11
|
-
activeWithin?: number;
|
|
12
|
-
/** Maximum peers to return */
|
|
13
|
-
limit?: number;
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Relay responds with connected peers
|
|
18
|
-
*/
|
|
19
|
-
export interface PeerListResponsePayload {
|
|
20
|
-
/** List of known peers */
|
|
21
|
-
peers: Array<{
|
|
22
|
-
/** Peer's Ed25519 public key */
|
|
23
|
-
publicKey: string;
|
|
24
|
-
/** Optional metadata (if peer announced) */
|
|
25
|
-
metadata?: {
|
|
26
|
-
name?: string;
|
|
27
|
-
version?: string;
|
|
28
|
-
capabilities?: string[];
|
|
29
|
-
};
|
|
30
|
-
/** Last seen timestamp (ms) */
|
|
31
|
-
lastSeen: number;
|
|
32
|
-
}>;
|
|
33
|
-
/** Total peer count (may be > peers.length if limited) */
|
|
34
|
-
totalPeers: number;
|
|
35
|
-
/** Relay's public key (for trust verification) */
|
|
36
|
-
relayPublicKey: string;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Agent recommends another agent
|
|
40
|
-
*/
|
|
41
|
-
export interface PeerReferralPayload {
|
|
42
|
-
/** Referred peer's public key */
|
|
43
|
-
publicKey: string;
|
|
44
|
-
/** Optional endpoint (if known) */
|
|
45
|
-
endpoint?: string;
|
|
46
|
-
/** Optional metadata */
|
|
47
|
-
metadata?: {
|
|
48
|
-
name?: string;
|
|
49
|
-
version?: string;
|
|
50
|
-
capabilities?: string[];
|
|
51
|
-
};
|
|
52
|
-
/** Referrer's comment */
|
|
53
|
-
comment?: string;
|
|
54
|
-
/** Trust hint (RFC-001 integration) */
|
|
55
|
-
trustScore?: number;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Validate PeerListRequestPayload
|
|
59
|
-
*/
|
|
60
|
-
export declare function validatePeerListRequest(payload: unknown): {
|
|
61
|
-
valid: boolean;
|
|
62
|
-
errors: string[];
|
|
63
|
-
};
|
|
64
|
-
/**
|
|
65
|
-
* Validate PeerListResponsePayload
|
|
66
|
-
*/
|
|
67
|
-
export declare function validatePeerListResponse(payload: unknown): {
|
|
68
|
-
valid: boolean;
|
|
69
|
-
errors: string[];
|
|
70
|
-
};
|
|
71
|
-
/**
|
|
72
|
-
* Validate PeerReferralPayload
|
|
73
|
-
*/
|
|
74
|
-
export declare function validatePeerReferral(payload: unknown): {
|
|
75
|
-
valid: boolean;
|
|
76
|
-
errors: string[];
|
|
77
|
-
};
|
|
78
|
-
//# sourceMappingURL=peer-discovery.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"peer-discovery.d.ts","sourceRoot":"","sources":["../../../src/message/types/peer-discovery.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,uBAAuB;IACvB,OAAO,CAAC,EAAE;QACR,mCAAmC;QACnC,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,8BAA8B;QAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,0BAA0B;IAC1B,KAAK,EAAE,KAAK,CAAC;QACX,gCAAgC;QAChC,SAAS,EAAE,MAAM,CAAC;QAClB,4CAA4C;QAC5C,QAAQ,CAAC,EAAE;YACT,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;SACzB,CAAC;QACF,+BAA+B;QAC/B,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,QAAQ,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;IACF,yBAAyB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAyB9F;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAqC/F;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CA2B3F"}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Peer discovery message types for the Agora network.
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Validate PeerListRequestPayload
|
|
6
|
-
*/
|
|
7
|
-
export function validatePeerListRequest(payload) {
|
|
8
|
-
const errors = [];
|
|
9
|
-
if (typeof payload !== 'object' || payload === null) {
|
|
10
|
-
errors.push('Payload must be an object');
|
|
11
|
-
return { valid: false, errors };
|
|
12
|
-
}
|
|
13
|
-
const p = payload;
|
|
14
|
-
if (p.filters !== undefined) {
|
|
15
|
-
if (typeof p.filters !== 'object' || p.filters === null) {
|
|
16
|
-
errors.push('filters must be an object');
|
|
17
|
-
}
|
|
18
|
-
else {
|
|
19
|
-
const filters = p.filters;
|
|
20
|
-
if (filters.activeWithin !== undefined && typeof filters.activeWithin !== 'number') {
|
|
21
|
-
errors.push('filters.activeWithin must be a number');
|
|
22
|
-
}
|
|
23
|
-
if (filters.limit !== undefined && typeof filters.limit !== 'number') {
|
|
24
|
-
errors.push('filters.limit must be a number');
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
return { valid: errors.length === 0, errors };
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Validate PeerListResponsePayload
|
|
32
|
-
*/
|
|
33
|
-
export function validatePeerListResponse(payload) {
|
|
34
|
-
const errors = [];
|
|
35
|
-
if (typeof payload !== 'object' || payload === null) {
|
|
36
|
-
errors.push('Payload must be an object');
|
|
37
|
-
return { valid: false, errors };
|
|
38
|
-
}
|
|
39
|
-
const p = payload;
|
|
40
|
-
if (!Array.isArray(p.peers)) {
|
|
41
|
-
errors.push('peers must be an array');
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
p.peers.forEach((peer, index) => {
|
|
45
|
-
if (typeof peer !== 'object' || peer === null) {
|
|
46
|
-
errors.push(`peers[${index}] must be an object`);
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
const peerObj = peer;
|
|
50
|
-
if (typeof peerObj.publicKey !== 'string') {
|
|
51
|
-
errors.push(`peers[${index}].publicKey must be a string`);
|
|
52
|
-
}
|
|
53
|
-
if (typeof peerObj.lastSeen !== 'number') {
|
|
54
|
-
errors.push(`peers[${index}].lastSeen must be a number`);
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
if (typeof p.totalPeers !== 'number') {
|
|
59
|
-
errors.push('totalPeers must be a number');
|
|
60
|
-
}
|
|
61
|
-
if (typeof p.relayPublicKey !== 'string') {
|
|
62
|
-
errors.push('relayPublicKey must be a string');
|
|
63
|
-
}
|
|
64
|
-
return { valid: errors.length === 0, errors };
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Validate PeerReferralPayload
|
|
68
|
-
*/
|
|
69
|
-
export function validatePeerReferral(payload) {
|
|
70
|
-
const errors = [];
|
|
71
|
-
if (typeof payload !== 'object' || payload === null) {
|
|
72
|
-
errors.push('Payload must be an object');
|
|
73
|
-
return { valid: false, errors };
|
|
74
|
-
}
|
|
75
|
-
const p = payload;
|
|
76
|
-
if (typeof p.publicKey !== 'string') {
|
|
77
|
-
errors.push('publicKey must be a string');
|
|
78
|
-
}
|
|
79
|
-
if (p.endpoint !== undefined && typeof p.endpoint !== 'string') {
|
|
80
|
-
errors.push('endpoint must be a string');
|
|
81
|
-
}
|
|
82
|
-
if (p.comment !== undefined && typeof p.comment !== 'string') {
|
|
83
|
-
errors.push('comment must be a string');
|
|
84
|
-
}
|
|
85
|
-
if (p.trustScore !== undefined && typeof p.trustScore !== 'number') {
|
|
86
|
-
errors.push('trustScore must be a number');
|
|
87
|
-
}
|
|
88
|
-
return { valid: errors.length === 0, errors };
|
|
89
|
-
}
|
|
90
|
-
//# sourceMappingURL=peer-discovery.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"peer-discovery.js","sourceRoot":"","sources":["../../../src/message/types/peer-discovery.ts"],"names":[],"mappings":"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"}
|
package/dist/peer/client.d.ts
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from 'node:events';
|
|
2
|
-
import type { KeyPair } from '../identity/keypair.js';
|
|
3
|
-
import type { Envelope } from '../message/envelope.js';
|
|
4
|
-
import type { AnnouncePayload } from '../registry/messages.js';
|
|
5
|
-
/**
|
|
6
|
-
* Events emitted by PeerClient
|
|
7
|
-
*/
|
|
8
|
-
export interface PeerClientEvents {
|
|
9
|
-
'connected': (publicKey: string) => void;
|
|
10
|
-
'disconnected': () => void;
|
|
11
|
-
'message-received': (envelope: Envelope) => void;
|
|
12
|
-
'error': (error: Error) => void;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* WebSocket client for connecting to peers
|
|
16
|
-
*/
|
|
17
|
-
export declare class PeerClient extends EventEmitter {
|
|
18
|
-
private socket;
|
|
19
|
-
private identity;
|
|
20
|
-
private announcePayload;
|
|
21
|
-
private url;
|
|
22
|
-
private peerPublicKey;
|
|
23
|
-
private reconnectAttempts;
|
|
24
|
-
private maxReconnectAttempts;
|
|
25
|
-
private baseReconnectDelay;
|
|
26
|
-
private reconnectTimeout;
|
|
27
|
-
private shouldReconnect;
|
|
28
|
-
constructor(url: string, identity: KeyPair, announcePayload: AnnouncePayload);
|
|
29
|
-
/**
|
|
30
|
-
* Connect to the peer
|
|
31
|
-
*/
|
|
32
|
-
connect(): void;
|
|
33
|
-
/**
|
|
34
|
-
* Disconnect from the peer
|
|
35
|
-
*/
|
|
36
|
-
disconnect(): void;
|
|
37
|
-
/**
|
|
38
|
-
* Send a message to the peer
|
|
39
|
-
*/
|
|
40
|
-
send(envelope: Envelope): boolean;
|
|
41
|
-
/**
|
|
42
|
-
* Check if connected to peer
|
|
43
|
-
*/
|
|
44
|
-
isConnected(): boolean;
|
|
45
|
-
/**
|
|
46
|
-
* Get the peer's public key (if connected)
|
|
47
|
-
*/
|
|
48
|
-
getPeerPublicKey(): string | null;
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/peer/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,kBAAkB,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IACjD,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACjC;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,oBAAoB,CAAM;IAClC,OAAO,CAAC,kBAAkB,CAAQ;IAClC,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,eAAe,CAAQ;gBAEnB,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe;IAO5E;;OAEG;IACH,OAAO,IAAI,IAAI;IAqFf;;OAEG;IACH,UAAU,IAAI,IAAI;IAgBlB;;OAEG;IACH,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAcjC;;OAEG;IACH,WAAW,IAAI,OAAO;IAMtB;;OAEG;IACH,gBAAgB,IAAI,MAAM,GAAG,IAAI;CAGlC"}
|