@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,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const ber_1 = require("../ber");
4
+ const parameter_type_1 = require("./parameter-type");
5
+ const function_argument_1 = require("./function/function-argument");
6
+ const errors_1 = require("../error/errors");
7
+ const element_base_1 = require("./element.base");
8
+ class InvocationResult extends element_base_1.ElementBase {
9
+ constructor(invocationId, success, result) {
10
+ super();
11
+ this.invocationId = invocationId;
12
+ this.success = success;
13
+ this.result = result;
14
+ }
15
+ static decode(ber) {
16
+ const invocationResult = new InvocationResult();
17
+ ber = ber.getSequence(InvocationResult.BERID);
18
+ while (ber.remain > 0) {
19
+ let tag = ber.peek();
20
+ const seq = ber.getSequence(tag);
21
+ if (tag === ber_1.CONTEXT(0)) {
22
+ invocationResult.invocationId = seq.readInt();
23
+ }
24
+ else if (tag === ber_1.CONTEXT(1)) {
25
+ invocationResult.success = seq.readBoolean();
26
+ }
27
+ else if (tag === ber_1.CONTEXT(2)) {
28
+ invocationResult.result = [];
29
+ const res = seq.getSequence(ber_1.EMBER_SEQUENCE);
30
+ while (res.remain > 0) {
31
+ tag = res.peek();
32
+ if (tag === ber_1.CONTEXT(0)) {
33
+ const resTag = res.getSequence(ber_1.CONTEXT(0));
34
+ tag = resTag.peek();
35
+ invocationResult.result.push(new function_argument_1.FunctionArgument(parameter_type_1.ParameterTypeFromBERTAG(tag), resTag.readValue()));
36
+ }
37
+ else {
38
+ throw new errors_1.UnimplementedEmberTypeError(tag);
39
+ }
40
+ }
41
+ continue;
42
+ }
43
+ else {
44
+ throw new errors_1.UnimplementedEmberTypeError(tag);
45
+ }
46
+ }
47
+ return invocationResult;
48
+ }
49
+ encode(ber) {
50
+ ber.startSequence(InvocationResult.BERID);
51
+ if (this.invocationId != null) {
52
+ ber.startSequence(ber_1.CONTEXT(0));
53
+ ber.writeInt(this.invocationId);
54
+ ber.endSequence();
55
+ }
56
+ if (this.success != null) {
57
+ ber.startSequence(ber_1.CONTEXT(1));
58
+ ber.writeBoolean(this.success);
59
+ ber.endSequence();
60
+ }
61
+ if (this.result != null && this.result.length) {
62
+ ber.startSequence(ber_1.CONTEXT(2));
63
+ ber.startSequence(ber_1.EMBER_SEQUENCE);
64
+ for (let i = 0; i < this.result.length; i++) {
65
+ ber.startSequence(ber_1.CONTEXT(0));
66
+ ber.writeValue(this.result[i].value, parameter_type_1.ParameterTypeToBERTAG(this.result[i].type));
67
+ ber.endSequence();
68
+ }
69
+ ber.endSequence();
70
+ ber.endSequence();
71
+ }
72
+ ber.endSequence();
73
+ }
74
+ isInvocationResult() {
75
+ return true;
76
+ }
77
+ setFailure() {
78
+ this.success = false;
79
+ }
80
+ setSuccess() {
81
+ this.success = true;
82
+ }
83
+ setResult(result) {
84
+ this.result = result;
85
+ }
86
+ toJSON() {
87
+ return {
88
+ invocationId: this.invocationId,
89
+ success: this.success,
90
+ result: this.result == null ? [] : this.result.map(r => r.toJSON())
91
+ };
92
+ }
93
+ toQualified() {
94
+ return this;
95
+ }
96
+ static get BERID() {
97
+ return ber_1.APPLICATION(23);
98
+ }
99
+ }
100
+ exports.InvocationResult = InvocationResult;
101
+ //# sourceMappingURL=invocation-result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invocation-result.js","sourceRoot":"","sources":["../../src/common/invocation-result.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { ExtendedReader as Reader, ExtendedWriter as Writer } from '../ber';
2
+ import { FunctionArgument, IFunctionArgument, JFunctionArgument } from './function/function-argument';
3
+ export interface IInvocation {
4
+ id: number;
5
+ arguments: IFunctionArgument[];
6
+ }
7
+ export interface JInvocation {
8
+ id: number;
9
+ arguments: JFunctionArgument[];
10
+ }
11
+ export declare class Invocation {
12
+ id?: number;
13
+ arguments: FunctionArgument[];
14
+ constructor(id?: number, args?: FunctionArgument[]);
15
+ static decode(ber: Reader): Invocation;
16
+ static newInvocationID(): number;
17
+ encode(ber: Writer): void;
18
+ toJSON(): JInvocation;
19
+ static get BERID(): number;
20
+ }
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const ber_1 = require("../ber");
4
+ const function_argument_1 = require("./function/function-argument");
5
+ const parameter_type_1 = require("./parameter-type");
6
+ const errors_1 = require("../error/errors");
7
+ let _id = 1;
8
+ class Invocation {
9
+ constructor(id, args) {
10
+ this.id = id;
11
+ this.arguments = args;
12
+ }
13
+ static decode(ber) {
14
+ const invocation = new Invocation();
15
+ ber = ber.getSequence(Invocation.BERID);
16
+ while (ber.remain > 0) {
17
+ let tag = ber.peek();
18
+ let seq = ber.getSequence(tag);
19
+ if (tag === ber_1.CONTEXT(0)) {
20
+ invocation.id = seq.readInt();
21
+ }
22
+ else if (tag === ber_1.CONTEXT(1)) {
23
+ invocation.arguments = [];
24
+ seq = seq.getSequence(ber_1.EMBER_SEQUENCE);
25
+ while (seq.remain > 0) {
26
+ const dataSeq = seq.getSequence(ber_1.CONTEXT(0));
27
+ tag = dataSeq.peek();
28
+ const val = dataSeq.readValue();
29
+ invocation.arguments.push(new function_argument_1.FunctionArgument(parameter_type_1.ParameterTypeFromBERTAG(tag), val));
30
+ }
31
+ }
32
+ else {
33
+ throw new errors_1.UnimplementedEmberTypeError(tag);
34
+ }
35
+ }
36
+ return invocation;
37
+ }
38
+ static newInvocationID() {
39
+ return _id++;
40
+ }
41
+ encode(ber) {
42
+ ber.startSequence(Invocation.BERID);
43
+ if (this.id != null) {
44
+ ber.startSequence(ber_1.CONTEXT(0));
45
+ ber.writeInt(this.id);
46
+ ber.endSequence();
47
+ }
48
+ if (this.arguments != null) {
49
+ ber.startSequence(ber_1.CONTEXT(1));
50
+ ber.startSequence(ber_1.EMBER_SEQUENCE);
51
+ for (let i = 0; i < this.arguments.length; i++) {
52
+ ber.startSequence(ber_1.CONTEXT(0));
53
+ ber.writeValue(this.arguments[i].value, parameter_type_1.ParameterTypeToBERTAG(this.arguments[i].type));
54
+ ber.endSequence();
55
+ }
56
+ ber.endSequence();
57
+ ber.endSequence();
58
+ }
59
+ ber.endSequence();
60
+ }
61
+ toJSON() {
62
+ var _a;
63
+ return {
64
+ id: this.id,
65
+ arguments: (_a = this.arguments) === null || _a === void 0 ? void 0 : _a.map(a => a.toJSON())
66
+ };
67
+ }
68
+ static get BERID() {
69
+ return ber_1.APPLICATION(22);
70
+ }
71
+ }
72
+ exports.Invocation = Invocation;
73
+ //# sourceMappingURL=invocation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invocation.js","sourceRoot":"","sources":["../../src/common/invocation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { ExtendedReader as Reader, ExtendedWriter as Writer } from '../ber';
2
+ export interface LabelInterface {
3
+ basePath: string;
4
+ description: string;
5
+ }
6
+ export declare class Label {
7
+ basePath: string;
8
+ description: string;
9
+ static get BERID(): number;
10
+ constructor(basePath: string, description: string);
11
+ static decode(ber: Reader): Label;
12
+ encode(ber: Writer): void;
13
+ toJSON(): LabelInterface;
14
+ }
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const ber_1 = require("../ber");
4
+ const errors_1 = require("../error/errors");
5
+ class Label {
6
+ constructor(basePath, description) {
7
+ this.basePath = basePath;
8
+ this.description = description;
9
+ }
10
+ static get BERID() {
11
+ return ber_1.APPLICATION(18);
12
+ }
13
+ static decode(ber) {
14
+ const l = { basePath: '', description: '' };
15
+ ber = ber.getSequence(Label.BERID);
16
+ while (ber.remain > 0) {
17
+ const tag = ber.peek();
18
+ const seq = ber.getSequence(tag);
19
+ if (tag === ber_1.CONTEXT(0)) {
20
+ l.basePath = seq.readRelativeOID(ber_1.EMBER_RELATIVE_OID);
21
+ }
22
+ else if (tag === ber_1.CONTEXT(1)) {
23
+ l.description = seq.readString(ber_1.EMBER_STRING);
24
+ }
25
+ else {
26
+ throw new errors_1.UnimplementedEmberTypeError(tag);
27
+ }
28
+ }
29
+ return new Label(l.basePath, l.description);
30
+ }
31
+ encode(ber) {
32
+ ber.startSequence(Label.BERID);
33
+ if (this.basePath == null) {
34
+ throw new errors_1.InvalidEmberNodeError('', 'Missing label base path');
35
+ }
36
+ ber.startSequence(ber_1.CONTEXT(0));
37
+ ber.writeRelativeOID(this.basePath, ber_1.EMBER_RELATIVE_OID);
38
+ ber.endSequence();
39
+ if (this.description == null) {
40
+ throw new errors_1.InvalidEmberNodeError('', 'Missing label description');
41
+ }
42
+ ber.startSequence(ber_1.CONTEXT(1));
43
+ ber.writeString(this.description, ber_1.EMBER_STRING);
44
+ ber.endSequence();
45
+ ber.endSequence();
46
+ }
47
+ toJSON() {
48
+ return {
49
+ basePath: this.basePath,
50
+ description: this.description
51
+ };
52
+ }
53
+ }
54
+ exports.Label = Label;
55
+ //# sourceMappingURL=label.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label.js","sourceRoot":"","sources":["../../src/common/label.ts"],"names":[],"mappings":";;AAAA,gCAAoI;AACpI,4CAAqF;AAOrF,MAAa,KAAK;IAKd,YAAmB,QAAgB,EAAS,WAAmB;QAA5C,aAAQ,GAAR,QAAQ,CAAQ;QAAS,gBAAW,GAAX,WAAW,CAAQ;IAC/D,CAAC;IAJD,MAAM,KAAK,KAAK;QACZ,OAAO,iBAAW,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAID,MAAM,CAAC,MAAM,CAAC,GAAW;QACrB,MAAM,CAAC,GAAmB,EAAC,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAC,CAAC;QAE1D,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEnC,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;YACnB,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,GAAG,KAAK,aAAO,CAAC,CAAC,CAAC,EAAE;gBACpB,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC,eAAe,CAAC,wBAAkB,CAAC,CAAC;aACxD;iBAAM,IAAI,GAAG,KAAK,aAAO,CAAC,CAAC,CAAC,EAAE;gBAC3B,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC,UAAU,CAAC,kBAAY,CAAC,CAAC;aAChD;iBAAM;gBACH,MAAM,IAAI,oCAA2B,CAAC,GAAG,CAAC,CAAC;aAC9C;SACJ;QACD,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,GAAW;QACd,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;YACvB,MAAM,IAAI,8BAAqB,CAAC,EAAE,EAAE,yBAAyB,CAAC,CAAC;SAClE;QACD,GAAG,CAAC,aAAa,CAAC,aAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,wBAAkB,CAAC,CAAC;QACxD,GAAG,CAAC,WAAW,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;YAC1B,MAAM,IAAI,8BAAqB,CAAC,EAAE,EAAE,2BAA2B,CAAC,CAAC;SACpE;QACD,GAAG,CAAC,aAAa,CAAC,aAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAY,CAAC,CAAC;QAChD,GAAG,CAAC,WAAW,EAAE,CAAC;QAClB,GAAG,CAAC,WAAW,EAAE,CAAC;IACtB,CAAC;IAED,MAAM;QACF,OAAO;YACH,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;SAChC,CAAC;IACN,CAAC;CACJ;AAlDD,sBAkDC"}
@@ -0,0 +1,26 @@
1
+ import { ExtendedReader as Reader, ExtendedWriter as Writer } from '../../ber';
2
+ import { MatrixDisposition } from './matrix-disposition';
3
+ import { MatrixOperation } from './matrix-operation';
4
+ export interface JMatrixConnection {
5
+ target: number;
6
+ sources?: number[];
7
+ }
8
+ export declare class MatrixConnection {
9
+ target?: number;
10
+ sources?: number[];
11
+ operation: MatrixOperation;
12
+ disposition?: MatrixDisposition;
13
+ private _locked;
14
+ constructor(target?: number);
15
+ static decode(ber: Reader): MatrixConnection;
16
+ connectSources(sources: number[]): void;
17
+ disconnectSources(sources: number[]): void;
18
+ encode(ber: Writer): void;
19
+ isDifferent(sources: number[]): boolean;
20
+ isLocked(): boolean;
21
+ lock(): void;
22
+ setSources(sources: number[]): void;
23
+ validateSources(sources?: number[]): null | number[];
24
+ unlock(): void;
25
+ static get BERID(): number;
26
+ }
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const ber_1 = require("../../ber");
4
+ const errors_1 = require("../../error/errors");
5
+ class MatrixConnection {
6
+ constructor(target) {
7
+ this.target = target;
8
+ if (target == null) {
9
+ this.target = 0;
10
+ }
11
+ this._locked = false;
12
+ }
13
+ static decode(ber) {
14
+ const c = new MatrixConnection();
15
+ ber = ber.getSequence(MatrixConnection.BERID);
16
+ while (ber.remain > 0) {
17
+ const tag = ber.peek();
18
+ const seq = ber.getSequence(tag);
19
+ if (tag === ber_1.CONTEXT(0)) {
20
+ c.target = seq.readInt();
21
+ }
22
+ else if (tag === ber_1.CONTEXT(1)) {
23
+ const sources = seq.readRelativeOID(ber_1.EMBER_RELATIVE_OID);
24
+ if (sources === '') {
25
+ c.sources = [];
26
+ }
27
+ else {
28
+ c.sources = sources.split('.').map(i => Number(i));
29
+ }
30
+ }
31
+ else if (tag === ber_1.CONTEXT(2)) {
32
+ c.operation = seq.readInt();
33
+ }
34
+ else if (tag === ber_1.CONTEXT(3)) {
35
+ c.disposition = seq.readInt();
36
+ }
37
+ else {
38
+ throw new errors_1.UnimplementedEmberTypeError(tag);
39
+ }
40
+ }
41
+ return c;
42
+ }
43
+ connectSources(sources) {
44
+ this.sources = this.validateSources(sources);
45
+ }
46
+ disconnectSources(sources) {
47
+ if (sources == null) {
48
+ return;
49
+ }
50
+ const s = new Set(this.sources);
51
+ for (const item of sources) {
52
+ s.delete(item);
53
+ }
54
+ this.sources = [...s].sort();
55
+ }
56
+ encode(ber) {
57
+ ber.startSequence(MatrixConnection.BERID);
58
+ ber.startSequence(ber_1.CONTEXT(0));
59
+ ber.writeInt(this.target);
60
+ ber.endSequence();
61
+ if (this.sources != null) {
62
+ ber.startSequence(ber_1.CONTEXT(1));
63
+ ber.writeRelativeOID(this.sources.join('.'), ber_1.EMBER_RELATIVE_OID);
64
+ ber.endSequence();
65
+ }
66
+ if (this.operation != null) {
67
+ ber.startSequence(ber_1.CONTEXT(2));
68
+ ber.writeInt(this.operation);
69
+ ber.endSequence();
70
+ }
71
+ if (this.disposition != null) {
72
+ ber.startSequence(ber_1.CONTEXT(3));
73
+ ber.writeInt(this.disposition);
74
+ ber.endSequence();
75
+ }
76
+ ber.endSequence();
77
+ }
78
+ isDifferent(sources) {
79
+ const newSources = this.validateSources(sources);
80
+ if (this.sources == null && newSources == null) {
81
+ return false;
82
+ }
83
+ if ((this.sources == null && newSources != null) ||
84
+ (this.sources != null && newSources == null) ||
85
+ (this.sources.length !== newSources.length)) {
86
+ return true;
87
+ }
88
+ for (let i = 0; i < this.sources.length; i++) {
89
+ if (this.sources[i] !== newSources[i]) {
90
+ return true;
91
+ }
92
+ }
93
+ return false;
94
+ }
95
+ isLocked() {
96
+ return this._locked;
97
+ }
98
+ lock() {
99
+ this._locked = true;
100
+ }
101
+ setSources(sources) {
102
+ if (sources == null) {
103
+ delete this.sources;
104
+ return;
105
+ }
106
+ this.sources = this.validateSources(sources);
107
+ }
108
+ validateSources(sources) {
109
+ if (sources == null) {
110
+ return null;
111
+ }
112
+ const s = new Set(sources.map(i => Number(i)));
113
+ return [...s].sort();
114
+ }
115
+ unlock() {
116
+ this._locked = false;
117
+ }
118
+ static get BERID() {
119
+ return ber_1.APPLICATION(16);
120
+ }
121
+ }
122
+ exports.MatrixConnection = MatrixConnection;
123
+ //# sourceMappingURL=matrix-connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matrix-connection.js","sourceRoot":"","sources":["../../../src/common/matrix/matrix-connection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { MatrixType } from './matrix-type';
2
+ import { MatrixMode } from './matrix-mode';
3
+ import { ExtendedReader as Reader, ExtendedWriter as Writer } from '../../ber';
4
+ import { Label, LabelInterface } from '../label';
5
+ export interface JMatrixContents {
6
+ identifier?: string;
7
+ description?: string;
8
+ targetCount?: number;
9
+ sourceCount?: number;
10
+ maximumTotalConnects?: number;
11
+ maximumConnectsPerTarget?: number;
12
+ parametersLocation?: number | string;
13
+ gainParameterNumber?: number;
14
+ labels?: LabelInterface[];
15
+ schemaIdentifiers?: string;
16
+ templateReference?: string;
17
+ }
18
+ export declare class MatrixContents {
19
+ type: MatrixType;
20
+ mode: MatrixMode;
21
+ identifier?: string;
22
+ description?: string;
23
+ targetCount?: number;
24
+ sourceCount?: number;
25
+ maximumTotalConnects?: number;
26
+ maximumConnectsPerTarget?: number;
27
+ parametersLocation?: number | string;
28
+ gainParameterNumber?: number;
29
+ labels?: Label[];
30
+ schemaIdentifiers?: string;
31
+ templateReference?: string;
32
+ constructor(type?: MatrixType, mode?: MatrixMode);
33
+ static decode(ber: Reader): MatrixContents;
34
+ encode(ber: Writer): void;
35
+ toJSON(res?: {
36
+ [index: string]: any;
37
+ }): JMatrixContents;
38
+ }
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const matrix_type_1 = require("./matrix-type");
4
+ const matrix_mode_1 = require("./matrix-mode");
5
+ const ber_1 = require("../../ber");
6
+ const label_1 = require("../label");
7
+ const errors_1 = require("../../error/errors");
8
+ class MatrixContents {
9
+ constructor(type = matrix_type_1.MatrixType.oneToN, mode = matrix_mode_1.MatrixMode.linear) {
10
+ this.type = type;
11
+ this.mode = mode;
12
+ }
13
+ static decode(ber) {
14
+ const mc = new MatrixContents();
15
+ ber = ber.getSequence(ber_1.EMBER_SET);
16
+ while (ber.remain > 0) {
17
+ let tag = ber.peek();
18
+ let seq = ber.getSequence(tag);
19
+ if (tag === ber_1.CONTEXT(0)) {
20
+ mc.identifier = seq.readString(ber_1.EMBER_STRING);
21
+ }
22
+ else if (tag === ber_1.CONTEXT(1)) {
23
+ mc.description = seq.readString(ber_1.EMBER_STRING);
24
+ }
25
+ else if (tag === ber_1.CONTEXT(2)) {
26
+ mc.type = seq.readInt();
27
+ }
28
+ else if (tag === ber_1.CONTEXT(3)) {
29
+ mc.mode = seq.readInt();
30
+ }
31
+ else if (tag === ber_1.CONTEXT(4)) {
32
+ mc.targetCount = seq.readInt();
33
+ }
34
+ else if (tag === ber_1.CONTEXT(5)) {
35
+ mc.sourceCount = seq.readInt();
36
+ }
37
+ else if (tag === ber_1.CONTEXT(6)) {
38
+ mc.maximumTotalConnects = seq.readInt();
39
+ }
40
+ else if (tag === ber_1.CONTEXT(7)) {
41
+ mc.maximumConnectsPerTarget = seq.readInt();
42
+ }
43
+ else if (tag === ber_1.CONTEXT(8)) {
44
+ tag = seq.peek();
45
+ if (tag === ber_1.EMBER_RELATIVE_OID) {
46
+ mc.parametersLocation = seq.readRelativeOID(ber_1.EMBER_RELATIVE_OID);
47
+ }
48
+ else {
49
+ mc.parametersLocation = seq.readInt();
50
+ }
51
+ }
52
+ else if (tag === ber_1.CONTEXT(9)) {
53
+ mc.gainParameterNumber = seq.readInt();
54
+ }
55
+ else if (tag === ber_1.CONTEXT(10)) {
56
+ mc.labels = [];
57
+ seq = seq.getSequence(ber_1.EMBER_SEQUENCE);
58
+ while (seq.remain > 0) {
59
+ const lSeq = seq.getSequence(ber_1.CONTEXT(0));
60
+ mc.labels.push(label_1.Label.decode(lSeq));
61
+ }
62
+ }
63
+ else if (tag === ber_1.CONTEXT(11)) {
64
+ mc.schemaIdentifiers = seq.readString(ber_1.EMBER_STRING);
65
+ }
66
+ else if (tag === ber_1.CONTEXT(12)) {
67
+ mc.templateReference = seq.readRelativeOID(ber_1.EMBER_RELATIVE_OID);
68
+ }
69
+ else {
70
+ throw new errors_1.UnimplementedEmberTypeError(tag);
71
+ }
72
+ }
73
+ return mc;
74
+ }
75
+ encode(ber) {
76
+ ber.startSequence(ber_1.EMBER_SET);
77
+ if (this.identifier != null) {
78
+ ber.startSequence(ber_1.CONTEXT(0));
79
+ ber.writeString(this.identifier, ber_1.EMBER_STRING);
80
+ ber.endSequence();
81
+ }
82
+ if (this.description != null) {
83
+ ber.startSequence(ber_1.CONTEXT(1));
84
+ ber.writeString(this.description, ber_1.EMBER_STRING);
85
+ ber.endSequence();
86
+ }
87
+ if (this.type != null) {
88
+ ber.startSequence(ber_1.CONTEXT(2));
89
+ ber.writeInt(this.type);
90
+ ber.endSequence();
91
+ }
92
+ if (this.mode != null) {
93
+ ber.startSequence(ber_1.CONTEXT(3));
94
+ ber.writeInt(this.mode);
95
+ ber.endSequence();
96
+ }
97
+ if (this.targetCount != null) {
98
+ ber.startSequence(ber_1.CONTEXT(4));
99
+ ber.writeInt(this.targetCount);
100
+ ber.endSequence();
101
+ }
102
+ if (this.sourceCount != null) {
103
+ ber.startSequence(ber_1.CONTEXT(5));
104
+ ber.writeInt(this.sourceCount);
105
+ ber.endSequence();
106
+ }
107
+ if (this.maximumTotalConnects != null) {
108
+ ber.startSequence(ber_1.CONTEXT(6));
109
+ ber.writeInt(this.maximumTotalConnects);
110
+ ber.endSequence();
111
+ }
112
+ if (this.maximumConnectsPerTarget != null) {
113
+ ber.startSequence(ber_1.CONTEXT(7));
114
+ ber.writeInt(this.maximumConnectsPerTarget);
115
+ ber.endSequence();
116
+ }
117
+ if (this.parametersLocation != null) {
118
+ ber.startSequence(ber_1.CONTEXT(8));
119
+ const param = Number(this.parametersLocation);
120
+ if (isNaN(param)) {
121
+ ber.writeRelativeOID(String(this.parametersLocation), ber_1.EMBER_RELATIVE_OID);
122
+ }
123
+ else {
124
+ ber.writeInt(param);
125
+ }
126
+ ber.endSequence();
127
+ }
128
+ if (this.gainParameterNumber != null) {
129
+ ber.startSequence(ber_1.CONTEXT(9));
130
+ ber.writeInt(this.gainParameterNumber);
131
+ ber.endSequence();
132
+ }
133
+ if (this.labels != null) {
134
+ ber.startSequence(ber_1.CONTEXT(10));
135
+ ber.startSequence(ber_1.EMBER_SEQUENCE);
136
+ for (let i = 0; i < this.labels.length; i++) {
137
+ ber.startSequence(ber_1.CONTEXT(0));
138
+ this.labels[i].encode(ber);
139
+ ber.endSequence();
140
+ }
141
+ ber.endSequence();
142
+ ber.endSequence();
143
+ }
144
+ if (this.schemaIdentifiers != null) {
145
+ ber.startSequence(ber_1.CONTEXT(11));
146
+ ber.writeString(this.schemaIdentifiers, ber_1.EMBER_STRING);
147
+ ber.endSequence();
148
+ }
149
+ if (this.templateReference != null) {
150
+ ber.startSequence(ber_1.CONTEXT(12));
151
+ ber.writeRelativeOID(this.templateReference, ber_1.EMBER_RELATIVE_OID);
152
+ ber.endSequence();
153
+ }
154
+ ber.endSequence();
155
+ }
156
+ toJSON(res) {
157
+ const response = (res || {});
158
+ response.identifier = this.identifier;
159
+ response.description = this.description;
160
+ response.targetCount = this.targetCount;
161
+ response.sourceCount = this.sourceCount;
162
+ response.maximumTotalConnects = this.maximumTotalConnects;
163
+ response.maximumConnectsPerTarget = this.maximumConnectsPerTarget;
164
+ response.parametersLocation = this.parametersLocation;
165
+ response.gainParameterNumber = this.gainParameterNumber;
166
+ response.labels = this.labels == null || this.labels.length === 0 ? [] : this.labels.map(l => l.toJSON());
167
+ response.schemaIdentifiers = this.schemaIdentifiers;
168
+ response.templateReference = this.templateReference;
169
+ return response;
170
+ }
171
+ }
172
+ exports.MatrixContents = MatrixContents;
173
+ //# sourceMappingURL=matrix-contents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matrix-contents.js","sourceRoot":"","sources":["../../../src/common/matrix/matrix-contents.ts"],"names":[],"mappings":"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"}