@aloma.io/integration-sdk 3.8.11 → 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,5 +1,5 @@
1
- import express from "express";
2
- import PromClient from "prom-client";
1
+ import express from 'express';
2
+ import PromClient from 'prom-client';
3
3
  export const makeMetrics = async ({ id, name, version }) => {
4
4
  const newMetrics = () => {
5
5
  const metrics = PromClient;
@@ -7,7 +7,7 @@ export const makeMetrics = async ({ id, name, version }) => {
7
7
  service: name,
8
8
  connectorId: id,
9
9
  connectorVersion: version,
10
- node: process.env.HOSTNAME || "test",
10
+ node: process.env.HOSTNAME || 'test',
11
11
  };
12
12
  metrics.register.setDefaultLabels(defaultLabels);
13
13
  metrics.collectDefaultMetrics();
@@ -15,13 +15,13 @@ export const makeMetrics = async ({ id, name, version }) => {
15
15
  };
16
16
  const makeMetricsServer = (metrics) => {
17
17
  const app = express();
18
- app.get("/metrics", async (request, response, next) => {
18
+ app.get('/metrics', async (request, response, next) => {
19
19
  response.status(200);
20
- response.set("Content-type", metrics.contentType);
20
+ response.set('Content-type', metrics.contentType);
21
21
  response.send(await metrics.register.metrics());
22
22
  response.end();
23
23
  });
24
24
  return app;
25
25
  };
26
- makeMetricsServer(newMetrics()).listen(4050, "0.0.0.0");
26
+ makeMetricsServer(newMetrics()).listen(4050, '0.0.0.0');
27
27
  };
@@ -1,6 +1,6 @@
1
- import Dispatcher from "../../dispatcher/index.mjs";
2
- import { Config } from "../../websocket/config.mjs";
3
- import { WebsocketConnector } from "../../websocket/index.mjs";
1
+ import Dispatcher from '../../dispatcher/index.mjs';
2
+ import { Config } from '../../websocket/config.mjs';
3
+ import { WebsocketConnector } from '../../websocket/index.mjs';
4
4
  export declare const makeServer: ({ config, configSchema, start, processPacket, dispatcher, }: {
5
5
  config: Config;
6
6
  configSchema: any;
@@ -1,6 +1,6 @@
1
- import { WebsocketConnector } from "../../websocket/index.mjs";
2
- import { onConnect } from "./on-connect/index.mjs";
3
- import { onMessage } from "./on-message.mjs";
1
+ import { WebsocketConnector } from '../../websocket/index.mjs';
2
+ import { onConnect } from './on-connect/index.mjs';
3
+ import { onMessage } from './on-message.mjs';
4
4
  export const makeServer = async ({ config, configSchema, start, processPacket, dispatcher, }) => {
5
5
  const server = new WebsocketConnector({
6
6
  config,
@@ -17,13 +17,13 @@ export const makeServer = async ({ config, configSchema, start, processPacket, d
17
17
  });
18
18
  process.exit(0);
19
19
  };
20
- process.on("uncaughtException", (e) => {
20
+ process.on('uncaughtException', (e) => {
21
21
  console.log(e);
22
22
  });
23
- process.on("unhandledRejection", (e) => {
23
+ process.on('unhandledRejection', (e) => {
24
24
  console.log(e);
25
25
  });
26
- process.on("SIGTERM", term);
27
- process.on("SIGINT", term);
26
+ process.on('SIGTERM', term);
27
+ process.on('SIGINT', term);
28
28
  return server;
29
29
  };
@@ -2,13 +2,13 @@ export const decryptConfig = async ({ configSchema, config, secrets }) => {
2
2
  const decrypted = {};
3
3
  const fields = configSchema().fields;
4
4
  const keys = Object.keys(secrets);
5
- const jwe = await config.validateKeys("RSA-OAEP-256");
5
+ const jwe = await config.validateKeys('RSA-OAEP-256');
6
6
  for (var i = 0; i < keys.length; ++i) {
7
7
  const key = keys[i];
8
8
  const value = secrets[key];
9
9
  if (!value)
10
10
  continue;
11
- if (fields[key]?.plain || ["endpointUrl"].includes(key)) {
11
+ if (fields[key]?.plain || ['endpointUrl'].includes(key)) {
12
12
  decrypted[key] = value;
13
13
  }
14
14
  else {
@@ -16,7 +16,7 @@ export const decryptConfig = async ({ configSchema, config, secrets }) => {
16
16
  decrypted[key] = await jwe.decrypt(value, config.id());
17
17
  }
18
18
  catch (e) {
19
- console.log("failed to decrypt key", key, config.id(), e);
19
+ console.log('failed to decrypt key', key, config.id(), e);
20
20
  }
21
21
  }
22
22
  }
@@ -1,6 +1,6 @@
1
- import Dispatcher from "../../../dispatcher/index.mjs";
2
- import { Config } from "../../../websocket/config.mjs";
3
- import { WebsocketConnector } from "../../../websocket/index.mjs";
1
+ import Dispatcher from '../../../dispatcher/index.mjs';
2
+ import { Config } from '../../../websocket/config.mjs';
3
+ import { WebsocketConnector } from '../../../websocket/index.mjs';
4
4
  export declare const patchFinishOAuth: ({ dispatcher, decrypted, config, transport, }: {
5
5
  dispatcher: Dispatcher;
6
6
  decrypted: any;
@@ -1,31 +1,25 @@
1
1
  export const patchFinishOAuth = async ({ dispatcher, decrypted, config, transport, }) => {
2
2
  dispatcher.finishOAuth = async function (arg) {
3
- const tokenURL = process.env.OAUTH_TOKEN_URL ||
4
- decrypted.tokenURL ||
5
- dispatcher._oauth.tokenURL;
3
+ const tokenURL = process.env.OAUTH_TOKEN_URL || decrypted.tokenURL || dispatcher._oauth.tokenURL;
6
4
  if (!dispatcher._oauth)
7
- throw new Error("oauth not configured");
5
+ throw new Error('oauth not configured');
8
6
  if (!tokenURL && !dispatcher._oauth.finishOAuth)
9
- throw new Error("need tokenURL or finishOAuth(arg)");
7
+ throw new Error('need tokenURL or finishOAuth(arg)');
10
8
  var data = null;
11
9
  const doFinish = async () => {
12
10
  if (!arg.code || !arg.redirectURI)
13
- throw new Error("need code and redirectUri");
14
- const clientId = decrypted.clientId ||
15
- process.env.OAUTH_CLIENT_ID ||
16
- dispatcher._oauth.clientId;
11
+ throw new Error('need code and redirectUri');
12
+ const clientId = decrypted.clientId || process.env.OAUTH_CLIENT_ID || dispatcher._oauth.clientId;
17
13
  if (!clientId)
18
- throw new Error("clientId not configured");
19
- const clientSecret = decrypted.clientSecret ||
20
- process.env.OAUTH_CLIENT_SECRET ||
21
- dispatcher._oauth.clientSecret;
14
+ throw new Error('clientId not configured');
15
+ const clientSecret = decrypted.clientSecret || process.env.OAUTH_CLIENT_SECRET || dispatcher._oauth.clientSecret;
22
16
  if (!clientSecret)
23
- throw new Error("clientSecret not configured");
17
+ throw new Error('clientSecret not configured');
24
18
  const additionalTokenArgs = dispatcher._oauth.additionalTokenArgs || {};
25
19
  const useAuthHeader = !!dispatcher._oauth.useAuthHeader;
26
20
  const useCodeChallenge = !!dispatcher._oauth.useCodeChallenge;
27
21
  let body = {
28
- grant_type: "authorization_code",
22
+ grant_type: 'authorization_code',
29
23
  ...additionalTokenArgs,
30
24
  code: arg.code,
31
25
  redirect_uri: arg.redirectURI,
@@ -34,8 +28,8 @@ export const patchFinishOAuth = async ({ dispatcher, decrypted, config, transpor
34
28
  body.code_verifier = arg.codeVerifier;
35
29
  }
36
30
  let headers = {
37
- "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
38
- Accept: "application/json",
31
+ 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
32
+ Accept: 'application/json',
39
33
  };
40
34
  if (useAuthHeader) {
41
35
  headers = {
@@ -51,7 +45,7 @@ export const patchFinishOAuth = async ({ dispatcher, decrypted, config, transpor
51
45
  };
52
46
  }
53
47
  const response = await fetch(tokenURL, {
54
- method: "POST",
48
+ method: 'POST',
55
49
  body: new URLSearchParams(body),
56
50
  headers,
57
51
  signal: AbortSignal.timeout(60 * 1000),
@@ -61,17 +55,17 @@ export const patchFinishOAuth = async ({ dispatcher, decrypted, config, transpor
61
55
  if (status === 200) {
62
56
  const ret = JSON.parse(text);
63
57
  if (ret.error) {
64
- throw new Error(`${status} ${ret.error} ${ret.error_description || ""}`);
58
+ throw new Error(`${status} ${ret.error} ${ret.error_description || ''}`);
65
59
  }
66
60
  else if (ret.access_token) {
67
61
  return { ...ret };
68
62
  }
69
63
  else {
70
- throw new Error(status + " response has no access_token - " + text);
64
+ throw new Error(status + ' response has no access_token - ' + text);
71
65
  }
72
66
  }
73
67
  else {
74
- throw new Error(status + " " + text);
68
+ throw new Error(status + ' ' + text);
75
69
  }
76
70
  };
77
71
  if (dispatcher._oauth.finishOAuth) {
@@ -84,7 +78,7 @@ export const patchFinishOAuth = async ({ dispatcher, decrypted, config, transpor
84
78
  else {
85
79
  data = await doFinish();
86
80
  }
87
- const jwe = await config.validateKeys("RSA-OAEP-256");
88
- return { value: await jwe.encrypt(data, "none", config.id()) };
81
+ const jwe = await config.validateKeys('RSA-OAEP-256');
82
+ return { value: await jwe.encrypt(data, 'none', config.id()) };
89
83
  };
90
84
  };
@@ -1,5 +1,5 @@
1
- import Dispatcher from "../../../dispatcher/index.mjs";
2
- import { Config } from "../../../websocket/config.mjs";
1
+ import Dispatcher from '../../../dispatcher/index.mjs';
2
+ import { Config } from '../../../websocket/config.mjs';
3
3
  export declare const onConnect: ({ dispatcher, configSchema, config, start, }: {
4
4
  config: Config;
5
5
  configSchema: any;
@@ -1,9 +1,9 @@
1
- import { init } from "@paralleldrive/cuid2";
2
- import Fetcher from "../../../fetcher/fetcher.mjs";
3
- import { decryptConfig } from "./decrypt-config.mjs";
4
- import { patchFinishOAuth } from "./finish-oauth.mjs";
5
- import { makeOAuth } from "./make-oauth.mjs";
6
- import { patchStartOAuth } from "./start-oauth.mjs";
1
+ import { init } from '@paralleldrive/cuid2';
2
+ import Fetcher from '../../../fetcher/fetcher.mjs';
3
+ import { decryptConfig } from './decrypt-config.mjs';
4
+ import { patchFinishOAuth } from './finish-oauth.mjs';
5
+ import { makeOAuth } from './make-oauth.mjs';
6
+ import { patchStartOAuth } from './start-oauth.mjs';
7
7
  const cuid = init({ length: 32 });
8
8
  export const onConnect = ({ dispatcher, configSchema, config, start, }) => {
9
9
  return async (transport) => {
@@ -24,7 +24,7 @@ export const onConnect = ({ dispatcher, configSchema, config, start, }) => {
24
24
  const getBlob = (id) => {
25
25
  return new Promise((resolve, reject) => {
26
26
  const packet = transport.newPacket({}, (ret) => (ret?.error ? reject(ret.error) : resolve(ret)), `_req-${cuid()}`);
27
- packet.method("connector.blob.get");
27
+ packet.method('connector.blob.get');
28
28
  packet.args({
29
29
  id,
30
30
  });
@@ -34,7 +34,7 @@ export const onConnect = ({ dispatcher, configSchema, config, start, }) => {
34
34
  const getBlobContent = (id) => {
35
35
  return new Promise((resolve, reject) => {
36
36
  const packet = transport.newPacket({}, (ret) => (ret?.error ? reject(ret.error) : resolve(ret?.content)), `_req-${cuid()}`);
37
- packet.method("connector.blob.get-content");
37
+ packet.method('connector.blob.get-content');
38
38
  packet.args({
39
39
  id,
40
40
  });
@@ -44,7 +44,7 @@ export const onConnect = ({ dispatcher, configSchema, config, start, }) => {
44
44
  const createBlob = (args = {}) => {
45
45
  return new Promise((resolve, reject) => {
46
46
  const packet = transport.newPacket({}, (ret) => (ret?.error ? reject(ret.error) : resolve(ret?.id)), `_req-${cuid()}`);
47
- packet.method("connector.blob.create");
47
+ packet.method('connector.blob.create');
48
48
  packet.args(args);
49
49
  transport.send(packet);
50
50
  });
@@ -69,15 +69,15 @@ export const onConnect = ({ dispatcher, configSchema, config, start, }) => {
69
69
  result.error = e.message;
70
70
  }
71
71
  const packet = transport.newPacket({});
72
- packet.method("connector.health.check");
72
+ packet.method('connector.health.check');
73
73
  packet.args(result);
74
74
  transport.send(packet);
75
75
  },
76
- getClient: (arg) => theOAuth ? (oauthClient = theOAuth.getClient(arg)) : new Fetcher(arg),
76
+ getClient: (arg) => (theOAuth ? (oauthClient = theOAuth.getClient(arg)) : new Fetcher(arg)),
77
77
  newTask: (name, data) => {
78
78
  return new Promise((resolve, reject) => {
79
79
  const packet = transport.newPacket({}, (ret) => (ret?.error ? reject(ret.error) : resolve(ret)), `_req-${cuid()}`);
80
- packet.method("connector.task.new");
80
+ packet.method('connector.task.new');
81
81
  packet.args({
82
82
  name,
83
83
  a: data,
@@ -88,7 +88,7 @@ export const onConnect = ({ dispatcher, configSchema, config, start, }) => {
88
88
  updateTask: (id, data) => {
89
89
  return new Promise((resolve, reject) => {
90
90
  const packet = transport.newPacket({}, (ret) => (ret?.error ? reject(ret.error) : resolve(ret)), `_req-${cuid()}`);
91
- packet.method("connector.task.update");
91
+ packet.method('connector.task.update');
92
92
  packet.args({
93
93
  id,
94
94
  a: data,
@@ -1,6 +1,6 @@
1
- import Dispatcher from "../../../dispatcher/index.mjs";
2
- import { OAuth } from "../../../fetcher/oauth-fetcher.mjs";
3
- import { Config } from "../../../websocket/config.mjs";
1
+ import Dispatcher from '../../../dispatcher/index.mjs';
2
+ import { OAuth } from '../../../fetcher/oauth-fetcher.mjs';
3
+ import { Config } from '../../../websocket/config.mjs';
4
4
  export declare const makeOAuth: ({ config, transport, decrypted, dispatcher, }: {
5
5
  config: Config;
6
6
  transport: any;
@@ -1,29 +1,23 @@
1
- import { OAuth } from "../../../fetcher/oauth-fetcher.mjs";
1
+ import { OAuth } from '../../../fetcher/oauth-fetcher.mjs';
2
2
  export const makeOAuth = async ({ config, transport, decrypted, dispatcher, }) => {
3
3
  const saveOAuthResult = async (what) => {
4
- const jwe = await config.validateKeys("RSA-OAEP-256");
5
- const value = await jwe.encrypt(what, "none", config.id());
4
+ const jwe = await config.validateKeys('RSA-OAEP-256');
5
+ const value = await jwe.encrypt(what, 'none', config.id());
6
6
  const packet = transport.newPacket({});
7
- packet.method("connector.config-update");
7
+ packet.method('connector.config-update');
8
8
  packet.args({
9
9
  value,
10
10
  });
11
11
  transport.send(packet);
12
12
  };
13
13
  const getRefreshToken = async (refreshToken) => {
14
- const tokenURL = process.env.OAUTH_TOKEN_URL ||
15
- decrypted.tokenURL ||
16
- dispatcher._oauth.tokenURL;
17
- const clientId = decrypted.clientId ||
18
- process.env.OAUTH_CLIENT_ID ||
19
- dispatcher._oauth.clientId;
14
+ const tokenURL = process.env.OAUTH_TOKEN_URL || decrypted.tokenURL || dispatcher._oauth.tokenURL;
15
+ const clientId = decrypted.clientId || process.env.OAUTH_CLIENT_ID || dispatcher._oauth.clientId;
20
16
  if (!clientId)
21
- throw new Error("clientId not configured");
22
- const clientSecret = decrypted.clientSecret ||
23
- process.env.OAUTH_CLIENT_SECRET ||
24
- dispatcher._oauth.clientSecret;
17
+ throw new Error('clientId not configured');
18
+ const clientSecret = decrypted.clientSecret || process.env.OAUTH_CLIENT_SECRET || dispatcher._oauth.clientSecret;
25
19
  if (!clientSecret)
26
- throw new Error("clientSecret not configured");
20
+ throw new Error('clientSecret not configured');
27
21
  const useAuthHeader = !!dispatcher._oauth.useAuthHeader;
28
22
  let headers = {};
29
23
  if (useAuthHeader) {
@@ -33,16 +27,16 @@ export const makeOAuth = async ({ config, transport, decrypted, dispatcher, }) =
33
27
  };
34
28
  }
35
29
  const response = await fetch(tokenURL, {
36
- method: "POST",
30
+ method: 'POST',
37
31
  body: new URLSearchParams({
38
- grant_type: "refresh_token",
32
+ grant_type: 'refresh_token',
39
33
  refresh_token: refreshToken,
40
34
  client_id: clientId,
41
35
  client_secret: clientSecret,
42
36
  }),
43
37
  headers: {
44
- "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
45
- Accept: "application/json",
38
+ 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
39
+ Accept: 'application/json',
46
40
  ...headers,
47
41
  },
48
42
  signal: AbortSignal.timeout(60 * 1000),
@@ -53,22 +47,20 @@ export const makeOAuth = async ({ config, transport, decrypted, dispatcher, }) =
53
47
  return JSON.parse(text);
54
48
  }
55
49
  else {
56
- throw new Error("could not get refresh token " + status + " " + text);
50
+ throw new Error('could not get refresh token ' + status + ' ' + text);
57
51
  }
58
52
  };
59
- const theOAuth = dispatcher._oauth
60
- ? new OAuth(decrypted.oauthResult, saveOAuthResult, getRefreshToken)
61
- : null;
53
+ const theOAuth = dispatcher._oauth ? new OAuth(decrypted.oauthResult, saveOAuthResult, getRefreshToken) : null;
62
54
  if (theOAuth) {
63
55
  clearInterval(dispatcher._refreshOAuthToken);
64
56
  if (!(dispatcher._oauth.noPeriodicTokenRefresh === false)) {
65
57
  dispatcher._refreshOAuthToken = setInterval(async () => {
66
58
  try {
67
- console.log("refreshing oauth token");
59
+ console.log('refreshing oauth token');
68
60
  await theOAuth.periodicRefresh();
69
61
  }
70
62
  catch (e) {
71
- console.log("periodic refresh", e);
63
+ console.log('periodic refresh', e);
72
64
  }
73
65
  }, dispatcher._oauth.tokenRefreshPeriod || 4 * 60 * 60 * 15000);
74
66
  }
@@ -1,21 +1,14 @@
1
1
  export const patchStartOAuth = async ({ dispatcher, decrypted }) => {
2
2
  dispatcher.startOAuth = async function () {
3
3
  if (!dispatcher._oauth)
4
- throw new Error("oauth not configured");
5
- const authorizationURL = process.env.OAUTH_AUTHORIZATION_URL ||
6
- decrypted.authorizationURL ||
7
- dispatcher._oauth.authorizationURL;
4
+ throw new Error('oauth not configured');
5
+ const authorizationURL = process.env.OAUTH_AUTHORIZATION_URL || decrypted.authorizationURL || dispatcher._oauth.authorizationURL;
8
6
  if (!authorizationURL)
9
- throw new Error("authorizationURL not configured");
10
- const clientId = decrypted.clientId ||
11
- process.env.OAUTH_CLIENT_ID ||
12
- dispatcher._oauth.clientId;
7
+ throw new Error('authorizationURL not configured');
8
+ const clientId = decrypted.clientId || process.env.OAUTH_CLIENT_ID || dispatcher._oauth.clientId;
13
9
  if (!clientId)
14
- throw new Error("clientId not configured");
15
- const scopes = process.env.OAUTH_SCOPE ||
16
- decrypted.scope ||
17
- dispatcher._oauth.scope ||
18
- "";
10
+ throw new Error('clientId not configured');
11
+ const scopes = process.env.OAUTH_SCOPE || decrypted.scope || dispatcher._oauth.scope || '';
19
12
  const useCodeChallenge = !!dispatcher._oauth.useCodeChallenge;
20
13
  return {
21
14
  url: authorizationURL
@@ -1,4 +1,4 @@
1
- import { handlePacketError, reply } from "../../util/index.mjs";
1
+ import { handlePacketError, reply } from '../../util/index.mjs';
2
2
  export const onMessage = (processPacket) => {
3
3
  return async (packet, transport) => {
4
4
  try {
@@ -18,26 +18,26 @@ export default class Dispatcher {
18
18
  oauth: true,
19
19
  fields: {
20
20
  oauthResult: {
21
- name: "OAuth Result",
22
- placeholder: "will be set by finishing the oauth flow",
23
- type: "managed",
21
+ name: 'OAuth Result',
22
+ placeholder: 'will be set by finishing the oauth flow',
23
+ type: 'managed',
24
24
  },
25
25
  },
26
26
  });
27
27
  return this;
28
28
  }
29
29
  if (!arg.authorizationURL)
30
- throw new Error("need a authorizationURL");
30
+ throw new Error('need a authorizationURL');
31
31
  if (!arg.tokenURL && !arg.finishOAuth)
32
- throw new Error("need a tokenURL or finishOAuth()");
32
+ throw new Error('need a tokenURL or finishOAuth()');
33
33
  this._oauth = { ...arg };
34
34
  this.config({
35
35
  oauth: true,
36
36
  fields: {
37
37
  oauthResult: {
38
- name: "OAuth Result",
39
- placeholder: "will be set by finishing the oauth flow",
40
- type: "managed",
38
+ name: 'OAuth Result',
39
+ placeholder: 'will be set by finishing the oauth flow',
40
+ type: 'managed',
41
41
  optional: !!arg.connectionOptional,
42
42
  },
43
43
  },
@@ -46,17 +46,17 @@ export default class Dispatcher {
46
46
  this.config({
47
47
  fields: {
48
48
  clientId: {
49
- name: "OAuth Client ID",
50
- placeholder: "e.g. 1234",
51
- type: "line",
49
+ name: 'OAuth Client ID',
50
+ placeholder: 'e.g. 1234',
51
+ type: 'line',
52
52
  optional: !!arg.configurableClientOptional,
53
53
  plain: true,
54
54
  },
55
55
  clientSecret: {
56
- name: "OAuth Client Secret",
57
- placeholder: "e.g. axd5xde",
56
+ name: 'OAuth Client Secret',
57
+ placeholder: 'e.g. axd5xde',
58
58
  optional: !!arg.configurableClientOptional,
59
- type: "line",
59
+ type: 'line',
60
60
  },
61
61
  },
62
62
  });
@@ -65,9 +65,9 @@ export default class Dispatcher {
65
65
  this.config({
66
66
  fields: {
67
67
  scope: {
68
- name: "OAuth Scope",
69
- placeholder: "e.g. x y z",
70
- type: "line",
68
+ name: 'OAuth Scope',
69
+ placeholder: 'e.g. x y z',
70
+ type: 'line',
71
71
  description: `Default Scope:
72
72
 
73
73
  ${arg.configurableClientScope}
@@ -99,9 +99,9 @@ ${arg.configurableClientScope}
99
99
  this.config({
100
100
  fields: {
101
101
  _endpointToken: {
102
- name: "Endpoint Token",
103
- placeholder: "e.g. 1234",
104
- type: !!notOptional ? "managed" : "line",
102
+ name: 'Endpoint Token',
103
+ placeholder: 'e.g. 1234',
104
+ type: !!notOptional ? 'managed' : 'line',
105
105
  plain: true,
106
106
  optional: !notOptional,
107
107
  },
@@ -111,19 +111,19 @@ ${arg.configurableClientScope}
111
111
  return this;
112
112
  }
113
113
  async startOAuth() {
114
- throw new Error("oauth not configured");
114
+ throw new Error('oauth not configured');
115
115
  }
116
116
  async finishOAuth(arg) {
117
- throw new Error("oauth not configured");
117
+ throw new Error('oauth not configured');
118
118
  }
119
119
  build() {
120
120
  if (!this._types || !this._resolvers)
121
- throw new Error("missing types or resolvers");
121
+ throw new Error('missing types or resolvers');
122
122
  var local = this;
123
123
  const _resolvers = { ...this._resolvers };
124
124
  const main = this._main || (() => { });
125
125
  const start = async (arg) => {
126
- console.log("starting ...");
126
+ console.log('starting ...');
127
127
  await main(arg);
128
128
  };
129
129
  const resolveMethod = (query) => {
@@ -137,47 +137,36 @@ ${arg.configurableClientScope}
137
137
  if (!Array.isArray(query))
138
138
  query = [query];
139
139
  query = query
140
- .filter((what) => !!what?.trim() &&
141
- ![
142
- "constructor",
143
- "__proto__",
144
- "toString",
145
- "toSource",
146
- "prototype",
147
- ].includes(what))
140
+ .filter((what) => !!what?.trim() && !['constructor', '__proto__', 'toString', 'toSource', 'prototype'].includes(what))
148
141
  .slice(0, 20);
149
142
  const method = resolveMethod(query);
150
143
  if (!method && !_resolvers.__default)
151
144
  throw new Error(`${query} not found`);
152
- return method
153
- ? method(variables)
154
- : _resolvers.__default(variables ? { ...variables, __method: query } : variables);
145
+ return method ? method(variables) : _resolvers.__default(variables ? { ...variables, __method: query } : variables);
155
146
  };
156
147
  const introspect = () => local._types;
157
148
  const configSchema = () => local._config;
158
149
  const processPacket = async (packet) => {
159
150
  switch (packet.method()) {
160
- case "connector.introspect":
151
+ case 'connector.introspect':
161
152
  // @ts-ignore
162
153
  const intro = await introspect({});
163
154
  return { configSchema: local._config, introspect: intro };
164
- case "connector.start-oauth":
155
+ case 'connector.start-oauth':
165
156
  // @ts-ignore
166
157
  return await local.startOAuth(packet.args());
167
- case "connector.finish-oauth":
158
+ case 'connector.finish-oauth':
168
159
  // @ts-ignore
169
160
  return await local.finishOAuth(packet.args());
170
- case "connector.query":
161
+ case 'connector.query':
171
162
  const ret = await execute(packet.args());
172
- return typeof ret === "object" && !Array.isArray(ret)
173
- ? ret
174
- : { [packet.args().query]: ret };
175
- case "connector.set-config":
163
+ return typeof ret === 'object' && !Array.isArray(ret) ? ret : { [packet.args().query]: ret };
164
+ case 'connector.set-config':
176
165
  await local.onConfig({ ...packet.args().secrets });
177
166
  return;
178
167
  }
179
168
  console.dir(packet, { depth: null });
180
- throw new Error("cannot handle packet");
169
+ throw new Error('cannot handle packet');
181
170
  };
182
171
  return {
183
172
  introspect,
@@ -188,7 +177,7 @@ ${arg.configurableClientScope}
188
177
  };
189
178
  }
190
179
  onConfig(arg0) {
191
- throw new Error("Method not implemented.");
180
+ throw new Error('Method not implemented.');
192
181
  }
193
182
  }
194
183
  export { Dispatcher };
@@ -7,7 +7,7 @@ export default class Fetcher {
7
7
  protected baseUrl: any;
8
8
  protected onResponse: any;
9
9
  protected customize0: any;
10
- constructor({ retry, baseUrl, onResponse, customize }?: {
10
+ constructor({ retry, baseUrl, onResponse, customize, }?: {
11
11
  retry?: number;
12
12
  baseUrl?: string;
13
13
  onResponse?: (response: Response) => void;