@siemsiem/tonpleun 0.1.2 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/GEN.d.ts +1 -0
- package/dist/GEN.js +12 -0
- package/dist/GEN.js.map +1 -0
- package/dist/client.js +20 -15
- package/dist/client.js.map +1 -1
- package/dist/client2.js +17 -10
- package/dist/client2.js.map +1 -1
- package/dist/clientLib.d.ts +4 -3
- package/dist/clientLib.js +85 -41
- package/dist/clientLib.js.map +1 -1
- package/dist/helpers.js +10 -5
- package/dist/helpers.js.map +1 -1
- package/dist/server.js +56 -31
- package/dist/server.js.map +1 -1
- package/dist/test3.d.ts +1 -0
- package/dist/test3.js +16 -0
- package/dist/test3.js.map +1 -0
- package/dist/types.d.ts +10 -2
- package/dist/types.js +7 -4
- package/dist/types.js.map +1 -1
- package/dist/v1/client.js +7 -5
- package/dist/v1/client.js.map +1 -1
- package/dist/v1/lib.js +66 -55
- package/dist/v1/lib.js.map +1 -1
- package/dist/v1/main.js +4 -2
- package/dist/v1/main.js.map +1 -1
- package/dist/v1/test2.js +7 -5
- package/dist/v1/test2.js.map +1 -1
- package/package.json +12 -11
- package/src/GEN.ts +11 -0
- package/src/client.ts +1 -1
- package/src/client2.ts +4 -1
- package/src/clientLib.ts +40 -7
- package/src/server.ts +29 -3
- package/src/test3.ts +11 -0
- package/src/types.ts +11 -2
- package/dist/client.d.ts.map +0 -1
- package/dist/client2.d.ts.map +0 -1
- package/dist/clientLib.d.ts.map +0 -1
- package/dist/helpers.d.ts.map +0 -1
- package/dist/server.d.ts.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/v1/client.d.ts.map +0 -1
- package/dist/v1/lib.d.ts.map +0 -1
- package/dist/v1/main.d.ts.map +0 -1
- package/dist/v1/test2.d.ts.map +0 -1
package/dist/GEN.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function echo(tekst: string): Promise<any>;
|
package/dist/GEN.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Dit bestand is automatisch gegenereerd door Tonpleun. Wijzigingen hierin worden overschreven. */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.echo = echo;
|
|
5
|
+
const clientLib_js_1 = require("./clientLib.js");
|
|
6
|
+
// Services for client: testClient
|
|
7
|
+
// echo
|
|
8
|
+
async function echo(tekst) {
|
|
9
|
+
return await (0, clientLib_js_1.getService)('echo', 'testClient', [tekst]);
|
|
10
|
+
}
|
|
11
|
+
// Services for client: Client2
|
|
12
|
+
//# sourceMappingURL=GEN.js.map
|
package/dist/GEN.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GEN.js","sourceRoot":"","sources":["../src/GEN.ts"],"names":[],"mappings":";AAAA,mGAAmG;;AAMnG,oBAEC;AAND,iDAA4C;AAE5C,kCAAkC;AAClC,OAAO;AACA,KAAK,UAAU,IAAI,CAAC,KAAa;IACpC,OAAO,MAAM,IAAA,yBAAU,EAAC,MAAM,EAAE,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,+BAA+B"}
|
package/dist/client.js
CHANGED
|
@@ -1,32 +1,37 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const clientLib_js_1 = require("./clientLib.js");
|
|
7
|
+
const strict_1 = __importDefault(require("node:assert/strict"));
|
|
3
8
|
function echo(args) {
|
|
4
9
|
console.log(args);
|
|
5
10
|
return 'pindakaas';
|
|
6
11
|
}
|
|
7
12
|
async function main() {
|
|
8
|
-
await initializeClient('testClient');
|
|
9
|
-
console.log(await registerService('echo', ['string'], echo));
|
|
10
|
-
console.log(await getService('getServices', 'tonpleun', []));
|
|
13
|
+
await (0, clientLib_js_1.initializeClient)('testClient');
|
|
14
|
+
console.log(await (0, clientLib_js_1.registerService)('echo', [{ name: 'tekst', type: 'string' }], echo));
|
|
15
|
+
console.log(await (0, clientLib_js_1.getService)('getServices', 'tonpleun', []));
|
|
11
16
|
// Config tests: register and update a config item, then verify via tonpleun service
|
|
12
|
-
await registerConfigItem('greeting', 'Simple greeting config', 'hello', 'conf:greeting');
|
|
13
|
-
const configsAfterRegister = await getService('getConfigs', 'tonpleun', []);
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
+
await (0, clientLib_js_1.registerConfigItem)('greeting', 'Simple greeting config', 'hello', 'conf:greeting');
|
|
18
|
+
const configsAfterRegister = await (0, clientLib_js_1.getService)('getConfigs', 'tonpleun', []);
|
|
19
|
+
strict_1.default.ok(configsAfterRegister['testClient'], 'configs for testClient should exist');
|
|
20
|
+
strict_1.default.ok(configsAfterRegister['testClient']['conf:greeting'], 'conf:greeting should be registered');
|
|
21
|
+
strict_1.default.equal(configsAfterRegister['testClient']['conf:greeting'].defaultValue, 'hello');
|
|
17
22
|
console.log('[Client1] registered config OK');
|
|
18
|
-
await SetConfigItem('conf:greeting', 'hi');
|
|
19
|
-
const configsAfterSet = await getService('getConfigs', 'tonpleun', []);
|
|
20
|
-
|
|
23
|
+
await (0, clientLib_js_1.SetConfigItem)('conf:greeting', 'hi');
|
|
24
|
+
const configsAfterSet = await (0, clientLib_js_1.getService)('getConfigs', 'tonpleun', []);
|
|
25
|
+
strict_1.default.equal(configsAfterSet['testClient']['conf:greeting'].value, 'hi');
|
|
21
26
|
console.log('[Client1] set config value OK');
|
|
22
|
-
|
|
27
|
+
strict_1.default.equal((0, clientLib_js_1.getConfigValue)('conf:greeting'), 'hi');
|
|
23
28
|
console.log('[Client1] local config value OK');
|
|
24
29
|
// Wait for a potential remote update (e.g., from Client2) and verify locally
|
|
25
30
|
await new Promise((resolve) => {
|
|
26
31
|
const expected = 'bye';
|
|
27
32
|
const start = Date.now();
|
|
28
33
|
const interval = setInterval(() => {
|
|
29
|
-
const current = getConfigValue('conf:greeting');
|
|
34
|
+
const current = (0, clientLib_js_1.getConfigValue)('conf:greeting');
|
|
30
35
|
if (current === expected) {
|
|
31
36
|
clearInterval(interval);
|
|
32
37
|
console.log('[Client1] remote config update applied OK');
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;;;;AAAA,iDAAqI;AACrI,gEAAwC;AACxC,SAAS,IAAI,CAAC,IAAW;IACvB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACjB,OAAO,WAAW,CAAA;AACpB,CAAC;AACD,KAAK,UAAU,IAAI;IACjB,MAAM,IAAA,+BAAgB,EAAC,YAAY,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAA,8BAAe,EAAC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;IACrF,OAAO,CAAC,GAAG,CAAC,MAAM,IAAA,yBAAU,EAAC,aAAa,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,CAAA;IAC5D,oFAAoF;IACpF,MAAM,IAAA,iCAAkB,EAAC,UAAU,EAAE,wBAAwB,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;IACzF,MAAM,oBAAoB,GAAQ,MAAM,IAAA,yBAAU,EAAC,YAAY,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IACjF,gBAAM,CAAC,EAAE,CAAC,oBAAoB,CAAC,YAAY,CAAC,EAAE,qCAAqC,CAAC,CAAC;IACrF,gBAAM,CAAC,EAAE,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC,eAAe,CAAC,EAAE,oCAAoC,CAAC,CAAC;IACrG,gBAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC,eAAe,CAAC,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACxF,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAE9C,MAAM,IAAA,4BAAa,EAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IAC3C,MAAM,eAAe,GAAQ,MAAM,IAAA,yBAAU,EAAC,YAAY,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IAC5E,gBAAM,CAAC,KAAK,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC7C,gBAAM,CAAC,KAAK,CAAC,IAAA,6BAAc,EAAC,eAAe,CAAC,EAAE,IAAI,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAC/C,6EAA6E;IAC7E,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAClC,MAAM,QAAQ,GAAG,KAAK,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,MAAM,OAAO,GAAG,IAAA,6BAAc,EAAC,eAAe,CAAC,CAAC;YAChD,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACzB,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;gBACzD,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,EAAE,CAAC;gBACrC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACxB,OAAO,CAAC,IAAI,CAAC,mDAAmD,EAAE,OAAO,CAAC,CAAC;gBAC3E,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC,CAAC,CAAC;AACL,CAAC;AACD,IAAI,EAAE,CAAC"}
|
package/dist/client2.js
CHANGED
|
@@ -1,19 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const clientLib_js_1 = require("./clientLib.js");
|
|
7
|
+
const strict_1 = __importDefault(require("node:assert/strict"));
|
|
3
8
|
async function main() {
|
|
4
|
-
await initializeClient('Client2');
|
|
5
|
-
const result = await getService('echo', 'testClient', ['hoi!!!!']);
|
|
9
|
+
await (0, clientLib_js_1.initializeClient)('Client2');
|
|
10
|
+
const result = await (0, clientLib_js_1.getService)('echo', 'testClient', ['hoi!!!!']);
|
|
6
11
|
console.log('[Client2] echo result:', result);
|
|
7
12
|
// Validate that configs registered by Client1 are visible and updated
|
|
8
|
-
const configs = await getService('getConfigs', 'tonpleun', []);
|
|
9
|
-
|
|
10
|
-
|
|
13
|
+
const configs = await (0, clientLib_js_1.getService)('getConfigs', 'tonpleun', []);
|
|
14
|
+
strict_1.default.ok(configs['testClient'], 'configs for testClient should exist');
|
|
15
|
+
strict_1.default.ok(configs['testClient']['conf:greeting'], 'conf:greeting should be present');
|
|
11
16
|
console.log('[Client2] observed config:', configs['testClient']['conf:greeting']);
|
|
12
17
|
// Trigger a remote config update for owner 'testClient' and verify server state
|
|
13
|
-
await SetConfigItem('conf:greeting', 'bye', 'testClient');
|
|
14
|
-
const configsAfterSet = await getService('getConfigs', 'tonpleun', []);
|
|
15
|
-
|
|
18
|
+
await (0, clientLib_js_1.SetConfigItem)('conf:greeting', 'bye', 'testClient');
|
|
19
|
+
const configsAfterSet = await (0, clientLib_js_1.getService)('getConfigs', 'tonpleun', []);
|
|
20
|
+
strict_1.default.equal(configsAfterSet['testClient']['conf:greeting'].value, 'bye');
|
|
16
21
|
console.log('[Client2] remote config update OK');
|
|
22
|
+
const genResult = await (0, clientLib_js_1.genHelper)();
|
|
23
|
+
console.log('[Client2] genHelper result length:', genResult.length);
|
|
17
24
|
}
|
|
18
25
|
main();
|
|
19
26
|
//# sourceMappingURL=client2.js.map
|
package/dist/client2.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client2.js","sourceRoot":"","sources":["../src/client2.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"client2.js","sourceRoot":"","sources":["../src/client2.ts"],"names":[],"mappings":";;;;;AAAA,iDAAuF;AACvF,gEAAwC;AACxC,KAAK,UAAU,IAAI;IACf,MAAM,IAAA,+BAAgB,EAAC,SAAS,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,MAAM,IAAA,yBAAU,EAAC,MAAM,EAAE,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IAClE,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAA;IAC7C,sEAAsE;IACtE,MAAM,OAAO,GAAQ,MAAM,IAAA,yBAAU,EAAC,YAAY,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IACpE,gBAAM,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,qCAAqC,CAAC,CAAC;IACxE,gBAAM,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,eAAe,CAAC,EAAE,iCAAiC,CAAC,CAAC;IACrF,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;IAClF,gFAAgF;IAChF,MAAM,IAAA,4BAAa,EAAC,eAAe,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IAC1D,MAAM,eAAe,GAAQ,MAAM,IAAA,yBAAU,EAAC,YAAY,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IAC5E,gBAAM,CAAC,KAAK,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IAEjD,MAAM,SAAS,GAAG,MAAM,IAAA,wBAAS,GAAE,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;AACxE,CAAC;AACD,IAAI,EAAE,CAAC"}
|
package/dist/clientLib.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import WebSocket from 'ws';
|
|
2
|
-
import { stringPacketOptions, type StringPacket, type
|
|
2
|
+
import { stringPacketOptions, type StringPacket, type namedFakeType } from './types.js';
|
|
3
3
|
export declare let ws: WebSocket;
|
|
4
|
+
export declare function genHelper(): Promise<any>;
|
|
4
5
|
export declare function awaitServiceMessage(expectedFor: stringPacketOptions): Promise<StringPacket>;
|
|
5
6
|
export declare function registerConfigItem(name: string, description: string, value: string, idthing: string): Promise<void>;
|
|
6
7
|
export declare function SetConfigItem(idthing: string, newValue: string, clientId?: string): Promise<void>;
|
|
7
|
-
export declare function registerService(ServiceId: string, args:
|
|
8
|
+
export declare function registerService(ServiceId: string, args: namedFakeType[], callback: (...args: any[]) => any): Promise<void>;
|
|
8
9
|
export declare function getService(ServiceId: string, ClientId: string, inputs: any[]): Promise<any>;
|
|
9
|
-
export declare function initializeClient(ClientId: string): Promise<
|
|
10
|
+
export declare function initializeClient(ClientId: string): Promise<StringPacket>;
|
|
10
11
|
export declare function getConfigValue(id: string): any | undefined;
|
package/dist/clientLib.js
CHANGED
|
@@ -1,41 +1,71 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ws = void 0;
|
|
7
|
+
exports.genHelper = genHelper;
|
|
8
|
+
exports.awaitServiceMessage = awaitServiceMessage;
|
|
9
|
+
exports.registerConfigItem = registerConfigItem;
|
|
10
|
+
exports.SetConfigItem = SetConfigItem;
|
|
11
|
+
exports.registerService = registerService;
|
|
12
|
+
exports.getService = getService;
|
|
13
|
+
exports.initializeClient = initializeClient;
|
|
14
|
+
exports.getConfigValue = getConfigValue;
|
|
15
|
+
const ws_1 = __importDefault(require("ws"));
|
|
16
|
+
const crypto_1 = require("crypto");
|
|
17
|
+
const types_js_1 = require("./types.js");
|
|
18
|
+
const helpers_js_1 = require("./helpers.js");
|
|
19
|
+
const console_1 = require("console");
|
|
20
|
+
const fs_1 = require("fs");
|
|
21
|
+
const path_1 = require("path");
|
|
5
22
|
const url = "ws://localhost:8765";
|
|
6
|
-
export let ws;
|
|
7
23
|
const serviceCallbacks = new Map();
|
|
8
24
|
let clinetIDStore = "error";
|
|
9
25
|
const localConfigs = new Map();
|
|
10
|
-
|
|
26
|
+
const VERSION = {
|
|
27
|
+
MAJOR: 1,
|
|
28
|
+
MINOR: 1,
|
|
29
|
+
PATCH: 2
|
|
30
|
+
};
|
|
31
|
+
async function genHelper() {
|
|
32
|
+
console.info('genHelper called');
|
|
33
|
+
const result = await getService('genHelper', 'tonpleun', []);
|
|
34
|
+
const outPath = (0, path_1.dirname)('./src/GEN.ts');
|
|
35
|
+
(0, fs_1.mkdirSync)(outPath, { recursive: true });
|
|
36
|
+
(0, fs_1.writeFileSync)('./src/GEN.ts', result);
|
|
37
|
+
console.info('GEN.ts gegenereerd in ./src/GEN.ts');
|
|
38
|
+
return result;
|
|
39
|
+
}
|
|
40
|
+
async function awaitServiceMessage(expectedFor) {
|
|
11
41
|
return new Promise((resolve) => {
|
|
12
42
|
const handler = (raw) => {
|
|
13
43
|
const rawPacket = JSON.parse(raw.toString());
|
|
14
|
-
if (rawPacket.type === requestType.Success) {
|
|
44
|
+
if (rawPacket.type === types_js_1.requestType.Success) {
|
|
15
45
|
const data = rawPacket.data;
|
|
16
46
|
if (data.for === expectedFor) {
|
|
17
|
-
ws.removeListener('message', handler);
|
|
47
|
+
exports.ws.removeListener('message', handler);
|
|
18
48
|
resolve(data);
|
|
19
49
|
}
|
|
20
50
|
}
|
|
21
51
|
};
|
|
22
|
-
ws.on('message', handler);
|
|
52
|
+
exports.ws.on('message', handler);
|
|
23
53
|
});
|
|
24
54
|
}
|
|
25
|
-
|
|
26
|
-
WsSend(ws, { type: requestType.RegisterConifg, data: { name: name, description: description, defaultValue: value, type: typeof value, id: idthing } });
|
|
55
|
+
async function registerConfigItem(name, description, value, idthing) {
|
|
56
|
+
(0, helpers_js_1.WsSend)(exports.ws, { type: types_js_1.requestType.RegisterConifg, data: { name: name, description: description, defaultValue: value, type: typeof value, id: idthing } });
|
|
27
57
|
// Wacht tot de verbinding is geopend
|
|
28
58
|
return new Promise((resolve) => {
|
|
29
|
-
awaitServiceMessage(stringPacketOptions.registerConfigSuccess).then(() => {
|
|
59
|
+
awaitServiceMessage(types_js_1.stringPacketOptions.registerConfigSuccess).then(() => {
|
|
30
60
|
localConfigs.set(idthing, { name, id: idthing, description, type: typeof value, defaultValue: value });
|
|
31
61
|
resolve();
|
|
32
62
|
});
|
|
33
63
|
});
|
|
34
64
|
}
|
|
35
|
-
|
|
36
|
-
WsSend(ws, { type: requestType.SetConfig, data: { ClientId: clientId || clinetIDStore, id: idthing, newValue: newValue } });
|
|
65
|
+
async function SetConfigItem(idthing, newValue, clientId) {
|
|
66
|
+
(0, helpers_js_1.WsSend)(exports.ws, { type: types_js_1.requestType.SetConfig, data: { ClientId: clientId || clinetIDStore, id: idthing, newValue: newValue } });
|
|
37
67
|
return new Promise((resolve) => {
|
|
38
|
-
awaitServiceMessage(stringPacketOptions.setConfigSuccess).then(() => {
|
|
68
|
+
awaitServiceMessage(types_js_1.stringPacketOptions.setConfigSuccess).then(() => {
|
|
39
69
|
const existing = localConfigs.get(idthing);
|
|
40
70
|
if (existing) {
|
|
41
71
|
localConfigs.set(idthing, { ...existing, value: newValue });
|
|
@@ -44,56 +74,56 @@ export async function SetConfigItem(idthing, newValue, clientId) {
|
|
|
44
74
|
});
|
|
45
75
|
});
|
|
46
76
|
}
|
|
47
|
-
|
|
48
|
-
WsSend(ws, { type: requestType.RegisterService, data: { ServiceId, args } });
|
|
77
|
+
async function registerService(ServiceId, args, callback) {
|
|
78
|
+
(0, helpers_js_1.WsSend)(exports.ws, { type: types_js_1.requestType.RegisterService, data: { ServiceId, args } });
|
|
49
79
|
serviceCallbacks.set(ServiceId, callback);
|
|
50
80
|
return new Promise((resolve) => {
|
|
51
|
-
awaitServiceMessage(stringPacketOptions.registerServiceSuccess).then(() => {
|
|
81
|
+
awaitServiceMessage(types_js_1.stringPacketOptions.registerServiceSuccess).then(() => {
|
|
52
82
|
resolve();
|
|
53
83
|
});
|
|
54
84
|
});
|
|
55
85
|
}
|
|
56
|
-
|
|
57
|
-
const connectionId = randomUUID();
|
|
58
|
-
WsSend(ws, { type: requestType.GetService, data: { ClientId, ServiceId, args: inputs, connectionId } });
|
|
86
|
+
async function getService(ServiceId, ClientId, inputs) {
|
|
87
|
+
const connectionId = (0, crypto_1.randomUUID)();
|
|
88
|
+
(0, helpers_js_1.WsSend)(exports.ws, { type: types_js_1.requestType.GetService, data: { ClientId, ServiceId, args: inputs, connectionId } });
|
|
59
89
|
return new Promise((resolve) => {
|
|
60
90
|
const handler = (raw) => {
|
|
61
91
|
const rawPacket = JSON.parse(raw.toString());
|
|
62
|
-
if (rawPacket.type === requestType.GetServiceResponse) {
|
|
92
|
+
if (rawPacket.type === types_js_1.requestType.GetServiceResponse) {
|
|
63
93
|
const data = rawPacket.data;
|
|
64
94
|
if (data.serviceId === ServiceId && data.connectionId === connectionId) {
|
|
65
|
-
ws.removeListener('message', handler);
|
|
95
|
+
exports.ws.removeListener('message', handler);
|
|
66
96
|
resolve(data.result);
|
|
67
97
|
}
|
|
68
98
|
}
|
|
69
99
|
};
|
|
70
|
-
ws.on('message', handler);
|
|
100
|
+
exports.ws.on('message', handler);
|
|
71
101
|
});
|
|
72
102
|
}
|
|
73
|
-
|
|
103
|
+
async function initializeClient(ClientId) {
|
|
74
104
|
clinetIDStore = ClientId;
|
|
75
|
-
ws = new
|
|
76
|
-
ws.on('open', () => {
|
|
105
|
+
exports.ws = new ws_1.default(url);
|
|
106
|
+
exports.ws.on('open', () => {
|
|
77
107
|
console.log('Verbonden met tonpleun server.');
|
|
78
|
-
WsSend(ws, { type: requestType.Init, data: { ClientId } });
|
|
108
|
+
(0, helpers_js_1.WsSend)(exports.ws, { type: types_js_1.requestType.Init, data: { ClientId } });
|
|
79
109
|
});
|
|
80
|
-
ws.on('close', () => {
|
|
110
|
+
exports.ws.on('close', () => {
|
|
81
111
|
console.log('Verbinding met tonpleun server gesloten.');
|
|
82
112
|
});
|
|
83
|
-
ws.on('error', (error) => {
|
|
113
|
+
exports.ws.on('error', (error) => {
|
|
84
114
|
console.error('Fout opgetreden:', error);
|
|
85
|
-
ws.close();
|
|
115
|
+
exports.ws.close();
|
|
86
116
|
});
|
|
87
|
-
ws.on('message', (data) => {
|
|
117
|
+
exports.ws.on('message', (data) => {
|
|
88
118
|
const rawPacket = JSON.parse(data.toString());
|
|
89
|
-
if (rawPacket.type === requestType.GetService) {
|
|
119
|
+
if (rawPacket.type === types_js_1.requestType.GetService) {
|
|
90
120
|
const serviceData = rawPacket.data;
|
|
91
121
|
const callback = serviceCallbacks.get(serviceData.ServiceId);
|
|
92
122
|
if (callback) {
|
|
93
123
|
try {
|
|
94
124
|
const result = callback(...serviceData.args);
|
|
95
|
-
WsSend(ws, {
|
|
96
|
-
type: requestType.GetServiceResponse, data: {
|
|
125
|
+
(0, helpers_js_1.WsSend)(exports.ws, {
|
|
126
|
+
type: types_js_1.requestType.GetServiceResponse, data: {
|
|
97
127
|
result: result,
|
|
98
128
|
ServiceId: serviceData.ServiceId,
|
|
99
129
|
connectionId: serviceData.connectionId,
|
|
@@ -105,7 +135,7 @@ export async function initializeClient(ClientId) {
|
|
|
105
135
|
}
|
|
106
136
|
}
|
|
107
137
|
}
|
|
108
|
-
else if (rawPacket.type === requestType.SetConfig) {
|
|
138
|
+
else if (rawPacket.type === types_js_1.requestType.SetConfig) {
|
|
109
139
|
const cfg = rawPacket.data;
|
|
110
140
|
const existing = localConfigs.get(cfg.id);
|
|
111
141
|
if (existing) {
|
|
@@ -113,14 +143,28 @@ export async function initializeClient(ClientId) {
|
|
|
113
143
|
}
|
|
114
144
|
}
|
|
115
145
|
});
|
|
116
|
-
// Wacht tot de verbinding is geopend
|
|
117
146
|
return new Promise((resolve) => {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
147
|
+
const handler = (raw) => {
|
|
148
|
+
const rawPacket = JSON.parse(raw.toString());
|
|
149
|
+
if (rawPacket.type === types_js_1.requestType.Init) {
|
|
150
|
+
const data = rawPacket.data;
|
|
151
|
+
(0, console_1.assert)(data.versionMajor === VERSION.MAJOR, `Major versie mismatch: Client versie is ${VERSION.MAJOR}, server versie is ${data.versionMajor}.`);
|
|
152
|
+
if (data.versionMinor !== VERSION.MINOR) {
|
|
153
|
+
console.warn(`Waarschuwing: Minor versie mismatch: Client versie is ${VERSION.MINOR}, server versie is ${data.versionMinor}. Mogelijk zijn er incompatibiliteiten.`);
|
|
154
|
+
}
|
|
155
|
+
if (data.versionPatch !== VERSION.PATCH) {
|
|
156
|
+
console.warn(`Waarschuwing: Patch versie mismatch: Client versie is ${VERSION.PATCH}, server versie is ${data.versionPatch}. Mogelijk zijn er bugs of ontbrekende functies.`);
|
|
157
|
+
}
|
|
158
|
+
exports.ws.removeListener('message', handler);
|
|
159
|
+
console.info('Client geïnitialiseerd met versie:', data.versionMajor, data.versionMinor, data.versionPatch);
|
|
160
|
+
console.info('gebruik via GEN.ts is aanbevolen');
|
|
161
|
+
resolve({ for: types_js_1.stringPacketOptions.initSuccess, msg: 'Init succesvol' });
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
exports.ws.on('message', handler);
|
|
121
165
|
});
|
|
122
166
|
}
|
|
123
|
-
|
|
167
|
+
function getConfigValue(id) {
|
|
124
168
|
var _a;
|
|
125
169
|
const item = localConfigs.get(id);
|
|
126
170
|
return item ? ((_a = item.value) !== null && _a !== void 0 ? _a : item.defaultValue) : undefined;
|
package/dist/clientLib.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientLib.js","sourceRoot":"","sources":["../src/clientLib.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"clientLib.js","sourceRoot":"","sources":["../src/clientLib.ts"],"names":[],"mappings":"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"}
|
package/dist/helpers.js
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.log = log;
|
|
4
|
+
exports.WsSend = WsSend;
|
|
5
|
+
exports.successPacketBuilder = successPacketBuilder;
|
|
6
|
+
const types_js_1 = require("./types.js");
|
|
7
|
+
function log(id, ...args) {
|
|
3
8
|
// .toString() als je niet groen wil
|
|
4
9
|
console.log('[', id, ']', args);
|
|
5
10
|
}
|
|
6
|
-
|
|
11
|
+
function WsSend(ws, data) {
|
|
7
12
|
ws.send(JSON.stringify(data));
|
|
8
13
|
}
|
|
9
|
-
|
|
10
|
-
return { type: requestType.Success, data: { msg: msg, for: B } };
|
|
14
|
+
function successPacketBuilder(msg, B) {
|
|
15
|
+
return { type: types_js_1.requestType.Success, data: { msg: msg, for: B } };
|
|
11
16
|
}
|
|
12
17
|
//# sourceMappingURL=helpers.js.map
|
package/dist/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;AAEA,kBAGC;AACD,wBAEC;AACD,oDAEC;AAVD,yCAA8F;AAC9F,SAAgB,GAAG,CAAC,EAAO,EAAE,GAAG,IAAS;IACrC,oCAAoC;IACpC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACpC,CAAC;AACD,SAAgB,MAAM,CAAC,EAAa,EAAE,IAAY;IAC9C,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAClC,CAAC;AACD,SAAgB,oBAAoB,CAAC,GAAW,EAAE,CAAsB;IACpE,OAAO,EAAE,IAAI,EAAE,sBAAW,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAkB,EAAY,CAAA;AAC9F,CAAC"}
|
package/dist/server.js
CHANGED
|
@@ -1,52 +1,77 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const helpers_js_1 = require("./helpers.js");
|
|
4
|
+
const ws_1 = require("ws");
|
|
5
|
+
const types_js_1 = require("./types.js");
|
|
4
6
|
function mapToObject(map) {
|
|
5
7
|
return Object.fromEntries([...map.entries()].map(([kMaxLength, v]) => [kMaxLength, v instanceof Map ? mapToObject(v) : v]));
|
|
6
8
|
}
|
|
9
|
+
const VERSION = {
|
|
10
|
+
MAJOR: 1,
|
|
11
|
+
MINOR: 1,
|
|
12
|
+
PATCH: 2
|
|
13
|
+
};
|
|
7
14
|
let clients = {};
|
|
8
15
|
let services = new Map();
|
|
9
16
|
let configs = new Map();
|
|
10
17
|
let localServices = new Map();
|
|
11
18
|
localServices.set('getServices', (...args) => { return mapToObject(services); });
|
|
12
19
|
localServices.set('getConfigs', (...args) => { return mapToObject(configs); });
|
|
20
|
+
localServices.set('genHelper', (...args) => {
|
|
21
|
+
let output = '/* Dit bestand is automatisch gegenereerd door Tonpleun. Wijzigingen hierin worden overschreven. */\n\n';
|
|
22
|
+
output += `import { getService } from './clientLib.js';\n\n`;
|
|
23
|
+
services.forEach((serviceMap, clientId) => {
|
|
24
|
+
output += `// Services for client: ${clientId}\n`;
|
|
25
|
+
serviceMap.forEach((argTypes, serviceId) => {
|
|
26
|
+
output += `// ${serviceId}\n`;
|
|
27
|
+
output += `export async function ${serviceId}(`;
|
|
28
|
+
output += argTypes.map((type, _) => `${type.name}: ${type.type}`).join(', ');
|
|
29
|
+
output += `): Promise<any> {\n`;
|
|
30
|
+
output += ` return await getService('${serviceId}', '${clientId}', [${argTypes.map((arg, _) => `${arg.name}`).join(', ')}]);\n`;
|
|
31
|
+
output += `}\n\n`;
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
output += `// Tonpleun versie: ${VERSION.MAJOR}.${VERSION.MINOR}.${VERSION.PATCH}\n`;
|
|
35
|
+
output += `// Genereer dit bestand opnieuw met de genHelper service indien services zijn gewijzigd.\n`;
|
|
36
|
+
return output;
|
|
37
|
+
});
|
|
13
38
|
// Map a unique connectionId to the original requester WebSocket
|
|
14
39
|
const connectionMap = new Map();
|
|
15
|
-
const wsServer = new WebSocketServer({ host: '0.0.0.0', port: 8765 });
|
|
40
|
+
const wsServer = new ws_1.WebSocketServer({ host: '0.0.0.0', port: 8765 });
|
|
16
41
|
wsServer.on('connection', (ws, req) => {
|
|
17
42
|
let id = req.socket.remoteAddress;
|
|
18
|
-
log(id, 'ws verbonden wachten op init.');
|
|
43
|
+
(0, helpers_js_1.log)(id, 'ws verbonden wachten op init.');
|
|
19
44
|
ws.on('message', async (raw) => {
|
|
20
45
|
var _a;
|
|
21
46
|
const jsonData = JSON.parse(raw.toString());
|
|
22
47
|
let data;
|
|
23
48
|
switch (jsonData.type) {
|
|
24
|
-
case requestType.Init:
|
|
49
|
+
case types_js_1.requestType.Init:
|
|
25
50
|
data = jsonData.data;
|
|
26
51
|
clients[data.ClientId] = ws;
|
|
27
52
|
id = data.ClientId;
|
|
28
53
|
services.set(id, new Map());
|
|
29
54
|
// initialize per-client config store to avoid undefined access
|
|
30
55
|
configs.set(id, new Map());
|
|
31
|
-
log(id, 'ws init gedaan, client id gegeven. ip: ', req.socket.remoteAddress);
|
|
32
|
-
WsSend(ws,
|
|
56
|
+
(0, helpers_js_1.log)(id, 'ws init gedaan, client id gegeven. ip: ', req.socket.remoteAddress);
|
|
57
|
+
(0, helpers_js_1.WsSend)(ws, { type: types_js_1.requestType.Init, data: { versionMajor: VERSION.MAJOR, versionMinor: VERSION.MINOR, versionPatch: VERSION.MINOR } });
|
|
33
58
|
break;
|
|
34
|
-
case requestType.RegisterService:
|
|
59
|
+
case types_js_1.requestType.RegisterService:
|
|
35
60
|
data = jsonData.data;
|
|
36
61
|
services.get(id).set(data.ServiceId, data.args);
|
|
37
|
-
log(id, `service ${data.ServiceId} geregistreerd.`);
|
|
38
|
-
WsSend(ws, successPacketBuilder(`service ${data.ServiceId} geregistreerd.`, stringPacketOptions.registerServiceSuccess));
|
|
62
|
+
(0, helpers_js_1.log)(id, `service ${data.ServiceId} geregistreerd.`);
|
|
63
|
+
(0, helpers_js_1.WsSend)(ws, (0, helpers_js_1.successPacketBuilder)(`service ${data.ServiceId} geregistreerd.`, types_js_1.stringPacketOptions.registerServiceSuccess));
|
|
39
64
|
break;
|
|
40
|
-
case requestType.GetService:
|
|
65
|
+
case types_js_1.requestType.GetService:
|
|
41
66
|
data = jsonData.data;
|
|
42
|
-
log(id, `service ${data.ServiceId} opgevraagd bij client ${data.ClientId}.`);
|
|
67
|
+
(0, helpers_js_1.log)(id, `service ${data.ServiceId} opgevraagd bij client ${data.ClientId}.`);
|
|
43
68
|
if (!(data.ClientId == "tonpleun")) {
|
|
44
69
|
const serviceOwnerWs = clients[data.ClientId];
|
|
45
70
|
if (serviceOwnerWs && ((_a = services.get(data.ClientId)) === null || _a === void 0 ? void 0 : _a.has(data.ServiceId))) {
|
|
46
71
|
// store mapping from this request's connectionId to the original requester
|
|
47
72
|
connectionMap.set(data.connectionId, ws);
|
|
48
|
-
WsSend(serviceOwnerWs, {
|
|
49
|
-
type: requestType.GetService,
|
|
73
|
+
(0, helpers_js_1.WsSend)(serviceOwnerWs, {
|
|
74
|
+
type: types_js_1.requestType.GetService,
|
|
50
75
|
data: {
|
|
51
76
|
ServiceId: data.ServiceId,
|
|
52
77
|
args: data.args,
|
|
@@ -55,13 +80,13 @@ wsServer.on('connection', (ws, req) => {
|
|
|
55
80
|
});
|
|
56
81
|
}
|
|
57
82
|
else {
|
|
58
|
-
log(id, `service ${data.ServiceId} niet gevonden voor client ${data.ClientId}.`);
|
|
83
|
+
(0, helpers_js_1.log)(id, `service ${data.ServiceId} niet gevonden voor client ${data.ClientId}.`);
|
|
59
84
|
}
|
|
60
85
|
}
|
|
61
86
|
else {
|
|
62
87
|
const returnMe = localServices.get(data.ServiceId)(data.args);
|
|
63
|
-
WsSend(ws, {
|
|
64
|
-
type: requestType.GetServiceResponse,
|
|
88
|
+
(0, helpers_js_1.WsSend)(ws, {
|
|
89
|
+
type: types_js_1.requestType.GetServiceResponse,
|
|
65
90
|
data: {
|
|
66
91
|
result: returnMe,
|
|
67
92
|
connectionId: data.connectionId,
|
|
@@ -70,13 +95,13 @@ wsServer.on('connection', (ws, req) => {
|
|
|
70
95
|
});
|
|
71
96
|
}
|
|
72
97
|
break;
|
|
73
|
-
case requestType.GetServiceResponse:
|
|
98
|
+
case types_js_1.requestType.GetServiceResponse:
|
|
74
99
|
data = jsonData.data;
|
|
75
|
-
log(id, `antwoord voor service ${data.ServiceId} ontvangen, doorsturen naar client.`);
|
|
100
|
+
(0, helpers_js_1.log)(id, `antwoord voor service ${data.ServiceId} ontvangen, doorsturen naar client.`);
|
|
76
101
|
const originalRequesterWs = connectionMap.get(data.connectionId);
|
|
77
102
|
if (originalRequesterWs) {
|
|
78
|
-
WsSend(originalRequesterWs, {
|
|
79
|
-
type: requestType.GetServiceResponse,
|
|
103
|
+
(0, helpers_js_1.WsSend)(originalRequesterWs, {
|
|
104
|
+
type: types_js_1.requestType.GetServiceResponse,
|
|
80
105
|
data: {
|
|
81
106
|
result: data.result,
|
|
82
107
|
serviceId: data.ServiceId,
|
|
@@ -86,32 +111,32 @@ wsServer.on('connection', (ws, req) => {
|
|
|
86
111
|
connectionMap.delete(data.connectionId);
|
|
87
112
|
}
|
|
88
113
|
break;
|
|
89
|
-
case requestType.RegisterConifg:
|
|
114
|
+
case types_js_1.requestType.RegisterConifg:
|
|
90
115
|
data = jsonData.data;
|
|
91
|
-
log(id, 'registeer een nieuwe config ityem');
|
|
116
|
+
(0, helpers_js_1.log)(id, 'registeer een nieuwe config ityem');
|
|
92
117
|
// fuck het we slaan de hele packet op
|
|
93
118
|
configs.get(id).set(data.id, data);
|
|
94
|
-
WsSend(ws, successPacketBuilder('dinges', stringPacketOptions.registerConfigSuccess));
|
|
119
|
+
(0, helpers_js_1.WsSend)(ws, (0, helpers_js_1.successPacketBuilder)('dinges', types_js_1.stringPacketOptions.registerConfigSuccess));
|
|
95
120
|
break;
|
|
96
|
-
case requestType.SetConfig:
|
|
121
|
+
case types_js_1.requestType.SetConfig:
|
|
97
122
|
data = jsonData.data;
|
|
98
|
-
log(id, 'update de dinges');
|
|
123
|
+
(0, helpers_js_1.log)(id, 'update de dinges');
|
|
99
124
|
const otherGuy = clients[data.ClientId];
|
|
100
125
|
if (otherGuy) {
|
|
101
126
|
const prev = configs.get(data.ClientId).get(data.id);
|
|
102
127
|
configs.get(data.ClientId).set(data.id, { ...prev, value: data.newValue });
|
|
103
|
-
WsSend(otherGuy, { type: requestType.SetConfig, data: data });
|
|
128
|
+
(0, helpers_js_1.WsSend)(otherGuy, { type: types_js_1.requestType.SetConfig, data: data });
|
|
104
129
|
}
|
|
105
|
-
WsSend(ws, successPacketBuilder('dinges', stringPacketOptions.setConfigSuccess));
|
|
130
|
+
(0, helpers_js_1.WsSend)(ws, (0, helpers_js_1.successPacketBuilder)('dinges', types_js_1.stringPacketOptions.setConfigSuccess));
|
|
106
131
|
break;
|
|
107
132
|
default:
|
|
108
|
-
log(id, 'invalid msg');
|
|
133
|
+
(0, helpers_js_1.log)(id, 'invalid msg');
|
|
109
134
|
break;
|
|
110
135
|
}
|
|
111
136
|
});
|
|
112
137
|
ws.on('close', () => {
|
|
113
138
|
services.delete(id);
|
|
114
|
-
log(id, 'ws gesloten.');
|
|
139
|
+
(0, helpers_js_1.log)(id, 'ws gesloten.');
|
|
115
140
|
});
|
|
116
141
|
});
|
|
117
142
|
wsServer.on('listening', () => {
|