@agoric/network 0.2.0-u19.2 → 0.2.0-u21.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/CHANGELOG.md CHANGED
@@ -3,23 +3,7 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- ## [0.2.0-u19.2](https://github.com/Agoric/agoric-sdk/compare/@agoric/network@0.2.0-u19.1...@agoric/network@0.2.0-u19.2) (2025-03-13)
7
-
8
- **Note:** Version bump only for package @agoric/network
9
-
10
-
11
-
12
-
13
-
14
- ## [0.2.0-u19.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/network@0.2.0-u19.0...@agoric/network@0.2.0-u19.1) (2025-03-03)
15
-
16
- **Note:** Version bump only for package @agoric/network
17
-
18
-
19
-
20
-
21
-
22
- ## 0.2.0-u19.0 (2025-02-24)
6
+ ## 0.2.0-u21.0 (2025-06-19)
23
7
 
24
8
 
25
9
  ### ⚠ BREAKING CHANGES
@@ -31,6 +15,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
31
15
 
32
16
  * make Network and IBC vats durable ([#8721](https://github.com/Agoric/agoric-sdk/issues/8721)) ([3d13c09](https://github.com/Agoric/agoric-sdk/commit/3d13c09363013e23726c2ac5fa299a8e5344fd8c))
33
17
  * **network:** add `allocateICQControllerPort` to PortAllocator ([b819aa9](https://github.com/Agoric/agoric-sdk/commit/b819aa912890a93be1775beb7cd540fe5d91b8aa)), closes [#9072](https://github.com/Agoric/agoric-sdk/issues/9072)
18
+ * **network:** export `SendOptionsShape` ([abafe8e](https://github.com/Agoric/agoric-sdk/commit/abafe8ecb449d8fb2c84bd4c5ad18933a64a471e))
34
19
  * **types:** explicit exports from network ([65c2075](https://github.com/Agoric/agoric-sdk/commit/65c2075021dfb0ecf62a6009f7c411c7c49eb624))
35
20
 
36
21
 
@@ -39,6 +24,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
39
24
  * **lint:** addressing lint errors ([bfe10d9](https://github.com/Agoric/agoric-sdk/commit/bfe10d9cc3878c322ca624a3a603e80f94dc6970))
40
25
  * **network:** Connection should have negotiated remoteAddress and localAddress ([2184ea3](https://github.com/Agoric/agoric-sdk/commit/2184ea3d655c1334653e27d163a09ceb5f61fd50)), closes [#9064](https://github.com/Agoric/agoric-sdk/issues/9064)
41
26
  * **network:** create and use `coerceToData` ([39beecb](https://github.com/Agoric/agoric-sdk/commit/39beecba84ef6dfafca902a28a651dbba77cdb1e))
27
+ * **network:** half connection `.send()` includes opts bag ([428a439](https://github.com/Agoric/agoric-sdk/commit/428a4399630830b07244af8b7f73a84ec6480fba))
42
28
  * **network:** improve naming and data coercion ([8bcd9e2](https://github.com/Agoric/agoric-sdk/commit/8bcd9e2100f4973fd788a6edf42c144d916c173d))
43
29
  * **network:** introduce `Finalizer` to close network ([54b9b00](https://github.com/Agoric/agoric-sdk/commit/54b9b009fff3fd3ab54f731adee97195acaa238f))
44
30
  * **network:** use new `ERef` and `FarRef` ([3027adf](https://github.com/Agoric/agoric-sdk/commit/3027adf8613154dec167c5fccf5f207f6d2af701))
package/package.json CHANGED
@@ -1,44 +1,44 @@
1
1
  {
2
2
  "name": "@agoric/network",
3
- "version": "0.2.0-u19.2",
3
+ "version": "0.2.0-u21.0",
4
4
  "description": "Agoric's network protocol API",
5
5
  "type": "module",
6
6
  "main": "./src/index.js",
7
7
  "repository": "https://github.com/Agoric/agoric-sdk",
8
8
  "scripts": {
9
9
  "build": "exit 0",
10
- "prepack": "tsc --build tsconfig.build.json",
10
+ "prepack": "yarn run -T tsc --build tsconfig.build.json",
11
11
  "postpack": "git clean -f '*.d.ts*' '*.tsbuildinfo'",
12
12
  "test": "ava",
13
13
  "test:c8": "c8 --all $C8_OPTIONS ava",
14
14
  "test:xs": "exit 0",
15
15
  "lint-fix": "yarn lint:eslint --fix",
16
- "lint": "run-s --continue-on-error lint:*",
17
- "lint:types": "tsc",
18
- "lint:eslint": "eslint ."
16
+ "lint": "yarn run -T run-s --continue-on-error 'lint:*'",
17
+ "lint:types": "yarn run -T tsc",
18
+ "lint:eslint": "yarn run -T eslint ."
19
19
  },
20
20
  "keywords": [],
21
21
  "author": "Agoric",
22
22
  "license": "Apache-2.0",
23
23
  "dependencies": {
24
- "@agoric/internal": "^0.4.0-u19.2",
25
- "@agoric/store": "^0.9.3-u19.0",
26
- "@agoric/vat-data": "^0.5.3-u19.2",
24
+ "@agoric/internal": "workspace:*",
25
+ "@agoric/store": "workspace:*",
26
+ "@agoric/vat-data": "workspace:*",
27
27
  "@endo/base64": "^1.0.9",
28
- "@endo/errors": "^1.2.9",
29
- "@endo/far": "^1.1.10",
30
- "@endo/pass-style": "^1.4.8",
31
- "@endo/patterns": "^1.4.8",
32
- "@endo/promise-kit": "^1.1.9"
28
+ "@endo/errors": "^1.2.10",
29
+ "@endo/far": "^1.1.11",
30
+ "@endo/pass-style": "^1.5.0",
31
+ "@endo/patterns": "^1.5.0",
32
+ "@endo/promise-kit": "^1.1.10"
33
33
  },
34
34
  "devDependencies": {
35
- "@agoric/swingset-liveslots": "^0.10.3-u19.2",
36
- "@agoric/swingset-vat": "^0.33.0-u19.2",
37
- "@agoric/vow": "^0.2.0-u19.2",
38
- "@agoric/zone": "^0.3.0-u19.2",
39
- "@endo/bundle-source": "^3.5.1",
35
+ "@agoric/swingset-liveslots": "workspace:*",
36
+ "@agoric/swingset-vat": "workspace:*",
37
+ "@agoric/vow": "workspace:*",
38
+ "@agoric/zone": "workspace:*",
39
+ "@endo/bundle-source": "^4.0.0",
40
40
  "ava": "^5.3.0",
41
- "c8": "^10.1.2"
41
+ "c8": "^10.1.3"
42
42
  },
43
43
  "exports": {
44
44
  ".": "./src/index.js"
@@ -53,7 +53,7 @@
53
53
  "access": "public"
54
54
  },
55
55
  "engines": {
56
- "node": "^18.12 || ^20.9"
56
+ "node": "^20.9 || ^22.11"
57
57
  },
58
58
  "ava": {
59
59
  "files": [
@@ -68,5 +68,5 @@
68
68
  "typeCoverage": {
69
69
  "atLeast": 91.16
70
70
  },
71
- "gitHead": "f0ae74b84cb6de3724bfdcd18b4bea7e8199dee1"
71
+ "gitHead": "e4dd46857133403d584bcf822a81817b355532f9"
72
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["network.js"],"names":[],"mappings":"AA2CA;;;;GAIG;AACH,kCAFW,MAAM,YAahB;AAwtCD,mFAAmF;AAEnF;;;;;GAKG;AACH,qDAHW,OAAO,mBAAmB,EAAE,IAAI,sBAChC,QAAQ,qBAkJL,MAAM;;;;IA/GZ;;;;;OAKG;qBAJQ,GAAC,aACD,QAAQ,cACR,QAAQ,GACN,OAAO,aAAa,EAAE,UAAU,CAAC,kBAAkB,CAAC;;;IA+DjE;;;;;OAKG;yBAJQ,OAAO,IAAI,CAAC,aACZ,QAAQ,iBACR,OAAO,aAAa,CAAC,oBACrB,GAAC;;GA+CnB;AA75CD;;;GAGG;AACH,iCAAkC,GAAG,CAAC;AAGtC,qCAAsC,qBAAqB,CAAC;AAGrD,0CADK,OAAO,aAWlB;AA4JM,0CATI,OAAO,cAAc,EAAE,IAAI,YAC3B,OAAO,QAAQ,CAAC,iBAAiB,CAAC,CAAC,SACnC,QAAQ,YACR,OAAO,QAAQ,CAAC,iBAAiB,CAAC,CAAC,SACnC,QAAQ,kBACR,CAAC,IAAI,EAAE,cAAc,KAAK,UAAU,aACpC,SAAS,YACT,YAAY,CAAC,QAAQ,CAAC,gBAoDhC;AAw6BM,6CAHI,OAAO,mBAAmB,EAAE,IAAI,UAChC,MAAM,qBAMJ,OAAO,eAAe,CAAC,KACrB,QAAQ,CA2BtB;AAOM,+CAFI,OAAO,mBAAmB,EAAE,IAAI;;QAsCnC;;;;WAIG;+BAHQ,UAAU,SACV,KAAK,sBACL,iBAAiB;QAU5B;;;;WAIG;6BAHQ,UAAU,WACV,WAAW,uBACX,iBAAiB;;;;YAhB5B;;;;eAIG;mCAHQ,UAAU,SACV,KAAK,sBACL,iBAAiB;YAU5B;;;;eAIG;iCAHQ,UAAU,WACV,WAAW,uBACX,iBAAiB;;;;GAwBnC;AAuKM,2CAHI,OAAO,mBAAmB,EAAE,IAAI,aAChC,MAAM;cAkBF,QAAQ;;;;;;GAkDpB;AAwEI,2CAJI,OAAO,mBAAmB,EAAE,IAAI,YAChC,QAAQ,GACN,MAAM,CAKlB;oCAnTa,UAAU,CAAC,OAAO,wBAAwB,CAAC;qBAnwC3C,QAAQ,GAAG;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE;;WA6DnC,QAAQ,EAAE;cACV,OAAO,QAAQ,CAAC,iBAAiB,CAAC,CAAC,EAAE;WACrC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;aAC5B,YAAY,CAAC,QAAQ,CAAC;OACtB,CAAC,GAAC,CAAC;OACH,CAAC,GAAC,CAAC;;4BA06CH,UAAU,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;wBA4EnD,UAAU,CAAC,OAAO,gBAAgB,CAAC;8BA3jDF,aAAa;8BAD8G,YAAY;wCAAZ,YAAY;0BAAZ,YAAY;4BACvI,aAAa;mCAD8G,YAAY;uCAAZ,YAAY;gCAAZ,YAAY;8BAAZ,YAAY;qCAAZ,YAAY;8BAAZ,YAAY;2BAAZ,YAAY;iCAAZ,YAAY;AAg/CtL,mFAAmF;AAEnF;;;;;;;;;;GAUG;AACH,wCAHW,OAAO,mBAAmB,EAAE,IAAI,aAChC,QAAQ;;IAcf;;;;;OAKG;yBAFQ,OAAO,UAAU,CAAC,WAClB,OAAO,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAK9C;;;;OAIG;uBADQ,OAAO;QAAE,KAAK,IAAI,WAAW,GAAG,CAAC,CAAA;KAAE,CAAC;;;GA0BlD;gCA9iD8C,aAAa"}
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["network.js"],"names":[],"mappings":"AA2CA;;;;GAIG;AACH,kCAFW,MAAM,YAahB;AA4tCD,mFAAmF;AAEnF;;;;;GAKG;AACH,qDAHW,OAAO,mBAAmB,EAAE,IAAI,sBAChC,QAAQ,qBAkJL,MAAM;;;;IA/GZ;;;;;OAKG;qBAJQ,GAAC,aACD,QAAQ,cACR,QAAQ,GACN,OAAO,aAAa,EAAE,UAAU,CAAC,kBAAkB,CAAC;;;IA+DjE;;;;;OAKG;yBAJQ,OAAO,IAAI,CAAC,aACZ,QAAQ,iBACR,OAAO,aAAa,CAAC,oBACrB,GAAC;;GA+CnB;AAj6CD;;;GAGG;AACH,iCAAkC,GAAG,CAAC;AAGtC,qCAAsC,qBAAqB,CAAC;AAGrD,0CADK,OAAO,aAWlB;AAgKM,0CATI,OAAO,cAAc,EAAE,IAAI,YAC3B,OAAO,QAAQ,CAAC,iBAAiB,CAAC,CAAC,SACnC,QAAQ,YACR,OAAO,QAAQ,CAAC,iBAAiB,CAAC,CAAC,SACnC,QAAQ,kBACR,CAAC,IAAI,EAAE,cAAc,KAAK,UAAU,aACpC,SAAS,YACT,YAAY,CAAC,QAAQ,CAAC,gBAoDhC;AAw6BM,6CAHI,OAAO,mBAAmB,EAAE,IAAI,UAChC,MAAM,qBAMJ,OAAO,eAAe,CAAC,KACrB,QAAQ,CA2BtB;AAOM,+CAFI,OAAO,mBAAmB,EAAE,IAAI;;QAsCnC;;;;WAIG;+BAHQ,UAAU,SACV,KAAK,sBACL,iBAAiB;QAU5B;;;;WAIG;6BAHQ,UAAU,WACV,WAAW,uBACX,iBAAiB;;;;YAhB5B;;;;eAIG;mCAHQ,UAAU,SACV,KAAK,sBACL,iBAAiB;YAU5B;;;;eAIG;iCAHQ,UAAU,WACV,WAAW,uBACX,iBAAiB;;;;GAwBnC;AAuKM,2CAHI,OAAO,mBAAmB,EAAE,IAAI,aAChC,MAAM;cAkBF,QAAQ;;;;;;GAkDpB;AAwEI,2CAJI,OAAO,mBAAmB,EAAE,IAAI,YAChC,QAAQ,GACN,MAAM,CAKlB;oCAnTa,UAAU,CAAC,OAAO,wBAAwB,CAAC;qBAvwC3C,QAAQ,GAAG;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE;;WA6DnC,QAAQ,EAAE;cACV,OAAO,QAAQ,CAAC,iBAAiB,CAAC,CAAC,EAAE;WACrC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;aAC5B,YAAY,CAAC,QAAQ,CAAC;OACtB,CAAC,GAAC,CAAC;OACH,CAAC,GAAC,CAAC;;4BA86CH,UAAU,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;wBA4EnD,UAAU,CAAC,OAAO,gBAAgB,CAAC;8BA/jDF,aAAa;8BAD2H,YAAY;wCAAZ,YAAY;0BAAZ,YAAY;4BACpJ,aAAa;mCAD2H,YAAY;uCAAZ,YAAY;gCAAZ,YAAY;8BAAZ,YAAY;qCAAZ,YAAY;8BAAZ,YAAY;2BAAZ,YAAY;iCAAZ,YAAY;AAo/CnM,mFAAmF;AAEnF;;;;;;;;;;GAUG;AACH,wCAHW,OAAO,mBAAmB,EAAE,IAAI,aAChC,QAAQ;;IAcf;;;;;OAKG;yBAFQ,OAAO,UAAU,CAAC,WAClB,OAAO,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAK9C;;;;OAIG;uBADQ,OAAO;QAAE,KAAK,IAAI,WAAW,GAAG,CAAC,CAAA;KAAE,CAAC;;;GA0BlD;gCAljD8C,aAAa"}
package/src/network.js CHANGED
@@ -10,7 +10,7 @@ import { Shape } from './shapes.js';
10
10
 
11
11
  /// <reference path="./types.js" />
12
12
  /**
13
- * @import {AttemptDescription, Bytes, CloseReason, Closable, Connection, ConnectionHandler, Endpoint, ListenHandler, Port, Protocol, ProtocolHandler, ProtocolImpl} from './types.js';
13
+ * @import {AttemptDescription, Bytes, CloseReason, Closable, Connection, ConnectionHandler, Endpoint, ListenHandler, Port, Protocol, ProtocolHandler, ProtocolImpl, SendOptions} from './types.js';
14
14
  * @import {PromiseVow, Remote, VowTools} from '@agoric/vow';
15
15
  */
16
16
 
@@ -114,8 +114,11 @@ const prepareHalfConnection = (zone, { watch, allVows, finalizer }) => {
114
114
  const { addrs, r } = this.state;
115
115
  return addrs[r];
116
116
  },
117
- /** @param {Bytes} packetBytes */
118
- async send(packetBytes) {
117
+ /**
118
+ * @param {Bytes} packetBytes
119
+ * @param {SendOptions} [opts]
120
+ */
121
+ async send(packetBytes, opts) {
119
122
  const { closed, handlers, r, conns } = this.state;
120
123
  if (closed) {
121
124
  throw Error(closed);
@@ -126,6 +129,7 @@ const prepareHalfConnection = (zone, { watch, allVows, finalizer }) => {
126
129
  conns.get(r),
127
130
  toBytes(packetBytes),
128
131
  handlers[r],
132
+ opts,
129
133
  ),
130
134
  this.facets.openConnectionAckWatcher,
131
135
  );
package/src/shapes.d.ts CHANGED
@@ -1,5 +1,6 @@
1
+ export const SendOptionsShape: import("@endo/patterns").Matcher;
1
2
  export namespace Shape {
2
- namespace ConnectionI {
3
+ export namespace ConnectionI {
3
4
  let connection: import("@endo/patterns").InterfaceGuard<{
4
5
  send: import("@endo/patterns").MethodGuard;
5
6
  close: import("@endo/patterns").MethodGuard;
@@ -16,7 +17,7 @@ export namespace Shape {
16
17
  onFulfilled: import("@endo/patterns").MethodGuard;
17
18
  }>;
18
19
  }
19
- namespace InboundAttemptI {
20
+ export namespace InboundAttemptI {
20
21
  export let inboundAttempt: import("@endo/patterns").InterfaceGuard<{
21
22
  accept: import("@endo/patterns").MethodGuard;
22
23
  getLocalAddress: import("@endo/patterns").MethodGuard;
@@ -35,7 +36,7 @@ export namespace Shape {
35
36
  }>;
36
37
  export { sinkWatcher_1 as sinkWatcher };
37
38
  }
38
- namespace PortI {
39
+ export namespace PortI {
39
40
  export let port: import("@endo/patterns").InterfaceGuard<{
40
41
  getLocalAddress: import("@endo/patterns").MethodGuard;
41
42
  addListener: import("@endo/patterns").MethodGuard;
@@ -68,7 +69,7 @@ export namespace Shape {
68
69
  }>;
69
70
  export { sinkWatcher_2 as sinkWatcher };
70
71
  }
71
- namespace ProtocolHandlerI {
72
+ export namespace ProtocolHandlerI {
72
73
  export let protocolHandler: import("@endo/patterns").InterfaceGuard<{
73
74
  onCreate: import("@endo/patterns").MethodGuard;
74
75
  generatePortID: import("@endo/patterns").MethodGuard;
@@ -93,25 +94,25 @@ export namespace Shape {
93
94
  }>;
94
95
  export { rethrowUnlessMissingWatcher_3 as rethrowUnlessMissingWatcher };
95
96
  }
96
- let ProtocolImplI: import("@endo/patterns").InterfaceGuard<{
97
+ export let ProtocolImplI: import("@endo/patterns").InterfaceGuard<{
97
98
  bindPort: import("@endo/patterns").MethodGuard;
98
99
  inbound: import("@endo/patterns").MethodGuard;
99
100
  outbound: import("@endo/patterns").MethodGuard;
100
101
  }>;
101
- function Vow$(shape: any): import("@endo/patterns").Matcher;
102
- let AttemptDescription: import("@endo/patterns").Matcher;
103
- let Opts: import("@endo/patterns").Matcher;
104
- let Data: import("@endo/patterns").Matcher;
105
- let Bytes: import("@endo/patterns").Matcher;
106
- let Endpoint: import("@endo/patterns").Matcher;
107
- let Vow: import("@endo/patterns").Matcher;
108
- let ConnectionHandler: import("@endo/patterns").Matcher;
109
- let Connection: import("@endo/patterns").Matcher;
110
- let InboundAttempt: import("@endo/patterns").Matcher;
111
- let Listener: import("@endo/patterns").Matcher;
112
- let ListenHandler: import("@endo/patterns").Matcher;
113
- let Port: import("@endo/patterns").Matcher;
114
- let ProtocolHandler: import("@endo/patterns").Matcher;
115
- let ProtocolImpl: import("@endo/patterns").Matcher;
102
+ export function Vow$(shape: any): import("@endo/patterns").Matcher;
103
+ export let AttemptDescription: import("@endo/patterns").Matcher;
104
+ export { SendOptionsShape as Opts };
105
+ export let Data: import("@endo/patterns").Matcher;
106
+ export let Bytes: import("@endo/patterns").Matcher;
107
+ export let Endpoint: import("@endo/patterns").Matcher;
108
+ export let Vow: import("@endo/patterns").Matcher;
109
+ export let ConnectionHandler: import("@endo/patterns").Matcher;
110
+ export let Connection: import("@endo/patterns").Matcher;
111
+ export let InboundAttempt: import("@endo/patterns").Matcher;
112
+ export let Listener: import("@endo/patterns").Matcher;
113
+ export let ListenHandler: import("@endo/patterns").Matcher;
114
+ export let Port: import("@endo/patterns").Matcher;
115
+ export let ProtocolHandler: import("@endo/patterns").Matcher;
116
+ export let ProtocolImpl: import("@endo/patterns").Matcher;
116
117
  }
117
118
  //# sourceMappingURL=shapes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shapes.d.ts","sourceRoot":"","sources":["shapes.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA6BQ,4DAAgC"}
1
+ {"version":3,"file":"shapes.d.ts","sourceRoot":"","sources":["shapes.js"],"names":[],"mappings":"AA2BA,gEAGE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIM,mEAAgC"}
package/src/shapes.js CHANGED
@@ -25,6 +25,11 @@ const Shape1 = /** @type {const} */ ({
25
25
  ProtocolImpl: M.remotable('ProtocolImpl'),
26
26
  });
27
27
 
28
+ export const SendOptionsShape = M.splitRecord(
29
+ {},
30
+ { relativeTimeoutNs: M.bigint() },
31
+ );
32
+
28
33
  const Shape2 = /** @type {const} */ ({
29
34
  ...Shape1,
30
35
  Vow$: shape => M.or(shape, Shape1.Vow),
@@ -32,7 +37,7 @@ const Shape2 = /** @type {const} */ ({
32
37
  { handler: Shape1.ConnectionHandler },
33
38
  { remoteAddress: Shape1.Endpoint, localAddress: Shape1.Endpoint },
34
39
  ),
35
- Opts: M.recordOf(M.string(), M.any()),
40
+ Opts: SendOptionsShape,
36
41
  });
37
42
 
38
43
  export const Shape = /** @type {const} */ harden({
package/src/types.d.ts CHANGED
@@ -87,11 +87,18 @@ export type ListenHandler = {
87
87
  */
88
88
  onRemove?: ((port: Remote<Port>, l: Remote<ListenHandler>) => PromiseVow<void>) | undefined;
89
89
  };
90
+ export type WellKnownSendOptions = {
91
+ /**
92
+ * timeout the packet if an ack is not received by this time
93
+ */
94
+ relativeTimeoutNs?: bigint | undefined;
95
+ };
96
+ export type SendOptions = WellKnownSendOptions & Record<string, any>;
90
97
  export type ConnectionI = {
91
98
  /**
92
99
  * Send a packet on the connection
93
100
  */
94
- send: (packetBytes: Bytes, opts?: Record<string, any>) => PromiseVow<Bytes>;
101
+ send: (packetBytes: Bytes, opts?: SendOptions) => PromiseVow<Bytes>;
95
102
  /**
96
103
  * Close both ends of the connection
97
104
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.js"],"names":[],"mappings":";;;4BAW2C,CAAC,SAA/B,OAAQ,WAAW,EAAE,OAAQ,EACH,CAAC,SAA3B,CAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAI,IACzB,CAAC,GAAG,QAAQ,CAAC;IAAE,IAAI,EAAE,OAAO,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC;;;;oBAK5E,MAAM;;;;;uBAIN,MAAM;;;;;;;;WAML,MAAM,WAAW,IAAI,CAAC;;uBAGvB,eAAe,GAAG,SAAS;;;;;;;;;cAK1B,CAAC,MAAM,EAAE,QAAQ,KAAK,WAAW,IAAI,CAAC;;;;;;;;;;qBAMtC,MAAM,QAAQ;;;;iBAEd,CAAC,aAAa,EAAE,OAAO,aAAa,CAAC,KAAK,WAAW,IAAI,CAAC;;;;aAE1D,CACT,MAAM,EAAE,QAAQ,EAChB,iBAAiB,CAAC,EAAE,OAAO,iBAAiB,CAAC,KAC1C,WAAW,UAAU,CAAC;;;;oBAEhB,CAAC,aAAa,EAAE,OAAO,aAAa,CAAC,KAAK,WAAW,IAAI,CAAC;;;;;YAE1D,MAAM,WAAW,IAAI,CAAC;;;;;;;;;uBAMf,OAAO,IAAI,CAAC,KAAK,OAAO,aAAa,CAAC,KAAK,WAAW,IAAI,CAAC;;;;cAClE,CACT,IAAI,EAAE,OAAO,IAAI,CAAC,EAClB,SAAS,EAAE,QAAQ,EACnB,UAAU,EAAE,QAAQ,EACpB,CAAC,EAAE,OAAO,aAAa,CAAC,KACrB,WAAW,OAAO,iBAAiB,CAAC,CAAC;;;;uBAGlC,OAAO,IAAI,CAAC,aACP,QAAQ,cACP,QAAQ,KACjB,OAAO,aAAa,CAAC,KACrB,WAAW,IAAI,CAAC;;;;sBAEH,OAAO,IAAI,CAAC,OAAO,GAAG,KAAK,OAAO,aAAa,CAAC,KAAK,WAAW,IAAI,CAAC;;;;;uBAErE,OAAO,IAAI,CAAC,KAAK,OAAO,aAAa,CAAC,KAAK,WAAW,IAAI,CAAC;;;;;;UAMlE,CACT,WAAW,EAAE,KAAK,EAClB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KACvB,WAAW,KAAK,CAAC;;;;WAEX,MAAM,WAAW,IAAI,CAAC;;;;;qBACtB,MAAM,QAAQ;;;;sBAEd,MAAM,QAAQ;;yBAGf,eAAe,GAAG,WAAW;;;;;;;;2BAMzB,OAAO,UAAU,CAAC,aACnB,QAAQ,cACP,QAAQ,KACjB,OAAO,iBAAiB,CAAC,KACzB,WAAW,IAAI,CAAC;;;;8BAGP,OAAO,UAAU,CAAC,OACzB,KAAK,KACP,OAAO,iBAAiB,CAAC,SACrB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KACvB,WAAW,KAAK,CAAC;;;;4BAGR,OAAO,UAAU,CAAC,WACrB,WAAW,MAChB,OAAO,iBAAiB,CAAC,KAC1B,WAAW,IAAI,CAAC;;;;;0BAGX,GAAG,GAAG,IAAI;;aAKT,OAAO,iBAAiB,CAAC;;;;;;;;;;;;cAQzB,CAAC,QAAQ,EAAE,OAAO,YAAY,CAAC,EAAE,CAAC,EAAE,OAAO,eAAe,CAAC,KAAK,WAAW,IAAI,CAAC;;;;oBAEhF,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,eAAe,CAAC,KAAK,WAAW,MAAM,CAAC;;;;YAEvE,CACT,IAAI,EAAE,OAAO,IAAI,CAAC,EAClB,SAAS,EAAE,QAAQ,EACnB,CAAC,EAAE,OAAO,eAAe,CAAC,KACvB,WAAW,IAAI,CAAC;;;;cAEV,CACT,IAAI,EAAE,OAAO,IAAI,CAAC,EAClB,SAAS,EAAE,QAAQ,EACnB,aAAa,EAAE,OAAO,aAAa,CAAC,EACpC,CAAC,EAAE,OAAO,eAAe,CAAC,KACvB,WAAW,IAAI,CAAC;;;;oBAEV,CACT,IAAI,EAAE,OAAO,IAAI,CAAC,EAClB,SAAS,EAAE,QAAQ,EACnB,aAAa,EAAE,OAAO,aAAa,CAAC,EACpC,CAAC,EAAE,OAAO,eAAe,CAAC,KACvB,WAAW,IAAI,CAAC;;;;4BAGb,OAAO,IAAI,CAAC,aACP,QAAQ,UACX,QAAQ,KACb,OAAO,eAAe,CAAC,KACvB,WAAW,QAAQ,CAAC;;;;eAEd,CACT,IAAI,EAAE,OAAO,IAAI,CAAC,EAClB,SAAS,EAAE,QAAQ,EACnB,MAAM,EAAE,QAAQ,EAChB,CAAC,EAAE,OAAO,iBAAiB,CAAC,EAC5B,CAAC,EAAE,OAAO,eAAe,CAAC,KACvB,WAAW,kBAAkB,CAAC;;;;cAExB,CACT,IAAI,EAAE,OAAO,IAAI,CAAC,EAClB,SAAS,EAAE,QAAQ,EACnB,CAAC,EAAE,OAAO,eAAe,CAAC,KACvB,WAAW,IAAI,CAAC;;;;;;;;;YAIV,CAAC,IAAI,EAAE,kBAAkB,KAAK,WAAW,UAAU,CAAC;;;;;qBAEpD,MAAM,QAAQ;;;;;sBAEd,MAAM,QAAQ;;;;WAEd,MAAM,WAAW,IAAI,CAAC;;;;;;;;;;cAGtB,CAAC,MAAM,EAAE,QAAQ,KAAK,WAAW,OAAO,IAAI,CAAC,CAAC;;;;aAE9C,CACT,UAAU,EAAE,QAAQ,EACpB,UAAU,EAAE,QAAQ,KACjB,WAAW,cAAc,CAAC;;;;cAEpB,CACT,IAAI,EAAE,OAAO,IAAI,CAAC,EAClB,UAAU,EAAE,QAAQ,EACpB,iBAAiB,EAAE,OAAO,iBAAiB,CAAC,KACzC,WAAW,UAAU,CAAC;;gCAhMO,aAAa;qCADN,kBAAkB;4BACzB,aAAa"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.js"],"names":[],"mappings":"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"}
package/src/types.js CHANGED
@@ -78,11 +78,20 @@ export {};
78
78
  * listener has been removed
79
79
  */
80
80
 
81
+ /**
82
+ * @typedef {object} WellKnownSendOptions
83
+ * @property {bigint} [relativeTimeoutNs] timeout the packet if an ack is not received by this time
84
+ */
85
+
86
+ /**
87
+ * @typedef {WellKnownSendOptions & Record<string, any>} SendOptions
88
+ */
89
+
81
90
  /**
82
91
  * @typedef {object} ConnectionI
83
92
  * @property {(
84
93
  * packetBytes: Bytes,
85
- * opts?: Record<string, any>,
94
+ * opts?: SendOptions,
86
95
  * ) => PromiseVow<Bytes>} send
87
96
  * Send a packet on the connection
88
97
  * @property {() => PromiseVow<void>} close Close both ends of the connection