@aloma.io/integration-sdk 3.8.10 → 3.8.12

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 (83) hide show
  1. package/.prettierrc.cjs +8 -0
  2. package/build/builder/index.d.mts +7 -11
  3. package/build/builder/index.mjs +14 -15
  4. package/build/builder/runtime-context.d.mts +1 -1
  5. package/build/builder/runtime-context.mjs +11 -16
  6. package/build/cli.mjs +38 -38
  7. package/build/controller/index.d.mts +58 -2
  8. package/build/controller/index.mjs +68 -11
  9. package/build/index.d.mts +2 -2
  10. package/build/index.mjs +2 -2
  11. package/build/internal/connector/config.d.mts +2 -2
  12. package/build/internal/connector/config.mjs +10 -10
  13. package/build/internal/connector/index.d.mts +2 -2
  14. package/build/internal/connector/index.mjs +4 -4
  15. package/build/internal/connector/metrics.mjs +6 -6
  16. package/build/internal/connector/server/index.d.mts +3 -3
  17. package/build/internal/connector/server/index.mjs +7 -7
  18. package/build/internal/connector/server/on-connect/decrypt-config.mjs +3 -3
  19. package/build/internal/connector/server/on-connect/finish-oauth.d.mts +3 -3
  20. package/build/internal/connector/server/on-connect/finish-oauth.mjs +17 -23
  21. package/build/internal/connector/server/on-connect/index.d.mts +2 -2
  22. package/build/internal/connector/server/on-connect/index.mjs +13 -13
  23. package/build/internal/connector/server/on-connect/make-oauth.d.mts +3 -3
  24. package/build/internal/connector/server/on-connect/make-oauth.mjs +17 -25
  25. package/build/internal/connector/server/on-connect/start-oauth.mjs +6 -13
  26. package/build/internal/connector/server/on-message.mjs +1 -1
  27. package/build/internal/dispatcher/index.mjs +34 -45
  28. package/build/internal/fetcher/fetcher.d.mts +1 -1
  29. package/build/internal/fetcher/fetcher.mjs +11 -15
  30. package/build/internal/fetcher/oauth-fetcher.d.mts +1 -1
  31. package/build/internal/fetcher/oauth-fetcher.mjs +7 -7
  32. package/build/internal/index.d.mts +1 -1
  33. package/build/internal/index.mjs +1 -1
  34. package/build/internal/util/index.mjs +5 -5
  35. package/build/internal/util/jwe/cli.mjs +3 -3
  36. package/build/internal/util/jwe/index.d.mts +1 -1
  37. package/build/internal/util/jwe/index.mjs +10 -10
  38. package/build/internal/websocket/config.d.mts +1 -1
  39. package/build/internal/websocket/config.mjs +7 -7
  40. package/build/internal/websocket/connection/constants.mjs +3 -3
  41. package/build/internal/websocket/connection/index.mjs +8 -8
  42. package/build/internal/websocket/connection/registration.mjs +6 -6
  43. package/build/internal/websocket/index.d.mts +2 -2
  44. package/build/internal/websocket/index.mjs +3 -3
  45. package/build/internal/websocket/transport/durable.mjs +6 -6
  46. package/build/internal/websocket/transport/index.d.mts +2 -2
  47. package/build/internal/websocket/transport/index.mjs +19 -19
  48. package/build/internal/websocket/transport/packet.mjs +1 -1
  49. package/build/internal/websocket/transport/processor.mjs +5 -5
  50. package/build/transform/index.mjs +26 -26
  51. package/package.json +1 -1
  52. package/src/builder/index.mts +66 -66
  53. package/src/builder/runtime-context.mts +17 -43
  54. package/src/cli.mts +48 -53
  55. package/src/controller/index.mts +72 -12
  56. package/src/index.mts +2 -2
  57. package/src/internal/connector/config.mts +11 -19
  58. package/src/internal/connector/index.mts +8 -9
  59. package/src/internal/connector/metrics.mts +7 -7
  60. package/src/internal/connector/server/index.mts +10 -10
  61. package/src/internal/connector/server/on-connect/decrypt-config.mts +4 -4
  62. package/src/internal/connector/server/on-connect/finish-oauth.mts +22 -35
  63. package/src/internal/connector/server/on-connect/index.mts +27 -27
  64. package/src/internal/connector/server/on-connect/make-oauth.mts +22 -33
  65. package/src/internal/connector/server/on-connect/start-oauth.mts +7 -16
  66. package/src/internal/connector/server/on-message.mts +1 -1
  67. package/src/internal/dispatcher/index.mts +49 -70
  68. package/src/internal/fetcher/fetcher.mts +44 -49
  69. package/src/internal/fetcher/oauth-fetcher.mts +12 -13
  70. package/src/internal/index.mts +2 -2
  71. package/src/internal/util/index.mts +8 -11
  72. package/src/internal/util/jwe/cli.mts +3 -3
  73. package/src/internal/util/jwe/index.mts +17 -21
  74. package/src/internal/websocket/config.mjs +8 -12
  75. package/src/internal/websocket/connection/constants.mjs +3 -3
  76. package/src/internal/websocket/connection/index.mjs +14 -14
  77. package/src/internal/websocket/connection/registration.mjs +10 -10
  78. package/src/internal/websocket/index.mjs +6 -6
  79. package/src/internal/websocket/transport/durable.mjs +9 -9
  80. package/src/internal/websocket/transport/index.mjs +28 -32
  81. package/src/internal/websocket/transport/packet.mjs +4 -4
  82. package/src/internal/websocket/transport/processor.mjs +9 -12
  83. package/src/transform/index.mts +28 -41
