@agoric/network 0.1.1-dev-7ffae88.0 → 0.1.1-orchestration-dev-096c4e8.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.
- package/package.json +14 -10
- package/src/index.d.ts +1 -1
- package/src/index.js +1 -1
- package/src/network.d.ts +130 -28
- package/src/network.d.ts.map +1 -1
- package/src/network.js +869 -426
- package/src/router.d.ts +42 -22
- package/src/router.d.ts.map +1 -1
- package/src/router.js +147 -77
- package/src/types.d.ts +29 -28
- package/src/types.d.ts.map +1 -1
- package/src/types.js +36 -29
- package/tsconfig.json +1 -0
- package/typedoc.json +9 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agoric/network",
|
|
3
|
-
"version": "0.1.1-dev-
|
|
3
|
+
"version": "0.1.1-orchestration-dev-096c4e8.0+096c4e8",
|
|
4
4
|
"description": "Agoric's network protocol API",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./src/index.js",
|
|
@@ -21,16 +21,20 @@
|
|
|
21
21
|
"author": "Agoric",
|
|
22
22
|
"license": "Apache-2.0",
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@agoric/assert": "0.6.1-dev-
|
|
25
|
-
"@agoric/internal": "0.3.3-dev-
|
|
26
|
-
"@agoric/store": "0.9.3-dev-
|
|
27
|
-
"@
|
|
28
|
-
"@endo/
|
|
29
|
-
"@endo/
|
|
24
|
+
"@agoric/assert": "0.6.1-orchestration-dev-096c4e8.0+096c4e8",
|
|
25
|
+
"@agoric/internal": "0.3.3-orchestration-dev-096c4e8.0+096c4e8",
|
|
26
|
+
"@agoric/store": "0.9.3-orchestration-dev-096c4e8.0+096c4e8",
|
|
27
|
+
"@agoric/vat-data": "0.5.3-orchestration-dev-096c4e8.0+096c4e8",
|
|
28
|
+
"@endo/base64": "^1.0.2",
|
|
29
|
+
"@endo/far": "^1.0.4",
|
|
30
|
+
"@endo/patterns": "^1.1.0",
|
|
31
|
+
"@endo/promise-kit": "^1.0.4"
|
|
30
32
|
},
|
|
31
33
|
"devDependencies": {
|
|
32
|
-
"@agoric/swingset-
|
|
33
|
-
"@
|
|
34
|
+
"@agoric/swingset-liveslots": "0.10.3-orchestration-dev-096c4e8.0+096c4e8",
|
|
35
|
+
"@agoric/swingset-vat": "0.32.3-orchestration-dev-096c4e8.0+096c4e8",
|
|
36
|
+
"@agoric/zone": "0.2.3-orchestration-dev-096c4e8.0+096c4e8",
|
|
37
|
+
"@endo/bundle-source": "^3.1.0",
|
|
34
38
|
"ava": "^5.3.0",
|
|
35
39
|
"c8": "^7.13.0"
|
|
36
40
|
},
|
|
@@ -66,5 +70,5 @@
|
|
|
66
70
|
"typeCoverage": {
|
|
67
71
|
"atLeast": 76.57
|
|
68
72
|
},
|
|
69
|
-
"gitHead": "
|
|
73
|
+
"gitHead": "096c4e8fce80e9a509b0e1a30fda11736c4570e1"
|
|
70
74
|
}
|
package/src/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * from "./network.js";
|
|
2
2
|
export * from "./multiaddr.js";
|
|
3
3
|
export * from "./bytes.js";
|
|
4
|
-
export {
|
|
4
|
+
export { prepareRouter, prepareRouterProtocol } from "./router.js";
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
package/src/index.js
CHANGED
package/src/network.d.ts
CHANGED
|
@@ -1,44 +1,146 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @param {ConnectionHandler} handler0
|
|
3
|
-
* @param {Endpoint} addr0
|
|
4
|
-
* @param {ConnectionHandler} handler1
|
|
5
|
-
* @param {Endpoint} addr1
|
|
6
|
-
* @param {WeakSet<Connection>} [current]
|
|
7
|
-
* @returns {[Connection, Connection]}
|
|
8
|
-
*/
|
|
9
|
-
export function crossoverConnection(handler0: ConnectionHandler, addr0: Endpoint, handler1: ConnectionHandler, addr1: Endpoint, current?: WeakSet<Connection> | undefined): [Connection, Connection];
|
|
10
1
|
/**
|
|
11
2
|
* Get the list of prefixes from longest to shortest.
|
|
12
3
|
*
|
|
13
4
|
* @param {string} addr
|
|
14
5
|
*/
|
|
15
6
|
export function getPrefixes(addr: string): string[];
|
|
16
|
-
/**
|
|
17
|
-
* Create a protocol that has a handler.
|
|
18
|
-
*
|
|
19
|
-
* @param {ProtocolHandler} protocolHandler
|
|
20
|
-
* @returns {Protocol} the local capability for connecting and listening
|
|
21
|
-
*/
|
|
22
|
-
export function makeNetworkProtocol(protocolHandler: ProtocolHandler): Protocol;
|
|
23
|
-
/**
|
|
24
|
-
* Create a ConnectionHandler that just echoes its packets.
|
|
25
|
-
*
|
|
26
|
-
* @returns {ConnectionHandler}
|
|
27
|
-
*/
|
|
28
|
-
export function makeEchoConnectionHandler(): ConnectionHandler;
|
|
29
|
-
export function makeNonceMaker(prefix?: string, suffix?: string): () => Promise<string>;
|
|
30
7
|
/**
|
|
31
8
|
* Create a protocol handler that just connects to itself.
|
|
32
9
|
*
|
|
33
|
-
* @param {
|
|
34
|
-
* @
|
|
10
|
+
* @param {import('@agoric/base-zone').Zone} zone
|
|
11
|
+
* @param {ReturnType<import('@agoric/vow').prepareVowTools>} powers
|
|
35
12
|
*/
|
|
36
|
-
export function
|
|
13
|
+
export function prepareLoopbackProtocolHandler(zone: import('@agoric/base-zone').Zone, { when }: ReturnType<(zone: import("@agoric/base-zone").Zone, powers?: {
|
|
14
|
+
isRetryableReason?: ((reason: any) => boolean) | undefined;
|
|
15
|
+
watchPromise?: ((p: PromiseLike<any>, watcher: import("@agoric/vow/src/watch-promise.js").PromiseWatcher, ...args: unknown[]) => void) | undefined;
|
|
16
|
+
} | undefined) => {
|
|
17
|
+
when: <T = any, TResult1 = import("@agoric/vow/src/E.js").Unwrap<T>, TResult2 = never>(specimenP: T, onFulfilled?: ((value: import("@agoric/vow/src/E.js").Unwrap<T>) => TResult1 | PromiseLike<TResult1>) | undefined, onRejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined) => Promise<TResult1 | TResult2>;
|
|
18
|
+
watch: <T_1 = any, TResult1_1 = T_1, TResult2_1 = T_1>(specimenP: import("@agoric/vow").ERef<T_1 | import("@agoric/vow").Vow<T_1>>, watcher?: import("@agoric/vow").Watcher<T_1, TResult1_1, TResult2_1> | undefined, watcherContext?: unknown) => import("@agoric/vow").Vow<TResult1_1 | TResult2_1>;
|
|
19
|
+
makeVowKit: <T_2>() => import("@agoric/vow").VowKit<T_2>;
|
|
20
|
+
}>): (instancePrefix?: string | undefined) => import("@endo/exo/src/exo-makers.js").Guarded<{
|
|
21
|
+
onCreate(_impl: any, _protocolHandler: any): Promise<void>;
|
|
22
|
+
generatePortID(_localAddr: any, _protocolHandler: any): Promise<string>;
|
|
23
|
+
onBind(_port: any, _localAddr: any, _protocolHandler: any): Promise<void>;
|
|
24
|
+
onConnect(_port: any, localAddr: any, remoteAddr: any, _chandler: any, protocolHandler: any): Promise<{
|
|
25
|
+
remoteInstance: any;
|
|
26
|
+
handler: ConnectionHandler;
|
|
27
|
+
}>;
|
|
28
|
+
onInstantiate(_port: any, _localAddr: any, _remote: any, _protocol: any): Promise<string>;
|
|
29
|
+
onListen(port: any, localAddr: any, listenHandler: any, _protocolHandler: any): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* @param {Port} port
|
|
32
|
+
* @param {Endpoint} localAddr
|
|
33
|
+
* @param {ListenHandler} listenHandler
|
|
34
|
+
* @param {*} _protocolHandler
|
|
35
|
+
*/
|
|
36
|
+
onListenRemove(port: Port, localAddr: Endpoint, listenHandler: ListenHandler, _protocolHandler: any): Promise<void>;
|
|
37
|
+
onRevoke(_port: any, _localAddr: any, _protocolHandler: any): Promise<void>;
|
|
38
|
+
}>;
|
|
37
39
|
/**
|
|
38
40
|
* Compatibility note: this must match what our peers use, so don't change it
|
|
39
41
|
* casually.
|
|
40
42
|
*/
|
|
41
43
|
export const ENDPOINT_SEPARATOR: "/";
|
|
42
|
-
export
|
|
43
|
-
|
|
44
|
+
export namespace Shape {
|
|
45
|
+
let ConnectionI: import("@endo/patterns").InterfaceGuard<{
|
|
46
|
+
send: import("@endo/patterns").MethodGuard;
|
|
47
|
+
close: import("@endo/patterns").MethodGuard;
|
|
48
|
+
getLocalAddress: import("@endo/patterns").MethodGuard;
|
|
49
|
+
getRemoteAddress: import("@endo/patterns").MethodGuard;
|
|
50
|
+
}>;
|
|
51
|
+
let InboundAttemptI: import("@endo/patterns").InterfaceGuard<{
|
|
52
|
+
accept: import("@endo/patterns").MethodGuard;
|
|
53
|
+
getLocalAddress: import("@endo/patterns").MethodGuard;
|
|
54
|
+
getRemoteAddress: import("@endo/patterns").MethodGuard;
|
|
55
|
+
close: import("@endo/patterns").MethodGuard;
|
|
56
|
+
}>;
|
|
57
|
+
let PortI: import("@endo/patterns").InterfaceGuard<{
|
|
58
|
+
getLocalAddress: import("@endo/patterns").MethodGuard;
|
|
59
|
+
addListener: import("@endo/patterns").MethodGuard;
|
|
60
|
+
connect: import("@endo/patterns").MethodGuard;
|
|
61
|
+
removeListener: import("@endo/patterns").MethodGuard;
|
|
62
|
+
revoke: import("@endo/patterns").MethodGuard;
|
|
63
|
+
}>;
|
|
64
|
+
let ProtocolHandlerI: import("@endo/patterns").InterfaceGuard<{
|
|
65
|
+
onCreate: import("@endo/patterns").MethodGuard;
|
|
66
|
+
generatePortID: import("@endo/patterns").MethodGuard;
|
|
67
|
+
onBind: import("@endo/patterns").MethodGuard;
|
|
68
|
+
onListen: import("@endo/patterns").MethodGuard;
|
|
69
|
+
onListenRemove: import("@endo/patterns").MethodGuard;
|
|
70
|
+
onInstantiate: import("@endo/patterns").MethodGuard;
|
|
71
|
+
onConnect: import("@endo/patterns").MethodGuard;
|
|
72
|
+
onRevoke: import("@endo/patterns").MethodGuard;
|
|
73
|
+
}>;
|
|
74
|
+
let ProtocolImplI: import("@endo/patterns").InterfaceGuard<{
|
|
75
|
+
bind: import("@endo/patterns").MethodGuard;
|
|
76
|
+
inbound: import("@endo/patterns").MethodGuard;
|
|
77
|
+
outbound: import("@endo/patterns").MethodGuard;
|
|
78
|
+
}>;
|
|
79
|
+
function Vow$(shape: any): import("@endo/patterns").Matcher;
|
|
80
|
+
let AttemptDescription: import("@endo/patterns").Matcher;
|
|
81
|
+
let Opts: import("@endo/patterns").Matcher;
|
|
82
|
+
let Data: import("@endo/patterns").Matcher;
|
|
83
|
+
let Bytes: import("@endo/patterns").Matcher;
|
|
84
|
+
let Endpoint: import("@endo/patterns").Matcher;
|
|
85
|
+
let Vow: import("@endo/patterns").Matcher;
|
|
86
|
+
let ConnectionHandler: import("@endo/patterns").Matcher;
|
|
87
|
+
let Connection: import("@endo/patterns").Matcher;
|
|
88
|
+
let InboundAttempt: import("@endo/patterns").Matcher;
|
|
89
|
+
let Listener: import("@endo/patterns").Matcher;
|
|
90
|
+
let ListenHandler: import("@endo/patterns").Matcher;
|
|
91
|
+
let Port: import("@endo/patterns").Matcher;
|
|
92
|
+
let ProtocolHandler: import("@endo/patterns").Matcher;
|
|
93
|
+
let ProtocolImpl: import("@endo/patterns").Matcher;
|
|
94
|
+
}
|
|
95
|
+
export function rethrowUnlessMissing(err: unknown): undefined;
|
|
96
|
+
export function crossoverConnection(zone: import('@agoric/zone').Zone, handler0: ConnectionHandler, addr0: Endpoint, handler1: ConnectionHandler, addr1: Endpoint, makeConnection: (opts: ConnectionOpts) => Connection, current?: WeakSetStore<Closable>): Connection[];
|
|
97
|
+
export function prepareNetworkProtocol(zone: import('@agoric/base-zone').Zone, powers: ReturnType<(zone: import("@agoric/base-zone").Zone, powers?: {
|
|
98
|
+
isRetryableReason?: ((reason: any) => boolean) | undefined;
|
|
99
|
+
watchPromise?: ((p: PromiseLike<any>, watcher: import("@agoric/vow/src/watch-promise.js").PromiseWatcher, ...args: unknown[]) => void) | undefined;
|
|
100
|
+
} | undefined) => {
|
|
101
|
+
when: <T = any, TResult1 = import("@agoric/vow/src/E.js").Unwrap<T>, TResult2 = never>(specimenP: T, onFulfilled?: ((value: import("@agoric/vow/src/E.js").Unwrap<T>) => TResult1 | PromiseLike<TResult1>) | undefined, onRejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined) => Promise<TResult1 | TResult2>;
|
|
102
|
+
watch: <T_1 = any, TResult1_1 = T_1, TResult2_1 = T_1>(specimenP: import("@agoric/vow").ERef<T_1 | import("@agoric/vow").Vow<T_1>>, watcher?: import("@agoric/vow").Watcher<T_1, TResult1_1, TResult2_1> | undefined, watcherContext?: unknown) => import("@agoric/vow").Vow<TResult1_1 | TResult2_1>;
|
|
103
|
+
makeVowKit: <T_2>() => import("@agoric/vow").VowKit<T_2>;
|
|
104
|
+
}>): (protocolHandler: ProtocolHandler) => Protocol;
|
|
105
|
+
export function prepareEchoConnectionKit(zone: import('@agoric/base-zone').Zone): () => import("@endo/exo/src/exo-makers.js").GuardedKit<{
|
|
106
|
+
handler: {
|
|
107
|
+
/**
|
|
108
|
+
* @param {Connection} _connection
|
|
109
|
+
* @param {Bytes} bytes
|
|
110
|
+
* @param {ConnectionHandler} _connectionHandler
|
|
111
|
+
*/
|
|
112
|
+
onReceive(_connection: Connection, bytes: Bytes, _connectionHandler: ConnectionHandler): Promise<string>;
|
|
113
|
+
/**
|
|
114
|
+
* @param {Connection} _connection
|
|
115
|
+
* @param {CloseReason} [_reason]
|
|
116
|
+
* @param {ConnectionHandler} [_connectionHandler]
|
|
117
|
+
*/
|
|
118
|
+
onClose(_connection: Connection, _reason?: CloseReason, _connectionHandler?: ConnectionHandler | undefined): Promise<void>;
|
|
119
|
+
};
|
|
120
|
+
listener: {
|
|
121
|
+
onAccept(_port: any, _localAddr: any, _remoteAddr: any, _listenHandler: any): Promise<import("@endo/exo/src/exo-makers.js").Guarded<{
|
|
122
|
+
/**
|
|
123
|
+
* @param {Connection} _connection
|
|
124
|
+
* @param {Bytes} bytes
|
|
125
|
+
* @param {ConnectionHandler} _connectionHandler
|
|
126
|
+
*/
|
|
127
|
+
onReceive(_connection: Connection, bytes: Bytes, _connectionHandler: ConnectionHandler): Promise<string>;
|
|
128
|
+
/**
|
|
129
|
+
* @param {Connection} _connection
|
|
130
|
+
* @param {CloseReason} [_reason]
|
|
131
|
+
* @param {ConnectionHandler} [_connectionHandler]
|
|
132
|
+
*/
|
|
133
|
+
onClose(_connection: Connection, _reason?: CloseReason, _connectionHandler?: ConnectionHandler | undefined): Promise<void>;
|
|
134
|
+
}>>;
|
|
135
|
+
onListen(port: any, _listenHandler: any): Promise<void>;
|
|
136
|
+
};
|
|
137
|
+
}>;
|
|
138
|
+
export type ConnectionOpts = {
|
|
139
|
+
addrs: Endpoint[];
|
|
140
|
+
handlers: ConnectionHandler[];
|
|
141
|
+
conns: MapStore<number, Connection>;
|
|
142
|
+
current: WeakSetStore<Closable>;
|
|
143
|
+
l: 0 | 1;
|
|
144
|
+
r: 0 | 1;
|
|
145
|
+
};
|
|
44
146
|
//# sourceMappingURL=network.d.ts.map
|
package/src/network.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network.d.ts","sourceRoot":"","sources":["network.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"network.d.ts","sourceRoot":"","sources":["network.js"],"names":[],"mappings":"AAyJA;;;;GAIG;AACH,kCAFW,MAAM,YAahB;AAgvBD;;;;;GAKG;AACH,qDAHW,OAAO,mBAAmB,EAAE,IAAI,YAChC;;;;;;;EAAiD;;;;;;;;;;IA4EtD;;;;;OAKG;yBAJQ,IAAI,aACJ,QAAQ,iBACR,aAAa;;GAkB7B;AAn/BD;;;GAGG;AACH,qCAAsC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8B9B,4DAAgC;;;;;;;;;;;;;;;;AAgGjC,0CADK,OAAO,aAWlB;AA2GM,0CARI,OAAO,cAAc,EAAE,IAAI,YAC3B,iBAAiB,SACjB,QAAQ,YACR,iBAAiB,SACjB,QAAQ,yBACD,cAAc,KAAK,UAAU,YACpC,aAAa,QAAQ,CAAC,gBA+ChC;AAofM,6CAHI,OAAO,mBAAmB,EAAE,IAAI,UAChC;;;;;;;EAAiD,qBAM/C,eAAe,KACb,QAAQ,CA2BtB;AAOM,+CAFI,OAAO,mBAAmB,EAAE,IAAI;;QAuCnC;;;;WAIG;+BAHQ,UAAU,SACV,KAAK,sBACL,iBAAiB;QAU5B;;;;WAIG;6BAHQ,UAAU,YACV,WAAW;;;;YAftB;;;;eAIG;mCAHQ,UAAU,SACV,KAAK,sBACL,iBAAiB;YAU5B;;;;eAIG;iCAHQ,UAAU,YACV,WAAW;;;;GAyB7B;;WA1uBa,QAAQ,EAAE;cACV,iBAAiB,EAAE;WACnB,SAAS,MAAM,EAAE,UAAU,CAAC;aAC5B,aAAa,QAAQ,CAAC;OACtB,CAAC,GAAC,CAAC;OACH,CAAC,GAAC,CAAC"}
|