@aloma.io/integration-sdk 3.0.1-9 → 3.0.2
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/README.md +2 -6
- package/build/builder/index.d.mts +1 -1
- package/build/builder/index.mjs +11 -15
- package/build/builder/runtime-context.d.mts +1 -1
- package/build/builder/runtime-context.mjs +7 -10
- package/build/builder/transform/index.mjs +18 -18
- package/build/controller/index.mjs +5 -5
- package/build/index.d.mts +2 -2
- package/build/index.mjs +2 -2
- package/build/internal/dispatcher/index.cjs +30 -41
- package/build/internal/index.cjs +71 -86
- package/build/internal/util/jwe/cli.cjs +3 -3
- package/build/internal/util/jwe/index.cjs +10 -10
- package/build/internal/websocket/config.cjs +7 -7
- package/build/internal/websocket/connection/constants.cjs +3 -3
- package/build/internal/websocket/connection/index.cjs +9 -9
- package/build/internal/websocket/connection/registration.cjs +7 -7
- package/build/internal/websocket/index.cjs +3 -3
- package/build/internal/websocket/transport/durable.cjs +6 -6
- package/build/internal/websocket/transport/index.cjs +18 -18
- package/build/internal/websocket/transport/packet.cjs +2 -2
- package/build/internal/websocket/transport/processor.cjs +5 -5
- package/package.json +1 -1
- package/src/cli.mts +19 -2
- package/template/connector/package.json +1 -1
- package/build/cli.d.mts +0 -2
- package/build/cli.d.ts +0 -1
- package/build/cli.js +0 -2
- package/build/cli.mjs +0 -80
@@ -1,11 +1,11 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
const fetch = require(
|
4
|
-
const C = require(
|
5
|
-
const cuid = require(
|
6
|
-
const { DurableWebsocket } = require(
|
7
|
-
const WebSocket = require(
|
8
|
-
const { Packet, Callback } = require(
|
3
|
+
const fetch = require('node-fetch');
|
4
|
+
const C = require('../connection/constants.cjs');
|
5
|
+
const cuid = require('@paralleldrive/cuid2').init({ length: 32 });
|
6
|
+
const { DurableWebsocket } = require('./durable.cjs');
|
7
|
+
const WebSocket = require('ws');
|
8
|
+
const { Packet, Callback } = require('./packet.cjs');
|
9
9
|
const cleanInterval = 45 * 1000;
|
10
10
|
const pingInterval = 30 * 1000;
|
11
11
|
class Transport {
|
@@ -38,7 +38,7 @@ class Transport {
|
|
38
38
|
local.ws.send(JSON.stringify({ p: packets }));
|
39
39
|
}
|
40
40
|
catch (e) {
|
41
|
-
console.log(
|
41
|
+
console.log('could not send packets ', e);
|
42
42
|
packets.forEach((packet) => local.packets.unshift(packet));
|
43
43
|
}
|
44
44
|
}
|
@@ -48,20 +48,20 @@ class Transport {
|
|
48
48
|
return;
|
49
49
|
local.close();
|
50
50
|
this.running = true;
|
51
|
-
const ws = (local.ws = new WebSocket(config.wsUrl(), [
|
52
|
-
ws.on(
|
53
|
-
console.log(
|
51
|
+
const ws = (local.ws = new WebSocket(config.wsUrl(), ['connector'], C.augmentRequest({ headers: {} }, config)));
|
52
|
+
ws.on('open', () => {
|
53
|
+
console.log('websocket connected');
|
54
54
|
local.connected = true;
|
55
55
|
local.pinger = setInterval(() => ws.ping(() => null), pingInterval);
|
56
56
|
local.onConnect(local);
|
57
57
|
});
|
58
|
-
ws.on(
|
58
|
+
ws.on('message', (message) => {
|
59
59
|
setTimeout(() => local.onMessages(JSON.parse(message)), 0);
|
60
60
|
});
|
61
|
-
ws.on(
|
62
|
-
console.log(
|
61
|
+
ws.on('error', (message) => {
|
62
|
+
console.log('error:', message);
|
63
63
|
});
|
64
|
-
ws.on(
|
64
|
+
ws.on('close', (message) => {
|
65
65
|
local.connected = false;
|
66
66
|
clearInterval(local.pinger);
|
67
67
|
if (local.running)
|
@@ -92,7 +92,7 @@ class Transport {
|
|
92
92
|
this.callbacks[packet.cb()].cb(packet.args());
|
93
93
|
}
|
94
94
|
catch (e) {
|
95
|
-
console.log(
|
95
|
+
console.log('error processing packet', e, packet);
|
96
96
|
}
|
97
97
|
finally {
|
98
98
|
delete this.callbacks[packet.cb()];
|
@@ -117,12 +117,12 @@ class Transport {
|
|
117
117
|
if (!cb)
|
118
118
|
return;
|
119
119
|
if (cb.created < then) {
|
120
|
-
console.log(
|
120
|
+
console.log('callback timeout', key);
|
121
121
|
try {
|
122
|
-
cb.cb({ error:
|
122
|
+
cb.cb({ error: 'timeout' });
|
123
123
|
}
|
124
124
|
catch (e) {
|
125
|
-
console.log(
|
125
|
+
console.log('error while callback', key, cb, e);
|
126
126
|
}
|
127
127
|
delete local.callbacks[key];
|
128
128
|
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
const fetch = require(
|
4
|
-
const cuid = require(
|
3
|
+
const fetch = require('node-fetch');
|
4
|
+
const cuid = require('@paralleldrive/cuid2').init({ length: 32 });
|
5
5
|
class Packet {
|
6
6
|
constructor(data = {}) {
|
7
7
|
this.data = data;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
const { Packet, Callback } = require(
|
3
|
+
const { Packet, Callback } = require('./packet.cjs');
|
4
4
|
class Processor {
|
5
5
|
constructor({ transport, processPacket }) {
|
6
6
|
var local = this;
|
@@ -33,24 +33,24 @@ class Processor {
|
|
33
33
|
callbacks[packet.cb()](packet.args());
|
34
34
|
}
|
35
35
|
catch (e) {
|
36
|
-
console.log(
|
36
|
+
console.log('error in callback', callbacks[packet.cb()], packet);
|
37
37
|
}
|
38
38
|
delete local.transport.callbacks[packet.cb()];
|
39
39
|
}
|
40
40
|
else if (packet.event()) {
|
41
|
-
console.log(
|
41
|
+
console.log('handle event packet', packet);
|
42
42
|
}
|
43
43
|
else {
|
44
44
|
try {
|
45
45
|
const result = await local._processPacket(packet);
|
46
46
|
const reply = local.transport.newPacket({});
|
47
|
-
reply.method(
|
47
|
+
reply.method('connector.reply');
|
48
48
|
reply.cb(original.cb());
|
49
49
|
reply.args({ ...result });
|
50
50
|
local.transport.send(reply);
|
51
51
|
}
|
52
52
|
catch (e) {
|
53
|
-
console.log(
|
53
|
+
console.log('error processing packet', e, packet);
|
54
54
|
}
|
55
55
|
}
|
56
56
|
}
|
package/package.json
CHANGED
package/src/cli.mts
CHANGED
@@ -90,16 +90,33 @@ program
|
|
90
90
|
|
91
91
|
fs.mkdirSync(target);
|
92
92
|
|
93
|
+
console.log('Creating connector ...');
|
93
94
|
extract({ ...options, target, name });
|
95
|
+
|
96
|
+
console.log('Generating keys ...');
|
94
97
|
await generateKeys({target});
|
98
|
+
|
99
|
+
console.log('Installing dependencies ...');
|
100
|
+
await exec(`cd ${target}; yarn`);
|
101
|
+
|
102
|
+
console.log('Building ...');
|
103
|
+
await exec(`cd ${target}; yarn build`);
|
104
|
+
|
105
|
+
console.log(`
|
106
|
+
Success!
|
107
|
+
|
108
|
+
1.) Add the connector to a workspace
|
109
|
+
2.) Edit ./${name}/.env and insert the registration token
|
110
|
+
3.) Start the connector with cd ./${name}/; yarn start`)
|
95
111
|
});
|
96
112
|
|
97
113
|
program
|
98
114
|
.command("build")
|
99
115
|
.description("Build the current connector project")
|
100
116
|
.action(async (str, options) => {
|
101
|
-
|
102
|
-
|
117
|
+
const {stdout, stderr} = await exec(`rm -rf build; mkdir -p build/controller; cp ./src/controller/index.mts ./build/controller/.controller-for-types.mts;`);
|
118
|
+
|
119
|
+
if (stdout) console.log(stdout);
|
103
120
|
});
|
104
121
|
|
105
122
|
program.parse();
|
@@ -9,7 +9,7 @@
|
|
9
9
|
"scripts": {
|
10
10
|
"start": "node build/index.mjs",
|
11
11
|
"dev": "./node_modules/typescript/bin/tsc --watch",
|
12
|
-
"build": "
|
12
|
+
"build": "./node_modules/@aloma.io/integration-sdk/build/cli.mjs build; ./node_modules/typescript/bin/tsc",
|
13
13
|
"test": "./node_modules/mocha/bin/_mocha --recursive",
|
14
14
|
"format": "yarn prettier --write src/"
|
15
15
|
},
|
package/build/cli.d.mts
DELETED
package/build/cli.d.ts
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
package/build/cli.js
DELETED
package/build/cli.mjs
DELETED
@@ -1,80 +0,0 @@
|
|
1
|
-
#!/usr/bin/env node
|
2
|
-
import { Command } from "commander";
|
3
|
-
import fs from "node:fs";
|
4
|
-
import { fileURLToPath } from "node:url";
|
5
|
-
import path from "node:path";
|
6
|
-
import JWE from './internal/util/jwe/index.cjs';
|
7
|
-
import util from 'node:util';
|
8
|
-
import ChildProcess from 'node:child_process';
|
9
|
-
const exec = util.promisify(ChildProcess.exec);
|
10
|
-
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
11
|
-
const files = [
|
12
|
-
{ name: "index.mts", dir: "src/controller" },
|
13
|
-
{ name: "index.mts", dir: "src" },
|
14
|
-
{ name: "package.json", dir: "" },
|
15
|
-
{ name: "Containerfile", dir: "" },
|
16
|
-
{ name: "entrypoint.sh", dir: "" },
|
17
|
-
{ name: "tsconfig.json", dir: "" },
|
18
|
-
];
|
19
|
-
const extract = ({ target, name, connectorId }) => {
|
20
|
-
const source = `${__dirname}/../template/connector/`;
|
21
|
-
if (!fs.existsSync(source)) {
|
22
|
-
throw new Error(`source ${source} does not exist`);
|
23
|
-
}
|
24
|
-
files.forEach(({ name, dir }) => {
|
25
|
-
if (dir) {
|
26
|
-
fs.mkdirSync(`${target}/${dir}`, { recursive: true });
|
27
|
-
}
|
28
|
-
const content = fs.readFileSync(`${source}/${dir}/${name}`, {
|
29
|
-
encoding: "utf-8",
|
30
|
-
});
|
31
|
-
fs.writeFileSync(`${target}/${dir}/${name}`, content);
|
32
|
-
});
|
33
|
-
const content = JSON.parse(fs.readFileSync(`${target}/package.json`, { encoding: "utf-8" }));
|
34
|
-
content.name = name;
|
35
|
-
content.connectorId = connectorId;
|
36
|
-
fs.writeFileSync(`${target}/package.json`, JSON.stringify(content, null, 2));
|
37
|
-
fs.writeFileSync(`${target}/.gitignore`, `.DS_Store
|
38
|
-
node_modules
|
39
|
-
build
|
40
|
-
.env`);
|
41
|
-
};
|
42
|
-
const generateKeys = async ({ target }) => {
|
43
|
-
const jwe = new JWE({});
|
44
|
-
await jwe.newPair();
|
45
|
-
const priv = await jwe.exportPrivateAsBase64();
|
46
|
-
const pub = await jwe.exportPublicAsBase64();
|
47
|
-
const content = `REGISTRATION_TOKEN=
|
48
|
-
PRIVATE_KEY=${priv}
|
49
|
-
PUBLIC_KEY=${pub}
|
50
|
-
`;
|
51
|
-
fs.writeFileSync(`${target}/.env`, content);
|
52
|
-
};
|
53
|
-
const program = new Command();
|
54
|
-
program
|
55
|
-
.name("npx @aloma.io/integration-sdk")
|
56
|
-
.description("aloma.io integration sdk")
|
57
|
-
.version("0.8.0")
|
58
|
-
.showHelpAfterError();
|
59
|
-
program
|
60
|
-
.command("create")
|
61
|
-
.description("Create a new connector project")
|
62
|
-
.argument("<name>", "name of the project")
|
63
|
-
.requiredOption("--connector-id <id>", "id of the connector")
|
64
|
-
.action(async (name, options) => {
|
65
|
-
name = name.replace(/[\/\.]/gi, "");
|
66
|
-
if (!name)
|
67
|
-
throw new Error("name is empty");
|
68
|
-
const target = `${process.cwd()}/${name}`;
|
69
|
-
fs.mkdirSync(target);
|
70
|
-
extract({ ...options, target, name });
|
71
|
-
await generateKeys({ target });
|
72
|
-
});
|
73
|
-
program
|
74
|
-
.command("build")
|
75
|
-
.description("Build the current connector project")
|
76
|
-
.action(async (str, options) => {
|
77
|
-
console.log('building');
|
78
|
-
//rm -rf build; mkdir -p build/controller; cp ./src/controller/index.mts ./build/controller/.controller-for-types.mts; ./node_modules/typescript/bin/tsc
|
79
|
-
});
|
80
|
-
program.parse();
|