@@ -1,4 +1,4 @@
1
- import { unwrap } from "../util/index.mjs";
1
+ import { unwrap } from '../util/index.mjs';
2
2
  /**
3
3
  * http request fetcher
4
4
  */
@@ -7,7 +7,7 @@ export default class Fetcher {
7
7
  baseUrl;
8
8
  onResponse;
9
9
  customize0;
10
- constructor({ retry = 5, baseUrl, onResponse, customize } = {}) {
10
+ constructor({ retry = 5, baseUrl, onResponse, customize, } = {}) {
11
11
  this.retry = retry;
12
12
  this.baseUrl = baseUrl;
13
13
  this.onResponse = onResponse;
@@ -47,33 +47,29 @@ export default class Fetcher {
47
47
  const options0 = { ...options };
48
48
  if (retries == null)
49
49
  retries = local.retry;
50
- let theURL = !baseUrl
51
- ? url
52
- : `${baseUrl?.endsWith("/") ? baseUrl : baseUrl + "/"}${url}`.replace(/\/\/+/gi, "/");
50
+ let theURL = !baseUrl ? url : `${baseUrl?.endsWith('/') ? baseUrl : baseUrl + '/'}${url}`.replace(/\/\/+/gi, '/');
53
51
  try {
54
52
  options0.url = url;
55
53
  await local.customize(options0, args);
56
54
  url = options0.url;
57
55
  delete options0.url;
58
- theURL = !baseUrl
59
- ? url
60
- : `${baseUrl?.endsWith("/") ? baseUrl : baseUrl + "/"}${url}`.replace(/\/\/+/gi, "/");
56
+ theURL = !baseUrl ? url : `${baseUrl?.endsWith('/') ? baseUrl : baseUrl + '/'}${url}`.replace(/\/\/+/gi, '/');
61
57
  if (!options0?.headers || !options0?.headers?.Accept) {
62
58
  options0.headers = {
63
59
  ...options0.headers,
64
- Accept: "application/json",
60
+ Accept: 'application/json',
65
61
  };
66
62
  }
67
- if (!options0?.headers || !options0?.headers?.["Content-type"]) {
63
+ if (!options0?.headers || !options0?.headers?.['Content-type']) {
68
64
  options0.headers = {
69
65
  ...options0.headers,
70
- "Content-type": "application/json",
66
+ 'Content-type': 'application/json',
71
67
  };
72
68
  }
73
- if (!(options0?.method === "GET" || options0?.method === "HEAD") &&
69
+ if (!(options0?.method === 'GET' || options0?.method === 'HEAD') &&
74
70
  options0?.body &&
75
- !(typeof options0.body === "string") &&
76
- options0?.headers?.["Content-type"] === "application/json") {
71
+ !(typeof options0.body === 'string') &&
72
+ options0?.headers?.['Content-type'] === 'application/json') {
77
73
  options0.body = JSON.stringify(options0.body);
78
74
  }
79
75
  const timeout = Math.min(options0?.timeout || 30 * 60 * 1000, 30 * 60 * 1000);
@@ -84,7 +80,7 @@ export default class Fetcher {
84
80
  const status = await ret.status;
85
81
  if (status > 399) {
86
82
  const text = await ret.text();
87
- const e = new Error(status + " " + text);
83
+ const e = new Error(status + ' ' + text);
88
84
  e.status = status;
89
85
  throw e;
90
86
  }
@@ -1,4 +1,4 @@
1
- import Fetcher from "./fetcher.mjs";
1
+ import Fetcher from './fetcher.mjs';
2
2
  declare class OAuthFetcher extends Fetcher {
3
3
  oauth: any;
4
4
  _getToken: any;
@@ -1,4 +1,4 @@
1
- import Fetcher from "./fetcher.mjs";
1
+ import Fetcher from './fetcher.mjs';
2
2
  class OAuthFetcher extends Fetcher {
3
3
  oauth;
4
4
  _getToken;
@@ -10,7 +10,7 @@ class OAuthFetcher extends Fetcher {
10
10
  }
11
11
  async __healthCheck() {
12
12
  if (this.used && !this.oauth.accessToken())
13
- throw new Error("no access token");
13
+ throw new Error('no access token');
14
14
  }
15
15
  async getToken(force) {
16
16
  var local = this, oauth = local.oauth;
@@ -22,7 +22,7 @@ class OAuthFetcher extends Fetcher {
22
22
  const refreshToken = oauth.refreshToken();
23
23
  try {
24
24
  if (!refreshToken) {
25
- throw new Error("have no access_token and no refresh_token");
25
+ throw new Error('have no access_token and no refresh_token');
26
26
  }
27
27
  const ret = await oauth.obtainViaRefreshToken(oauth.refreshToken());
28
28
  if (ret.access_token) {
@@ -30,7 +30,7 @@ class OAuthFetcher extends Fetcher {
30
30
  return ret.access_token;
31
31
  }
32
32
  else {
33
- throw new Error("could not obtain access token via refresh token");
33
+ throw new Error('could not obtain access token via refresh token');
34
34
  }
35
35
  }
36
36
  catch (e) {
@@ -55,11 +55,11 @@ class OAuthFetcher extends Fetcher {
55
55
  }
56
56
  async periodicRefresh() {
57
57
  const local = this, oauth = local.oauth;
58
- console.log("refreshing oauth token, have token", !!oauth.refreshToken());
58
+ console.log('refreshing oauth token, have token', !!oauth.refreshToken());
59
59
  if (!oauth.refreshToken())
60
60
  return;
61
61
  await local.getToken(true);
62
- console.log("refreshed oauth token");
62
+ console.log('refreshed oauth token');
63
63
  }
64
64
  async customize(options, args = {}) {
65
65
  const local = this;
@@ -101,7 +101,7 @@ export class OAuth {
101
101
  }
102
102
  async periodicRefresh() {
103
103
  const clients = this.clients;
104
- console.log("refreshing oauth clients", clients.length);
104
+ console.log('refreshing oauth clients', clients.length);
105
105
  for (let i = 0; i < clients.length; ++i) {
106
106
  const client = clients[0];
107
107
  await client.periodicRefresh();
@@ -1,2 +1,2 @@
1
- import { Connector } from "./connector/index.mjs";
1
+ import { Connector } from './connector/index.mjs';
2
2
  export { Connector };
@@ -1,2 +1,2 @@
1
- import { Connector } from "./connector/index.mjs";
1
+ import { Connector } from './connector/index.mjs';
2
2
  export { Connector };
@@ -1,13 +1,13 @@
1
1
  export const handlePacketError = (packet, e, transport) => {
2
2
  if (!packet.cb()) {
3
- console.dir({ msg: "packet error", e, packet }, { depth: null });
3
+ console.dir({ msg: 'packet error', e, packet }, { depth: null });
4
4
  return;
5
5
  }
6
- transport.send(transport.newPacket({ c: packet.cb(), a: { error: "" + e } }));
6
+ transport.send(transport.newPacket({ c: packet.cb(), a: { error: '' + e } }));
7
7
  };
8
8
  export const reply = (arg, packet, transport) => {
9
9
  if (!packet.cb()) {
10
- console.dir({ msg: "cannot reply to packet without cb", arg, packet }, { depth: null });
10
+ console.dir({ msg: 'cannot reply to packet without cb', arg, packet }, { depth: null });
11
11
  return;
12
12
  }
13
13
  transport.send(transport.newPacket({ c: packet.cb(), a: { ...arg } }));
@@ -24,7 +24,7 @@ export const unwrap = async (ret, options) => {
24
24
  if (options?.text)
25
25
  return unwrap0(ret, await ret.text(), options);
26
26
  if (options?.base64) {
27
- const base64 = Buffer.from(await ret.arrayBuffer()).toString("base64");
27
+ const base64 = Buffer.from(await ret.arrayBuffer()).toString('base64');
28
28
  return unwrap0(ret, base64, options);
29
29
  }
30
30
  if (options?.skipResponseBody) {
@@ -35,7 +35,7 @@ export const unwrap = async (ret, options) => {
35
35
  return unwrap0(ret, JSON.parse(text), options);
36
36
  }
37
37
  catch (e) {
38
- throw e + " " + text;
38
+ throw e + ' ' + text;
39
39
  }
40
40
  };
41
41
  export const notEmpty = (what, name) => {
@@ -1,9 +1,9 @@
1
- import JWE from "./index.mjs";
1
+ import JWE from './index.mjs';
2
2
  const main = async () => {
3
3
  const jwe = new JWE({});
4
4
  await jwe.newPair();
5
- console.log("PRIVATE_KEY=" + (await jwe.exportPrivateAsBase64()));
6
- console.log("PUBLIC_KEY=" + (await jwe.exportPublicAsBase64()));
5
+ console.log('PRIVATE_KEY=' + (await jwe.exportPrivateAsBase64()));
6
+ console.log('PUBLIC_KEY=' + (await jwe.exportPublicAsBase64()));
7
7
  };
8
8
  setTimeout(() => null, 100);
9
9
  main();
@@ -1,4 +1,4 @@
1
- import * as jose from "jose";
1
+ import * as jose from 'jose';
2
2
  declare class JWE {
3
3
  issuer: string;
4
4
  algorithm: string;
@@ -1,10 +1,10 @@
1
- import * as jose from "jose";
1
+ import * as jose from 'jose';
2
2
  class JWE {
3
3
  issuer;
4
4
  algorithm;
5
5
  pair;
6
- constructor({ algorithm = "PS256" }) {
7
- this.issuer = "home.aloma.io";
6
+ constructor({ algorithm = 'PS256' }) {
7
+ this.issuer = 'home.aloma.io';
8
8
  this.algorithm = algorithm;
9
9
  }
10
10
  async newPair() {
@@ -18,11 +18,11 @@ class JWE {
18
18
  }
19
19
  async exportPrivateAsBase64() {
20
20
  const pair = await this.exportPair();
21
- return Buffer.from(pair.privateKey).toString("base64");
21
+ return Buffer.from(pair.privateKey).toString('base64');
22
22
  }
23
23
  async exportPublicAsBase64() {
24
24
  const pair = await this.exportPair();
25
- return Buffer.from(pair.publicKey).toString("base64");
25
+ return Buffer.from(pair.publicKey).toString('base64');
26
26
  }
27
27
  async importPair({ publicKey, privateKey, algorithm }) {
28
28
  this.pair = {
@@ -32,18 +32,18 @@ class JWE {
32
32
  }
33
33
  async importBase64Pair({ publicKey, privateKey, algorithm }) {
34
34
  this.importPair({
35
- publicKey: Buffer.from(publicKey, "base64").toString(),
36
- privateKey: Buffer.from(privateKey, "base64").toString(),
35
+ publicKey: Buffer.from(publicKey, 'base64').toString(),
36
+ privateKey: Buffer.from(privateKey, 'base64').toString(),
37
37
  algorithm,
38
38
  });
39
39
  }
40
- async encrypt(what, expiration = "7d", audience, algorithm = "RSA-OAEP-256") {
40
+ async encrypt(what, expiration = '7d', audience, algorithm = 'RSA-OAEP-256') {
41
41
  const item = new jose.EncryptJWT({ _data: { ...what } })
42
- .setProtectedHeader({ alg: algorithm, enc: "A256GCM" })
42
+ .setProtectedHeader({ alg: algorithm, enc: 'A256GCM' })
43
43
  .setIssuedAt()
44
44
  .setIssuer(this.issuer)
45
45
  .setAudience(audience);
46
- if (expiration && expiration !== "none")
46
+ if (expiration && expiration !== 'none')
47
47
  item.setExpirationTime(expiration);
48
48
  return await item.encrypt(this.pair.publicKey);
49
49
  }
@@ -41,4 +41,4 @@ export class Config {
41
41
  icon(): any;
42
42
  setToken(what: any): void;
43
43
  }
44
- import JWE from "../util/jwe/index.mjs";
44
+ import JWE from '../util/jwe/index.mjs';
@@ -1,5 +1,5 @@
1
- import C from "./connection/constants.mjs";
2
- import JWE from "../util/jwe/index.mjs";
1
+ import C from './connection/constants.mjs';
2
+ import JWE from '../util/jwe/index.mjs';
3
3
  class Config {
4
4
  constructor({ registrationToken, version, name, id, endpoint, wsEndpoint, privateKey, publicKey, introspect, configSchema, icon, }) {
5
5
  this._token = null;
@@ -17,17 +17,17 @@ class Config {
17
17
  this._configSchema = configSchema;
18
18
  this._icon = icon;
19
19
  if (!registrationToken)
20
- throw new Error("empty registration token (set env.REGISTRATION_TOKEN)");
20
+ throw new Error('empty registration token (set env.REGISTRATION_TOKEN)');
21
21
  if (!endpoint)
22
- throw new Error("empty endpoint (set env.DEVICE_ENDPOINT)");
22
+ throw new Error('empty endpoint (set env.DEVICE_ENDPOINT)');
23
23
  if (!wsEndpoint)
24
- throw new Error("empty registration token (set env.WEBSOCKET_ENDPOINT)");
24
+ throw new Error('empty registration token (set env.WEBSOCKET_ENDPOINT)');
25
25
  if (!this._id || !this._version)
26
- throw new Error("need connector id and version");
26
+ throw new Error('need connector id and version');
27
27
  }
28
28
  async validateKeys(algorithm) {
29
29
  if (!this._privateKey || !this._publicKey)
30
- throw new Error("need private and public key");
30
+ throw new Error('need private and public key');
31
31
  await this._jwe.importBase64Pair({
32
32
  publicKey: this._publicKey,
33
33
  privateKey: this._privateKey,
@@ -1,9 +1,9 @@
1
- const AUTHORIZATION = "Authorization";
1
+ const AUTHORIZATION = 'Authorization';
2
2
  export default {
3
3
  augmentRequest: (what, config) => {
4
4
  what.headers = {
5
5
  ...what.headers,
6
- "User-Agent": config.id() + "/" + config.version(),
6
+ 'User-Agent': config.id() + '/' + config.version(),
7
7
  };
8
8
  what.headers[AUTHORIZATION] = `Connector ${config.token()}`;
9
9
  return what;
@@ -11,7 +11,7 @@ export default {
11
11
  augmentRegistration: (what, config) => {
12
12
  what.headers = {
13
13
  ...what.headers,
14
- "User-Agent": config.id() + "/" + config.version(),
14
+ 'User-Agent': config.id() + '/' + config.version(),
15
15
  };
16
16
  what.headers[AUTHORIZATION] = `Connector ${config.registrationToken()}`;
17
17
  return what;
@@ -1,5 +1,5 @@
1
- import { Registration } from "./registration.mjs";
2
- import C from "./constants.mjs";
1
+ import { Registration } from './registration.mjs';
2
+ import C from './constants.mjs';
3
3
  class Connection {
4
4
  constructor({ config, onStart }) {
5
5
  this.config = config;
@@ -8,10 +8,10 @@ class Connection {
8
8
  async start() {
9
9
  var local = this, config = local.config;
10
10
  try {
11
- const response = await fetch(config.url() + "connect", C.augmentRequest({
12
- method: "POST",
11
+ const response = await fetch(config.url() + 'connect', C.augmentRequest({
12
+ method: 'POST',
13
13
  body: JSON.stringify({}),
14
- headers: { "Content-Type": "application/json" },
14
+ headers: { 'Content-Type': 'application/json' },
15
15
  signal: AbortSignal.timeout(60 * 1000),
16
16
  }, config));
17
17
  if (response.status === 401) {
@@ -37,10 +37,10 @@ class Connection {
37
37
  }
38
38
  async close() {
39
39
  try {
40
- await fetch(this.config.url() + "disconnect", C.augmentRequest({
41
- method: "POST",
40
+ await fetch(this.config.url() + 'disconnect', C.augmentRequest({
41
+ method: 'POST',
42
42
  body: JSON.stringify({}),
43
- headers: { "Content-Type": "application/json" },
43
+ headers: { 'Content-Type': 'application/json' },
44
44
  signal: AbortSignal.timeout(60 * 1000),
45
45
  }, this.config));
46
46
  }
@@ -1,4 +1,4 @@
1
- import C from "./constants.mjs";
1
+ import C from './constants.mjs';
2
2
  class Registration {
3
3
  constructor(config) {
4
4
  this.config = config;
@@ -9,10 +9,10 @@ class Registration {
9
9
  const configSchema = config.configSchema();
10
10
  const intro = await config.introspect();
11
11
  const icon = config.icon();
12
- const response = await fetch(config.url() + "register", C.augmentRegistration({
13
- method: "POST",
12
+ const response = await fetch(config.url() + 'register', C.augmentRegistration({
13
+ method: 'POST',
14
14
  body: JSON.stringify({
15
- deployment: process.env.DEPLOYMENT || "",
15
+ deployment: process.env.DEPLOYMENT || '',
16
16
  name: config.name(),
17
17
  version: config.version(),
18
18
  id: config.id(),
@@ -20,12 +20,12 @@ class Registration {
20
20
  schema: { configSchema, introspect: intro },
21
21
  icon,
22
22
  }),
23
- headers: { "Content-Type": "application/json" },
23
+ headers: { 'Content-Type': 'application/json' },
24
24
  signal: AbortSignal.timeout(60 * 1000),
25
25
  }, config));
26
26
  if (response.status === 200)
27
27
  return (await response.json()).key;
28
- throw new Error("authentication failed");
28
+ throw new Error('authentication failed');
29
29
  }
30
30
  }
31
31
  export { Registration };
@@ -12,5 +12,5 @@ export class WebsocketConnector {
12
12
  close(): Promise<void>;
13
13
  leaving(): Promise<void>;
14
14
  }
15
- import { Transport } from "./transport/index.mjs";
16
- import { Connection } from "./connection/index.mjs";
15
+ import { Transport } from './transport/index.mjs';
16
+ import { Connection } from './connection/index.mjs';
@@ -1,6 +1,6 @@
1
- import WebSocket from "ws";
2
- import { Connection } from "./connection/index.mjs";
3
- import { Transport } from "./transport/index.mjs";
1
+ import WebSocket from 'ws';
2
+ import { Connection } from './connection/index.mjs';
3
+ import { Transport } from './transport/index.mjs';
4
4
  class WebsocketConnector {
5
5
  constructor({ config, onMessage, onConnect }) {
6
6
  var local = this;
@@ -1,4 +1,4 @@
1
- import WebSocket from "ws";
1
+ import WebSocket from 'ws';
2
2
  class DurableWebsocket {
3
3
  constructor({ endpoint, secret, onConnect, onMessage }) {
4
4
  this.endpoint = endpoint;
@@ -26,7 +26,7 @@ class DurableWebsocket {
26
26
  rejectUnauthorized: false,
27
27
  headers: { Authorization: `Bearer ${local.secret}` },
28
28
  }));
29
- ws.on("open", () => {
29
+ ws.on('open', () => {
30
30
  local.connecting = false;
31
31
  local.fails = 0;
32
32
  var item;
@@ -35,15 +35,15 @@ class DurableWebsocket {
35
35
  }
36
36
  local.onConnect(local);
37
37
  });
38
- ws.on("message", (message) => {
38
+ ws.on('message', (message) => {
39
39
  setImmediate(() => local.onMessage(JSON.parse(message)));
40
40
  });
41
- ws.on("error", (message) => {
41
+ ws.on('error', (message) => {
42
42
  if (local.fails > 50)
43
- console.log("error:", message.message);
43
+ console.log('error:', message.message);
44
44
  ++local.fails;
45
45
  });
46
- ws.on("close", (message) => {
46
+ ws.on('close', (message) => {
47
47
  local.connecting = false;
48
48
  if (!local.closed)
49
49
  setTimeout(() => local.start(), 5000);
@@ -33,5 +33,5 @@ export class Transport {
33
33
  close(): void;
34
34
  connected: boolean | undefined;
35
35
  }
36
- import { DurableWebsocket } from "./durable.mjs";
37
- import { Packet } from "./packet.mjs";
36
+ import { DurableWebsocket } from './durable.mjs';
37
+ import { Packet } from './packet.mjs';
@@ -1,9 +1,9 @@
1
- import { init } from "@paralleldrive/cuid2";
2
- import C from "../connection/constants.mjs";
1
+ import { init } from '@paralleldrive/cuid2';
2
+ import C from '../connection/constants.mjs';
3
3
  const cuid = init({ length: 32 });
4
- import WebSocket from "ws";
5
- import { DurableWebsocket } from "./durable.mjs";
6
- import { Callback, Packet } from "./packet.mjs";
4
+ import WebSocket from 'ws';
5
+ import { DurableWebsocket } from './durable.mjs';
6
+ import { Callback, Packet } from './packet.mjs';
7
7
  const cleanInterval = 45 * 1000;
8
8
  const pingInterval = 30 * 1000;
9
9
  class Transport {
@@ -36,7 +36,7 @@ class Transport {
36
36
  local.ws.send(JSON.stringify({ p: packets }));
37
37
  }
38
38
  catch (e) {
39
- console.log("could not send packets ", e);
39
+ console.log('could not send packets ', e);
40
40
  packets.forEach((packet) => local.packets.unshift(packet));
41
41
  }
42
42
  }
@@ -46,30 +46,30 @@ class Transport {
46
46
  return;
47
47
  local.close();
48
48
  this.running = true;
49
- const ws = (local.ws = new WebSocket(config.wsUrl(), ["connector"], C.augmentRequest({ headers: {} }, config)));
49
+ const ws = (local.ws = new WebSocket(config.wsUrl(), ['connector'], C.augmentRequest({ headers: {} }, config)));
50
50
  ws.onPing = function () {
51
51
  clearTimeout(this.pingTimeout);
52
52
  this.pingTimeout = setTimeout(() => {
53
- console.log("terminating ws");
53
+ console.log('terminating ws');
54
54
  if (local.running)
55
55
  this.terminate();
56
56
  }, 30000 + 15000);
57
57
  };
58
- ws.on("open", () => {
59
- console.log("transport connected");
58
+ ws.on('open', () => {
59
+ console.log('transport connected');
60
60
  local.connected = true;
61
61
  ws.onPing();
62
62
  local.pinger = setInterval(() => ws.ping(() => null), pingInterval);
63
63
  local.onConnect(local);
64
64
  });
65
- ws.on("message", (message) => {
65
+ ws.on('message', (message) => {
66
66
  setTimeout(() => local.onMessages(JSON.parse(message)), 0);
67
67
  });
68
- ws.on("ping", () => ws.onPing());
69
- ws.on("error", (message) => {
70
- console.log("error:", message);
68
+ ws.on('ping', () => ws.onPing());
69
+ ws.on('error', (message) => {
70
+ console.log('error:', message);
71
71
  });
72
- ws.on("close", (message) => {
72
+ ws.on('close', (message) => {
73
73
  local.connected = false;
74
74
  clearInterval(local.pinger);
75
75
  if (local.running)
@@ -100,7 +100,7 @@ class Transport {
100
100
  this.callbacks[packet.cb()].cb(packet.args());
101
101
  }
102
102
  catch (e) {
103
- console.log("error processing packet", e, packet);
103
+ console.log('error processing packet', e, packet);
104
104
  }
105
105
  finally {
106
106
  delete this.callbacks[packet.cb()];
@@ -125,12 +125,12 @@ class Transport {
125
125
  if (!cb)
126
126
  return;
127
127
  if (cb.created < then) {
128
- console.log("callback timeout", key);
128
+ console.log('callback timeout', key);
129
129
  try {
130
- cb.cb({ error: "timeout" });
130
+ cb.cb({ error: 'timeout' });
131
131
  }
132
132
  catch (e) {
133
- console.log("error while callback", key, cb, e);
133
+ console.log('error while callback', key, cb, e);
134
134
  }
135
135
  delete local.callbacks[key];
136
136
  }
@@ -1,4 +1,4 @@
1
- import { init } from "@paralleldrive/cuid2";
1
+ import { init } from '@paralleldrive/cuid2';
2
2
  const cuid = init({ length: 32 });
3
3
  class Packet {
4
4
  constructor(data = {}) {
@@ -1,4 +1,4 @@
1
- import { Packet, Callback } from "./packet.mjs";
1
+ import { Packet, Callback } from './packet.mjs';
2
2
  class Processor {
3
3
  constructor({ transport, processPacket }) {
4
4
  var local = this;
@@ -31,24 +31,24 @@ class Processor {
31
31
  callbacks[packet.cb()](packet.args());
32
32
  }
33
33
  catch (e) {
34
- console.log("error in callback", callbacks[packet.cb()], packet);
34
+ console.log('error in callback', callbacks[packet.cb()], packet);
35
35
  }
36
36
  delete local.transport.callbacks[packet.cb()];
37
37
  }
38
38
  else if (packet.event()) {
39
- console.log("handle event packet", packet);
39
+ console.log('handle event packet', packet);
40
40
  }
41
41
  else {
42
42
  try {
43
43
  const result = await local._processPacket(packet);
44
44
  const reply = local.transport.newPacket({});
45
- reply.method("connector.reply");
45
+ reply.method('connector.reply');
46
46
  reply.cb(original.cb());
47
47
  reply.args({ ...result });
48
48
  local.transport.send(reply);
49
49
  }
50
50
  catch (e) {
51
- console.log("error processing packet", e, packet);
51
+ console.log('error processing packet', e, packet);
52
52
  }
53
53
  }
54
54
  }