@nymphjs/pubsub 1.0.0-alpha.35 → 1.0.0-alpha.36

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 CHANGED
@@ -3,6 +3,12 @@
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-alpha.36](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.35...v1.0.0-alpha.36) (2022-01-26)
7
+
8
+ ### Features
9
+
10
+ - support subscribing to queries with qref in pubsub server ([6d9a0af](https://github.com/sciactive/nymphjs/commit/6d9a0afea653ae00130c47087b21d87c5666d229))
11
+
6
12
  # [1.0.0-alpha.35](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.34...v1.0.0-alpha.35) (2022-01-19)
7
13
 
8
14
  **Note:** Version bump only for package @nymphjs/pubsub
package/dist/PubSub.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { Nymph } from '@nymphjs/nymph';
2
2
  import { request, server as WebSocketServer, connection, Message } from 'websocket';
3
3
  import { Config } from './conf';
4
+ import type { QuerySubscriptionData } from './PubSub.types';
4
5
  export default class PubSub {
5
6
  nymph: Nymph;
6
7
  config: Config;
@@ -8,11 +9,7 @@ export default class PubSub {
8
9
  private sessions;
9
10
  protected querySubs: {
10
11
  [etype: string]: {
11
- [query: string]: Map<connection, {
12
- current: string[];
13
- query: string;
14
- count: boolean;
15
- }>;
12
+ [query: string]: Map<connection, QuerySubscriptionData>;
16
13
  };
17
14
  };
18
15
  protected uidSubs: {
@@ -34,6 +31,9 @@ export default class PubSub {
34
31
  private handleSubscriptionUid;
35
32
  private handlePublish;
36
33
  private handlePublishEntity;
34
+ private updateClient;
37
35
  private handlePublishUid;
38
36
  private relay;
37
+ private findQRefQueries;
38
+ private translateQRefSelectors;
39
39
  }
package/dist/PubSub.js CHANGED
@@ -9,6 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
+ const nymph_1 = require("@nymphjs/nymph");
12
13
  const websocket_1 = require("websocket");
13
14
  const lodash_1 = require("lodash");
14
15
  const conf_1 = require("./conf");
@@ -291,7 +292,7 @@ class PubSub {
291
292
  }
292
293
  });
293
294
  }
294
- handleSubscriptionQuery(from, data) {
295
+ handleSubscriptionQuery(from, data, qrefParent) {
295
296
  return __awaiter(this, void 0, void 0, function* () {
296
297
  let args;
297
298
  let EntityClass;
@@ -306,7 +307,17 @@ class PubSub {
306
307
  const serialArgs = JSON.stringify(args);
307
308
  const [clientOptions, ...selectors] = args;
308
309
  const options = Object.assign(Object.assign({}, clientOptions), { class: EntityClass, return: 'guid', source: 'client' });
310
+ const qrefQueries = this.findQRefQueries(clientOptions, ...selectors);
309
311
  if (data.action === 'subscribe') {
312
+ for (const qrefQuery of qrefQueries) {
313
+ yield this.handleSubscriptionQuery(from, {
314
+ action: 'subscribe',
315
+ query: JSON.stringify(qrefQuery),
316
+ }, {
317
+ etype,
318
+ query: serialArgs,
319
+ });
320
+ }
310
321
  if (!(etype in this.querySubs)) {
311
322
  this.querySubs[etype] = {};
312
323
  }
@@ -324,11 +335,27 @@ class PubSub {
324
335
  nymph.tilmeld.fillSession(user);
325
336
  }
326
337
  }
327
- this.querySubs[etype][serialArgs].set(from, {
328
- current: yield nymph.getEntities(options, ...selectors),
329
- query: data.query,
330
- count: !!data.count,
331
- });
338
+ const existingSub = this.querySubs[etype][serialArgs].get(from);
339
+ if (existingSub) {
340
+ if (qrefParent) {
341
+ existingSub.qrefParents.push(qrefParent);
342
+ }
343
+ if (!qrefParent && !existingSub.direct) {
344
+ existingSub.direct = true;
345
+ }
346
+ if (data.count && !existingSub.count) {
347
+ existingSub.count = true;
348
+ }
349
+ }
350
+ else {
351
+ this.querySubs[etype][serialArgs].set(from, {
352
+ current: yield nymph.getEntities(options, ...selectors),
353
+ query: data.query,
354
+ qrefParents: qrefParent ? [qrefParent] : [],
355
+ direct: !qrefParent,
356
+ count: !!data.count,
357
+ });
358
+ }
332
359
  if (nymph.tilmeld != null && token != null) {
333
360
  nymph.tilmeld.clearSession();
334
361
  }
@@ -347,6 +374,15 @@ class PubSub {
347
374
  }
348
375
  }
349
376
  if (data.action === 'unsubscribe') {
377
+ for (const qrefQuery of qrefQueries) {
378
+ yield this.handleSubscriptionQuery(from, {
379
+ action: 'unsubscribe',
380
+ query: JSON.stringify(qrefQuery),
381
+ }, {
382
+ etype,
383
+ query: serialArgs,
384
+ });
385
+ }
350
386
  if (!(etype in this.querySubs)) {
351
387
  return;
352
388
  }
@@ -356,7 +392,19 @@ class PubSub {
356
392
  if (!this.querySubs[etype][serialArgs].has(from)) {
357
393
  return;
358
394
  }
359
- this.querySubs[etype][serialArgs].delete(from);
395
+ const existingSub = this.querySubs[etype][serialArgs].get(from);
396
+ if (existingSub) {
397
+ if (qrefParent) {
398
+ existingSub.qrefParents = existingSub.qrefParents.filter((parent) => !(qrefParent.etype === parent.etype &&
399
+ qrefParent.query === parent.query));
400
+ }
401
+ if (!qrefParent) {
402
+ existingSub.direct = false;
403
+ }
404
+ if (!existingSub.direct && !existingSub.qrefParents.length) {
405
+ this.querySubs[etype][serialArgs].delete(from);
406
+ }
407
+ }
360
408
  this.config.logger('log', new Date().toISOString(), `Client unsubscribed from a query! (${serialArgs}, ${from.remoteAddress})`);
361
409
  const count = this.querySubs[etype][serialArgs].size;
362
410
  if (count === 0) {
@@ -455,7 +503,7 @@ class PubSub {
455
503
  });
456
504
  }
457
505
  handlePublishEntity(from, data) {
458
- var _a, _b;
506
+ var _a, _b, _c, _d;
459
507
  return __awaiter(this, void 0, void 0, function* () {
460
508
  this.config.logger('log', new Date().toISOString(), `Received an entity publish! (${data.guid}, ${data.event}, ${from.remoteAddress})`);
461
509
  const etype = data.etype;
@@ -465,68 +513,6 @@ class PubSub {
465
513
  for (let curQuery in this.querySubs[etype]) {
466
514
  const curClients = this.querySubs[etype][curQuery];
467
515
  const updatedClients = new Set();
468
- const updateClient = (curClient, curData) => __awaiter(this, void 0, void 0, function* () {
469
- let current;
470
- let token;
471
- const nymph = this.nymph.clone();
472
- try {
473
- const [clientOptions, ...selectors] = JSON.parse(curQuery);
474
- const options = Object.assign(Object.assign({}, clientOptions), { class: nymph.getEntityClass(clientOptions.class), return: 'entity', source: 'client' });
475
- if (this.sessions.has(curClient)) {
476
- token = this.sessions.get(curClient);
477
- }
478
- if (nymph.tilmeld != null && token != null) {
479
- const user = yield nymph.tilmeld.extractToken(token);
480
- if (user) {
481
- nymph.tilmeld.fillSession(user);
482
- }
483
- }
484
- current = yield nymph.getEntities(options, ...selectors);
485
- }
486
- catch (e) {
487
- this.config.logger('error', new Date().toISOString(), `Error updating client! (${e === null || e === void 0 ? void 0 : e.message}, ${curClient.remoteAddress})`);
488
- return;
489
- }
490
- const entityMap = Object.fromEntries(current.map((entity) => [entity.guid, entity]));
491
- const currentGuids = current.map((entity) => { var _a; return (_a = entity.guid) !== null && _a !== void 0 ? _a : ''; });
492
- const removed = (0, lodash_1.difference)(curData.current, currentGuids);
493
- const added = (0, lodash_1.difference)(currentGuids, curData.current);
494
- for (let guid of removed) {
495
- this.config.logger('log', new Date().toISOString(), `Notifying client of removal! (${curClient.remoteAddress})`);
496
- curClient.sendUTF(JSON.stringify({
497
- query: curData.query,
498
- removed: guid,
499
- }));
500
- }
501
- for (let guid of added) {
502
- const entity = entityMap[guid];
503
- this.config.logger('log', new Date().toISOString(), `Notifying client of new match! (${curClient.remoteAddress})`);
504
- if (typeof entity.updateDataProtection === 'function') {
505
- entity.updateDataProtection();
506
- }
507
- curClient.sendUTF(JSON.stringify({
508
- query: curData.query,
509
- added: guid,
510
- data: entity,
511
- }));
512
- }
513
- if (data.event === 'update' && data.guid in entityMap) {
514
- const entity = entityMap[data.guid];
515
- this.config.logger('log', new Date().toISOString(), `Notifying client of update! (${curClient.remoteAddress})`);
516
- if (typeof entity.updateDataProtection === 'function') {
517
- entity.updateDataProtection();
518
- }
519
- curClient.sendUTF(JSON.stringify({
520
- query: curData.query,
521
- updated: data.guid,
522
- data: entity,
523
- }));
524
- }
525
- curData.current = currentGuids;
526
- if (nymph.tilmeld != null && token != null) {
527
- nymph.tilmeld.clearSession();
528
- }
529
- });
530
516
  if (data.event === 'delete' || data.event === 'update') {
531
517
  try {
532
518
  for (const curClient of curClients.keys()) {
@@ -535,7 +521,7 @@ class PubSub {
535
521
  continue;
536
522
  }
537
523
  if (curData.current.indexOf(data.guid) !== -1) {
538
- yield updateClient(curClient, curData);
524
+ yield this.updateClient(curClient, curData, data);
539
525
  updatedClients.add(curClient);
540
526
  }
541
527
  }
@@ -546,7 +532,8 @@ class PubSub {
546
532
  }
547
533
  if ((data.event === 'create' || data.event === 'update') && data.entity) {
548
534
  try {
549
- let [clientOptions, ...selectors] = JSON.parse(curQuery);
535
+ const [clientOptions, ...selectors] = JSON.parse(curQuery);
536
+ const qrefQueries = this.findQRefQueries(clientOptions, ...selectors);
550
537
  const EntityClass = this.nymph.getEntityClass(clientOptions.class);
551
538
  const entityData = data.entity.data;
552
539
  entityData.cdate = data.entity.cdate;
@@ -557,7 +544,8 @@ class PubSub {
557
544
  }
558
545
  const DataEntityClass = this.nymph.getEntityClass(data.entity.class);
559
546
  if (EntityClass.ETYPE === DataEntityClass.ETYPE &&
560
- this.nymph.driver.checkData(entityData, entitySData, selectors, data.guid, (_b = (_a = data.entity) === null || _a === void 0 ? void 0 : _a.tags) !== null && _b !== void 0 ? _b : [])) {
547
+ (qrefQueries.length ||
548
+ this.nymph.driver.checkData(entityData, entitySData, selectors, data.guid, (_b = (_a = data.entity) === null || _a === void 0 ? void 0 : _a.tags) !== null && _b !== void 0 ? _b : []))) {
561
549
  for (let curClient of curClients.keys()) {
562
550
  if (updatedClients.has(curClient)) {
563
551
  continue;
@@ -566,7 +554,13 @@ class PubSub {
566
554
  if (!curData) {
567
555
  continue;
568
556
  }
569
- yield updateClient(curClient, curData);
557
+ if (qrefQueries.length) {
558
+ const translatedSelectors = this.translateQRefSelectors(curClient, selectors);
559
+ if (!this.nymph.driver.checkData(entityData, entitySData, translatedSelectors, data.guid, (_d = (_c = data.entity) === null || _c === void 0 ? void 0 : _c.tags) !== null && _d !== void 0 ? _d : [])) {
560
+ continue;
561
+ }
562
+ }
563
+ yield this.updateClient(curClient, curData, data);
570
564
  }
571
565
  }
572
566
  }
@@ -577,6 +571,81 @@ class PubSub {
577
571
  }
578
572
  });
579
573
  }
574
+ updateClient(curClient, curData, data) {
575
+ return __awaiter(this, void 0, void 0, function* () {
576
+ let current;
577
+ let token;
578
+ const nymph = this.nymph.clone();
579
+ try {
580
+ const [clientOptions, ...clientSelectors] = JSON.parse(curData.query);
581
+ const options = Object.assign(Object.assign({}, clientOptions), { class: nymph.getEntityClass(clientOptions.class), return: 'entity', source: 'client' });
582
+ const selectors = (0, nymph_1.classNamesToEntityConstructors)(nymph, clientSelectors);
583
+ if (this.sessions.has(curClient)) {
584
+ token = this.sessions.get(curClient);
585
+ }
586
+ if (nymph.tilmeld != null && token != null) {
587
+ const user = yield nymph.tilmeld.extractToken(token);
588
+ if (user) {
589
+ nymph.tilmeld.fillSession(user);
590
+ }
591
+ }
592
+ current = yield nymph.getEntities(options, ...selectors);
593
+ }
594
+ catch (e) {
595
+ this.config.logger('error', new Date().toISOString(), `Error updating client! (${e === null || e === void 0 ? void 0 : e.message}, ${curClient.remoteAddress})`);
596
+ return;
597
+ }
598
+ const entityMap = Object.fromEntries(current.map((entity) => [entity.guid, entity]));
599
+ const currentGuids = current.map((entity) => { var _a; return (_a = entity.guid) !== null && _a !== void 0 ? _a : ''; });
600
+ const removed = (0, lodash_1.difference)(curData.current, currentGuids);
601
+ const added = (0, lodash_1.difference)(currentGuids, curData.current);
602
+ if (curData.direct) {
603
+ for (let guid of removed) {
604
+ this.config.logger('log', new Date().toISOString(), `Notifying client of removal! (${curClient.remoteAddress})`);
605
+ curClient.sendUTF(JSON.stringify({
606
+ query: curData.query,
607
+ removed: guid,
608
+ }));
609
+ }
610
+ for (let guid of added) {
611
+ const entity = entityMap[guid];
612
+ this.config.logger('log', new Date().toISOString(), `Notifying client of new match! (${curClient.remoteAddress})`);
613
+ if (typeof entity.updateDataProtection === 'function') {
614
+ entity.updateDataProtection();
615
+ }
616
+ curClient.sendUTF(JSON.stringify({
617
+ query: curData.query,
618
+ added: guid,
619
+ data: entity,
620
+ }));
621
+ }
622
+ if (data.event === 'update' && data.guid in entityMap) {
623
+ const entity = entityMap[data.guid];
624
+ this.config.logger('log', new Date().toISOString(), `Notifying client of update! (${curClient.remoteAddress})`);
625
+ if (typeof entity.updateDataProtection === 'function') {
626
+ entity.updateDataProtection();
627
+ }
628
+ curClient.sendUTF(JSON.stringify({
629
+ query: curData.query,
630
+ updated: data.guid,
631
+ data: entity,
632
+ }));
633
+ }
634
+ }
635
+ curData.current = currentGuids;
636
+ if (nymph.tilmeld != null && token != null) {
637
+ nymph.tilmeld.clearSession();
638
+ }
639
+ if ((removed.length || added.length) && curData.qrefParents.length) {
640
+ for (const qrefParent of curData.qrefParents) {
641
+ const subData = this.querySubs[qrefParent.etype][qrefParent.query].get(curClient);
642
+ if (subData) {
643
+ this.updateClient(curClient, subData, data);
644
+ }
645
+ }
646
+ }
647
+ });
648
+ }
580
649
  handlePublishUid(from, data) {
581
650
  var _a;
582
651
  return __awaiter(this, void 0, void 0, function* () {
@@ -638,6 +707,110 @@ class PubSub {
638
707
  client.connect(host, 'nymph');
639
708
  }
640
709
  }
710
+ findQRefQueries(options, ...selectors) {
711
+ var _a;
712
+ const qrefQueries = [];
713
+ for (const curSelector of selectors) {
714
+ for (const k in curSelector) {
715
+ const key = k;
716
+ const value = curSelector[key];
717
+ if (key === 'type') {
718
+ continue;
719
+ }
720
+ if (value === undefined) {
721
+ continue;
722
+ }
723
+ if (key === 'qref' || key === '!qref') {
724
+ const tmpArr = (Array.isArray(((_a = value) !== null && _a !== void 0 ? _a : [])[0])
725
+ ? value
726
+ : [value]);
727
+ for (let i = 0; i < tmpArr.length; i++) {
728
+ qrefQueries.push(tmpArr[i][1]);
729
+ }
730
+ }
731
+ else if (key === 'selector' || key === '!selector') {
732
+ const tmpArr = (Array.isArray(value) ? value : [value]);
733
+ qrefQueries.push(...this.findQRefQueries(options, ...tmpArr));
734
+ }
735
+ }
736
+ }
737
+ return qrefQueries;
738
+ }
739
+ translateQRefSelectors(client, selectors) {
740
+ var _a, _b, _c;
741
+ const newSelectors = [];
742
+ for (const curSelector of selectors) {
743
+ const newSelector = { type: curSelector.type };
744
+ for (const k in curSelector) {
745
+ const key = k;
746
+ const value = curSelector[key];
747
+ if (key === 'type') {
748
+ continue;
749
+ }
750
+ if (value === undefined) {
751
+ continue;
752
+ }
753
+ if (key === 'qref' || key === '!qref') {
754
+ const newKey = key === 'qref' ? 'ref' : '!ref';
755
+ const tmpArr = (Array.isArray(((_a = value) !== null && _a !== void 0 ? _a : [])[0])
756
+ ? value
757
+ : [value]);
758
+ for (let i = 0; i < tmpArr.length; i++) {
759
+ const name = tmpArr[i][0];
760
+ const [qrefOptions, ...qrefSelectors] = tmpArr[i][1];
761
+ const query = JSON.stringify(tmpArr[i][1]);
762
+ const QrefEntityClass = typeof qrefOptions.class === 'string'
763
+ ? this.nymph.getEntityClass(qrefOptions.class)
764
+ : (_b = qrefOptions.class) !== null && _b !== void 0 ? _b : this.nymph.getEntityClass('Entity');
765
+ const data = this.querySubs[QrefEntityClass.ETYPE][query].get(client);
766
+ if (data) {
767
+ const guids = data.current;
768
+ let newValue;
769
+ const oldValue = newSelector[newKey];
770
+ if (!oldValue) {
771
+ newValue = [];
772
+ }
773
+ else if (oldValue.length && !Array.isArray(oldValue[0])) {
774
+ newValue = [oldValue];
775
+ }
776
+ else {
777
+ newValue = oldValue;
778
+ }
779
+ newValue.push(...guids.map((guid) => [name, guid]));
780
+ newSelector[newKey] = newValue;
781
+ }
782
+ else {
783
+ if (!newSelector[key]) {
784
+ newSelector[key] = [];
785
+ }
786
+ newSelector[key].push([
787
+ name,
788
+ [qrefOptions, ...qrefSelectors],
789
+ ]);
790
+ }
791
+ }
792
+ }
793
+ else if (key === 'selector' || key === '!selector') {
794
+ const tmpArr = (Array.isArray(value) ? value : [value]);
795
+ newSelector[key] = this.translateQRefSelectors(client, tmpArr);
796
+ }
797
+ else if (key === 'ref' || key === '!ref') {
798
+ const tmpArr = (Array.isArray(((_c = value) !== null && _c !== void 0 ? _c : [])[0])
799
+ ? value
800
+ : [value]);
801
+ if (!newSelector[key]) {
802
+ newSelector[key] = [];
803
+ }
804
+ newSelector[key].push(...tmpArr);
805
+ }
806
+ else {
807
+ newSelector[key] = value;
808
+ }
809
+ }
810
+ newSelectors.push(newSelector);
811
+ }
812
+ return newSelectors;
813
+ }
641
814
  }
642
815
  exports.default = PubSub;
643
816
  //# sourceMappingURL=PubSub.js.map
@@ -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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"}