@matter/nodejs 0.16.0-alpha.0-20251006-3fe1e7c57 → 0.16.0-alpha.0-20251013-89bb7099d

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/dist/cjs/config.d.ts +1 -1
  2. package/dist/cjs/config.js +1 -1
  3. package/dist/cjs/environment/NodeJsEnvironment.d.ts +2 -0
  4. package/dist/cjs/environment/NodeJsEnvironment.d.ts.map +1 -1
  5. package/dist/cjs/environment/NodeJsEnvironment.js +15 -3
  6. package/dist/cjs/environment/NodeJsEnvironment.js.map +1 -1
  7. package/dist/cjs/environment/ProcessManager.d.ts +1 -0
  8. package/dist/cjs/environment/ProcessManager.d.ts.map +1 -1
  9. package/dist/cjs/environment/ProcessManager.js +8 -0
  10. package/dist/cjs/environment/ProcessManager.js.map +1 -1
  11. package/dist/cjs/net/NodeJsHttpEndpoint.d.ts +42 -0
  12. package/dist/cjs/net/NodeJsHttpEndpoint.d.ts.map +1 -0
  13. package/dist/cjs/net/NodeJsHttpEndpoint.js +304 -0
  14. package/dist/cjs/net/NodeJsHttpEndpoint.js.map +6 -0
  15. package/dist/cjs/net/NodeJsUdpChannel.d.ts +1 -1
  16. package/dist/cjs/net/NodeJsUdpChannel.d.ts.map +1 -1
  17. package/dist/cjs/net/NodeJsUdpChannel.js +31 -3
  18. package/dist/cjs/net/NodeJsUdpChannel.js.map +1 -1
  19. package/dist/cjs/net/WsAdapter.d.ts +25 -0
  20. package/dist/cjs/net/WsAdapter.d.ts.map +1 -0
  21. package/dist/cjs/net/WsAdapter.js +33 -0
  22. package/dist/cjs/net/WsAdapter.js.map +6 -0
  23. package/dist/cjs/net/index.d.ts +2 -0
  24. package/dist/cjs/net/index.d.ts.map +1 -1
  25. package/dist/cjs/net/index.js +2 -0
  26. package/dist/cjs/net/index.js.map +1 -1
  27. package/dist/esm/config.d.ts +1 -1
  28. package/dist/esm/config.js +1 -1
  29. package/dist/esm/environment/NodeJsEnvironment.d.ts +2 -0
  30. package/dist/esm/environment/NodeJsEnvironment.d.ts.map +1 -1
  31. package/dist/esm/environment/NodeJsEnvironment.js +16 -3
  32. package/dist/esm/environment/NodeJsEnvironment.js.map +1 -1
  33. package/dist/esm/environment/ProcessManager.d.ts +1 -0
  34. package/dist/esm/environment/ProcessManager.d.ts.map +1 -1
  35. package/dist/esm/environment/ProcessManager.js +8 -0
  36. package/dist/esm/environment/ProcessManager.js.map +1 -1
  37. package/dist/esm/net/NodeJsHttpEndpoint.d.ts +42 -0
  38. package/dist/esm/net/NodeJsHttpEndpoint.d.ts.map +1 -0
  39. package/dist/esm/net/NodeJsHttpEndpoint.js +284 -0
  40. package/dist/esm/net/NodeJsHttpEndpoint.js.map +6 -0
  41. package/dist/esm/net/NodeJsUdpChannel.d.ts +1 -1
  42. package/dist/esm/net/NodeJsUdpChannel.d.ts.map +1 -1
  43. package/dist/esm/net/NodeJsUdpChannel.js +34 -3
  44. package/dist/esm/net/NodeJsUdpChannel.js.map +1 -1
  45. package/dist/esm/net/WsAdapter.d.ts +25 -0
  46. package/dist/esm/net/WsAdapter.d.ts.map +1 -0
  47. package/dist/esm/net/WsAdapter.js +13 -0
  48. package/dist/esm/net/WsAdapter.js.map +6 -0
  49. package/dist/esm/net/index.d.ts +2 -0
  50. package/dist/esm/net/index.d.ts.map +1 -1
  51. package/dist/esm/net/index.js +2 -0
  52. package/dist/esm/net/index.js.map +1 -1
  53. package/package.json +10 -10
  54. package/src/config.ts +1 -1
  55. package/src/environment/NodeJsEnvironment.ts +21 -3
  56. package/src/environment/ProcessManager.ts +12 -0
  57. package/src/net/NodeJsHttpEndpoint.ts +358 -0
  58. package/src/net/NodeJsUdpChannel.ts +42 -3
  59. package/src/net/WsAdapter.ts +30 -0
  60. package/src/net/index.ts +2 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WsAdapter.d.ts","sourceRoot":"","sources":["../../../src/net/WsAdapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACtB,MAAM,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IAC/F,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,yBAAiB,SAAS,CAAC;IAEhB,IAAI,cAAc,EAAgB,SAAS,GAAG,OAAO,CAAC;IAE7D,UAAiB,OAAO;QACpB,IAAI,SAAS,CAAC;KACjB;CACJ"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var WsAdapter_exports = {};
20
+ __export(WsAdapter_exports, {
21
+ WsAdapter: () => WsAdapter
22
+ });
23
+ module.exports = __toCommonJS(WsAdapter_exports);
24
+ /**
25
+ * @license
26
+ * Copyright 2022-2025 Matter.js Authors
27
+ * SPDX-License-Identifier: Apache-2.0
28
+ */
29
+ var WsAdapter;
30
+ ((WsAdapter2) => {
31
+ WsAdapter2.defaultFactory = void 0;
32
+ })(WsAdapter || (WsAdapter = {}));
33
+ //# sourceMappingURL=WsAdapter.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/net/WsAdapter.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsBO,IAAU;AAAA,CAAV,CAAUA,eAAV;AAEI,EAAIA,WAAA,iBAAiB;AAAA,GAFf;",
5
+ "names": ["WsAdapter"]
6
+ }
@@ -3,6 +3,8 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ export * from "./NodeJsHttpEndpoint.js";
6
7
  export * from "./NodeJsNetwork.js";
