@corvina/device-client 1.0.10

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 (51) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/CONTRIBUTING.md +31 -0
  3. package/LICENSE +21 -0
  4. package/README.md +138 -0
  5. package/dist/common/types.d.ts +89 -0
  6. package/dist/common/types.js +65 -0
  7. package/dist/common/types.js.map +1 -0
  8. package/dist/device.module.d.ts +2 -0
  9. package/dist/device.module.js +41 -0
  10. package/dist/device.module.js.map +1 -0
  11. package/dist/index.d.ts +6 -0
  12. package/dist/index.js +22 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/services/configparser.d.ts +232 -0
  15. package/dist/services/configparser.js +458 -0
  16. package/dist/services/configparser.js.map +1 -0
  17. package/dist/services/corvinadatainterface.d.ts +24 -0
  18. package/dist/services/corvinadatainterface.js +107 -0
  19. package/dist/services/corvinadatainterface.js.map +1 -0
  20. package/dist/services/device.service.d.ts +77 -0
  21. package/dist/services/device.service.js +464 -0
  22. package/dist/services/device.service.js.map +1 -0
  23. package/dist/services/devicerunner.interface.d.ts +3 -0
  24. package/dist/services/devicerunner.interface.js +3 -0
  25. package/dist/services/devicerunner.interface.js.map +1 -0
  26. package/dist/services/devicerunner.service.d.ts +8 -0
  27. package/dist/services/devicerunner.service.js +123 -0
  28. package/dist/services/devicerunner.service.js.map +1 -0
  29. package/dist/services/licensesaxiosinstance.d.ts +29 -0
  30. package/dist/services/licensesaxiosinstance.js +77 -0
  31. package/dist/services/licensesaxiosinstance.js.map +1 -0
  32. package/dist/services/logger.service.d.ts +8 -0
  33. package/dist/services/logger.service.js +9 -0
  34. package/dist/services/logger.service.js.map +1 -0
  35. package/dist/services/messagepublisher.d.ts +69 -0
  36. package/dist/services/messagepublisher.js +154 -0
  37. package/dist/services/messagepublisher.js.map +1 -0
  38. package/dist/services/messagepublisherpolicies.d.ts +222 -0
  39. package/dist/services/messagepublisherpolicies.js +499 -0
  40. package/dist/services/messagepublisherpolicies.js.map +1 -0
  41. package/dist/services/messagesender.d.ts +17 -0
  42. package/dist/services/messagesender.js +3 -0
  43. package/dist/services/messagesender.js.map +1 -0
  44. package/dist/services/messagesubscriber.d.ts +17 -0
  45. package/dist/services/messagesubscriber.js +32 -0
  46. package/dist/services/messagesubscriber.js.map +1 -0
  47. package/dist/services/simulation.d.ts +83 -0
  48. package/dist/services/simulation.js +610 -0
  49. package/dist/services/simulation.js.map +1 -0
  50. package/envs.md +67 -0
  51. package/package.json +105 -0
