@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.
Files changed (210) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +4 -0
  3. package/lib/ber.d.ts +42 -0
  4. package/lib/ber.js +237 -0
  5. package/lib/ber.js.map +1 -0
  6. package/lib/client/ember-client-logs.d.ts +4 -0
  7. package/lib/client/ember-client-logs.js +214 -0
  8. package/lib/client/ember-client-logs.js.map +1 -0
  9. package/lib/client/ember-client.d.ts +62 -0
  10. package/lib/client/ember-client.events.d.ts +8 -0
  11. package/lib/client/ember-client.events.js +12 -0
  12. package/lib/client/ember-client.events.js.map +1 -0
  13. package/lib/client/ember-client.js +678 -0
  14. package/lib/client/ember-client.js.map +1 -0
  15. package/lib/client/ember-client.request.d.ts +12 -0
  16. package/lib/client/ember-client.request.js +22 -0
  17. package/lib/client/ember-client.request.js.map +1 -0
  18. package/lib/common/command.d.ts +37 -0
  19. package/lib/common/command.js +95 -0
  20. package/lib/common/command.js.map +1 -0
  21. package/lib/common/common.d.ts +71 -0
  22. package/lib/common/common.js +310 -0
  23. package/lib/common/common.js.map +1 -0
  24. package/lib/common/constants.d.ts +10 -0
  25. package/lib/common/constants.js +13 -0
  26. package/lib/common/constants.js.map +1 -0
  27. package/lib/common/element.base.d.ts +13 -0
  28. package/lib/common/element.base.js +36 -0
  29. package/lib/common/element.base.js.map +1 -0
  30. package/lib/common/element.d.ts +6 -0
  31. package/lib/common/element.js +23 -0
  32. package/lib/common/element.js.map +1 -0
  33. package/lib/common/function/function-argument.d.ts +26 -0
  34. package/lib/common/function/function-argument.js +75 -0
  35. package/lib/common/function/function-argument.js.map +1 -0
  36. package/lib/common/function/function-contents.d.ts +30 -0
  37. package/lib/common/function/function-contents.js +138 -0
  38. package/lib/common/function/function-contents.js.map +1 -0
  39. package/lib/common/function/function.d.ts +31 -0
  40. package/lib/common/function/function.js +75 -0
  41. package/lib/common/function/function.js.map +1 -0
  42. package/lib/common/function/qualified-function.d.ts +19 -0
  43. package/lib/common/function/qualified-function.js +73 -0
  44. package/lib/common/function/qualified-function.js.map +1 -0
  45. package/lib/common/invocation-result.d.ts +23 -0
  46. package/lib/common/invocation-result.js +101 -0
  47. package/lib/common/invocation-result.js.map +1 -0
  48. package/lib/common/invocation.d.ts +20 -0
  49. package/lib/common/invocation.js +73 -0
  50. package/lib/common/invocation.js.map +1 -0
  51. package/lib/common/label.d.ts +14 -0
  52. package/lib/common/label.js +55 -0
  53. package/lib/common/label.js.map +1 -0
  54. package/lib/common/matrix/matrix-connection.d.ts +26 -0
  55. package/lib/common/matrix/matrix-connection.js +123 -0
  56. package/lib/common/matrix/matrix-connection.js.map +1 -0
  57. package/lib/common/matrix/matrix-contents.d.ts +38 -0
  58. package/lib/common/matrix/matrix-contents.js +173 -0
  59. package/lib/common/matrix/matrix-contents.js.map +1 -0
  60. package/lib/common/matrix/matrix-disposition.d.ts +9 -0
  61. package/lib/common/matrix/matrix-disposition.js +14 -0
  62. package/lib/common/matrix/matrix-disposition.js.map +1 -0
  63. package/lib/common/matrix/matrix-mode.d.ts +8 -0
  64. package/lib/common/matrix/matrix-mode.js +23 -0
  65. package/lib/common/matrix/matrix-mode.js.map +1 -0
  66. package/lib/common/matrix/matrix-node.d.ts +13 -0
  67. package/lib/common/matrix/matrix-node.js +90 -0
  68. package/lib/common/matrix/matrix-node.js.map +1 -0
  69. package/lib/common/matrix/matrix-operation.d.ts +8 -0
  70. package/lib/common/matrix/matrix-operation.js +13 -0
  71. package/lib/common/matrix/matrix-operation.js.map +1 -0
  72. package/lib/common/matrix/matrix-type.d.ts +9 -0
  73. package/lib/common/matrix/matrix-type.js +24 -0
  74. package/lib/common/matrix/matrix-type.js.map +1 -0
  75. package/lib/common/matrix/matrix.d.ts +91 -0
  76. package/lib/common/matrix/matrix.js +429 -0
  77. package/lib/common/matrix/matrix.js.map +1 -0
  78. package/lib/common/matrix/qualified-matrix.d.ts +17 -0
  79. package/lib/common/matrix/qualified-matrix.js +97 -0
  80. package/lib/common/matrix/qualified-matrix.js.map +1 -0
  81. package/lib/common/node-contents.d.ts +24 -0
  82. package/lib/common/node-contents.js +87 -0
  83. package/lib/common/node-contents.js.map +1 -0
  84. package/lib/common/node.d.ts +27 -0
  85. package/lib/common/node.js +67 -0
  86. package/lib/common/node.js.map +1 -0
  87. package/lib/common/parameter-access.d.ts +10 -0
  88. package/lib/common/parameter-access.js +25 -0
  89. package/lib/common/parameter-access.js.map +1 -0
  90. package/lib/common/parameter-contents.d.ts +55 -0
  91. package/lib/common/parameter-contents.js +167 -0
  92. package/lib/common/parameter-contents.js.map +1 -0
  93. package/lib/common/parameter-type.d.ts +15 -0
  94. package/lib/common/parameter-type.js +54 -0
  95. package/lib/common/parameter-type.js.map +1 -0
  96. package/lib/common/parameter.d.ts +76 -0
  97. package/lib/common/parameter.js +174 -0
  98. package/lib/common/parameter.js.map +1 -0
  99. package/lib/common/qualified-element.d.ts +10 -0
  100. package/lib/common/qualified-element.js +36 -0
  101. package/lib/common/qualified-element.js.map +1 -0
  102. package/lib/common/qualified-node.d.ts +16 -0
  103. package/lib/common/qualified-node.js +67 -0
  104. package/lib/common/qualified-node.js.map +1 -0
  105. package/lib/common/qualified-parameter.d.ts +52 -0
  106. package/lib/common/qualified-parameter.js +177 -0
  107. package/lib/common/qualified-parameter.js.map +1 -0
  108. package/lib/common/qualified-template.d.ts +17 -0
  109. package/lib/common/qualified-template.js +58 -0
  110. package/lib/common/qualified-template.js.map +1 -0
  111. package/lib/common/stream/stream-collection.d.ts +20 -0
  112. package/lib/common/stream/stream-collection.js +57 -0
  113. package/lib/common/stream/stream-collection.js.map +1 -0
  114. package/lib/common/stream/stream-description.d.ts +15 -0
  115. package/lib/common/stream/stream-description.js +45 -0
  116. package/lib/common/stream/stream-description.js.map +1 -0
  117. package/lib/common/stream/stream-entry.d.ts +15 -0
  118. package/lib/common/stream/stream-entry.js +49 -0
  119. package/lib/common/stream/stream-entry.js.map +1 -0
  120. package/lib/common/stream/stream-format.d.ts +23 -0
  121. package/lib/common/stream/stream-format.js +28 -0
  122. package/lib/common/stream/stream-format.js.map +1 -0
  123. package/lib/common/string-integer-collection.d.ts +12 -0
  124. package/lib/common/string-integer-collection.js +51 -0
  125. package/lib/common/string-integer-collection.js.map +1 -0
  126. package/lib/common/string-integer-pair.d.ts +18 -0
  127. package/lib/common/string-integer-pair.js +67 -0
  128. package/lib/common/string-integer-pair.js.map +1 -0
  129. package/lib/common/template-element.d.ts +12 -0
  130. package/lib/common/template-element.js +53 -0
  131. package/lib/common/template-element.js.map +1 -0
  132. package/lib/common/template.d.ts +16 -0
  133. package/lib/common/template.js +58 -0
  134. package/lib/common/template.js.map +1 -0
  135. package/lib/common/tree-node.d.ts +85 -0
  136. package/lib/common/tree-node.js +461 -0
  137. package/lib/common/tree-node.js.map +1 -0
  138. package/lib/error/errors.d.ts +57 -0
  139. package/lib/error/errors.js +150 -0
  140. package/lib/error/errors.js.map +1 -0
  141. package/lib/fixture/utils.d.ts +7 -0
  142. package/lib/fixture/utils.js +185 -0
  143. package/lib/fixture/utils.js.map +1 -0
  144. package/lib/index.d.ts +41 -0
  145. package/lib/index.js +15 -0
  146. package/lib/index.js.map +1 -0
  147. package/lib/logging/logging.service.d.ts +45 -0
  148. package/lib/logging/logging.service.js +110 -0
  149. package/lib/logging/logging.service.js.map +1 -0
  150. package/lib/server/client-request.d.ts +9 -0
  151. package/lib/server/client-request.js +10 -0
  152. package/lib/server/client-request.js.map +1 -0
  153. package/lib/server/element-handlers.d.ts +20 -0
  154. package/lib/server/element-handlers.js +105 -0
  155. package/lib/server/element-handlers.js.map +1 -0
  156. package/lib/server/ember-server.d.ts +84 -0
  157. package/lib/server/ember-server.events.d.ts +23 -0
  158. package/lib/server/ember-server.events.js +46 -0
  159. package/lib/server/ember-server.events.js.map +1 -0
  160. package/lib/server/ember-server.interface.d.ts +26 -0
  161. package/lib/server/ember-server.interface.js +3 -0
  162. package/lib/server/ember-server.interface.js.map +1 -0
  163. package/lib/server/ember-server.js +422 -0
  164. package/lib/server/ember-server.js.map +1 -0
  165. package/lib/server/ember-server.logs.d.ts +4 -0
  166. package/lib/server/ember-server.logs.js +274 -0
  167. package/lib/server/ember-server.logs.js.map +1 -0
  168. package/lib/server/json.parser.d.ts +13 -0
  169. package/lib/server/json.parser.js +209 -0
  170. package/lib/server/json.parser.js.map +1 -0
  171. package/lib/server/matrix.handlers.d.ts +10 -0
  172. package/lib/server/matrix.handlers.js +103 -0
  173. package/lib/server/matrix.handlers.js.map +1 -0
  174. package/lib/server/node.handlers.d.ts +12 -0
  175. package/lib/server/node.handlers.js +85 -0
  176. package/lib/server/node.handlers.js.map +1 -0
  177. package/lib/server/qualified.handlers.d.ts +15 -0
  178. package/lib/server/qualified.handlers.js +54 -0
  179. package/lib/server/qualified.handlers.js.map +1 -0
  180. package/lib/socket/s101.client.d.ts +17 -0
  181. package/lib/socket/s101.client.js +53 -0
  182. package/lib/socket/s101.client.js.map +1 -0
  183. package/lib/socket/s101.codec.d.ts +32 -0
  184. package/lib/socket/s101.codec.js +301 -0
  185. package/lib/socket/s101.codec.js.map +1 -0
  186. package/lib/socket/s101.packet-stats.socket.d.ts +31 -0
  187. package/lib/socket/s101.packet-stats.socket.js +74 -0
  188. package/lib/socket/s101.packet-stats.socket.js.map +1 -0
  189. package/lib/socket/s101.server.d.ts +28 -0
  190. package/lib/socket/s101.server.js +87 -0
  191. package/lib/socket/s101.server.js.map +1 -0
  192. package/lib/socket/s101.socket.d.ts +75 -0
  193. package/lib/socket/s101.socket.js +300 -0
  194. package/lib/socket/s101.socket.js.map +1 -0
  195. package/lib/socket/stats-collector.d.ts +19 -0
  196. package/lib/socket/stats-collector.js +63 -0
  197. package/lib/socket/stats-collector.js.map +1 -0
  198. package/lib/tools/debug.d.ts +2 -0
  199. package/lib/tools/debug.js +21 -0
  200. package/lib/tools/debug.js.map +1 -0
  201. package/lib/tools/jsontree.d.ts +1 -0
  202. package/lib/tools/jsontree.js +36 -0
  203. package/lib/tools/jsontree.js.map +1 -0
  204. package/lib/tools/monitoring-client.d.ts +2 -0
  205. package/lib/tools/monitoring-client.js +186 -0
  206. package/lib/tools/monitoring-client.js.map +1 -0
  207. package/lib/tools/serve.d.ts +1 -0
  208. package/lib/tools/serve.js +129 -0
  209. package/lib/tools/serve.js.map +1 -0
  210. 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":"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"}
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ember-server.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ember-server.interface.js","sourceRoot":"","sources":["../../src/server/ember-server.interface.ts"],"names":[],"mappings":""}