7
8
  export * from "./NodeJsUdpChannel.js";
9
+ export * from "./WsAdapter.js";
8
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/net/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/net/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC"}
@@ -15,8 +15,10 @@ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "defau
15
15
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
16
  var net_exports = {};
17
17
  module.exports = __toCommonJS(net_exports);
18
+ __reExport(net_exports, require("./NodeJsHttpEndpoint.js"), module.exports);
18
19
  __reExport(net_exports, require("./NodeJsNetwork.js"), module.exports);
19
20
  __reExport(net_exports, require("./NodeJsUdpChannel.js"), module.exports);
21
+ __reExport(net_exports, require("./WsAdapter.js"), module.exports);
20
22
  /**
21
23
  * @license
22
24
  * Copyright 2022-2025 Matter.js Authors
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/net/index.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAMA,wBAAc,+BANd;AAOA,wBAAc,kCAPd;AAAA;AAAA;AAAA;AAAA;AAAA;",
4
+ "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAMA,wBAAc,oCANd;AAOA,wBAAc,+BAPd;AAQA,wBAAc,kCARd;AASA,wBAAc,2BATd;AAAA;AAAA;AAAA;AAAA;AAAA;",
5
5
  "names": []
6
6
  }
@@ -69,7 +69,7 @@ export declare const config: {
69
69
  */
70
70
  initializeStorage: boolean;
71
71
  /**
72
- * Enables handling of SIGINT, SIGTERM and SIGUSR2 (depending on platform; default: true).
72
+ * Enables handling of SIGINT, SIGTERM, SIGUSR2 and SIGABRT (depending on platform; default: true).
73
73
  */
74
74
  trapProcessSignals: boolean;
75
75
  /**
@@ -118,7 +118,7 @@ const config = {
118
118
  initializeStorage = value;
119
119
  },
120
120
  /**
121
- * Enables handling of SIGINT, SIGTERM and SIGUSR2 (depending on platform; default: true).
121
+ * Enables handling of SIGINT, SIGTERM, SIGUSR2 and SIGABRT (depending on platform; default: true).
122
122
  */