@@ -0,0 +1,499 @@
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.MessagePublisher_OnFieldLevelPolicy = exports.MessagePublisher_OnLevelPolicy = exports.LevelMode = exports.MessagePublisher_OnFieldChangedPolicy = exports.MessagePublisher_AnalogBandPolicy = exports.MessagePublisher_TimerPolicy = exports.MessagePublisher_OnChangedPolicy = exports.ChangeMask = exports.MessagePublisher_QualityPolicy = exports.MessagePublisher_OrPolicy = exports.MessagePublisher_AndPolicy = exports.MessagePublisher_OperatorPolicy = exports.MessagePublisherPolicy = exports.State = exports.Quality = exports.INVALID_STATE_TS = void 0;
7
+ const lodash_1 = __importDefault(require("lodash"));
8
+ exports.INVALID_STATE_TS = Number.MAX_SAFE_INTEGER;
9
+ var Quality;
10
+ (function (Quality) {
11
+ Quality[Quality["GOOD"] = 0] = "GOOD";
12
+ Quality[Quality["UNCERTAIN"] = 1] = "UNCERTAIN";
13
+ Quality[Quality["BAD"] = 2] = "BAD";
14
+ })(Quality = exports.Quality || (exports.Quality = {}));
15
+ class State {
16
+ value;
17
+ timestamp;
18
+ constructor(value, timestamp) {
19
+ this.value = value;
20
+ this.timestamp = timestamp;
21
+ }
22
+ get quality() {
23
+ if (this.value != undefined) {
24
+ return Quality.GOOD;
25
+ }
26
+ return Quality.UNCERTAIN;
27
+ }
28
+ clone() {
29
+ const s = new State(this.value, this.timestamp);
30
+ return s;
31
+ }
32
+ }
33
+ exports.State = State;
34
+ class MessagePublisherPolicy {
35
+ _nextTime;
36
+ constructor() {
37
+ this._nextTime = exports.INVALID_STATE_TS;
38
+ }
39
+ get nextTime() {
40
+ return this._nextTime;
41
+ }
42
+ rearm(currentTime) {
43
+ this._nextTime = exports.INVALID_STATE_TS;
44
+ return this._nextTime;
45
+ }
46
+ referencedTags() {
47
+ return [];
48
+ }
49
+ setDefaultTagName(tagName) {
50
+ }
51
+ setFieldTagName({ fieldName, tagName }) {
52
+ }
53
+ multiTagVersion(tags) {
54
+ return this.clone();
55
+ }
56
+ clone() {
57
+ return Object.assign(Object.create(Object.getPrototypeOf(this)), this);
58
+ }
59
+ }
60
+ exports.MessagePublisherPolicy = MessagePublisherPolicy;
61
+ class MessagePublisher_OperatorPolicy extends MessagePublisherPolicy {
62
+ constructor(operands) {
63
+ super();
64
+ this._operands = operands;
65
+ }
66
+ addOperand(op) {
67
+ this._operands.push(op);
68
+ }
69
+ operand(i) {
70
+ return this._operands[i];
71
+ }
72
+ referencedTags() {
73
+ const referencedTags = [];
74
+ this._operands.forEach((o) => referencedTags.push(...o.referencedTags()));
75
+ return referencedTags;
76
+ }
77
+ setDefaultTagName(tagName) {
78
+ this._operands.forEach((o) => o.setDefaultTagName(tagName));
79
+ }
80
+ setFieldTagName({ fieldName, tagName }) {
81
+ this._operands.forEach((o) => o.setFieldTagName({ fieldName, tagName }));
82
+ }
83
+ updateState({ tagName, newState, currentTime, }) {
84
+ return exports.INVALID_STATE_TS;
85
+ }
86
+ multiTagVersion(tags) {
87
+ const clone = this.clone();
88
+ clone._operands = clone._operands.map((o) => o.multiTagVersion(tags));
89
+ return clone;
90
+ }
91
+ clear() {
92
+ this._operands = [];
93
+ }
94
+ toString() {
95
+ let ret;
96
+ for (let i = 0; i < this._operands.length; i++) {
97
+ ret += i == 0 ? "(" : ` ${this.operatorKeyword()} ` + `${this._operands[i].toString()})`;
98
+ }
99
+ return ret;
100
+ }
101
+ _operands;
102
+ clone() {
103
+ const cloned = super.clone();
104
+ cloned._operands = cloned._operands.map((o) => o.clone());
105
+ return cloned;
106
+ }
107
+ }
108
+ exports.MessagePublisher_OperatorPolicy = MessagePublisher_OperatorPolicy;
109
+ class MessagePublisher_AndPolicy extends MessagePublisher_OperatorPolicy {
110
+ constructor(operands) {
111
+ super(operands);
112
+ }
113
+ updateState({ tagName, newState, currentTime, }) {
114
+ this._nextTime = 0;
115
+ this._operands.forEach((o) => {
116
+ const bTime = o.updateState({ tagName, newState, currentTime });
117
+ this._nextTime = this._nextTime < bTime ? bTime : this._nextTime;
118
+ });
119
+ return this._nextTime;
120
+ }
121
+ rearm(currentTime) {
122
+ this._nextTime = 0;
123
+ this._operands.forEach((o) => {
124
+ const bTime = o.rearm(currentTime);
125
+ this._nextTime = this._nextTime < bTime ? bTime : this._nextTime;
126
+ });
127
+ return this._nextTime;
128
+ }
129
+ operatorKeyword() {
130
+ return "AND";
131
+ }
132
+ }
133
+ exports.MessagePublisher_AndPolicy = MessagePublisher_AndPolicy;
134
+ class MessagePublisher_OrPolicy extends MessagePublisher_OperatorPolicy {
135
+ constructor(operands) {
136
+ super(operands);
137
+ }
138
+ updateState({ tagName, newState, currentTime, }) {
139
+ this._nextTime = exports.INVALID_STATE_TS;
140
+ this._operands.forEach((o) => {
141
+ const bTime = o.updateState({ tagName, newState, currentTime });
142
+ this._nextTime = this._nextTime < bTime ? this._nextTime : bTime;
143
+ });
144
+ return this._nextTime;
145
+ }
146
+ rearm(currentTime) {
147
+ this._nextTime = exports.INVALID_STATE_TS;
148
+ this._operands.forEach((o) => {
149
+ const bTime = o.rearm(currentTime);
150
+ this._nextTime = this._nextTime < bTime ? this._nextTime : bTime;
151
+ });
152
+ return this._nextTime;
153
+ }
154
+ operatorKeyword() {
155
+ return "OR";
156
+ }
157
+ }
158
+ exports.MessagePublisher_OrPolicy = MessagePublisher_OrPolicy;
159
+ class MessagePublisher_TagBasedPolicy extends MessagePublisherPolicy {
160
+ constructor(tagName) {
161
+ super();
162
+ this._tagName = tagName;
163
+ }
164
+ get tagName() {
165
+ return this._tagName;
166
+ }
167
+ setDefaultTagName(tagName) {
168
+ if (!this._tagName || this._tagName.length === 0) {
169
+ this._tagName = tagName;
170
+ }
171
+ }
172
+ referencedTags() {
173
+ const referencedTags = [];
174
+ if (this._tagName && this._tagName.length !== 0)
175
+ referencedTags.push(this._tagName);
176
+ return referencedTags;
177
+ }
178
+ multiTagVersion(tags) {
179
+ if (this._tagName && this._tagName.length > 0) {
180
+ return this.clone();
181
+ }
182
+ const multiTagVersion = this.defaultMultitagOperator();
183
+ tags.forEach((t, i) => {
184
+ multiTagVersion.addOperand(this);
185
+ multiTagVersion.operand(i).setDefaultTagName(t);
186
+ });
187
+ return multiTagVersion;
188
+ }
189
+ toString() {
190
+ return `tag="${this._tagName}"`;
191
+ }
192
+ _tagName;
193
+ }
194
+ class MessagePublisher_QualityPolicy extends MessagePublisher_TagBasedPolicy {
195
+ _expectGood;
196
+ constructor({ tagName, expectGood }) {
197
+ super(tagName);
198
+ this._expectGood = expectGood;
199
+ }
200
+ updateState({ tagName, newState, currentTime, }) {
201
+ if (this._tagName && this._tagName.length != 0 && tagName != this._tagName) {
202
+ return this._nextTime;
203
+ }
204
+ this._nextTime = this._expectGood == (newState.quality == Quality.GOOD) ? 0 : exports.INVALID_STATE_TS;
205
+ return this._nextTime;
206
+ }
207
+ toString() {
208
+ return `${this._expectGood ? "qualitygood:" : "qualitybad:"}${super.toString()}`;
209
+ }
210
+ defaultMultitagOperator() {
211
+ return this._expectGood ? new MessagePublisher_AndPolicy() : new MessagePublisher_OrPolicy();
212
+ }
213
+ }
214
+ exports.MessagePublisher_QualityPolicy = MessagePublisher_QualityPolicy;
215
+ var ChangeMask;
216
+ (function (ChangeMask) {
217
+ ChangeMask[ChangeMask["ValueChange"] = 1] = "ValueChange";
218
+ ChangeMask[ChangeMask["QualityChange"] = 2] = "QualityChange";
219
+ ChangeMask[ChangeMask["SourceTimestampChange"] = 4] = "SourceTimestampChange";
220
+ ChangeMask[ChangeMask["AnyChange"] = 5] = "AnyChange";
221
+ })(ChangeMask = exports.ChangeMask || (exports.ChangeMask = {}));
222
+ class MessagePublisher_OnChangedPolicy extends MessagePublisher_TagBasedPolicy {
223
+ constructor({ tagName = "", changeMask = ChangeMask.ValueChange, skipFirstNChanges = 0, deadband = 0, isPercent = false, }) {
224
+ super(tagName);
225
+ this._lastState = new State();
226
+ this._changeMask = changeMask;
227
+ this._skipFirstNChanges = skipFirstNChanges;
228
+ this._deadband = deadband;
229
+ this._isPercent = isPercent;
230
+ }
231
+ updateState({ tagName, newState, currentTime, }) {
232
+ if (this._tagName && this._tagName.length != 0 && tagName != this._tagName) {
233
+ return this._nextTime;
234
+ }
235
+ let triggered = false;
236
+ if (this._changeMask & ChangeMask.ValueChange && newState.quality == Quality.GOOD) {
237
+ if (lodash_1.default.isArray(newState.value)) {
238
+ triggered =
239
+ newState.value.length != this._lastState.value.length ||
240
+ newState.value.reduce((acc, v, i) => {
241
+ return triggered || this.isOutOfDeadband(v, this._lastState[i]);
242
+ }, triggered);
243
+ }
244
+ else {
245
+ triggered = this.isOutOfDeadband(this._lastState.value, newState.value);
246
+ }
247
+ if (triggered) {
248
+ this._lastState.value = newState.value;
249
+ }
250
+ }
251
+ if (this._changeMask & ChangeMask.QualityChange && newState.quality != this._lastState.quality) {
252
+ this._lastState.value = newState.value;
253
+ triggered = true;
254
+ }
255
+ if (this._changeMask & ChangeMask.SourceTimestampChange && newState.timestamp != this._lastState.timestamp) {
256
+ this._lastState.timestamp = newState.timestamp;
257
+ triggered = true;
258
+ }
259
+ if (triggered) {
260
+ if (this._skipFirstNChanges > 0) {
261
+ this._skipFirstNChanges--;
262
+ }
263
+ else {
264
+ this._nextTime = 0;
265
+ }
266
+ }
267
+ return this._nextTime;
268
+ }
269
+ toString() {
270
+ return `onchange:${super.toString()}`;
271
+ }
272
+ defaultMultitagOperator() {
273
+ return new MessagePublisher_OrPolicy();
274
+ }
275
+ isOutOfDeadband(v1, v2) {
276
+ if (!lodash_1.default.isNumber(v1)) {
277
+ return !lodash_1.default.isEqual(v1, v2);
278
+ }
279
+ const delta = Math.abs(v1 - v2);
280
+ if (!this._isPercent) {
281
+ return delta > this._deadband;
282
+ }
283
+ const threshold = Math.abs((v1 * this._deadband) / 100.0);
284
+ return delta > threshold;
285
+ }
286
+ _lastState;
287
+ _changeMask;
288
+ _skipFirstNChanges;
289
+ _deadband;
290
+ _isPercent;
291
+ clone() {
292
+ const cloned = super.clone();
293
+ cloned._lastState = this._lastState.clone();
294
+ return cloned;
295
+ }
296
+ }
297
+ exports.MessagePublisher_OnChangedPolicy = MessagePublisher_OnChangedPolicy;
298
+ class MessagePublisher_TimerPolicy extends MessagePublisherPolicy {
299
+ constructor(interval = 1000) {
300
+ super();
301
+ this._interval = interval == 0 ? 1000 : interval;
302
+ this._nextTime = 0;
303
+ }
304
+ updateState({ tagName, newState, currentTime, }) {
305
+ return this._nextTime;
306
+ }
307
+ rearm(currentTime) {
308
+ this._nextTime = (1 + Math.floor(currentTime / this._interval)) * this._interval;
309
+ return this._nextTime;
310
+ }
311
+ toString() {
312
+ return `timer:${this._interval}`;
313
+ }
314
+ _interval;
315
+ }
316
+ exports.MessagePublisher_TimerPolicy = MessagePublisher_TimerPolicy;
317
+ class MessagePublisher_AnalogBandPolicy extends MessagePublisher_TagBasedPolicy {
318
+ _min;
319
+ _max;
320
+ _inside;
321
+ constructor({ tagName, min, max, inside }) {
322
+ super(tagName);
323
+ this._inside = inside;
324
+ this._min = min;
325
+ this._max = max;
326
+ if (!this._inside) {
327
+ this._nextTime = 0;
328
+ }
329
+ }
330
+ updateState({ tagName, newState, currentTime, }) {
331
+ if (this._tagName && this._tagName.length != 0 && tagName != this._tagName) {
332
+ return this._nextTime;
333
+ }
334
+ this._nextTime = 0;
335
+ if (lodash_1.default.isArray(newState.value)) {
336
+ for (const v of newState.value) {
337
+ if (!this.isInBand(v)) {
338
+ this._nextTime = exports.INVALID_STATE_TS;
339
+ break;
340
+ }
341
+ }
342
+ }
343
+ else {
344
+ if (!this.isInBand(newState.value)) {
345
+ this._nextTime = exports.INVALID_STATE_TS;
346
+ }
347
+ }
348
+ return this._nextTime;
349
+ }
350
+ toString() {
351
+ return `${this._inside ? "inband:" : "outband:"}${this._min},${this._max},${super.toString()}`;
352
+ }
353
+ defaultMultitagOperator() {
354
+ return new MessagePublisher_AndPolicy();
355
+ }
356
+ isInBand(v) {
357
+ if (!lodash_1.default.isNumber(v))
358
+ return true;
359
+ if (this._inside)
360
+ return v >= this._min && v <= this._max;
361
+ return v < this._min || v > this._max;
362
+ }
363
+ }
364
+ exports.MessagePublisher_AnalogBandPolicy = MessagePublisher_AnalogBandPolicy;
365
+ class MessagePublisher_OnFieldChangedPolicy extends MessagePublisher_OnChangedPolicy {
366
+ _fieldName;
367
+ constructor({ fieldName, changeMask = ChangeMask.ValueChange, skipFirstNChanges = 0, deadband = 0, isPercent = false, }) {
368
+ super({
369
+ tagName: "",
370
+ changeMask,
371
+ skipFirstNChanges,
372
+ deadband,
373
+ isPercent,
374
+ });
375
+ this._fieldName = fieldName;
376
+ }
377
+ setTagName(tagName) {
378
+ this._tagName = tagName;
379
+ }
380
+ get fieldName() {
381
+ return this._fieldName;
382
+ }
383
+ setFieldTagName({ fieldName, tagName }) {
384
+ if (this._fieldName == fieldName) {
385
+ this._tagName = tagName;
386
+ }
387
+ }
388
+ }
389
+ exports.MessagePublisher_OnFieldChangedPolicy = MessagePublisher_OnFieldChangedPolicy;
390
+ var LevelMode;
391
+ (function (LevelMode) {
392
+ LevelMode[LevelMode["OnEnter"] = 1] = "OnEnter";
393
+ LevelMode[LevelMode["OnExit"] = 2] = "OnExit";
394
+ LevelMode[LevelMode["OnEnterExit"] = 3] = "OnEnterExit";
395
+ })(LevelMode = exports.LevelMode || (exports.LevelMode = {}));
396
+ class MessagePublisher_OnLevelPolicy extends MessagePublisher_TagBasedPolicy {
397
+ _lastState;
398
+ _skipFirstNChanges;
399
+ _min;
400
+ _max;
401
+ _level;
402
+ _mode;
403
+ constructor({ tagName, level, levelMode = LevelMode.OnEnterExit, skipFirstNChanges = 0, deadband = 0, isPercent = false, }) {
404
+ super(tagName);
405
+ if (typeof level == "number") {
406
+ this._min = level - (isPercent ? (level * deadband) / 100 : deadband);
407
+ this._max = level + (isPercent ? (level * deadband) / 100 : deadband);
408
+ }
409
+ this._level = level;
410
+ this._mode = levelMode;
411
+ this._skipFirstNChanges = skipFirstNChanges;
412
+ this._lastState = new State();
413
+ }
414
+ toString() {
415
+ return `onlevel:${this._level},${super.toString()}`;
416
+ }
417
+ defaultMultitagOperator() {
418
+ return new MessagePublisher_OrPolicy();
419
+ }
420
+ updateState({ tagName, newState, currentTime, }) {
421
+ if (this._tagName && this._tagName.length != 0 && tagName != this._tagName) {
422
+ return this._nextTime;
423
+ }
424
+ let triggered = false;
425
+ if (newState.value != undefined) {
426
+ let inBand = false;
427
+ let wasInBand = false;
428
+ if (lodash_1.default.isArray(newState.value)) {
429
+ for (const i in newState.value) {
430
+ inBand = this.isInBand(newState.value[i]);
431
+ wasInBand = this.isInBand(this._lastState.value[i]);
432
+ if (inBand != wasInBand) {
433
+ break;
434
+ }
435
+ }
436
+ }
437
+ else {
438
+ inBand = this.isInBand(newState.value);
439
+ wasInBand = this.isInBand(this._lastState.value);
440
+ }
441
+ if (inBand != wasInBand) {
442
+ triggered =
443
+ (inBand && (this._mode & LevelMode.OnEnter) != 0) ||
444
+ (!inBand && (this._mode & LevelMode.OnExit) != 0);
445
+ this._lastState.value = newState;
446
+ }
447
+ }
448
+ if (triggered) {
449
+ if (this._skipFirstNChanges > 0) {
450
+ this._skipFirstNChanges--;
451
+ }
452
+ else {
453
+ this._nextTime = 0;
454
+ }
455
+ }
456
+ return this._nextTime;
457
+ }
458
+ isInBand(v) {
459
+ if (typeof v == "string") {
460
+ return v == this._level;
461
+ }
462
+ else if (typeof v == "number") {
463
+ return v >= this._min && v <= this._max;
464
+ }
465
+ }
466
+ clone() {
467
+ const cloned = super.clone();
468
+ cloned._lastState = this._lastState.clone();
469
+ return cloned;
470
+ }
471
+ }
472
+ exports.MessagePublisher_OnLevelPolicy = MessagePublisher_OnLevelPolicy;
473
+ class MessagePublisher_OnFieldLevelPolicy extends MessagePublisher_OnLevelPolicy {
474
+ _fieldName;
475
+ constructor({ fieldName, level, levelMode = LevelMode.OnEnterExit, skipFirstNChanges = 0, deadband = 0, isPercent = false, }) {
476
+ super({
477
+ tagName: "",
478
+ level,
479
+ levelMode,
480
+ skipFirstNChanges,
481
+ deadband,
482
+ isPercent,
483
+ });
484
+ this._fieldName = fieldName;
485
+ }
486
+ setTagName(tagName) {
487
+ this._tagName = tagName;
488
+ }
489
+ get fieldName() {
490
+ return this._fieldName;
491
+ }
492
+ setFieldTagName({ fieldName, tagName }) {
493
+ if (this._fieldName == fieldName) {
494
+ this._tagName = tagName;
495
+ }
496
+ }
497
+ }
498
+ exports.MessagePublisher_OnFieldLevelPolicy = MessagePublisher_OnFieldLevelPolicy;
499
+ //# sourceMappingURL=messagepublisherpolicies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messagepublisherpolicies.js","sourceRoot":"","sources":["../../src/services/messagepublisherpolicies.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { PacketPostCallback, PostCallback } from "./corvinadatainterface";
2
+ export interface MessageSenderOptions {
3
+ qos?: number;
4
+ recurseNotifyOnlyWholeObject?: boolean;
5
+ forceImmediateSend?: boolean;
6
+ cb?: PostCallback;
7
+ }
8
+ export interface InternalMessageSenderOptions {
9
+ qos?: number;
10
+ cb?: PacketPostCallback;
11
+ }
12
+ export interface MessageSender {
13
+ sendMessage: (topic: string, payload: {
14
+ t: number;
15
+ v: unknown;
16
+ }, options?: InternalMessageSenderOptions) => Promise<any>;
17
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=messagesender.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messagesender.js","sourceRoot":"","sources":["../../src/services/messagesender.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ export declare class MessageSubscriber {
2
+ private _topic;
3
+ private _modelPath;
4
+ private _topicType;
5
+ private _fieldName;
6
+ constructor({ topic, modelPath, topicType, fieldName, }: {
7
+ topic: string;
8
+ modelPath: string;
9
+ topicType: string;
10
+ fieldName?: string;
11
+ });
12
+ get topic(): string;
13
+ get topicType(): string;
14
+ get modelPath(): string;
15
+ get fieldName(): string;
16
+ toString(): string;
17
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MessageSubscriber = void 0;
4
+ class MessageSubscriber {
5
+ _topic;
6
+ _modelPath;
7
+ _topicType;
8
+ _fieldName;
9
+ constructor({ topic, modelPath, topicType, fieldName, }) {
10
+ this._topic = topic;
11
+ this._modelPath = modelPath;
12
+ this._topicType = topicType;
13
+ this._fieldName = fieldName;
14
+ }
15
+ get topic() {
16
+ return this._topic;
17
+ }
18
+ get topicType() {
19
+ return this._topicType;
20
+ }
21
+ get modelPath() {
22
+ return this._modelPath;
23
+ }
24
+ get fieldName() {
25
+ return this._fieldName;
26
+ }
27
+ toString() {
28
+ return `MessageSubscriber@${this._topic} => ${this._modelPath}${this._fieldName ? "." + this._fieldName : ""}`;
29
+ }
30
+ }
31
+ exports.MessageSubscriber = MessageSubscriber;
32
+ //# sourceMappingURL=messagesubscriber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messagesubscriber.js","sourceRoot":"","sources":["../../src/services/messagesubscriber.ts"],"names":[],"mappings":";;;AACA,MAAa,iBAAiB;IAClB,MAAM,CAAS;IACf,UAAU,CAAS;IACnB,UAAU,CAAS;IACnB,UAAU,CAAS;IAE3B,YAAY,EACR,KAAK,EACL,SAAS,EACT,SAAS,EACT,SAAS,GAMZ;QACG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAChC,CAAC;IAED,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,QAAQ;QACJ,OAAO,qBAAqB,IAAI,CAAC,MAAM,OAAO,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACnH,CAAC;CACJ;AA1CD,8CA0CC"}