@mikw99/node-emberplus-custom 1.0.5
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/LICENSE +21 -0
- package/README.md +4 -0
- package/lib/ber.d.ts +42 -0
- package/lib/ber.js +237 -0
- package/lib/ber.js.map +1 -0
- package/lib/client/ember-client-logs.d.ts +4 -0
- package/lib/client/ember-client-logs.js +214 -0
- package/lib/client/ember-client-logs.js.map +1 -0
- package/lib/client/ember-client.d.ts +62 -0
- package/lib/client/ember-client.events.d.ts +8 -0
- package/lib/client/ember-client.events.js +12 -0
- package/lib/client/ember-client.events.js.map +1 -0
- package/lib/client/ember-client.js +678 -0
- package/lib/client/ember-client.js.map +1 -0
- package/lib/client/ember-client.request.d.ts +12 -0
- package/lib/client/ember-client.request.js +22 -0
- package/lib/client/ember-client.request.js.map +1 -0
- package/lib/common/command.d.ts +37 -0
- package/lib/common/command.js +95 -0
- package/lib/common/command.js.map +1 -0
- package/lib/common/common.d.ts +71 -0
- package/lib/common/common.js +310 -0
- package/lib/common/common.js.map +1 -0
- package/lib/common/constants.d.ts +10 -0
- package/lib/common/constants.js +13 -0
- package/lib/common/constants.js.map +1 -0
- package/lib/common/element.base.d.ts +13 -0
- package/lib/common/element.base.js +36 -0
- package/lib/common/element.base.js.map +1 -0
- package/lib/common/element.d.ts +6 -0
- package/lib/common/element.js +23 -0
- package/lib/common/element.js.map +1 -0
- package/lib/common/function/function-argument.d.ts +26 -0
- package/lib/common/function/function-argument.js +75 -0
- package/lib/common/function/function-argument.js.map +1 -0
- package/lib/common/function/function-contents.d.ts +30 -0
- package/lib/common/function/function-contents.js +138 -0
- package/lib/common/function/function-contents.js.map +1 -0
- package/lib/common/function/function.d.ts +31 -0
- package/lib/common/function/function.js +75 -0
- package/lib/common/function/function.js.map +1 -0
- package/lib/common/function/qualified-function.d.ts +19 -0
- package/lib/common/function/qualified-function.js +73 -0
- package/lib/common/function/qualified-function.js.map +1 -0
- package/lib/common/invocation-result.d.ts +23 -0
- package/lib/common/invocation-result.js +101 -0
- package/lib/common/invocation-result.js.map +1 -0
- package/lib/common/invocation.d.ts +20 -0
- package/lib/common/invocation.js +73 -0
- package/lib/common/invocation.js.map +1 -0
- package/lib/common/label.d.ts +14 -0
- package/lib/common/label.js +55 -0
- package/lib/common/label.js.map +1 -0
- package/lib/common/matrix/matrix-connection.d.ts +26 -0
- package/lib/common/matrix/matrix-connection.js +123 -0
- package/lib/common/matrix/matrix-connection.js.map +1 -0
- package/lib/common/matrix/matrix-contents.d.ts +38 -0
- package/lib/common/matrix/matrix-contents.js +173 -0
- package/lib/common/matrix/matrix-contents.js.map +1 -0
- package/lib/common/matrix/matrix-disposition.d.ts +9 -0
- package/lib/common/matrix/matrix-disposition.js +14 -0
- package/lib/common/matrix/matrix-disposition.js.map +1 -0
- package/lib/common/matrix/matrix-mode.d.ts +8 -0
- package/lib/common/matrix/matrix-mode.js +23 -0
- package/lib/common/matrix/matrix-mode.js.map +1 -0
- package/lib/common/matrix/matrix-node.d.ts +13 -0
- package/lib/common/matrix/matrix-node.js +90 -0
- package/lib/common/matrix/matrix-node.js.map +1 -0
- package/lib/common/matrix/matrix-operation.d.ts +8 -0
- package/lib/common/matrix/matrix-operation.js +13 -0
- package/lib/common/matrix/matrix-operation.js.map +1 -0
- package/lib/common/matrix/matrix-type.d.ts +9 -0
- package/lib/common/matrix/matrix-type.js +24 -0
- package/lib/common/matrix/matrix-type.js.map +1 -0
- package/lib/common/matrix/matrix.d.ts +91 -0
- package/lib/common/matrix/matrix.js +429 -0
- package/lib/common/matrix/matrix.js.map +1 -0
- package/lib/common/matrix/qualified-matrix.d.ts +17 -0
- package/lib/common/matrix/qualified-matrix.js +97 -0
- package/lib/common/matrix/qualified-matrix.js.map +1 -0
- package/lib/common/node-contents.d.ts +24 -0
- package/lib/common/node-contents.js +87 -0
- package/lib/common/node-contents.js.map +1 -0
- package/lib/common/node.d.ts +27 -0
- package/lib/common/node.js +67 -0
- package/lib/common/node.js.map +1 -0
- package/lib/common/parameter-access.d.ts +10 -0
- package/lib/common/parameter-access.js +25 -0
- package/lib/common/parameter-access.js.map +1 -0
- package/lib/common/parameter-contents.d.ts +55 -0
- package/lib/common/parameter-contents.js +167 -0
- package/lib/common/parameter-contents.js.map +1 -0
- package/lib/common/parameter-type.d.ts +15 -0
- package/lib/common/parameter-type.js +54 -0
- package/lib/common/parameter-type.js.map +1 -0
- package/lib/common/parameter.d.ts +76 -0
- package/lib/common/parameter.js +174 -0
- package/lib/common/parameter.js.map +1 -0
- package/lib/common/qualified-element.d.ts +10 -0
- package/lib/common/qualified-element.js +36 -0
- package/lib/common/qualified-element.js.map +1 -0
- package/lib/common/qualified-node.d.ts +16 -0
- package/lib/common/qualified-node.js +67 -0
- package/lib/common/qualified-node.js.map +1 -0
- package/lib/common/qualified-parameter.d.ts +52 -0
- package/lib/common/qualified-parameter.js +177 -0
- package/lib/common/qualified-parameter.js.map +1 -0
- package/lib/common/qualified-template.d.ts +17 -0
- package/lib/common/qualified-template.js +58 -0
- package/lib/common/qualified-template.js.map +1 -0
- package/lib/common/stream/stream-collection.d.ts +20 -0
- package/lib/common/stream/stream-collection.js +57 -0
- package/lib/common/stream/stream-collection.js.map +1 -0
- package/lib/common/stream/stream-description.d.ts +15 -0
- package/lib/common/stream/stream-description.js +45 -0
- package/lib/common/stream/stream-description.js.map +1 -0
- package/lib/common/stream/stream-entry.d.ts +15 -0
- package/lib/common/stream/stream-entry.js +49 -0
- package/lib/common/stream/stream-entry.js.map +1 -0
- package/lib/common/stream/stream-format.d.ts +23 -0
- package/lib/common/stream/stream-format.js +28 -0
- package/lib/common/stream/stream-format.js.map +1 -0
- package/lib/common/string-integer-collection.d.ts +12 -0
- package/lib/common/string-integer-collection.js +51 -0
- package/lib/common/string-integer-collection.js.map +1 -0
- package/lib/common/string-integer-pair.d.ts +18 -0
- package/lib/common/string-integer-pair.js +67 -0
- package/lib/common/string-integer-pair.js.map +1 -0
- package/lib/common/template-element.d.ts +12 -0
- package/lib/common/template-element.js +53 -0
- package/lib/common/template-element.js.map +1 -0
- package/lib/common/template.d.ts +16 -0
- package/lib/common/template.js +58 -0
- package/lib/common/template.js.map +1 -0
- package/lib/common/tree-node.d.ts +85 -0
- package/lib/common/tree-node.js +461 -0
- package/lib/common/tree-node.js.map +1 -0
- package/lib/error/errors.d.ts +57 -0
- package/lib/error/errors.js +150 -0
- package/lib/error/errors.js.map +1 -0
- package/lib/fixture/utils.d.ts +7 -0
- package/lib/fixture/utils.js +185 -0
- package/lib/fixture/utils.js.map +1 -0
- package/lib/index.d.ts +41 -0
- package/lib/index.js +15 -0
- package/lib/index.js.map +1 -0
- package/lib/logging/logging.service.d.ts +45 -0
- package/lib/logging/logging.service.js +110 -0
- package/lib/logging/logging.service.js.map +1 -0
- package/lib/server/client-request.d.ts +9 -0
- package/lib/server/client-request.js +10 -0
- package/lib/server/client-request.js.map +1 -0
- package/lib/server/element-handlers.d.ts +20 -0
- package/lib/server/element-handlers.js +105 -0
- package/lib/server/element-handlers.js.map +1 -0
- package/lib/server/ember-server.d.ts +84 -0
- package/lib/server/ember-server.events.d.ts +23 -0
- package/lib/server/ember-server.events.js +46 -0
- package/lib/server/ember-server.events.js.map +1 -0
- package/lib/server/ember-server.interface.d.ts +26 -0
- package/lib/server/ember-server.interface.js +3 -0
- package/lib/server/ember-server.interface.js.map +1 -0
- package/lib/server/ember-server.js +422 -0
- package/lib/server/ember-server.js.map +1 -0
- package/lib/server/ember-server.logs.d.ts +4 -0
- package/lib/server/ember-server.logs.js +274 -0
- package/lib/server/ember-server.logs.js.map +1 -0
- package/lib/server/json.parser.d.ts +13 -0
- package/lib/server/json.parser.js +209 -0
- package/lib/server/json.parser.js.map +1 -0
- package/lib/server/matrix.handlers.d.ts +10 -0
- package/lib/server/matrix.handlers.js +103 -0
- package/lib/server/matrix.handlers.js.map +1 -0
- package/lib/server/node.handlers.d.ts +12 -0
- package/lib/server/node.handlers.js +85 -0
- package/lib/server/node.handlers.js.map +1 -0
- package/lib/server/qualified.handlers.d.ts +15 -0
- package/lib/server/qualified.handlers.js +54 -0
- package/lib/server/qualified.handlers.js.map +1 -0
- package/lib/socket/s101.client.d.ts +17 -0
- package/lib/socket/s101.client.js +53 -0
- package/lib/socket/s101.client.js.map +1 -0
- package/lib/socket/s101.codec.d.ts +32 -0
- package/lib/socket/s101.codec.js +301 -0
- package/lib/socket/s101.codec.js.map +1 -0
- package/lib/socket/s101.packet-stats.socket.d.ts +31 -0
- package/lib/socket/s101.packet-stats.socket.js +74 -0
- package/lib/socket/s101.packet-stats.socket.js.map +1 -0
- package/lib/socket/s101.server.d.ts +28 -0
- package/lib/socket/s101.server.js +87 -0
- package/lib/socket/s101.server.js.map +1 -0
- package/lib/socket/s101.socket.d.ts +75 -0
- package/lib/socket/s101.socket.js +300 -0
- package/lib/socket/s101.socket.js.map +1 -0
- package/lib/socket/stats-collector.d.ts +19 -0
- package/lib/socket/stats-collector.js +63 -0
- package/lib/socket/stats-collector.js.map +1 -0
- package/lib/tools/debug.d.ts +2 -0
- package/lib/tools/debug.js +21 -0
- package/lib/tools/debug.js.map +1 -0
- package/lib/tools/jsontree.d.ts +1 -0
- package/lib/tools/jsontree.js +36 -0
- package/lib/tools/jsontree.js.map +1 -0
- package/lib/tools/monitoring-client.d.ts +2 -0
- package/lib/tools/monitoring-client.js +186 -0
- package/lib/tools/monitoring-client.js.map +1 -0
- package/lib/tools/serve.d.ts +1 -0
- package/lib/tools/serve.js +129 -0
- package/lib/tools/serve.js.map +1 -0
- package/package.json +105 -0
@@ -0,0 +1,105 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const ember_server_events_1 = require("./ember-server.events");
|
4
|
+
const constants_1 = require("../common/constants");
|
5
|
+
const tree_node_1 = require("../common/tree-node");
|
6
|
+
const errors_1 = require("../error/errors");
|
7
|
+
const invocation_result_1 = require("../common/invocation-result");
|
8
|
+
const ember_server_logs_1 = require("./ember-server.logs");
|
9
|
+
class ElementHandlers {
|
10
|
+
constructor(_server, _logger) {
|
11
|
+
this._server = _server;
|
12
|
+
this._logger = _logger;
|
13
|
+
}
|
14
|
+
get logger() {
|
15
|
+
return this._logger;
|
16
|
+
}
|
17
|
+
get server() {
|
18
|
+
return this._server;
|
19
|
+
}
|
20
|
+
handleCommand(client, element, cmd) {
|
21
|
+
let identifier = 'root';
|
22
|
+
if (!element.isRoot()) {
|
23
|
+
const node = this.server.tree.getElementByPath(element.getPath());
|
24
|
+
identifier = node == null || node.contents == null || node.contents.identifier == null ? 'unknown' : node.contents.identifier;
|
25
|
+
}
|
26
|
+
const src = client == null || client.socket == null ? 'local' : client.socket.remoteAddress;
|
27
|
+
switch (cmd.number) {
|
28
|
+
case constants_1.COMMAND_GETDIRECTORY:
|
29
|
+
this.server.generateEvent(ember_server_events_1.ServerEvents.GETDIRECTORY(identifier, element.getPath(), src));
|
30
|
+
this.handleGetDirectory(client, element);
|
31
|
+
break;
|
32
|
+
case constants_1.COMMAND_SUBSCRIBE:
|
33
|
+
this.server.generateEvent(ember_server_events_1.ServerEvents.SUBSCRIBE(identifier, element.getPath(), src));
|
34
|
+
this.handleSubscribe(client, element);
|
35
|
+
break;
|
36
|
+
case constants_1.COMMAND_UNSUBSCRIBE:
|
37
|
+
this.server.generateEvent(ember_server_events_1.ServerEvents.UNSUBSCRIBE(identifier, element.getPath(), src));
|
38
|
+
this.handleUnSubscribe(client, element);
|
39
|
+
break;
|
40
|
+
case constants_1.COMMAND_INVOKE:
|
41
|
+
this.server.generateEvent(ember_server_events_1.ServerEvents.INVOKE(identifier, element.getPath(), src));
|
42
|
+
this.handleInvoke(client, cmd.invocation, element);
|
43
|
+
break;
|
44
|
+
default:
|
45
|
+
throw new errors_1.InvalidCommandError(cmd.number);
|
46
|
+
}
|
47
|
+
}
|
48
|
+
handleGetDirectory(client, element) {
|
49
|
+
var _a, _b;
|
50
|
+
if (client != null) {
|
51
|
+
if ((element.isMatrix() || element.isParameter()) &&
|
52
|
+
(!element.isStream())) {
|
53
|
+
this.server.subscribe(client.socket, element);
|
54
|
+
}
|
55
|
+
else if (element.isNode()) {
|
56
|
+
const children = element.getChildren();
|
57
|
+
if (children != null) {
|
58
|
+
for (let i = 0; i < children.length; i++) {
|
59
|
+
const child = children[i];
|
60
|
+
if ((child.isMatrix() || child.isParameter()) &&
|
61
|
+
(!child.isStream())) {
|
62
|
+
this.server.subscribe(client.socket, child);
|
63
|
+
}
|
64
|
+
}
|
65
|
+
}
|
66
|
+
}
|
67
|
+
const res = this.server.createQualifiedResponse(element);
|
68
|
+
(_a = this.logger) === null || _a === void 0 ? void 0 : _a.log(ember_server_logs_1.ServerLogs.GETDIRECTORY(element));
|
69
|
+
client.socket.queueMessage(res);
|
70
|
+
}
|
71
|
+
else {
|
72
|
+
(_b = this.logger) === null || _b === void 0 ? void 0 : _b.log(ember_server_logs_1.ServerLogs.UNEXPECTED('GetDirectory from null client'));
|
73
|
+
}
|
74
|
+
}
|
75
|
+
handleInvoke(client, invocation, element) {
|
76
|
+
var _a;
|
77
|
+
const result = new invocation_result_1.InvocationResult();
|
78
|
+
result.invocationId = invocation.id;
|
79
|
+
if (element == null || !element.isFunction()) {
|
80
|
+
result.setFailure();
|
81
|
+
}
|
82
|
+
else {
|
83
|
+
try {
|
84
|
+
const func = element.func;
|
85
|
+
result.setResult(func(invocation.arguments));
|
86
|
+
result.setSuccess();
|
87
|
+
}
|
88
|
+
catch (e) {
|
89
|
+
(_a = this.logger) === null || _a === void 0 ? void 0 : _a.log(ember_server_logs_1.ServerLogs.FUNCTION_ERROR(e));
|
90
|
+
result.setFailure();
|
91
|
+
}
|
92
|
+
}
|
93
|
+
const res = new tree_node_1.TreeNode();
|
94
|
+
res.setResult(result);
|
95
|
+
client.socket.queueMessage(res);
|
96
|
+
}
|
97
|
+
handleSubscribe(client, element) {
|
98
|
+
this.server.subscribe(client.socket, element);
|
99
|
+
}
|
100
|
+
handleUnSubscribe(client, element) {
|
101
|
+
this.server.unsubscribe(client.socket, element);
|
102
|
+
}
|
103
|
+
}
|
104
|
+
exports.ElementHandlers = ElementHandlers;
|
105
|
+
//# sourceMappingURL=element-handlers.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"element-handlers.js","sourceRoot":"","sources":["../../src/server/element-handlers.ts"],"names":[],"mappings":";;AAAA,+DAAqD;AAGrD,mDAAmH;AAEnH,mDAA+C;AAE/C,4CAAsD;AAEtD,mEAA+D;AAE/D,2DAAiD;AAGjD,MAAa,eAAe;IACxB,YAAoB,OAA6B,EAAU,OAAuB;QAA9D,YAAO,GAAP,OAAO,CAAsB;QAAU,YAAO,GAAP,OAAO,CAAgB;IAClF,CAAC;IAED,IAAc,MAAM;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,IAAc,MAAM;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,aAAa,CAAC,MAAqB,EAAE,OAAiB,EAAE,GAAY;QAChE,IAAI,UAAU,GAAG,MAAM,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE;YACnB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YAClE,UAAU,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;SACjI;QACD,MAAM,GAAG,GAAG,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;QAC5F,QAAQ,GAAG,CAAC,MAAM,EAAE;YAChB,KAAK,gCAAoB;gBACrB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,kCAAY,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;gBACzF,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACzC,MAAM;YACV,KAAK,6BAAiB;gBAClB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,kCAAY,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;gBACtF,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACtC,MAAM;YACV,KAAK,+BAAmB;gBACpB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,kCAAY,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;gBACxF,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACxC,MAAM;YACV,KAAK,0BAAc;gBACf,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,kCAAY,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;gBACnF,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,OAAmB,CAAC,CAAC;gBAC/D,MAAM;YACV;gBACI,MAAM,IAAI,4BAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;SACjD;IACL,CAAC;IAED,kBAAkB,CAAC,MAAqB,EAAE,OAAiB;;QACvD,IAAI,MAAM,IAAI,IAAI,EAAE;YAChB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;gBAC7C,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE;gBAGvB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;aACjD;iBAAM,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE;gBACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;gBACvC,IAAI,QAAQ,IAAI,IAAI,EAAE;oBAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAC1B,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;4BACzC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE;4BACrB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,KAAiB,CAAC,CAAC;yBAC3D;qBACJ;iBACJ;aACJ;YAED,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;YACzD,MAAA,IAAI,CAAC,MAAM,0CAAE,GAAG,CAAC,8BAAU,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;YACnD,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;SACnC;aAAM;YACH,MAAA,IAAI,CAAC,MAAM,0CAAE,GAAG,CAAC,8BAAU,CAAC,UAAU,CAAC,+BAA+B,CAAC,EAAE;SAC5E;IACL,CAAC;IAED,YAAY,CAAC,MAAqB,EAAE,UAAsB,EAAE,OAAqC;;QAC7F,MAAM,MAAM,GAAG,IAAI,oCAAgB,EAAE,CAAC;QACtC,MAAM,CAAC,YAAY,GAAG,UAAU,CAAC,EAAE,CAAC;QACpC,IAAI,OAAO,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE;YAC1C,MAAM,CAAC,UAAU,EAAE,CAAC;SACvB;aAAM;YACH,IAAI;gBACA,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBAC1B,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC7C,MAAM,CAAC,UAAU,EAAE,CAAC;aACvB;YAAC,OAAO,CAAC,EAAE;gBACR,MAAA,IAAI,CAAC,MAAM,0CAAE,GAAG,CAAC,8BAAU,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;gBAC/C,MAAM,CAAC,UAAU,EAAE,CAAC;aACvB;SACJ;QACD,MAAM,GAAG,GAAG,IAAI,oBAAQ,EAAE,CAAC;QAC3B,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACtB,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,eAAe,CAAC,MAAqB,EAAE,OAAiB;QACpD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,iBAAiB,CAAC,MAAqB,EAAE,OAAiB;QACtD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;CACJ;AAhGD,0CAgGC"}
|
@@ -0,0 +1,84 @@
|
|
1
|
+
/// <reference types="node" />
|
2
|
+
import { EventEmitter } from 'events';
|
3
|
+
import { S101Socket, SocketStatsInterface } from '../socket/s101.socket';
|
4
|
+
import { LoggingService, LogLevel } from '../logging/logging.service';
|
5
|
+
import { MatrixOperation } from '../common/matrix/matrix-operation';
|
6
|
+
import { TreeNode } from '../common/tree-node';
|
7
|
+
import { ClientRequest } from './client-request';
|
8
|
+
import { Matrix } from '../common/matrix/matrix';
|
9
|
+
import { MatrixConnection } from '../common/matrix/matrix-connection';
|
10
|
+
import { Parameter } from '../common/parameter';
|
11
|
+
import { QualifiedParameter } from '../common/qualified-parameter';
|
12
|
+
export interface EmberServerOptions {
|
13
|
+
host: string;
|
14
|
+
port?: number;
|
15
|
+
tree: TreeNode;
|
16
|
+
logger?: LoggingService;
|
17
|
+
}
|
18
|
+
export interface ClientInfo {
|
19
|
+
remoteAddress: string;
|
20
|
+
stats: SocketStatsInterface;
|
21
|
+
}
|
22
|
+
export interface ClientErrorEventData {
|
23
|
+
remoteAddress: string;
|
24
|
+
error: Error;
|
25
|
+
}
|
26
|
+
export declare enum EmberServerEvent {
|
27
|
+
LISTENING = "listening",
|
28
|
+
REQUEST = "request",
|
29
|
+
ERROR = "error",
|
30
|
+
DISCONNECT = "disconnect",
|
31
|
+
CLIENT_ERROR = "clientError",
|
32
|
+
CONNECTION = "connection",
|
33
|
+
DISCONNECTED = "disconnected",
|
34
|
+
EVENT = "event",
|
35
|
+
MATRIX_CHANGE = "matrix-change",
|
36
|
+
MATRIX_CONNECT = "matrix-connect",
|
37
|
+
MATRIX_DISCONNECT = "matrix-disconnect",
|
38
|
+
VALUE_CHANGE = "value-change"
|
39
|
+
}
|
40
|
+
export declare class EmberServer extends EventEmitter {
|
41
|
+
options: EmberServerOptions;
|
42
|
+
get host(): string;
|
43
|
+
get port(): number;
|
44
|
+
get tree(): TreeNode;
|
45
|
+
get connectedClientsCount(): number;
|
46
|
+
private get logger();
|
47
|
+
static readonly TIMEOUT_MS = 2000;
|
48
|
+
private _host;
|
49
|
+
private _port;
|
50
|
+
private _tree;
|
51
|
+
private _logger?;
|
52
|
+
private server;
|
53
|
+
private subscribers;
|
54
|
+
private clients;
|
55
|
+
private _handlers;
|
56
|
+
constructor(options: EmberServerOptions);
|
57
|
+
static validateMatrixOperation(matrix: Matrix, target: number, sources: number[]): void;
|
58
|
+
static doMatrixOperation(server: EmberServer, path: string, target: number, sources: number[], operation: MatrixOperation): void;
|
59
|
+
static createTreeFromJSON(obj: object, logger?: LoggingService): TreeNode;
|
60
|
+
getConnectedClients(): ClientInfo[];
|
61
|
+
closeAsync(): Promise<void>;
|
62
|
+
listen(): Promise<void>;
|
63
|
+
matrixConnect(path: string, target: number, sources: number[]): void;
|
64
|
+
matrixDisconnect(path: string, target: number, sources: number[]): void;
|
65
|
+
matrixSet(path: string, target: number, sources: number[]): void;
|
66
|
+
preMatrixConnect(matrix: Matrix, connection: MatrixConnection, res: Matrix, client: ClientRequest, response: boolean): void;
|
67
|
+
setLogLevel(logLevel: LogLevel): void;
|
68
|
+
setValue(parameter: Parameter | QualifiedParameter, value: string | number | Buffer | boolean, origin?: S101Socket): Promise<void>;
|
69
|
+
toJSON(): any;
|
70
|
+
private applyMatrixConnect;
|
71
|
+
private getDisconnectSource;
|
72
|
+
private disconnectMatrixTarget;
|
73
|
+
private disconnectSources;
|
74
|
+
private applyMatrixOneToNDisconnect;
|
75
|
+
private generateEvent;
|
76
|
+
private createResponse;
|
77
|
+
private createQualifiedResponse;
|
78
|
+
private handleError;
|
79
|
+
private handleRoot;
|
80
|
+
private subscribe;
|
81
|
+
private toServerInterface;
|
82
|
+
private unsubscribe;
|
83
|
+
private updateSubscribers;
|
84
|
+
}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
export declare enum Types {
|
2
|
+
UNKNOWN = 0,
|
3
|
+
SETVALUE = 1,
|
4
|
+
GETDIRECTORY = 2,
|
5
|
+
SUBSCRIBE = 3,
|
6
|
+
UNSUBSCRIBE = 4,
|
7
|
+
INVOKE = 5,
|
8
|
+
MATRIX_CONNECTION = 6
|
9
|
+
}
|
10
|
+
export declare class ServerEvents {
|
11
|
+
private txt;
|
12
|
+
readonly type: Types;
|
13
|
+
get timestamp(): number;
|
14
|
+
private _timestamp;
|
15
|
+
constructor(txt: string, type?: Types);
|
16
|
+
static SETVALUE(identifier: string, path: string, src: string): ServerEvents;
|
17
|
+
static GETDIRECTORY(identifier: string, path: string, src: string): ServerEvents;
|
18
|
+
static SUBSCRIBE(identifier: string, path: string, src: string): ServerEvents;
|
19
|
+
static UNSUBSCRIBE(identifier: string, path: string, src: string): ServerEvents;
|
20
|
+
static INVOKE(identifier: string, path: string, src: string): ServerEvents;
|
21
|
+
static MATRIX_CONNECTION(identifier: string, path: string, src: string, target: number, sources: number[]): ServerEvents;
|
22
|
+
toString(): string;
|
23
|
+
}
|
@@ -0,0 +1,46 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
var Types;
|
4
|
+
(function (Types) {
|
5
|
+
Types[Types["UNKNOWN"] = 0] = "UNKNOWN";
|
6
|
+
Types[Types["SETVALUE"] = 1] = "SETVALUE";
|
7
|
+
Types[Types["GETDIRECTORY"] = 2] = "GETDIRECTORY";
|
8
|
+
Types[Types["SUBSCRIBE"] = 3] = "SUBSCRIBE";
|
9
|
+
Types[Types["UNSUBSCRIBE"] = 4] = "UNSUBSCRIBE";
|
10
|
+
Types[Types["INVOKE"] = 5] = "INVOKE";
|
11
|
+
Types[Types["MATRIX_CONNECTION"] = 6] = "MATRIX_CONNECTION";
|
12
|
+
})(Types = exports.Types || (exports.Types = {}));
|
13
|
+
class ServerEvents {
|
14
|
+
constructor(txt, type = Types.UNKNOWN) {
|
15
|
+
this.txt = txt;
|
16
|
+
this.type = type;
|
17
|
+
this._timestamp = Date.now();
|
18
|
+
}
|
19
|
+
get timestamp() {
|
20
|
+
return this._timestamp;
|
21
|
+
}
|
22
|
+
static SETVALUE(identifier, path, src) {
|
23
|
+
return new ServerEvents(`set value for ${identifier}(path: ${path}) from ${src}`, Types.SETVALUE);
|
24
|
+
}
|
25
|
+
static GETDIRECTORY(identifier, path, src) {
|
26
|
+
return new ServerEvents(`getdirectory to ${identifier}(path: ${path}) from ${src}`, Types.GETDIRECTORY);
|
27
|
+
}
|
28
|
+
static SUBSCRIBE(identifier, path, src) {
|
29
|
+
return new ServerEvents(`subscribe to ${identifier}(path: ${path}) from ${src}`, Types.SUBSCRIBE);
|
30
|
+
}
|
31
|
+
static UNSUBSCRIBE(identifier, path, src) {
|
32
|
+
return new ServerEvents(`unsubscribe to ${identifier}(path: ${path}) from ${src}`, Types.UNSUBSCRIBE);
|
33
|
+
}
|
34
|
+
static INVOKE(identifier, path, src) {
|
35
|
+
return new ServerEvents(`invoke to ${identifier}(path: ${path}) from ${src}`, Types.INVOKE);
|
36
|
+
}
|
37
|
+
static MATRIX_CONNECTION(identifier, path, src, target, sources) {
|
38
|
+
const sourcesInfo = sources == null || sources.length === 0 ? 'empty' : sources.toString();
|
39
|
+
return new ServerEvents(`Matrix connection to ${identifier}(path: ${path}) target ${target} connections: ${sourcesInfo} from ${src}`, Types.MATRIX_CONNECTION);
|
40
|
+
}
|
41
|
+
toString() {
|
42
|
+
return this.txt;
|
43
|
+
}
|
44
|
+
}
|
45
|
+
exports.ServerEvents = ServerEvents;
|
46
|
+
//# sourceMappingURL=ember-server.events.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ember-server.events.js","sourceRoot":"","sources":["../../src/server/ember-server.events.ts"],"names":[],"mappings":";;AAAA,IAAY,KAQX;AARD,WAAY,KAAK;IACb,uCAAW,CAAA;IACX,yCAAQ,CAAA;IACR,iDAAY,CAAA;IACZ,2CAAS,CAAA;IACT,+CAAW,CAAA;IACX,qCAAM,CAAA;IACN,2DAAiB,CAAA;AACrB,CAAC,EARW,KAAK,GAAL,aAAK,KAAL,aAAK,QAQhB;AAED,MAAa,YAAY;IAMrB,YAAoB,GAAW,EAAW,OAAa,KAAK,CAAC,OAAO;QAAhD,QAAG,GAAH,GAAG,CAAQ;QAAW,SAAI,GAAJ,IAAI,CAAsB;QAChE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACjC,CAAC;IAND,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAMD,MAAM,CAAC,QAAQ,CAAC,UAAkB,EAAE,IAAY,EAAE,GAAW;QACzD,OAAO,IAAI,YAAY,CAAC,iBAAiB,UAAU,UAAU,IAAI,UAAU,GAAG,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtG,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,UAAkB,EAAE,IAAY,EAAE,GAAW;QAC7D,OAAO,IAAI,YAAY,CAAC,mBAAmB,UAAU,UAAU,IAAI,UAAU,GAAG,EAAE,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAC5G,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,UAAkB,EAAE,IAAY,EAAE,GAAW;QAC1D,OAAO,IAAI,YAAY,CAAC,gBAAgB,UAAU,UAAU,IAAI,UAAU,GAAG,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACtG,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,UAAkB,EAAE,IAAY,EAAE,GAAW;QAC5D,OAAO,IAAI,YAAY,CAAC,kBAAkB,UAAU,UAAU,IAAI,UAAU,GAAG,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IAC1G,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,UAAkB,EAAE,IAAY,EAAE,GAAW;QACvD,OAAO,IAAI,YAAY,CAAC,aAAa,UAAU,UAAU,IAAI,UAAU,GAAG,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAChG,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,UAAkB,EAAE,IAAY,EAAE,GAAW,EAAE,MAAc,EAAE,OAAiB;QACrG,MAAM,WAAW,GAAG,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC3F,OAAO,IAAI,YAAY,CACnB,wBAAwB,UAAU,UAAU,IAAI,YAAY,MAAM,iBAAiB,WAAW,SAAS,GAAG,EAAE,EAC5G,KAAK,CAAC,iBAAiB,CAC1B,CAAC;IACN,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;CACJ;AAzCD,oCAyCC"}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
/// <reference types="node" />
|
2
|
+
import { S101Socket } from '../socket/s101.socket';
|
3
|
+
import { ServerEvents } from './ember-server.events';
|
4
|
+
import { TreeNode } from '../common/tree-node';
|
5
|
+
import { MatrixConnection } from '../common/matrix/matrix-connection';
|
6
|
+
import { Matrix } from '../common/matrix/matrix';
|
7
|
+
import { ClientRequest } from './client-request';
|
8
|
+
import { Command } from '../common/command';
|
9
|
+
export interface EmberServerInterface {
|
10
|
+
tree: TreeNode;
|
11
|
+
applyMatrixConnect: (matrix: Matrix, connection: MatrixConnection, conResult: MatrixConnection, client: ClientRequest, response: boolean) => void;
|
12
|
+
applyMatrixOneToNDisconnect: (matrix: Matrix, connection: MatrixConnection, res: Matrix, client: ClientRequest, response: boolean) => void;
|
13
|
+
disconnectMatrixTarget: (matrix: Matrix, targetID: number, sources: number[], client: ClientRequest, response: boolean) => MatrixConnection;
|
14
|
+
disconnectSources: (matrix: Matrix, target: number, sources: number[], client: ClientRequest, response: boolean) => MatrixConnection;
|
15
|
+
emit: (x: string, y: any) => void;
|
16
|
+
generateEvent: (event: ServerEvents) => void;
|
17
|
+
createResponse: (element: TreeNode) => TreeNode;
|
18
|
+
getDisconnectSource: (matrix: Matrix, targetID: number) => number;
|
19
|
+
handleError: (client: ClientRequest, error: Error, node?: TreeNode | Command) => void;
|
20
|
+
setValue: (element: TreeNode, value: string | number | Buffer | boolean, origin?: S101Socket, key?: string) => Promise<void>;
|
21
|
+
subscribe: (client: S101Socket, element: TreeNode) => void;
|
22
|
+
createQualifiedResponse: (element: TreeNode) => TreeNode;
|
23
|
+
preMatrixConnect: (matrix: Matrix, connection: MatrixConnection, res: Matrix, client: ClientRequest, response: boolean) => void;
|
24
|
+
updateSubscribers: (path: string, response: TreeNode, origin?: S101Socket) => void;
|
25
|
+
unsubscribe: (client: S101Socket, element: TreeNode) => void;
|
26
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ember-server.interface.js","sourceRoot":"","sources":["../../src/server/ember-server.interface.ts"],"names":[],"mappings":""}
|