123
123
  get trapProcessSignals() {
124
124
  return trapProcessSignals;
@@ -43,6 +43,8 @@ import { Environment, VariableService } from "#general";
43
43
  * * `runtime.signals` - By default register SIGINT and SIGUSR2 (diag) handlers, set to false if not wanted
44
44
  * * `runtime.exitcode` - By default we set the process.exitcode to 0 (ok) or 1 (crash); set to false to disable
45
45
  * * `runtime.unhandlederrors` - By default we log unhandled errors to matter.js log; set to false to disable
46
+ *
47
+ * TODO - this should go away. Node.js services should register with {@link ServiceBundle.default}
46
48
  */
47
49
  export declare function NodeJsEnvironment(): Environment;
48
50
  export declare function loadConfigFile(vars: VariableService): {
@@ -1 +1 @@
1
- {"version":3,"file":"NodeJsEnvironment.d.ts","sourceRoot":"","sources":["../../../src/environment/NodeJsEnvironment.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAIH,WAAW,EAOX,eAAe,EAClB,MAAM,UAAU,CAAC;AAQlB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,iBAAiB,gBAqBhC;AAoFD,wBAAgB,cAAc,CAAC,IAAI,EAAE,eAAe;;;EAsBnD;AAoBD,wBAAgB,WAAW,CAAC,IAAI,EAAE,eAAe;;;;;;;;;;;EAiBhD"}
1
+ {"version":3,"file":"NodeJsEnvironment.d.ts","sourceRoot":"","sources":["../../../src/environment/NodeJsEnvironment.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAIH,WAAW,EAQX,eAAe,EAClB,MAAM,UAAU,CAAC;AASlB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,iBAAiB,gBAqBhC;AAkGD,wBAAgB,cAAc,CAAC,IAAI,EAAE,eAAe;;;EAsBnD;AAoBD,wBAAgB,WAAW,CAAC,IAAI,EAAE,eAAe;;;;;;;;;;;EAiBhD"}
@@ -10,6 +10,7 @@ import {
10
10
  Boot,
11
11
  Crypto,
12
12
  Environment,
13
+ HttpEndpointFactory,
13
14
  ImplementationError,
14
15
  LogFormat,
15
16
  Logger,
@@ -17,6 +18,7 @@ import {
17
18
  ServiceBundle,
18
19
  StorageService
19
20
  } from "#general";
21
+ import { NodeJsHttpEndpoint } from "#net/NodeJsHttpEndpoint.js";
20
22
  import { existsSync, readFileSync } from "node:fs";
21
23
  import { writeFile } from "node:fs/promises";
22
24
  import { resolve } from "node:path";
@@ -64,6 +66,9 @@ function loadVariables(env) {
64
66
  await writeFile(configPath, JSON.stringify(configVars, void 0, 4));
65
67
  };
66
68
  }
69
+ function rootDirOf(env) {
70
+ return env.vars.get("path.root", ".");
71
+ }
67
72
  function configureCrypto(env) {
68
73
  Boot.init(() => {
69
74
  if (config.installCrypto || (env.vars.boolean("nodejs.crypto") ?? true)) {
@@ -79,9 +84,16 @@ function configureNetwork(env) {
79
84
  }
80
85
  Boot.init(() => {
81
86
  if (config.installNetwork || (env.vars.boolean("nodejs.network") ?? true)) {
87
+ const basePathForUnixSockets = rootDirOf(env);
82
88
  env.set(Network, new NodeJsNetwork());
83
- } else if (Environment.default.has(Network)) {
84
- env.set(Network, Environment.default.get(Network));
89
+ env.set(HttpEndpointFactory, new NodeJsHttpEndpoint.Factory(basePathForUnixSockets));
90
+ } else {
91
+ if (Environment.default.has(Network)) {
92
+ env.set(Network, Environment.default.get(Network));
93
+ }
94
+ if (Environment.default.has(HttpEndpointFactory)) {
95
+ env.set(HttpEndpointFactory, Environment.default.get(HttpEndpointFactory));
96
+ }
85
97
  }
86
98
  });
87
99
  }
@@ -95,9 +107,10 @@ function configureStorage(env) {
95
107
  }
96
108
  const service = env.get(StorageService);
97
109
  env.vars.use(() => {
98
- service.location = env.vars.get("storage.path", env.vars.get("path.root", "."));
110
+ service.location = env.vars.get("storage.path", rootDirOf(env));
99
111
  });
100
112
  service.factory = (namespace) => new StorageBackendDisk(resolve(service.location ?? ".", namespace), env.vars.get("storage.clear", false));
113
+ service.resolve = (...paths) => resolve(rootDirOf(env), ...paths);
101
114
  }
102
115
  function loadConfigFile(vars) {
103
116
  const configPath = vars.get("path.config", "config.json");
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/environment/NodeJsEnvironment.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,cAAc;AACvB,SAAS,oBAAoB;AAC7B;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEG;AACP,SAAS,YAAY,oBAAoB;AACzC,SAAS,iBAAiB;AAC1B,SAAS,eAAe;AACxB,SAAS,qBAAqB;AAC9B,SAAS,0BAA0B;AACnC,SAAS,sBAAsB;AA0CxB,SAAS,oBAAoB;AAChC,QAAM,MAAM,IAAI,YAAY,SAAS;AAErC,gBAAc,GAAG;AACjB,kBAAgB,GAAG;AACnB,mBAAiB,GAAG;AACpB,mBAAiB,GAAG;AACpB,mBAAiB,GAAG;AAKpB,MAAI,CAAC,IAAI,KAAK,IAAI,eAAe,KAAK,OAAO,WAAW,UAAU,SAAS,QAAQ,OAAO,OAAO;AAC7F,QAAI,KAAK,IAAI,iBAAiB,UAAU,IAAI;AAAA,EAChD;AAEA,gBAAc,QAAQ,OAAO,GAAG;AAEhC,SAAO,gBAAgB;AAEvB,SAAO;AACX;AAEA,SAAS,cAAc,KAAkB;AACrC,QAAM,OAAO,IAAI;AAGjB,OAAK,eAAe,YAAY,IAAI,CAAC;AAGrC,MAAI,OAAO,iBAAiB;AACxB,SAAK,gBAAgB,QAAQ,GAAG;AAAA,EACpC;AACA,MAAI,OAAO,gBAAgB;AACvB,SAAK,aAAa,QAAQ,IAAI;AAAA,EAClC;AAGA,QAAM,EAAE,YAAY,WAAW,IAAI,eAAe,IAAI;AACtD,MAAI,OAAO,gBAAgB;AACvB,SAAK,eAAe,UAAU;AAAA,EAClC;AAGA,MAAI,OAAO,iBAAiB;AACxB,SAAK,gBAAgB,QAAQ,GAAG;AAAA,EACpC;AACA,MAAI,OAAO,gBAAgB;AACvB,SAAK,aAAa,QAAQ,IAAI;AAAA,EAClC;AAGA,OAAK,qBAAqB,OAAO,MAAc,UAAiC;AAC5E,QAAI,UAAU,QAAW;AACrB,aAAO,WAAW,IAAI;AAAA,IAC1B;AACA,eAAW,IAAI,IAAI;AACnB,UAAM,UAAU,YAAY,KAAK,UAAU,YAAY,QAAW,CAAC,CAAC;AAAA,EACxE;AACJ;AAEA,SAAS,gBAAgB,KAAkB;AACvC,OAAK,KAAK,MAAM;AACZ,QAAI,OAAO,kBAAkB,IAAI,KAAK,QAAQ,eAAe,KAAK,OAAO;AACrE,UAAI,IAAI,QAAQ,IAAI,aAAa,CAAC;AAAA,IACtC,WAAW,YAAY,QAAQ,IAAI,MAAM,GAAG;AACxC,UAAI,IAAI,QAAQ,YAAY,QAAQ,IAAI,MAAM,CAAC;AAAA,IACnD;AAAA,EACJ,CAAC;AACL;AAEA,SAAS,iBAAiB,KAAkB;AACxC,MAAI,CAAC,OAAO,kBAAkB,EAAE,IAAI,KAAK,QAAQ,gBAAgB,KAAK,OAAO;AACzE;AAAA,EACJ;AAEA,OAAK,KAAK,MAAM;AACZ,QAAI,OAAO,mBAAmB,IAAI,KAAK,QAAQ,gBAAgB,KAAK,OAAO;AACvE,UAAI,IAAI,SAAS,IAAI,cAAc,CAAC;AAAA,IACxC,WAAW,YAAY,QAAQ,IAAI,OAAO,GAAG;AACzC,UAAI,IAAI,SAAS,YAAY,QAAQ,IAAI,OAAO,CAAC;AAAA,IACrD;AAAA,EACJ,CAAC;AACL;AAEA,SAAS,iBAAiB,KAAkB;AACxC,QAAM,iBAAiB,IAAI,eAAe,GAAG;AAC7C,MAAI,IAAI,gBAAgB,cAAc;AAC1C;AAEA,SAAS,iBAAiB,KAAkB;AACxC,MAAI,CAAC,OAAO,qBAAqB,EAAE,IAAI,KAAK,QAAQ,gBAAgB,KAAK,OAAO;AAC5E;AAAA,EACJ;AAEA,QAAM,UAAU,IAAI,IAAI,cAAc;AAEtC,MAAI,KAAK,IAAI,MAAM;AACf,YAAQ,WAAW,IAAI,KAAK,IAAI,gBAAgB,IAAI,KAAK,IAAI,aAAa,GAAG,CAAC;AAAA,EAClF,CAAC;AAED,UAAQ,UAAU,eACd,IAAI,mBAAmB,QAAQ,QAAQ,YAAY,KAAK,SAAS,GAAG,IAAI,KAAK,IAAI,iBAAiB,KAAK,CAAC;AAChH;AAEO,SAAS,eAAe,MAAuB;AAClD,QAAM,aAAa,KAAK,IAAI,eAAe,aAAa;AAExD,MAAI,CAAC,WAAW,UAAU,GAAG;AACzB,WAAO,EAAE,YAAY,YAAY,CAAC,EAAE;AAAA,EACxC;AAEA,MAAI;AACJ,MAAI;AACA,iBAAa,aAAa,UAAU,EAAE,SAAS;AAAA,EACnD,SAAS,GAAG;AACR,UAAM,IAAI,oBAAoB,oCAAoC,UAAU,KAAK,QAAQ,CAAC,EAAE,OAAO,EAAE;AAAA,EACzG;AAEA,MAAI;AACJ,MAAI;AACA,iBAAa,KAAK,MAAM,UAAU;AAAA,EACtC,SAAS,GAAG;AACR,UAAM,IAAI,oBAAoB,oCAAoC,UAAU,KAAK,QAAQ,CAAC,EAAE,OAAO,EAAE;AAAA,EACzG;AAEA,SAAO,EAAE,YAAY,WAAW;AACpC;AAEA,SAAS,eAAe,SAAiB;AACrC,MAAI,OAAO,uBAAuB,QAAW;AACzC,WAAO,OAAO;AAAA,EAClB;AACA,MAAI;AACJ,MAAI,QAAQ,aAAa,SAAS;AAC9B,gBAAY,QAAQ,QAAQ,IAAI,WAAW,KAAK,QAAQ;AAAA,EAC5D,OAAO;AACH,gBAAY,QAAQ,QAAQ,IAAI,QAAQ,KAAK,SAAS;AAAA,EAC1D;AAEA,MAAI,YAAY,WAAW;AACvB,gBAAY,GAAG,SAAS,IAAI,OAAO;AAAA,EACvC;AAEA,SAAO;AACX;AAEO,SAAS,YAAY,MAAuB;AAC/C,QAAM,UAAU,KAAK,IAAI,eAAe,OAAO,sBAAsB;AACrE,QAAM,WAAW,KAAK,IAAI,aAAa,eAAe,OAAO,CAAC;AAC9D,QAAM,aAAa,QAAQ,UAAU,KAAK,IAAI,eAAe,OAAO,qBAAqB,CAAC;AAE1F,SAAO;AAAA,IACH,aAAa;AAAA,IACb,MAAM;AAAA,MACF,MAAM;AAAA,MACN,QAAQ;AAAA,IACZ;AAAA,IACA,SAAS;AAAA,MACL,SAAS,OAAO;AAAA,MAChB,UAAU,OAAO;AAAA,MACjB,iBAAiB,OAAO;AAAA,IAC5B;AAAA,EACJ;AACJ;",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -39,6 +39,7 @@ export declare class ProcessManager implements Destructable {
39
39
  protected stopListener: () => void;
40
40
  protected crashListener: () => void;
41
41
  protected interruptHandler: () => void;
42
+ protected abortHandler: () => never;
42
43
  protected exitHandler: () => void;
43
44
  protected diagnosticHandler: () => void;
44
45
  protected installInterruptHandlers: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"ProcessManager.d.ts","sourceRoot":"","sources":["../../../src/environment/ProcessManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAU,cAAc,EAAwB,MAAM,UAAU,CAAC;AAKnG;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,cAAe,YAAW,YAAY;;IAInC,SAAS,CAAC,GAAG,EAAE,WAAW;IAHtC,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC;gBAGZ,GAAG,EAAE,WAAW;IActC,KAAK;IAOL,CAAC,MAAM,CAAC,OAAO,CAAC;IAIhB,SAAS,KAAK,gBAAgB,SAE7B;IAED,SAAS,KAAK,kBAAkB,SAE/B;IAED,SAAS,KAAK,wBAAwB,SAErC;IAED,SAAS,CAAC,aAAa,aAiBrB;IAEF,SAAS,CAAC,YAAY,aAMpB;IAEF,SAAS,CAAC,aAAa,aAIrB;IAEF,SAAS,CAAC,gBAAgB,aAIxB;IAEF,SAAS,CAAC,WAAW,aAInB;IAEF,SAAS,CAAC,iBAAiB,aAEzB;IAEF,SAAS,CAAC,wBAAwB,aAGhC;IAEF,SAAS,CAAC,0BAA0B,aAGlC;CAUL"}
1
+ {"version":3,"file":"ProcessManager.d.ts","sourceRoot":"","sources":["../../../src/environment/ProcessManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAU,cAAc,EAAwB,MAAM,UAAU,CAAC;AAKnG;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,cAAe,YAAW,YAAY;;IAInC,SAAS,CAAC,GAAG,EAAE,WAAW;IAHtC,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC;gBAGZ,GAAG,EAAE,WAAW;IActC,KAAK;IAOL,CAAC,MAAM,CAAC,OAAO,CAAC;IAIhB,SAAS,KAAK,gBAAgB,SAE7B;IAED,SAAS,KAAK,kBAAkB,SAE/B;IAED,SAAS,KAAK,wBAAwB,SAErC;IAED,SAAS,CAAC,aAAa,aAiBrB;IAEF,SAAS,CAAC,YAAY,aAMpB;IAEF,SAAS,CAAC,aAAa,aAIrB;IAEF,SAAS,CAAC,gBAAgB,aAIxB;IAEF,SAAS,CAAC,YAAY,cAQpB;IAEF,SAAS,CAAC,WAAW,aAInB;IAEF,SAAS,CAAC,iBAAiB,aAEzB;IAEF,SAAS,CAAC,wBAAwB,aAIhC;IAEF,SAAS,CAAC,0BAA0B,aAIlC;CAUL"}
@@ -69,6 +69,12 @@ class ProcessManager {
69
69
  this.installInterruptHandlers();
70
70
  this.runtime.interrupt();
71
71
  };
72
+ abortHandler = () => {
73
+ this.uninstallInterruptHandlers();
74
+ logger.fatal("Terminating due to SIGABRT of JS runtime, diagnostics follow");
75
+ logger.info(JSON.stringify(process.report.getReport(), void 0, 2));
76
+ process.exit(-66);
77
+ };
72
78
  exitHandler = () => {
73
79
  if (process.exitCode === 13) {
74
80
  logger.error("Internal error: Premature process exit because ongoing work has stalled");
@@ -80,10 +86,12 @@ class ProcessManager {
80
86
  installInterruptHandlers = () => {
81
87
  process.on("SIGINT", this.interruptHandler);
82
88
  process.on("SIGTERM", this.interruptHandler);
89
+ process.on("SIGABRT", this.abortHandler);
83
90
  };
84
91
  uninstallInterruptHandlers = () => {
85
92
  process.off("SIGINT", this.interruptHandler);
86
93
  process.off("SIGTERM", this.interruptHandler);
94
+ process.off("SIGABRT", this.abortHandler);
87
95
  };
88
96
  #ignoreSignals() {
89
97
  if (this.#signalHandlersInstalled) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/environment/ProcessManager.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAoC,QAAQ,sBAA4C;AAGxF,MAAM,SAAS,OAAO,IAAI,gBAAgB;AAuBnC,MAAM,eAAuC;AAAA,EAIhD,YAAsB,KAAkB;AAAlB;AAClB,SAAK,UAAU,IAAI,IAAI,cAAc;AAErC,SAAK,QAAQ,QAAQ,GAAG,KAAK,aAAa;AAC1C,SAAK,QAAQ,QAAQ,GAAG,KAAK,YAAY;AACzC,SAAK,QAAQ,QAAQ,GAAG,KAAK,aAAa;AAE1C,QAAI,KAAK,0BAA0B;AAC/B,cAAQ,YAAY,4BAA4B,WAAS;AACrD,eAAO,qBAAqB,KAAK;AAAA,MACrC,CAAC;AAAA,IACL;AAAA,EACJ;AAAA,EAfU;AAAA,EACV,2BAA2B;AAAA,EAgB3B,QAAQ;AACJ,SAAK,QAAQ,QAAQ,IAAI,KAAK,aAAa;AAC3C,SAAK,QAAQ,QAAQ,IAAI,KAAK,YAAY;AAC1C,SAAK,QAAQ,QAAQ,IAAI,KAAK,aAAa;AAC3C,SAAK,eAAe;AAAA,EACxB;AAAA,EAEA,CAAC,OAAO,OAAO,IAAI;AACf,SAAK,MAAM;AAAA,EACf;AAAA,EAEA,IAAc,mBAAmB;AAC7B,WAAO,KAAK,IAAI,KAAK,IAAI,mBAAmB,IAAI;AAAA,EACpD;AAAA,EAEA,IAAc,qBAAqB;AAC/B,WAAO,KAAK,IAAI,KAAK,IAAI,oBAAoB,IAAI;AAAA,EACrD;AAAA,EAEA,IAAc,2BAA2B;AACrC,WAAO,KAAK,IAAI,KAAK,IAAI,2BAA2B,IAAI;AAAA,EAC5D;AAAA,EAEU,gBAAgB,MAAM;AAC5B,SAAK,IAAI,KAAK,IAAI,MAAM;AACpB,UAAI,KAAK,kBAAkB;AACvB,YAAI,KAAK,0BAA0B;AAC/B;AAAA,QACJ;AAEA,aAAK,yBAAyB;AAE9B,gBAAQ,GAAG,WAAW,KAAK,iBAAiB;AAC5C,gBAAQ,GAAG,QAAQ,KAAK,WAAW;AAEnC,aAAK,2BAA2B;AAAA,MACpC,OAAO;AACH,aAAK,eAAe;AAAA,MACxB;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEU,eAAe,MAAM;AAC3B,SAAK,eAAe;AAEpB,QAAI,KAAK,sBAAsB,QAAQ,aAAa,QAAW;AAC3D,cAAQ,WAAW;AAAA,IACvB;AAAA,EACJ;AAAA,EAEU,gBAAgB,MAAM;AAC5B,QAAI,KAAK,oBAAoB;AACzB,cAAQ,WAAW;AAAA,IACvB;AAAA,EACJ;AAAA,EAEU,mBAAmB,MAAM;AAC/B,SAAK,2BAA2B;AAChC,SAAK,yBAAyB;AAC9B,SAAK,QAAQ,UAAU;AAAA,EAC3B;AAAA,EAEU,cAAc,MAAM;AAC1B,QAAI,QAAQ,aAAa,IAAI;AACzB,aAAO,MAAM,yEAAyE;AAAA,IAC1F;AAAA,EACJ;AAAA,EAEU,oBAAoB,MAAM;AAChC,SAAK,IAAI,SAAS;AAAA,EACtB;AAAA,EAEU,2BAA2B,MAAM;AACvC,YAAQ,GAAG,UAAU,KAAK,gBAAgB;AAC1C,YAAQ,GAAG,WAAW,KAAK,gBAAgB;AAAA,EAC/C;AAAA,EAEU,6BAA6B,MAAM;AACzC,YAAQ,IAAI,UAAU,KAAK,gBAAgB;AAC3C,YAAQ,IAAI,WAAW,KAAK,gBAAgB;AAAA,EAChD;AAAA,EAEA,iBAAiB;AACb,QAAI,KAAK,0BAA0B;AAC/B,WAAK,2BAA2B;AAChC,cAAQ,IAAI,WAAW,KAAK,iBAAiB;AAC7C,cAAQ,IAAI,QAAQ,KAAK,WAAW;AACpC,WAAK,2BAA2B;AAAA,IACpC;AAAA,EACJ;AACJ;",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,42 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { HttpEndpoint, HttpEndpointFactory } from "#general";
7
+ import { IncomingMessage, Server, ServerResponse } from "node:http";
8
+ /**
9
+ * An implementation of {@link HttpEndpoint} that uses Node.js's standard {@link Server}.
10
+ *
11
+ * WebSocket support is optional. You can install by importing `@matter/nodejs-ws`.
12
+ *
13
+ * This implementation is a little ugly because the native Node.js HTTP server API is pre-async and has some design
14
+ * flaws. Other runtimes tend build on WinterTC standards and adapters will be much simpler.
15
+ */
16
+ export declare class NodeJsHttpEndpoint implements HttpEndpoint {
17
+ #private;
18
+ static create(options: NodeJsHttpEndpoint.Options): Promise<NodeJsHttpEndpoint>;
19
+ /**
20
+ * Create a new endpoint.
21
+ *
22
+ * You may pass an existing {@link Server} or pass {@link NodeJsHttpEndpoint.Options} to create a server dedicated
23
+ * to this endpoint.
24
+ */
25
+ constructor(optionsOrServer: Server | NodeJsHttpEndpoint.Options);
26
+ get server(): Server<typeof IncomingMessage, typeof ServerResponse>;
27
+ get ready(): Promise<void>;
28
+ set http(handler: HttpEndpoint.HttpHandler | undefined);
29
+ set ws(handler: HttpEndpoint.WsHandler | undefined);
30
+ close: () => Promise<void>;
31
+ }
32
+ export declare namespace NodeJsHttpEndpoint {
33
+ interface Options extends HttpEndpoint.Options {
34
+ basePathForUnixSockets?: string;
35
+ }
36
+ class Factory extends HttpEndpointFactory {
37
+ #private;
38
+ constructor(basePathForUnixSockets?: string);
39
+ create(options: HttpEndpoint.Options): Promise<NodeJsHttpEndpoint>;
40
+ }
41
+ }
42
+ //# sourceMappingURL=NodeJsHttpEndpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeJsHttpEndpoint.d.ts","sourceRoot":"","sources":["../../../src/net/NodeJsHttpEndpoint.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAuB,YAAY,EAAE,mBAAmB,EAAwB,MAAM,UAAU,CAAC;AAExG,OAAO,EAAgB,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAWlF;;;;;;;GAOG;AACH,qBAAa,kBAAmB,YAAW,YAAY;;WAYtC,MAAM,CAAC,OAAO,EAAE,kBAAkB,CAAC,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAMrF;;;;;OAKG;gBACS,eAAe,EAAE,MAAM,GAAG,kBAAkB,CAAC,OAAO;IAehE,IAAI,MAAM,0DAET;IAsGD,IAAI,KAAK,kBAER;IAED,IAAI,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,WAAW,GAAG,SAAS,EAsBrD;IAED,IAAI,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,GAAG,SAAS,EA6BjD;IAED,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CA8D9B;AA8CD,yBAAiB,kBAAkB,CAAC;IAChC,UAAiB,OAAQ,SAAQ,YAAY,CAAC,OAAO;QACjD,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACnC;IAED,MAAa,OAAQ,SAAQ,mBAAmB;;oBAGhC,sBAAsB,CAAC,EAAE,MAAM;QAKrC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO;KAM7C;CACJ"}
@@ -0,0 +1,284 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { AppAddress, asError, HttpEndpointFactory, Logger, NetworkError } from "#general";
7
+ import { existsSync, ReadStream, rmSync, statSync } from "node:fs";
8
+ import { createServer, IncomingMessage } from "node:http";
9
+ import { normalize, resolve } from "node:path";
10
+ import { WsAdapter } from "./WsAdapter.js";
11
+ const logger = new Logger("NodeJsHttpEndpoint");
12
+ class NodeJsHttpEndpoint {
13
+ #server;
14
+ #ready;
15
+ #http;
16
+ #httpListener;
17
+ #ws;
18
+ #wsListener;
19
+ #notFound;
20
+ #wsAdapter;
21
+ #wsAdapterFactory;
22
+ static async create(options) {
23
+ const endpoint = new NodeJsHttpEndpoint(options);
24
+ await endpoint.ready;
25
+ return endpoint;
26
+ }
27
+ /**
28
+ * Create a new endpoint.
29
+ *
30
+ * You may pass an existing {@link Server} or pass {@link NodeJsHttpEndpoint.Options} to create a server dedicated
31
+ * to this endpoint.
32
+ */
33
+ constructor(optionsOrServer) {
34
+ let close, ready, server, notFound;
35
+ if ("on" in optionsOrServer) {
36
+ ({ close, ready, server, notFound } = this.#bindToServer(optionsOrServer));
37
+ } else {
38
+ ({ close, ready, server, notFound } = this.#createDedicatedServer(optionsOrServer));
39
+ }
40
+ this.#server = server;
41
+ this.#ready = ready;
42
+ this.close = close;
43
+ this.#notFound = notFound;
44
+ }
45
+ get server() {
46
+ return this.#server;
47
+ }
48
+ #bindToServer(server) {
49
+ return {
50
+ server,
51
+ ready: Promise.resolve(),
52
+ close: async () => {
53
+ this.http = void 0;
54
+ this.ws = void 0;
55
+ },
56
+ notFound: () => void 0
57
+ };
58
+ }
59
+ #createDedicatedServer(options) {
60
+ const server = createServer({ keepAlive: true });
61
+ const opts = {};
62
+ const address = AppAddress.for(options.address);
63
+ const { transport } = address;
64
+ switch (transport.kind) {
65
+ case "ip":
66
+ if (!address.isWildcardHost) {
67
+ opts.host = address.host;
68
+ }
69
+ if (!address.isWildcardPort) {
70
+ opts.port = address.portNum;
71
+ }
72
+ break;
73
+ case "unix":
74
+ const path = decodeURIComponent(address.hostname);
75
+ if (options.basePathForUnixSockets) {
76
+ opts.path = resolve(options.basePathForUnixSockets, normalize(path));
77
+ } else {
78
+ opts.path = normalize(path);
79
+ }
80
+ if (existsSync(opts.path)) {
81
+ if (statSync(opts.path).isSocket()) {
82
+ try {
83
+ rmSync(opts.path);
84
+ } catch (e) {
85
+ throw new NetworkError(
86
+ `Error deleting previous socket at ${opts.path}: ${asError(e).message}`
87
+ );
88
+ }
89
+ } else {
90
+ throw new NetworkError(`UNIX socket path ${opts.path} exists and is not a socket`);
91
+ }
92
+ }
93
+ break;
94
+ default:
95
+ throw new NetworkError(
96
+ `Unsupported address type "${options.address?.type}" for HTTP endpoint`
97
+ );
98
+ }
99
+ server.listen(opts);
100
+ return {
101
+ server,
102
+ ready: new Promise((resolve2, reject) => {
103
+ let settled = false;
104
+ server.once("listening", () => {
105
+ if (settled) {
106
+ return;
107
+ }
108
+ settled = true;
109
+ resolve2();
110
+ });
111
+ server.on("error", (error) => {
112
+ if (settled) {
113
+ logger.warn("HTTP server error:", error.message);
114
+ return;
115
+ }
116
+ settled = true;
117
+ reject(error);
118
+ });
119
+ }),
120
+ close: async () => {
121
+ return new Promise((resolve2, reject) => {
122
+ server.close((err) => {
123
+ if (err) {
124
+ reject(err);
125
+ return;
126
+ }
127
+ resolve2();
128
+ });
129
+ });
130
+ },
131
+ notFound: (res) => respondError(res, 404)
132
+ };
133
+ }
134
+ get ready() {
135
+ return this.#ready;
136
+ }
137
+ set http(handler) {
138
+ this.#http = handler;
139
+ if (!this.#http) {
140
+ if (this.#httpListener) {
141
+ this.#server.off("request", this.#httpListener);
142
+ }
143
+ return;
144
+ }
145
+ if (this.#httpListener) {
146
+ return;
147
+ }
148
+ this.#httpListener = (req, res) => {
149
+ this.#handleHttp(req, res).catch((error) => {
150
+ logger.error("Unhandled error in HTTP endpoint handler", error);
151
+ respondError(res, 500);
152
+ });
153
+ };
154
+ this.#server.on("request", this.#httpListener);
155
+ }
156
+ set ws(handler) {
157
+ this.#ws = handler;
158
+ if (!this.#ws) {
159
+ if (this.#wsListener) {
160
+ this.#server.off("upgrade", this.#wsListener);
161
+ }
162
+ return;
163
+ }
164
+ let adapter = this.#wsAdapter;
165
+ if (!adapter) {
166
+ const factory = this.#wsAdapterFactory ?? WsAdapter.defaultFactory;
167
+ if (!factory) {
168
+ logger.warn(
169
+ "WebSocket support disabled because no adapter is installed; please import @matter/nodejs-ws or equivalent"
170
+ );
171
+ return;
172
+ }
173
+ adapter = this.#wsAdapter = factory();
174
+ }
175
+ this.#wsListener = (req, socket, head) => {
176
+ this.#handleUpgrade(adapter, req, socket, head).catch((error) => {
177
+ logger.error("Unhandled error WebSocket endpoint", error);
178
+ });
179
+ };
180
+ this.#server.on("upgrade", this.#wsListener);
181
+ }
182
+ close;
183
+ async #handleHttp(req, res) {
184
+ if (!this.#http) {
185
+ return;
186
+ }
187
+ const request = new NodeJsHttpRequest(req);
188
+ const response = await this.#http(request);
189
+ if (!response) {
190
+ this.#notFound(res);
191
+ return;
192
+ }
193
+ res.statusCode = response.status;
194
+ res.statusMessage = response.statusText;
195
+ response.headers.forEach(([name, value]) => res.appendHeader(name, value));
196
+ if (response.body === null) {
197
+ res.end();
198
+ return;
199
+ }
200
+ const nodeBodyStream = ReadStream.fromWeb(response.body);
201
+ nodeBodyStream.on("error", (error) => {
202
+ logger.error("Error transmitting HTTP body", error);
203
+ respondError(res, 500);
204
+ });
205
+ nodeBodyStream.pipe(res);
206
+ }
207
+ async #handleUpgrade(adapter, req, socket, head) {
208
+ if (req.headers.upgrade !== "websocket") {
209
+ socket.destroy();
210
+ return;
211
+ }
212
+ if (!this.#ws) {
213
+ socket.destroy();
214
+ return;
215
+ }
216
+ const request = new NodeJsHttpRequest(req);
217
+ try {
218
+ await this.#ws(request, async () => {
219
+ return adapter.handle(req, socket, head);
220
+ });
221
+ } finally {
222
+ if (!socket.destroyed) {
223
+ socket.destroy();
224
+ }
225
+ }
226
+ }
227
+ }
228
+ class NodeJsHttpRequest extends Request {
229
+ constructor(message) {
230
+ const { method, rawHeaders } = message;
231
+ const url = `http://${message.headers.host ?? "unknown"}${message.url ?? "/"}`;
232
+ const headers = new Headers();
233
+ for (let i = 0; i < message.rawHeaders.length; i += 2) {
234
+ headers.append(rawHeaders[i], rawHeaders[i + 1]);
235
+ }
236
+ const init = {
237
+ method,
238
+ headers,
239
+ duplex: "half"
240
+ // Not in RequestInit type but required by node
241
+ };
242
+ if (method !== "GET" && method !== "HEAD") {
243
+ init.body = IncomingMessage.toWeb(message);
244
+ }
245
+ super(url, init);
246
+ }
247
+ }
248
+ function respondError(res, code) {
249
+ if (res.closed) {
250
+ return;
251
+ }
252
+ try {
253
+ if (!res.headersSent) {
254
+ res.statusCode = code;
255
+ res.setHeader("Content-Type", "text/plain");
256
+ res.end(`HTTP error ${code}
257
+ `);
258
+ } else {
259
+ res.end();
260
+ }
261
+ } catch (e) {
262
+ logger.warn(`Error conveying ${code} error:`, asError(e).message);
263
+ }
264
+ }
265
+ ((NodeJsHttpEndpoint2) => {
266
+ class Factory extends HttpEndpointFactory {
267
+ #basePathForUnixSockets;
268
+ constructor(basePathForUnixSockets) {
269
+ super();
270
+ this.#basePathForUnixSockets = basePathForUnixSockets;
271
+ }
272
+ async create(options) {
273
+ return NodeJsHttpEndpoint2.create({
274
+ basePathForUnixSockets: this.#basePathForUnixSockets,
275
+ ...options
276
+ });
277
+ }
278
+ }
279
+ NodeJsHttpEndpoint2.Factory = Factory;
280
+ })(NodeJsHttpEndpoint || (NodeJsHttpEndpoint = {}));
281
+ export {
282
+ NodeJsHttpEndpoint
283
+ };
284
+ //# sourceMappingURL=NodeJsHttpEndpoint.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/net/NodeJsHttpEndpoint.ts"],
4
+ "mappings": "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",
5
+ "names": ["resolve", "NodeJsHttpEndpoint"]
6
+ }
@@ -7,7 +7,7 @@ import { Bytes, ChannelType, UdpChannel, UdpChannelOptions, UdpSocketType } from
7
7
  import * as dgram from "node:dgram";
8
8
  export declare class NodeJsUdpChannel implements UdpChannel {
9
9
  #private;
10
- static create({ listeningPort, type, listeningAddress, netInterface }: UdpChannelOptions): Promise<NodeJsUdpChannel>;
10
+ static create({ listeningPort, type, listeningAddress, netInterface, reuseAddress }: UdpChannelOptions): Promise<NodeJsUdpChannel>;
11
11
  readonly maxPayloadSize: number;
12
12
  constructor(type: UdpSocketType, socket: dgram.Socket, netInterface?: string);
13
13
  addMembership(membershipAddress: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"NodeJsUdpChannel.d.ts","sourceRoot":"","sources":["../../../src/net/NodeJsUdpChannel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACH,KAAK,EACL,WAAW,EAaX,UAAU,EACV,iBAAiB,EACjB,aAAa,EAChB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AAqCpC,qBAAa,gBAAiB,YAAW,UAAU;;WAKlC,MAAM,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,gBAAgB,EAAE,YAAY,EAAE,EAAE,iBAAiB;IAmC9F,QAAQ,CAAC,cAAc,SAAwB;gBAWnC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAM5E,aAAa,CAAC,iBAAiB,EAAE,MAAM;IAkBvC,cAAc,CAAC,iBAAiB,EAAE,MAAM;IAkBxC,MAAM,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,KAAK,IAAI;;;IAoCzG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK;IAsC5C,KAAK;IAUX,IAAI,IAAI,WAEP;IAED,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM;CAiB/C"}
1
+ {"version":3,"file":"NodeJsUdpChannel.d.ts","sourceRoot":"","sources":["../../../src/net/NodeJsUdpChannel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAGH,KAAK,EACL,WAAW,EAcX,UAAU,EACV,iBAAiB,EACjB,aAAa,EAChB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AAqDpC,qBAAa,gBAAiB,YAAW,UAAU;;WAKlC,MAAM,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,iBAAiB;IAuD5G,QAAQ,CAAC,cAAc,SAAwB;gBAWnC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAM5E,aAAa,CAAC,iBAAiB,EAAE,MAAM;IAkBvC,cAAc,CAAC,iBAAiB,EAAE,MAAM;IAkBxC,MAAM,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,KAAK,IAAI;;;IAoCzG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK;IAsC5C,KAAK;IAUX,IAAI,IAAI,WAEP;IAED,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM;CAiB/C"}