@nymphjs/pubsub 1.0.0-beta.1 → 1.0.0-beta.11
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/CHANGELOG.md +48 -0
- package/dist/PubSub.js +8 -7
- package/dist/PubSub.js.map +1 -1
- package/dist/PubSub.test.js +25 -23
- package/dist/PubSub.test.js.map +1 -1
- package/package.json +14 -14
- package/src/PubSub.test.ts +23 -18
- package/src/PubSub.ts +76 -66
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,54 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [1.0.0-beta.11](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.10...v1.0.0-beta.11) (2023-02-27)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @nymphjs/pubsub
|
|
9
|
+
|
|
10
|
+
# [1.0.0-beta.10](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.9...v1.0.0-beta.10) (2023-01-19)
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
- explicitly set skipAc to false in PubSub server ([33f96f7](https://github.com/sciactive/nymphjs/commit/33f96f7ccabaedb9e226fe302a996259e0158315))
|
|
15
|
+
|
|
16
|
+
# [1.0.0-beta.9](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.8...v1.0.0-beta.9) (2023-01-09)
|
|
17
|
+
|
|
18
|
+
### Bug Fixes
|
|
19
|
+
|
|
20
|
+
- reworked $is and $equals to better work with new instance based classes ([b1f3f0c](https://github.com/sciactive/nymphjs/commit/b1f3f0cca3e2b0dd392cd9da31167a6bd9487b40))
|
|
21
|
+
|
|
22
|
+
# [1.0.0-beta.8](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.7...v1.0.0-beta.8) (2023-01-09)
|
|
23
|
+
|
|
24
|
+
### Features
|
|
25
|
+
|
|
26
|
+
- make entities in nymph client instance specific too ([1029f06](https://github.com/sciactive/nymphjs/commit/1029f061a1ad193e4a8a2dab0186b9a4b517f646))
|
|
27
|
+
|
|
28
|
+
# [1.0.0-beta.7](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.6...v1.0.0-beta.7) (2023-01-05)
|
|
29
|
+
|
|
30
|
+
**Note:** Version bump only for package @nymphjs/pubsub
|
|
31
|
+
|
|
32
|
+
# [1.0.0-beta.6](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.5...v1.0.0-beta.6) (2023-01-05)
|
|
33
|
+
|
|
34
|
+
**Note:** Version bump only for package @nymphjs/pubsub
|
|
35
|
+
|
|
36
|
+
# [1.0.0-beta.5](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.4...v1.0.0-beta.5) (2022-11-24)
|
|
37
|
+
|
|
38
|
+
**Note:** Version bump only for package @nymphjs/pubsub
|
|
39
|
+
|
|
40
|
+
# [1.0.0-beta.4](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.3...v1.0.0-beta.4) (2022-11-23)
|
|
41
|
+
|
|
42
|
+
**Note:** Version bump only for package @nymphjs/pubsub
|
|
43
|
+
|
|
44
|
+
# [1.0.0-beta.3](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.2...v1.0.0-beta.3) (2022-11-21)
|
|
45
|
+
|
|
46
|
+
**Note:** Version bump only for package @nymphjs/pubsub
|
|
47
|
+
|
|
48
|
+
# [1.0.0-beta.2](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.1...v1.0.0-beta.2) (2022-11-21)
|
|
49
|
+
|
|
50
|
+
### Features
|
|
51
|
+
|
|
52
|
+
- migrate all callbacks to async so errors are properly caught ([7dc8241](https://github.com/sciactive/nymphjs/commit/7dc82411eab381ad81ece044d0998b0c0707749c))
|
|
53
|
+
|
|
6
54
|
# [1.0.0-beta.1](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.0...v1.0.0-beta.1) (2022-11-21)
|
|
7
55
|
|
|
8
56
|
### Bug Fixes
|
package/dist/PubSub.js
CHANGED
|
@@ -7,7 +7,7 @@ const conf_1 = require("./conf");
|
|
|
7
7
|
class PubSub {
|
|
8
8
|
static initPublisher(config, nymph) {
|
|
9
9
|
const configWithDefaults = { ...conf_1.ConfigDefaults, ...config };
|
|
10
|
-
nymph.on('beforeSaveEntity', (nymph, entity) => {
|
|
10
|
+
nymph.on('beforeSaveEntity', async (nymph, entity) => {
|
|
11
11
|
const guid = entity.guid;
|
|
12
12
|
const etype = entity.constructor.ETYPE;
|
|
13
13
|
const off = nymph.on('afterSaveEntity', async (_nymph, result) => {
|
|
@@ -24,7 +24,7 @@ class PubSub {
|
|
|
24
24
|
}), configWithDefaults);
|
|
25
25
|
});
|
|
26
26
|
});
|
|
27
|
-
nymph.on('beforeDeleteEntity', (nymph, entity) => {
|
|
27
|
+
nymph.on('beforeDeleteEntity', async (nymph, entity) => {
|
|
28
28
|
const guid = entity.guid;
|
|
29
29
|
const etype = entity.constructor.ETYPE;
|
|
30
30
|
const off = nymph.on('afterDeleteEntity', async (_nymph, result) => {
|
|
@@ -40,7 +40,7 @@ class PubSub {
|
|
|
40
40
|
}), configWithDefaults);
|
|
41
41
|
});
|
|
42
42
|
});
|
|
43
|
-
nymph.on('beforeDeleteEntityByID', (nymph, guid, className) => {
|
|
43
|
+
nymph.on('beforeDeleteEntityByID', async (nymph, guid, className) => {
|
|
44
44
|
try {
|
|
45
45
|
const etype = nymph.getEntityClass(className ?? 'Entity').ETYPE;
|
|
46
46
|
const off = nymph.on('afterDeleteEntityByID', async (_nymph, result) => {
|
|
@@ -60,7 +60,7 @@ class PubSub {
|
|
|
60
60
|
return;
|
|
61
61
|
}
|
|
62
62
|
});
|
|
63
|
-
nymph.on('beforeNewUID', (nymph, name) => {
|
|
63
|
+
nymph.on('beforeNewUID', async (nymph, name) => {
|
|
64
64
|
const off = nymph.on('afterNewUID', async (_nymph, result) => {
|
|
65
65
|
off();
|
|
66
66
|
const value = await result;
|
|
@@ -75,7 +75,7 @@ class PubSub {
|
|
|
75
75
|
}), configWithDefaults);
|
|
76
76
|
});
|
|
77
77
|
});
|
|
78
|
-
nymph.on('beforeSetUID', (nymph, name, value) => {
|
|
78
|
+
nymph.on('beforeSetUID', async (nymph, name, value) => {
|
|
79
79
|
const off = nymph.on('afterSetUID', async (_nymph, result) => {
|
|
80
80
|
off();
|
|
81
81
|
if (!(await result)) {
|
|
@@ -89,7 +89,7 @@ class PubSub {
|
|
|
89
89
|
}), configWithDefaults);
|
|
90
90
|
});
|
|
91
91
|
});
|
|
92
|
-
nymph.on('beforeRenameUID', (nymph, oldName, newName) => {
|
|
92
|
+
nymph.on('beforeRenameUID', async (nymph, oldName, newName) => {
|
|
93
93
|
const off = nymph.on('afterRenameUID', async (_nymph, result) => {
|
|
94
94
|
off();
|
|
95
95
|
if (!(await result)) {
|
|
@@ -103,7 +103,7 @@ class PubSub {
|
|
|
103
103
|
}), configWithDefaults);
|
|
104
104
|
});
|
|
105
105
|
});
|
|
106
|
-
nymph.on('beforeDeleteUID', (nymph, name) => {
|
|
106
|
+
nymph.on('beforeDeleteUID', async (nymph, name) => {
|
|
107
107
|
const off = nymph.on('afterDeleteUID', async (_nymph, result) => {
|
|
108
108
|
off();
|
|
109
109
|
if (!(await result)) {
|
|
@@ -564,6 +564,7 @@ class PubSub {
|
|
|
564
564
|
class: nymph.getEntityClass(clientOptions.class),
|
|
565
565
|
return: 'entity',
|
|
566
566
|
source: 'client',
|
|
567
|
+
skipAc: false,
|
|
567
568
|
};
|
|
568
569
|
const selectors = (0, nymph_1.classNamesToEntityConstructors)(nymph, clientSelectors);
|
|
569
570
|
if (this.sessions.has(curClient)) {
|
package/dist/PubSub.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PubSub.js","sourceRoot":"","sources":["../src/PubSub.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PubSub.js","sourceRoot":"","sources":["../src/PubSub.ts"],"names":[],"mappings":"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"}
|
package/dist/PubSub.test.js
CHANGED
|
@@ -20,7 +20,7 @@ const pubSubConfig = {
|
|
|
20
20
|
logger: () => { },
|
|
21
21
|
};
|
|
22
22
|
const nymphServer = new nymph_1.Nymph({}, new driver_sqlite3_1.default(sqliteConfig));
|
|
23
|
-
nymphServer.addEntityClass(testArtifacts_js_1.EmployeeModel);
|
|
23
|
+
const EmployeeModel = nymphServer.addEntityClass(testArtifacts_js_1.EmployeeModel);
|
|
24
24
|
PubSub_1.default.initPublisher(pubSubConfig, nymphServer);
|
|
25
25
|
const app = (0, express_1.default)();
|
|
26
26
|
app.use((0, server_1.default)(nymphServer));
|
|
@@ -33,10 +33,10 @@ const nymphOptions = {
|
|
|
33
33
|
};
|
|
34
34
|
const nymph = new client_node_1.Nymph(nymphOptions);
|
|
35
35
|
const pubsub = new client_node_1.PubSub(nymphOptions, nymph);
|
|
36
|
-
nymph.addEntityClass(testArtifacts_js_1.Employee);
|
|
36
|
+
const Employee = nymph.addEntityClass(testArtifacts_js_1.Employee);
|
|
37
37
|
describe('Nymph REST Server and Client', () => {
|
|
38
38
|
async function createJane() {
|
|
39
|
-
const jane = await
|
|
39
|
+
const jane = await Employee.factory();
|
|
40
40
|
jane.name = 'Jane Doe';
|
|
41
41
|
jane.current = true;
|
|
42
42
|
jane.salary = 8000000;
|
|
@@ -53,7 +53,7 @@ describe('Nymph REST Server and Client', () => {
|
|
|
53
53
|
return jane;
|
|
54
54
|
}
|
|
55
55
|
async function createBossJane() {
|
|
56
|
-
const john = await
|
|
56
|
+
const john = await Employee.factory();
|
|
57
57
|
john.name = 'John Der';
|
|
58
58
|
john.current = true;
|
|
59
59
|
john.salary = 8000000;
|
|
@@ -67,7 +67,7 @@ describe('Nymph REST Server and Client', () => {
|
|
|
67
67
|
console.error('Error creating entity: ', e);
|
|
68
68
|
throw e;
|
|
69
69
|
}
|
|
70
|
-
const jane = await
|
|
70
|
+
const jane = await Employee.factory();
|
|
71
71
|
jane.name = 'Jane Doe';
|
|
72
72
|
jane.current = true;
|
|
73
73
|
jane.salary = 8000000;
|
|
@@ -87,7 +87,7 @@ describe('Nymph REST Server and Client', () => {
|
|
|
87
87
|
let jane;
|
|
88
88
|
await new Promise((resolve) => {
|
|
89
89
|
let updated = false;
|
|
90
|
-
const subscription = pubsub.subscribeEntities({ class:
|
|
90
|
+
const subscription = pubsub.subscribeEntities({ class: Employee }, {
|
|
91
91
|
type: '&',
|
|
92
92
|
equal: ['name', 'Jane Doe'],
|
|
93
93
|
})(async (update) => {
|
|
@@ -113,7 +113,7 @@ describe('Nymph REST Server and Client', () => {
|
|
|
113
113
|
if (jane.guid == null) {
|
|
114
114
|
throw new Error('Entity is null.');
|
|
115
115
|
}
|
|
116
|
-
const subscription = pubsub.subscribeEntities({ class:
|
|
116
|
+
const subscription = pubsub.subscribeEntities({ class: Employee }, {
|
|
117
117
|
type: '&',
|
|
118
118
|
guid: jane.guid,
|
|
119
119
|
})(async (update) => {
|
|
@@ -141,11 +141,11 @@ describe('Nymph REST Server and Client', () => {
|
|
|
141
141
|
if (jane.guid == null || john.guid == null) {
|
|
142
142
|
throw new Error('Entity is null.');
|
|
143
143
|
}
|
|
144
|
-
const subscription = pubsub.subscribeEntities({ class:
|
|
144
|
+
const subscription = pubsub.subscribeEntities({ class: Employee }, {
|
|
145
145
|
type: '&',
|
|
146
146
|
qref: [
|
|
147
147
|
'subordinates',
|
|
148
|
-
[{ class:
|
|
148
|
+
[{ class: Employee }, { type: '&', guid: john.guid }],
|
|
149
149
|
],
|
|
150
150
|
})(async (update) => {
|
|
151
151
|
pubsub.updateArray(entities, update);
|
|
@@ -171,12 +171,12 @@ describe('Nymph REST Server and Client', () => {
|
|
|
171
171
|
if (jane.guid == null || john.guid == null) {
|
|
172
172
|
throw new Error('Entity is null.');
|
|
173
173
|
}
|
|
174
|
-
const subscription = pubsub.subscribeEntities({ class:
|
|
174
|
+
const subscription = pubsub.subscribeEntities({ class: Employee }, {
|
|
175
175
|
type: '&',
|
|
176
176
|
guid: jane.guid,
|
|
177
177
|
qref: [
|
|
178
178
|
'subordinates',
|
|
179
|
-
[{ class:
|
|
179
|
+
[{ class: Employee }, { type: '&', '!truthy': 'current' }],
|
|
180
180
|
],
|
|
181
181
|
})(async (update) => {
|
|
182
182
|
pubsub.updateArray(entities, update);
|
|
@@ -200,12 +200,12 @@ describe('Nymph REST Server and Client', () => {
|
|
|
200
200
|
if (jane.guid == null || john.guid == null) {
|
|
201
201
|
throw new Error('Entity is null.');
|
|
202
202
|
}
|
|
203
|
-
const subscription = pubsub.subscribeEntities({ class:
|
|
203
|
+
const subscription = pubsub.subscribeEntities({ class: Employee }, {
|
|
204
204
|
type: '&',
|
|
205
205
|
guid: jane.guid,
|
|
206
206
|
qref: [
|
|
207
207
|
'subordinates',
|
|
208
|
-
[{ class:
|
|
208
|
+
[{ class: Employee }, { type: '&', truthy: 'current' }],
|
|
209
209
|
],
|
|
210
210
|
})(async (update) => {
|
|
211
211
|
pubsub.updateArray(entities, update);
|
|
@@ -231,7 +231,7 @@ describe('Nymph REST Server and Client', () => {
|
|
|
231
231
|
if (jane.guid == null) {
|
|
232
232
|
throw new Error('Entity is null.');
|
|
233
233
|
}
|
|
234
|
-
const subscription = pubsub.subscribeEntities({ class:
|
|
234
|
+
const subscription = pubsub.subscribeEntities({ class: Employee }, {
|
|
235
235
|
type: '&',
|
|
236
236
|
guid: jane.guid,
|
|
237
237
|
})(async (update) => {
|
|
@@ -261,7 +261,7 @@ describe('Nymph REST Server and Client', () => {
|
|
|
261
261
|
if (jane.guid == null) {
|
|
262
262
|
throw new Error('Entity is null.');
|
|
263
263
|
}
|
|
264
|
-
const subscription = pubsub.subscribeEntities({ class:
|
|
264
|
+
const subscription = pubsub.subscribeEntities({ class: Employee }, {
|
|
265
265
|
type: '&',
|
|
266
266
|
equal: ['name', 'Jane Doe'],
|
|
267
267
|
})(async (update) => {
|
|
@@ -288,7 +288,7 @@ describe('Nymph REST Server and Client', () => {
|
|
|
288
288
|
await new Promise((resolve) => {
|
|
289
289
|
let receivedRemove = false;
|
|
290
290
|
let receivedAdd = false;
|
|
291
|
-
const subscription = pubsub.subscribeEntities({ class:
|
|
291
|
+
const subscription = pubsub.subscribeEntities({ class: Employee, limit: 1, reverse: true }, {
|
|
292
292
|
type: '&',
|
|
293
293
|
equal: ['name', 'Jane Doe'],
|
|
294
294
|
})(async (update) => {
|
|
@@ -328,7 +328,7 @@ describe('Nymph REST Server and Client', () => {
|
|
|
328
328
|
throw new Error('Entity is null.');
|
|
329
329
|
}
|
|
330
330
|
expect(jane.salary).toEqual(8000000);
|
|
331
|
-
const janeDupe = await
|
|
331
|
+
const janeDupe = await Employee.factory(jane.guid);
|
|
332
332
|
expect(janeDupe.salary).toEqual(8000000);
|
|
333
333
|
janeDupe.salary = (janeDupe.salary ?? 0) + 1000000;
|
|
334
334
|
await janeDupe.$save();
|
|
@@ -350,14 +350,15 @@ describe('Nymph REST Server and Client', () => {
|
|
|
350
350
|
});
|
|
351
351
|
it('increasing uids', async () => {
|
|
352
352
|
await new Promise(async (resolve) => {
|
|
353
|
-
let
|
|
353
|
+
let receivedFirst = false;
|
|
354
|
+
let lastUpdate = 0;
|
|
354
355
|
const subscription = pubsub.subscribeUID('testIncUID')(async (value) => {
|
|
355
|
-
if (
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
expect(value).toEqual(1);
|
|
356
|
+
if (!receivedFirst) {
|
|
357
|
+
receivedFirst = true;
|
|
358
|
+
expect(value).toBeNull();
|
|
359
|
+
return;
|
|
360
360
|
}
|
|
361
|
+
expect(value).toEqual(lastUpdate + 1);
|
|
361
362
|
lastUpdate = value;
|
|
362
363
|
if (value == 100) {
|
|
363
364
|
subscription.unsubscribe();
|
|
@@ -366,6 +367,7 @@ describe('Nymph REST Server and Client', () => {
|
|
|
366
367
|
}, (err) => {
|
|
367
368
|
expect(err.status).toEqual(404);
|
|
368
369
|
});
|
|
370
|
+
await nymph.deleteUID('testIncUID');
|
|
369
371
|
let directValue = -1;
|
|
370
372
|
while (directValue < 100) {
|
|
371
373
|
directValue = await nymph.newUID('testIncUID');
|
package/dist/PubSub.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PubSub.test.js","sourceRoot":"","sources":["../src/PubSub.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PubSub.test.js","sourceRoot":"","sources":["../src/PubSub.test.ts"],"names":[],"mappings":";;;;;AAAA,sDAA8B;AAC9B,6EAAoD;AACpD,0CAAsD;AACtD,sDAAqD;AACrD,6DAA+C;AAC/C,4EAI+C;AAE/C,oDAAmC;AACnC,sDAAoC;AAEpC,MAAM,YAAY,GAAG;IACnB,QAAQ,EAAE,UAAU;CACrB,CAAC;AAEF,MAAM,YAAY,GAAG;IACnB,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI;IAC3B,OAAO,EAAE,CAAC,sBAAsB,CAAC;IACjC,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,GAAG,IAAI,aAAW,CAAC,EAAE,EAAE,IAAI,wBAAa,CAAC,YAAY,CAAC,CAAC,CAAC;AACzE,MAAM,aAAa,GAAG,WAAW,CAAC,cAAc,CAAC,gCAAkB,CAAC,CAAC;AACrE,gBAAY,CAAC,aAAa,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;AAEtD,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;AACtB,GAAG,CAAC,GAAG,CAAC,IAAA,gBAAgB,EAAC,WAAW,CAAC,CAAC,CAAC;AACvC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAEhC,MAAM,YAAY,GAAG,IAAA,eAAY,EAAC,IAAI,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;AAEnE,MAAM,YAAY,GAAG;IACnB,OAAO,EAAE,wBAAwB;IACjC,SAAS,EAAE,sBAAsB;IACjC,SAAS,EAAE,IAAI;CAChB,CAAC;AACF,MAAM,KAAK,GAAG,IAAI,mBAAK,CAAC,YAAY,CAAC,CAAC;AACtC,MAAM,MAAM,GAAG,IAAI,oBAAM,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AAC/C,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC,2BAAa,CAAC,CAAC;AAErD,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,KAAK,UAAU,UAAU;QACvB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,iBAAiB,CAAC;QAC/B,IAAI;YACF,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;SACpB;QAAC,OAAO,CAAM,EAAE;YACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,CAAC;SACT;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,UAAU,cAAc;QAC3B,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,eAAe,CAAC;QAC7B,IAAI;YACF,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;SACpB;QAAC,OAAO,CAAM,EAAE;YACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,CAAC;SACT;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,iBAAiB,CAAC;QAC/B,IAAI;YACF,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;SACpB;QAAC,OAAO,CAAM,EAAE;YACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,CAAC;SACT;QACD,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,EAAE,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;QACrC,IAAI,IAA4B,CAAC;QAEjC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC5B,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,MAAM,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAC3C,EAAE,KAAK,EAAE,QAAQ,EAAE,EACnB;gBACE,IAAI,EAAE,GAAG;gBACT,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;aAC5B,CACF,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;gBACjB,IAAI,OAAO,EAAE;oBACX,MAAM,CAAC,OAAO,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACrE,MAAM,CAAC,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAClD,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAClB,CAAC;oBACF,YAAY,CAAC,WAAW,EAAE,CAAC;oBAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;iBACf;qBAAM;oBACL,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBAC3B,OAAO,GAAG,IAAI,CAAC;oBACf,IAAI,GAAG,UAAU,EAAE,CAAC;iBACrB;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QACzC,IAAI,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;QAC9B,IAAI,QAAQ,GAAqC,EAAE,CAAC;QAEpD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;gBACrB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;aACpC;YACD,MAAM,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAC3C,EAAE,KAAK,EAAE,QAAQ,EAAE,EACnB;gBACE,IAAI,EAAE,GAAG;gBACT,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CACF,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;gBACjB,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAErC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE;oBACrD,YAAY,CAAC,WAAW,EAAE,CAAC;oBAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;iBACf;qBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oBAChC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBACjC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAE5C,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC;oBAC3C,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;oBACnB,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;iBACzB;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,MAAM,cAAc,EAAE,CAAC;QAC1C,IAAI,QAAQ,GAAqC,EAAE,CAAC;QAEpD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;gBAC1C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;aACpC;YACD,MAAM,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAC3C,EAAE,KAAK,EAAE,QAAQ,EAAE,EACnB;gBACE,IAAI,EAAE,GAAG;gBACT,IAAI,EAAE;oBACJ,cAAc;oBACd,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;iBACtD;aACF,CACF,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;gBACjB,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAErC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE;oBACrD,YAAY,CAAC,WAAW,EAAE,CAAC;oBAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;iBACf;qBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oBAChC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBACjC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAE5C,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC;oBAC3C,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;oBACnB,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;iBACzB;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,MAAM,cAAc,EAAE,CAAC;QAC1C,IAAI,QAAQ,GAAqC,EAAE,CAAC;QAEpD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC5B,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;gBAC1C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;aACpC;YACD,MAAM,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAC3C,EAAE,KAAK,EAAE,QAAQ,EAAE,EACnB;gBACE,IAAI,EAAE,GAAG;gBACT,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE;oBACJ,cAAc;oBACd,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;iBAC3D;aACF,CACF,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;gBACjB,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAErC,IAAI,QAAQ,CAAC,MAAM,EAAE;oBACnB,YAAY,CAAC,WAAW,EAAE,CAAC;oBAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;iBACf;qBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oBAChC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBAGjC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;oBACrB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;iBACpB;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,MAAM,cAAc,EAAE,CAAC;QAC1C,IAAI,QAAQ,GAAqC,EAAE,CAAC;QAEpD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC5B,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;gBAC1C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;aACpC;YACD,MAAM,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAC3C,EAAE,KAAK,EAAE,QAAQ,EAAE,EACnB;gBACE,IAAI,EAAE,GAAG;gBACT,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE;oBACJ,cAAc;oBACd,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;iBACxD;aACF,CACF,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;gBACjB,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAErC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;oBACpB,YAAY,CAAC,WAAW,EAAE,CAAC;oBAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;iBACf;qBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oBAChC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBAGjC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;oBACrB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;iBACpB;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,IAAI,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;QAC9B,IAAI,QAAQ,GAAqC,EAAE,CAAC;QAGpD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAEpE,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAE5B,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;gBACrB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;aACpC;YACD,MAAM,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAC3C,EAAE,KAAK,EAAE,QAAQ,EAAE,EACnB;gBACE,IAAI,EAAE,GAAG;gBACT,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CACF,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;gBACjB,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAErC,IAAI,OAAO,EAAE;oBACX,YAAY,CAAC,WAAW,EAAE,CAAC;oBAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;iBACf;qBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oBAChC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBACjC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC5C,OAAO,GAAG,IAAI,CAAC;oBAEf,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC;oBAC3C,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;iBACpB;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QACzC,IAAI,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;QAC9B,IAAI,QAAQ,GAAqC,EAAE,CAAC;QAGpD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAEpE,IAAI,MAAM,GAAW,CAAC,CAAC,CAAC;QACxB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC5B,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;gBACrB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;aACpC;YACD,MAAM,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAC3C,EAAE,KAAK,EAAE,QAAQ,EAAE,EACnB;gBACE,IAAI,EAAE,GAAG;gBACT,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;aAC5B,CACF,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;gBACjB,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAErC,IAAI,OAAO,EAAE;oBACX,YAAY,CAAC,WAAW,EAAE,CAAC;oBAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;iBACf;qBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oBAChC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;oBACzC,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;oBACvB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;iBACtB;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACvC,IAAI,IAAgD,CAAC;QACrD,IAAI,QAAQ,GAAqC,EAAE,CAAC;QACpD,MAAM,UAAU,EAAE,CAAC;QAGnB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAEpE,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC5B,IAAI,cAAc,GAAG,KAAK,CAAC;YAC3B,IAAI,WAAW,GAAG,KAAK,CAAC;YACxB,MAAM,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAC3C,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAC5C;gBACE,IAAI,EAAE,GAAG;gBACT,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;aAC5B,CACF,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;gBACjB,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAErC,IAAI,IAAI,EAAE;oBACR,IAAI,SAAS,IAAI,MAAM,EAAE;wBACvB,cAAc,GAAG,IAAI,CAAC;qBACvB;oBACD,IAAI,OAAO,IAAI,MAAM,EAAE;wBACrB,WAAW,GAAG,IAAI,CAAC;qBACpB;oBACD,IAAI,WAAW,IAAI,cAAc,EAAE;wBACjC,YAAY,CAAC,WAAW,EAAE,CAAC;wBAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;qBACf;iBACF;qBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oBAChC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBACjC,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;iBAC3B;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC9C,IAAI,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;QAE9B,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAClC,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,MAAM,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;gBACzD,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE;oBAC7C,YAAY,CAAC,WAAW,EAAE,CAAC;oBAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;iBACf;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;gBACrB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;aACpC;YAED,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACrC,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAEzC,QAAQ,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC;YACnD,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;YACvB,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QACvB,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAClC,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CACpD,KAAK,EAAE,KAAK,EAAE,EAAE;gBACd,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBACnC,YAAY,CAAC,WAAW,EAAE,CAAC;gBAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;gBACN,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClC,CAAC,CACF,CAAC;YAEF,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;QAC/B,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAClC,IAAI,aAAa,GAAG,KAAK,CAAC;YAC1B,IAAI,UAAU,GAAW,CAAC,CAAC;YAC3B,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CACpD,KAAK,EAAE,KAAK,EAAE,EAAE;gBACd,IAAI,CAAC,aAAa,EAAE;oBAClB,aAAa,GAAG,IAAI,CAAC;oBACrB,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACzB,OAAO;iBACR;gBAED,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;gBACtC,UAAU,GAAG,KAAK,CAAC;gBACnB,IAAI,KAAK,IAAI,GAAG,EAAE;oBAChB,YAAY,CAAC,WAAW,EAAE,CAAC;oBAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;iBACf;YACH,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;gBACN,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClC,CAAC,CACF,CAAC;YAEF,MAAM,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YAEpC,IAAI,WAAW,GAAW,CAAC,CAAC,CAAC;YAC7B,OAAO,WAAW,GAAG,GAAG,EAAE;gBACxB,WAAW,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aAChD;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QACvB,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAClC,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CACpD,KAAK,EAAE,KAAK,EAAE,EAAE;gBACd,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC3B,YAAY,CAAC,WAAW,EAAE,CAAC;gBAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;gBACN,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClC,CAAC,CACF,CAAC;YAEF,MAAM,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAClC,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CACvD,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACrB,IAAI,OAAO,EAAE;oBACX,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;oBACnC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC5B,YAAY,CAAC,WAAW,EAAE,CAAC;oBAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;iBACf;qBAAM;oBACL,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC3B,OAAO,GAAG,IAAI,CAAC;iBAChB;YACH,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;gBACN,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClC,CAAC,CACF,CAAC;YAEF,MAAM,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;YACzC,MAAM,WAAW,CAAC,SAAS,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAClC,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CACvD,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACrB,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAChC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC3B,YAAY,CAAC,WAAW,EAAE,CAAC;gBAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;gBACN,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClC,CAAC,CACF,CAAC;YAEF,MAAM,KAAK,CAAC,MAAM,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;YAC1C,MAAM,WAAW,CAAC,SAAS,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;QAC1B,MAAM,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QAEzC,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAClC,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CACvD,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACrB,IAAI,OAAO,IAAI,KAAK,KAAK,WAAW,EAAE;oBACpC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC5B,YAAY,CAAC,WAAW,EAAE,CAAC;oBAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;iBACf;qBAAM;oBACL,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC3B,OAAO,GAAG,IAAI,CAAC;iBAChB;YACH,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;gBACN,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClC,CAAC,CACF,CAAC;YAEF,MAAM,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,KAAK,IAAI,EAAE;QAElB,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACrC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;gBAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,CAAC;QACb,YAAY,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nymphjs/pubsub",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.11",
|
|
4
4
|
"description": "NymphJS - PubSub Server",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -31,24 +31,24 @@
|
|
|
31
31
|
},
|
|
32
32
|
"license": "Apache-2.0",
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@nymphjs/nymph": "^1.0.0-beta.
|
|
34
|
+
"@nymphjs/nymph": "^1.0.0-beta.11",
|
|
35
35
|
"lodash": "^4.17.21",
|
|
36
36
|
"websocket": "^1.0.34"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@nymphjs/client": "^1.0.0-beta.
|
|
40
|
-
"@nymphjs/client-node": "^1.0.0-beta.
|
|
41
|
-
"@nymphjs/driver-sqlite3": "^1.0.0-beta.
|
|
42
|
-
"@nymphjs/server": "^1.0.0-beta.
|
|
43
|
-
"@tsconfig/recommended": "^1.0.
|
|
44
|
-
"@types/express": "^4.17.
|
|
45
|
-
"@types/jest": "^29.
|
|
46
|
-
"@types/lodash": "^4.14.
|
|
39
|
+
"@nymphjs/client": "^1.0.0-beta.11",
|
|
40
|
+
"@nymphjs/client-node": "^1.0.0-beta.11",
|
|
41
|
+
"@nymphjs/driver-sqlite3": "^1.0.0-beta.11",
|
|
42
|
+
"@nymphjs/server": "^1.0.0-beta.11",
|
|
43
|
+
"@tsconfig/recommended": "^1.0.2",
|
|
44
|
+
"@types/express": "^4.17.17",
|
|
45
|
+
"@types/jest": "^29.4.0",
|
|
46
|
+
"@types/lodash": "^4.14.191",
|
|
47
47
|
"@types/websocket": "^1.0.5",
|
|
48
48
|
"express": "^4.18.2",
|
|
49
|
-
"jest": "^29.3
|
|
50
|
-
"ts-jest": "^29.0.
|
|
51
|
-
"typescript": "^4.9.
|
|
49
|
+
"jest": "^29.4.3",
|
|
50
|
+
"ts-jest": "^29.0.5",
|
|
51
|
+
"typescript": "^4.9.5"
|
|
52
52
|
},
|
|
53
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "812eeec8e5b100c6f82abbae1722cfc64a167046"
|
|
54
54
|
}
|
package/src/PubSub.test.ts
CHANGED
|
@@ -4,8 +4,8 @@ import { Nymph as NymphServer } from '@nymphjs/nymph';
|
|
|
4
4
|
import { Nymph, PubSub } from '@nymphjs/client-node';
|
|
5
5
|
import createRestServer from '@nymphjs/server';
|
|
6
6
|
import {
|
|
7
|
-
EmployeeModel,
|
|
8
|
-
Employee,
|
|
7
|
+
EmployeeModel as EmployeeModelClass,
|
|
8
|
+
Employee as EmployeeClass,
|
|
9
9
|
EmployeeData,
|
|
10
10
|
} from '@nymphjs/server/dist/testArtifacts.js';
|
|
11
11
|
|
|
@@ -23,7 +23,7 @@ const pubSubConfig = {
|
|
|
23
23
|
};
|
|
24
24
|
|
|
25
25
|
const nymphServer = new NymphServer({}, new SQLite3Driver(sqliteConfig));
|
|
26
|
-
nymphServer.addEntityClass(
|
|
26
|
+
const EmployeeModel = nymphServer.addEntityClass(EmployeeModelClass);
|
|
27
27
|
PubSubServer.initPublisher(pubSubConfig, nymphServer);
|
|
28
28
|
|
|
29
29
|
const app = express();
|
|
@@ -39,7 +39,7 @@ const nymphOptions = {
|
|
|
39
39
|
};
|
|
40
40
|
const nymph = new Nymph(nymphOptions);
|
|
41
41
|
const pubsub = new PubSub(nymphOptions, nymph);
|
|
42
|
-
nymph.addEntityClass(
|
|
42
|
+
const Employee = nymph.addEntityClass(EmployeeClass);
|
|
43
43
|
|
|
44
44
|
describe('Nymph REST Server and Client', () => {
|
|
45
45
|
async function createJane() {
|
|
@@ -91,7 +91,7 @@ describe('Nymph REST Server and Client', () => {
|
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
it('notified of new match', async () => {
|
|
94
|
-
let jane: Promise<
|
|
94
|
+
let jane: Promise<EmployeeClass>;
|
|
95
95
|
|
|
96
96
|
await new Promise((resolve) => {
|
|
97
97
|
let updated = false;
|
|
@@ -120,7 +120,7 @@ describe('Nymph REST Server and Client', () => {
|
|
|
120
120
|
|
|
121
121
|
it('notified of entity update', async () => {
|
|
122
122
|
let jane = await createJane();
|
|
123
|
-
let entities: (
|
|
123
|
+
let entities: (EmployeeClass & EmployeeData)[] = [];
|
|
124
124
|
|
|
125
125
|
await new Promise((resolve) => {
|
|
126
126
|
let mdate = 0;
|
|
@@ -155,7 +155,7 @@ describe('Nymph REST Server and Client', () => {
|
|
|
155
155
|
|
|
156
156
|
it('notified of entity update for qref query', async () => {
|
|
157
157
|
let [jane, john] = await createBossJane();
|
|
158
|
-
let entities: (
|
|
158
|
+
let entities: (EmployeeClass & EmployeeData)[] = [];
|
|
159
159
|
|
|
160
160
|
await new Promise((resolve) => {
|
|
161
161
|
let mdate = 0;
|
|
@@ -193,7 +193,7 @@ describe('Nymph REST Server and Client', () => {
|
|
|
193
193
|
|
|
194
194
|
it('notified of new match for qref query', async () => {
|
|
195
195
|
let [jane, john] = await createBossJane();
|
|
196
|
-
let entities: (
|
|
196
|
+
let entities: (EmployeeClass & EmployeeData)[] = [];
|
|
197
197
|
|
|
198
198
|
await new Promise((resolve) => {
|
|
199
199
|
if (jane.guid == null || john.guid == null) {
|
|
@@ -230,7 +230,7 @@ describe('Nymph REST Server and Client', () => {
|
|
|
230
230
|
|
|
231
231
|
it('notified of removed match for qref query', async () => {
|
|
232
232
|
let [jane, john] = await createBossJane();
|
|
233
|
-
let entities: (
|
|
233
|
+
let entities: (EmployeeClass & EmployeeData)[] = [];
|
|
234
234
|
|
|
235
235
|
await new Promise((resolve) => {
|
|
236
236
|
if (jane.guid == null || john.guid == null) {
|
|
@@ -267,7 +267,7 @@ describe('Nymph REST Server and Client', () => {
|
|
|
267
267
|
|
|
268
268
|
it('receives correct number of updates', async () => {
|
|
269
269
|
let jane = await createJane();
|
|
270
|
-
let entities: (
|
|
270
|
+
let entities: (EmployeeClass & EmployeeData)[] = [];
|
|
271
271
|
|
|
272
272
|
// Wait for change to propagate. (Only needed since we're not going across network.)
|
|
273
273
|
await new Promise((resolve) => setTimeout(() => resolve(true), 10));
|
|
@@ -306,7 +306,7 @@ describe('Nymph REST Server and Client', () => {
|
|
|
306
306
|
|
|
307
307
|
it('notified of entity delete', async () => {
|
|
308
308
|
let jane = await createJane();
|
|
309
|
-
let entities: (
|
|
309
|
+
let entities: (EmployeeClass & EmployeeData)[] = [];
|
|
310
310
|
|
|
311
311
|
// Wait for change to propagate. (Only needed since we're not going across network.)
|
|
312
312
|
await new Promise((resolve) => setTimeout(() => resolve(true), 10));
|
|
@@ -342,8 +342,8 @@ describe('Nymph REST Server and Client', () => {
|
|
|
342
342
|
});
|
|
343
343
|
|
|
344
344
|
it('entire match is updated', async () => {
|
|
345
|
-
let jane: (
|
|
346
|
-
let entities: (
|
|
345
|
+
let jane: (EmployeeClass & EmployeeData) | undefined;
|
|
346
|
+
let entities: (EmployeeClass & EmployeeData)[] = [];
|
|
347
347
|
await createJane();
|
|
348
348
|
|
|
349
349
|
// Wait for change to propagate. (Only needed since we're not going across network.)
|
|
@@ -430,14 +430,17 @@ describe('Nymph REST Server and Client', () => {
|
|
|
430
430
|
|
|
431
431
|
it('increasing uids', async () => {
|
|
432
432
|
await new Promise(async (resolve) => {
|
|
433
|
-
let
|
|
433
|
+
let receivedFirst = false;
|
|
434
|
+
let lastUpdate: number = 0;
|
|
434
435
|
const subscription = pubsub.subscribeUID('testIncUID')(
|
|
435
436
|
async (value) => {
|
|
436
|
-
if (
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
437
|
+
if (!receivedFirst) {
|
|
438
|
+
receivedFirst = true;
|
|
439
|
+
expect(value).toBeNull();
|
|
440
|
+
return;
|
|
440
441
|
}
|
|
442
|
+
|
|
443
|
+
expect(value).toEqual(lastUpdate + 1);
|
|
441
444
|
lastUpdate = value;
|
|
442
445
|
if (value == 100) {
|
|
443
446
|
subscription.unsubscribe();
|
|
@@ -449,6 +452,8 @@ describe('Nymph REST Server and Client', () => {
|
|
|
449
452
|
}
|
|
450
453
|
);
|
|
451
454
|
|
|
455
|
+
await nymph.deleteUID('testIncUID');
|
|
456
|
+
|
|
452
457
|
let directValue: number = -1;
|
|
453
458
|
while (directValue < 100) {
|
|
454
459
|
directValue = await nymph.newUID('testIncUID');
|
package/src/PubSub.ts
CHANGED
|
@@ -68,58 +68,64 @@ export default class PubSub {
|
|
|
68
68
|
public static initPublisher(config: Partial<Config>, nymph: Nymph) {
|
|
69
69
|
const configWithDefaults: Config = { ...defaults, ...config };
|
|
70
70
|
|
|
71
|
-
nymph.on(
|
|
72
|
-
|
|
73
|
-
|
|
71
|
+
nymph.on(
|
|
72
|
+
'beforeSaveEntity',
|
|
73
|
+
async (nymph: Nymph, entity: EntityInterface) => {
|
|
74
|
+
const guid = entity.guid;
|
|
75
|
+
const etype = (entity.constructor as EntityConstructor).ETYPE;
|
|
74
76
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
77
|
+
const off = nymph.on(
|
|
78
|
+
'afterSaveEntity',
|
|
79
|
+
async (_nymph: Nymph, result: Promise<boolean>) => {
|
|
80
|
+
off();
|
|
81
|
+
if (!(await result)) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
this.publish(
|
|
85
|
+
JSON.stringify({
|
|
86
|
+
action: 'publish',
|
|
87
|
+
event: guid == null ? 'create' : 'update',
|
|
88
|
+
guid: entity.guid,
|
|
89
|
+
entity: entity.toJSON(),
|
|
90
|
+
etype: etype,
|
|
91
|
+
}),
|
|
92
|
+
configWithDefaults
|
|
93
|
+
);
|
|
81
94
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
event: guid == null ? 'create' : 'update',
|
|
86
|
-
guid: entity.guid,
|
|
87
|
-
entity: entity.toJSON(),
|
|
88
|
-
etype: etype,
|
|
89
|
-
}),
|
|
90
|
-
configWithDefaults
|
|
91
|
-
);
|
|
92
|
-
}
|
|
93
|
-
);
|
|
94
|
-
});
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
);
|
|
95
98
|
|
|
96
|
-
nymph.on(
|
|
97
|
-
|
|
98
|
-
|
|
99
|
+
nymph.on(
|
|
100
|
+
'beforeDeleteEntity',
|
|
101
|
+
async (nymph: Nymph, entity: EntityInterface) => {
|
|
102
|
+
const guid = entity.guid;
|
|
103
|
+
const etype = (entity.constructor as EntityConstructor).ETYPE;
|
|
99
104
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
105
|
+
const off = nymph.on(
|
|
106
|
+
'afterDeleteEntity',
|
|
107
|
+
async (_nymph: Nymph, result: Promise<boolean>) => {
|
|
108
|
+
off();
|
|
109
|
+
if (!(await result)) {
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
this.publish(
|
|
113
|
+
JSON.stringify({
|
|
114
|
+
action: 'publish',
|
|
115
|
+
event: 'delete',
|
|
116
|
+
guid: guid,
|
|
117
|
+
etype: etype,
|
|
118
|
+
}),
|
|
119
|
+
configWithDefaults
|
|
120
|
+
);
|
|
106
121
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
event: 'delete',
|
|
111
|
-
guid: guid,
|
|
112
|
-
etype: etype,
|
|
113
|
-
}),
|
|
114
|
-
configWithDefaults
|
|
115
|
-
);
|
|
116
|
-
}
|
|
117
|
-
);
|
|
118
|
-
});
|
|
122
|
+
);
|
|
123
|
+
}
|
|
124
|
+
);
|
|
119
125
|
|
|
120
126
|
nymph.on(
|
|
121
127
|
'beforeDeleteEntityByID',
|
|
122
|
-
(nymph: Nymph, guid: string, className?: string) => {
|
|
128
|
+
async (nymph: Nymph, guid: string, className?: string) => {
|
|
123
129
|
try {
|
|
124
130
|
const etype = nymph.getEntityClass(className ?? 'Entity').ETYPE;
|
|
125
131
|
|
|
@@ -147,7 +153,7 @@ export default class PubSub {
|
|
|
147
153
|
}
|
|
148
154
|
);
|
|
149
155
|
|
|
150
|
-
nymph.on('beforeNewUID', (nymph: Nymph, name: string) => {
|
|
156
|
+
nymph.on('beforeNewUID', async (nymph: Nymph, name: string) => {
|
|
151
157
|
const off = nymph.on(
|
|
152
158
|
'afterNewUID',
|
|
153
159
|
async (_nymph: Nymph, result: Promise<number | null>) => {
|
|
@@ -169,30 +175,33 @@ export default class PubSub {
|
|
|
169
175
|
);
|
|
170
176
|
});
|
|
171
177
|
|
|
172
|
-
nymph.on(
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
178
|
+
nymph.on(
|
|
179
|
+
'beforeSetUID',
|
|
180
|
+
async (nymph: Nymph, name: string, value: number) => {
|
|
181
|
+
const off = nymph.on(
|
|
182
|
+
'afterSetUID',
|
|
183
|
+
async (_nymph: Nymph, result: Promise<boolean>) => {
|
|
184
|
+
off();
|
|
185
|
+
if (!(await result)) {
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
this.publish(
|
|
189
|
+
JSON.stringify({
|
|
190
|
+
action: 'publish',
|
|
191
|
+
event: 'setUID',
|
|
192
|
+
name: name,
|
|
193
|
+
value: value,
|
|
194
|
+
}),
|
|
195
|
+
configWithDefaults
|
|
196
|
+
);
|
|
179
197
|
}
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
event: 'setUID',
|
|
184
|
-
name: name,
|
|
185
|
-
value: value,
|
|
186
|
-
}),
|
|
187
|
-
configWithDefaults
|
|
188
|
-
);
|
|
189
|
-
}
|
|
190
|
-
);
|
|
191
|
-
});
|
|
198
|
+
);
|
|
199
|
+
}
|
|
200
|
+
);
|
|
192
201
|
|
|
193
202
|
nymph.on(
|
|
194
203
|
'beforeRenameUID',
|
|
195
|
-
(nymph: Nymph, oldName: string, newName: string) => {
|
|
204
|
+
async (nymph: Nymph, oldName: string, newName: string) => {
|
|
196
205
|
const off = nymph.on(
|
|
197
206
|
'afterRenameUID',
|
|
198
207
|
async (_nymph: Nymph, result: Promise<boolean>) => {
|
|
@@ -214,7 +223,7 @@ export default class PubSub {
|
|
|
214
223
|
}
|
|
215
224
|
);
|
|
216
225
|
|
|
217
|
-
nymph.on('beforeDeleteUID', (nymph: Nymph, name: string) => {
|
|
226
|
+
nymph.on('beforeDeleteUID', async (nymph: Nymph, name: string) => {
|
|
218
227
|
const off = nymph.on(
|
|
219
228
|
'afterDeleteUID',
|
|
220
229
|
async (_nymph: Nymph, result: Promise<boolean>) => {
|
|
@@ -940,6 +949,7 @@ export default class PubSub {
|
|
|
940
949
|
class: nymph.getEntityClass(clientOptions.class),
|
|
941
950
|
return: 'entity',
|
|
942
951
|
source: 'client',
|
|
952
|
+
skipAc: false,
|
|
943
953
|
};
|
|
944
954
|
const selectors = classNamesToEntityConstructors(nymph, clientSelectors);
|
|
945
955
|
if (this.sessions.has(curClient)) {
|