@onecx/accelerator 7.0.0-rc.11 → 7.0.0-rc.12

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onecx/accelerator",
3
- "version": "7.0.0-rc.11",
3
+ "version": "7.0.0-rc.12",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -10,7 +10,7 @@
10
10
  "tslib": "^2.6.3",
11
11
  "rxjs": "^7.8.1",
12
12
  "@nx/devkit": "^20.3.0",
13
- "@onecx/nx-migration-utils": "^7.0.0-rc.11"
13
+ "@onecx/nx-migration-utils": "^7.0.0-rc.12"
14
14
  },
15
15
  "type": "commonjs",
16
16
  "main": "./src/index.js",
package/src/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from './lib/topic/topic';
2
2
  export * from './lib/topic/mocks/fake-topic';
3
+ export * from './lib/topic/mocks/broadcast-channel.mock';
3
4
  export * from './lib/topic/syncable-topic';
4
5
  export * from './lib/topic/topic-publisher';
5
6
  export * from './lib/utils/path.utils';
package/src/index.js CHANGED
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./lib/topic/topic"), exports);
5
5
  tslib_1.__exportStar(require("./lib/topic/mocks/fake-topic"), exports);
6
+ tslib_1.__exportStar(require("./lib/topic/mocks/broadcast-channel.mock"), exports);
6
7
  tslib_1.__exportStar(require("./lib/topic/syncable-topic"), exports);
7
8
  tslib_1.__exportStar(require("./lib/topic/topic-publisher"), exports);
8
9
  tslib_1.__exportStar(require("./lib/utils/path.utils"), exports);
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/accelerator/src/index.ts"],"names":[],"mappings":";;;AAAA,4DAAiC;AACjC,uEAA4C;AAC5C,qEAA0C;AAC1C,sEAA2C;AAC3C,iEAAsC;AACtC,iEAAsC;AACtC,oEAAyC;AACzC,8EAAmD;AACnD,2FAAgE;AAChE,+DAAoC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/accelerator/src/index.ts"],"names":[],"mappings":";;;AAAA,4DAAiC;AACjC,uEAA4C;AAC5C,mFAAwD;AACxD,qEAA0C;AAC1C,sEAA2C;AAC3C,iEAAsC;AACtC,iEAAsC;AACtC,oEAAyC;AACzC,8EAAmD;AACnD,2FAAgE;AAChE,+DAAoC"}
@@ -9,6 +9,21 @@ declare global {
9
9
  };
10
10
  topic?: {
11
11
  debug?: string[];
12
+ statsEnabled?: boolean;
13
+ stats?: {
14
+ messagesPublished?: {
15
+ [topicName: string]: {
16
+ TopicNext: number;
17
+ TopicGet: number;
18
+ TopicResolve: number;
19
+ };
20
+ };
21
+ instancesCreated?: {
22
+ [topicName: string]: number;
23
+ };
24
+ };
25
+ useBroadcastChannel?: boolean;
26
+ initDate?: number;
12
27
  };
13
28
  };
14
29
  }
@@ -5,5 +5,7 @@ window['@onecx/accelerator'].gatherer ??= {};
5
5
  window['@onecx/accelerator'].gatherer.promises ??= {};
6
6
  window['@onecx/accelerator'].gatherer.debug ??= [];
7
7
  window['@onecx/accelerator'].topic ??= {};
8
+ window['@onecx/accelerator'].topic.useBroadcastChannel ??= true;
9
+ window['@onecx/accelerator'].topic.initDate ??= Date.now();
8
10
  exports.default = globalThis;
9
11
  //# sourceMappingURL=declarations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"declarations.js","sourceRoot":"","sources":["../../../../../libs/accelerator/src/lib/declarations.ts"],"names":[],"mappings":";;AAcA,MAAM,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAA;AACnC,MAAM,CAAC,oBAAoB,CAAC,CAAC,QAAQ,KAAK,EAAE,CAAA;AAC5C,MAAM,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,QAAQ,KAAK,EAAE,CAAA;AACrD,MAAM,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE,CAAA;AAClD,MAAM,CAAC,oBAAoB,CAAC,CAAC,KAAK,KAAK,EAAE,CAAA;AAEzC,kBAAe,UAAU,CAAA"}
1
+ {"version":3,"file":"declarations.js","sourceRoot":"","sources":["../../../../../libs/accelerator/src/lib/declarations.ts"],"names":[],"mappings":";;AA2BA,MAAM,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAA;AACnC,MAAM,CAAC,oBAAoB,CAAC,CAAC,QAAQ,KAAK,EAAE,CAAA;AAC5C,MAAM,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,QAAQ,KAAK,EAAE,CAAA;AACrD,MAAM,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE,CAAA;AAClD,MAAM,CAAC,oBAAoB,CAAC,CAAC,KAAK,KAAK,EAAE,CAAA;AACzC,MAAM,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,mBAAmB,KAAK,IAAI,CAAA;AAC/D,MAAM,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,GAAG,EAAE,CAAA;AAE1D,kBAAe,UAAU,CAAA"}
@@ -0,0 +1,10 @@
1
+ export declare class BroadcastChannelMock {
2
+ name: string;
3
+ static listeners: Record<string, ((m: any) => any)[]>;
4
+ static asyncCalls: boolean;
5
+ listener: ((m: any) => any) | undefined;
6
+ constructor(name: string);
7
+ postMessage(m: any): void;
8
+ addEventListener(event: string, listener: (m: any) => any): void;
9
+ close(): void;
10
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BroadcastChannelMock = void 0;
4
+ class BroadcastChannelMock {
5
+ name;
6
+ static listeners = {}; // NOSONAR
7
+ static asyncCalls = false; // NOSONAR
8
+ listener;
9
+ constructor(name) {
10
+ this.name = name;
11
+ }
12
+ postMessage(m) {
13
+ if (BroadcastChannelMock.asyncCalls) {
14
+ setTimeout(() => {
15
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
16
+ BroadcastChannelMock.listeners[this.name]?.forEach((l) => l({ data: m, stopImmediatePropagation: () => { }, stopPropagation: () => { } }));
17
+ }, 0);
18
+ }
19
+ else {
20
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
21
+ BroadcastChannelMock.listeners[this.name]?.forEach((l) => l({ data: m, stopImmediatePropagation: () => { }, stopPropagation: () => { } }));
22
+ }
23
+ }
24
+ addEventListener(event, listener) {
25
+ this.listener = listener;
26
+ BroadcastChannelMock.listeners[this.name] ??= [];
27
+ BroadcastChannelMock.listeners[this.name].push(listener);
28
+ }
29
+ close() {
30
+ BroadcastChannelMock.listeners[this.name] = BroadcastChannelMock.listeners[this.name].filter((l) => l !== this.listener);
31
+ }
32
+ }
33
+ exports.BroadcastChannelMock = BroadcastChannelMock;
34
+ //# sourceMappingURL=broadcast-channel.mock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcast-channel.mock.js","sourceRoot":"","sources":["../../../../../../../libs/accelerator/src/lib/topic/mocks/broadcast-channel.mock.ts"],"names":[],"mappings":";;;AAAA,MAAa,oBAAoB;IAKV;IAJZ,MAAM,CAAC,SAAS,GAAwC,EAAE,CAAA,CAAC,UAAU;IACrE,MAAM,CAAC,UAAU,GAAG,KAAK,CAAA,CAAC,UAAU;IAC3C,QAAQ,CAA+B;IAEvC,YAAmB,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;IAAI,CAAC;IAEpC,WAAW,CAAC,CAAM;QACd,IAAI,oBAAoB,CAAC,UAAU,EAAE,CAAC;YAClC,UAAU,CAAC,GAAG,EAAE;gBACZ,gEAAgE;gBAChE,oBAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,wBAAwB,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;YAC9I,CAAC,EAAE,CAAC,CAAC,CAAA;QACT,CAAC;aAAM,CAAC;YACJ,gEAAgE;YAChE,oBAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,wBAAwB,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QAC9I,CAAC;IACL,CAAC;IAED,gBAAgB,CAAC,KAAa,EAAE,QAAyB;QACrD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,oBAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACjD,oBAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC5D,CAAC;IAED,KAAK;QACD,oBAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC5H,CAAC;;AA3BL,oDA4BC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TopicMessage = void 0;
4
+ const logs_utils_1 = require("../utils/logs.utils");
4
5
  const message_1 = require("./message");
5
6
  class TopicMessage extends message_1.Message {
6
7
  name;
@@ -9,6 +10,9 @@ class TopicMessage extends message_1.Message {
9
10
  super(type);
10
11
  this.name = name;
11
12
  this.version = version;
13
+ if ((0, logs_utils_1.isStatsEnabled)()) {
14
+ (0, logs_utils_1.increaseMessageCount)(this.name, type);
15
+ }
12
16
  }
13
17
  }
14
18
  exports.TopicMessage = TopicMessage;
@@ -1 +1 @@
1
- {"version":3,"file":"topic-message.js","sourceRoot":"","sources":["../../../../../../libs/accelerator/src/lib/topic/topic-message.ts"],"names":[],"mappings":";;;AAAA,uCAAmC;AAInC,MAAa,YAAa,SAAQ,iBAAO;IACI;IAAqB;IAAhE,YAAY,IAAsB,EAAS,IAAY,EAAS,OAAe;QAC7E,KAAK,CAAC,IAAI,CAAC,CAAA;QAD8B,SAAI,GAAJ,IAAI,CAAQ;QAAS,YAAO,GAAP,OAAO,CAAQ;IAE/E,CAAC;CACF;AAJD,oCAIC"}
1
+ {"version":3,"file":"topic-message.js","sourceRoot":"","sources":["../../../../../../libs/accelerator/src/lib/topic/topic-message.ts"],"names":[],"mappings":";;;AAAA,oDAA0E;AAC1E,uCAAmC;AAGnC,MAAa,YAAa,SAAQ,iBAAO;IAG9B;IACA;IAHT,YACE,IAAsB,EACf,IAAY,EACZ,OAAe;QAEtB,KAAK,CAAC,IAAI,CAAC,CAAA;QAHJ,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAQ;QAGtB,IAAI,IAAA,2BAAc,GAAE,EAAE,CAAC;YACrB,IAAA,iCAAoB,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACvC,CAAC;IACH,CAAC;CACF;AAXD,oCAWC"}
@@ -1,7 +1,10 @@
1
+ import { TopicMessage } from './topic-message';
1
2
  export declare class TopicPublisher<T> {
2
3
  name: string;
3
4
  version: number;
4
5
  protected publishPromiseResolver: Record<number, () => void>;
6
+ protected readonly broadcastChannel: BroadcastChannel | undefined;
5
7
  constructor(name: string, version: number);
6
8
  publish(value: T): Promise<void>;
9
+ protected sendMessage(message: TopicMessage): void;
7
10
  }
@@ -7,20 +7,40 @@ class TopicPublisher {
7
7
  name;
8
8
  version;
9
9
  publishPromiseResolver = {};
10
+ broadcastChannel;
10
11
  constructor(name, version) {
11
12
  this.name = name;
12
13
  this.version = version;
14
+ if (window['@onecx/accelerator']?.topic?.useBroadcastChannel) {
15
+ if (typeof BroadcastChannel === 'undefined') {
16
+ console.log('BroadcastChannel not supported. Disabling BroadcastChannel for topic');
17
+ window['@onecx/accelerator'] ??= {};
18
+ window['@onecx/accelerator'].topic ??= {};
19
+ window['@onecx/accelerator'].topic.useBroadcastChannel = false;
20
+ }
21
+ else {
22
+ this.broadcastChannel = new BroadcastChannel(`Topic-${this.name}|${this.version}`);
23
+ }
24
+ }
13
25
  }
14
26
  publish(value) {
15
27
  const message = new topic_data_message_1.TopicDataMessage("TopicNext" /* TopicMessageType.TopicNext */, this.name, this.version, value);
16
- window.postMessage(message, '*');
28
+ this.sendMessage(message);
17
29
  const resolveMessage = new topic_resolve_message_1.TopicResolveMessage("TopicResolve" /* TopicMessageType.TopicResolve */, this.name, this.version, message.id);
18
30
  const promise = new Promise((resolve) => {
19
31
  this.publishPromiseResolver[message.id] = resolve;
20
32
  });
21
- window.postMessage(resolveMessage, '*');
33
+ this.sendMessage(resolveMessage);
22
34
  return promise;
23
35
  }
36
+ sendMessage(message) {
37
+ if (window['@onecx/accelerator']?.topic?.useBroadcastChannel) {
38
+ this.broadcastChannel?.postMessage(message);
39
+ }
40
+ else {
41
+ window.postMessage(message, '*');
42
+ }
43
+ }
24
44
  }
25
45
  exports.TopicPublisher = TopicPublisher;
26
46
  //# sourceMappingURL=topic-publisher.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"topic-publisher.js","sourceRoot":"","sources":["../../../../../../libs/accelerator/src/lib/topic/topic-publisher.ts"],"names":[],"mappings":";;;AAAA,6DAAuD;AAEvD,mEAA6D;AAE7D,MAAa,cAAc;IAIhB;IACA;IAJC,sBAAsB,GAA+B,EAAE,CAAA;IAEjE,YACS,IAAY,EACZ,OAAe;QADf,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAQ;IACrB,CAAC;IAEG,OAAO,CAAC,KAAQ;QACrB,MAAM,OAAO,GAAG,IAAI,qCAAgB,+CAAgC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QACnG,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QAChC,MAAM,cAAc,GAAG,IAAI,2CAAmB,qDAAgC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;QAClH,MAAM,OAAO,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAC5C,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO,CAAA;QACnD,CAAC,CAAC,CAAA;QACF,MAAM,CAAC,WAAW,CAAC,cAAc,EAAE,GAAG,CAAC,CAAA;QACvC,OAAO,OAAO,CAAA;IAChB,CAAC;CACF;AAlBD,wCAkBC"}
1
+ {"version":3,"file":"topic-publisher.js","sourceRoot":"","sources":["../../../../../../libs/accelerator/src/lib/topic/topic-publisher.ts"],"names":[],"mappings":";;;AAAA,6DAAuD;AAGvD,mEAA6D;AAE7D,MAAa,cAAc;IAKhB;IACA;IALC,sBAAsB,GAA+B,EAAE,CAAA;IAC9C,gBAAgB,CAA+B;IAElE,YACS,IAAY,EACZ,OAAe;QADf,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAQ;QAEtB,IAAI,MAAM,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC;YAC7D,IAAI,OAAO,gBAAgB,KAAK,WAAW,EAAE,CAAC;gBAC5C,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;gBACpF,MAAM,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAA;gBACnC,MAAM,CAAC,oBAAoB,CAAC,CAAC,KAAK,KAAK,EAAE,CAAA;gBACzC,MAAM,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,mBAAmB,GAAG,KAAK,CAAA;YAChE,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,SAAS,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACrF,CAAC;QACH,CAAC;IACH,CAAC;IAEM,OAAO,CAAC,KAAQ;QACrB,MAAM,OAAO,GAAG,IAAI,qCAAgB,+CAAgC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QACnG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QACzB,MAAM,cAAc,GAAG,IAAI,2CAAmB,qDAAgC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;QAClH,MAAM,OAAO,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAC5C,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO,CAAA;QACnD,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAA;QAChC,OAAO,OAAO,CAAA;IAChB,CAAC;IAES,WAAW,CAAC,OAAqB;QACzC,IAAI,MAAM,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC;YAC7D,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QAClC,CAAC;IACH,CAAC;CACF;AAtCD,wCAsCC"}
@@ -7,11 +7,13 @@ export declare class Topic<T> extends TopicPublisher<T> implements Subscribable<
7
7
  protected data: BehaviorSubject<TopicDataMessage<T> | undefined>;
8
8
  protected isInit: boolean;
9
9
  private resolveInitPromise;
10
- private eventListener;
10
+ private readonly windowEventListener;
11
11
  constructor(name: string, version: number, sendGetMessage?: boolean);
12
12
  get isInitialized(): Promise<void>;
13
13
  asObservable(): Observable<T>;
14
- subscribe(observerOrNext?: Partial<Observer<T>> | ((value: T) => void), error?: (error: any) => void, complete?: () => void): Subscription;
14
+ subscribe(observerOrNext?: Partial<Observer<T>> | ((value: T) => void)): Subscription;
15
+ /** @deprecated is deprecated in rxjs. This is only here to be compatible with the interface. */
16
+ subscribe(next?: ((value: T) => void) | null, error?: ((error: any) => void) | null, complete?: (() => void) | null): Subscription;
15
17
  pipe(): Observable<T>;
16
18
  pipe<A>(op1: UnaryFunction<Observable<T>, A>): A;
17
19
  pipe<A, B>(op1: UnaryFunction<Observable<T>, A>, op2: UnaryFunction<A, B>): B;
@@ -24,6 +26,32 @@ export declare class Topic<T> extends TopicPublisher<T> implements Subscribable<
24
26
  pipe<A, B, C, D, E, F, G, H, I>(op1: UnaryFunction<Observable<T>, A>, op2: UnaryFunction<A, B>, op3: UnaryFunction<B, C>, op4: UnaryFunction<C, D>, op5: UnaryFunction<D, E>, op6: UnaryFunction<E, F>, op7: UnaryFunction<F, G>, op8: UnaryFunction<G, H>, op9: UnaryFunction<H, I>): I;
25
27
  pipe<A, B, C, D, E, F, G, H, I>(op1: UnaryFunction<Observable<T>, A>, op2: UnaryFunction<A, B>, op3: UnaryFunction<B, C>, op4: UnaryFunction<C, D>, op5: UnaryFunction<D, E>, op6: UnaryFunction<E, F>, op7: UnaryFunction<F, G>, op8: UnaryFunction<G, H>, op9: UnaryFunction<H, I>, ...operations: OperatorFunction<any, any>[]): Observable<unknown>;
26
28
  pipe<A, B, C, D, E, F, G, H, I>(op1: UnaryFunction<Observable<T>, A>, op2: UnaryFunction<A, B>, op3: UnaryFunction<B, C>, op4: UnaryFunction<C, D>, op5: UnaryFunction<D, E>, op6: UnaryFunction<E, F>, op7: UnaryFunction<F, G>, op8: UnaryFunction<G, H>, op9: UnaryFunction<H, I>, ...operations: UnaryFunction<any, any>[]): unknown;
29
+ /**
30
+ * @deprecated source is deprecated in rxjs. This is only here to be compatible with the interface.
31
+ */
32
+ get source(): Observable<any> | undefined;
33
+ /**
34
+ * @deprecated operator is deprecated in rxjs. This is only here to be compatible with the interface.
35
+ */
36
+ get operator(): import("rxjs").Operator<any, T> | undefined;
37
+ /**
38
+ * @deprecated lift is deprecated in rxjs. This is only here to be compatible with the interface.
39
+ */
40
+ lift<R>(operator: OperatorFunction<T, R>): Observable<R>;
41
+ /**
42
+ * @deprecated foreach is deprecated in rxjs. This is only here to be compatible with the interface.
43
+ */
44
+ forEach(next: (value: T) => void, thisArg?: any): Promise<void>;
45
+ /**
46
+ * @deprecated toPromise is deprecated in rxjs. This is only here to be compatible with the interface.
47
+ */
48
+ toPromise(): Promise<T | undefined>;
27
49
  destroy(): void;
28
- private onMessage;
50
+ private onWindowMessage;
51
+ private onBroadcastChannelMessage;
52
+ private disableBroadcastChannel;
53
+ private isLogEnabled;
54
+ private handleTopicResolveMessage;
55
+ private handleTopicGetMessage;
56
+ private handleTopicNextMessage;
29
57
  }
@@ -6,21 +6,40 @@ const rxjs_1 = require("rxjs");
6
6
  const topic_message_1 = require("./topic-message");
7
7
  const topic_publisher_1 = require("./topic-publisher");
8
8
  require("../declarations");
9
+ const logs_utils_1 = require("../utils/logs.utils");
9
10
  class Topic extends topic_publisher_1.TopicPublisher {
10
11
  isInitializedPromise;
11
12
  data = new rxjs_1.BehaviorSubject(undefined);
12
13
  isInit = false;
13
14
  resolveInitPromise;
14
- eventListener = (m) => this.onMessage(m);
15
+ windowEventListener = (m) => this.onWindowMessage(m);
15
16
  constructor(name, version, sendGetMessage = true) {
16
17
  super(name, version);
18
+ window['@onecx/accelerator'] ??= {};
19
+ window['@onecx/accelerator'].topic ??= {};
20
+ window['@onecx/accelerator'].topic.initDate ??= Date.now();
21
+ if ((0, logs_utils_1.isStatsEnabled)()) {
22
+ (0, logs_utils_1.increaseInstanceCount)(this.name);
23
+ }
17
24
  this.isInitializedPromise = new Promise((resolve) => {
18
25
  this.resolveInitPromise = resolve;
19
26
  });
20
- window.addEventListener('message', this.eventListener);
27
+ window.addEventListener('message', this.windowEventListener);
28
+ this.broadcastChannel?.addEventListener('message', (m) => this.onBroadcastChannelMessage(m));
21
29
  if (sendGetMessage) {
22
- const message = new topic_message_1.TopicMessage("TopicGet" /* TopicMessageType.TopicGet */, this.name, this.version);
23
- window.postMessage(message, '*');
30
+ if (Date.now() - window['@onecx/accelerator'].topic.initDate < 2000) {
31
+ // Delay the get message a bit to give other topics time to initialize
32
+ setTimeout(() => {
33
+ if (!this.isInit) {
34
+ const message = new topic_message_1.TopicMessage("TopicGet" /* TopicMessageType.TopicGet */, this.name, this.version);
35
+ this.sendMessage(message);
36
+ }
37
+ }, 100);
38
+ }
39
+ else {
40
+ const message = new topic_message_1.TopicMessage("TopicGet" /* TopicMessageType.TopicGet */, this.name, this.version);
41
+ this.sendMessage(message);
42
+ }
24
43
  }
25
44
  }
26
45
  get isInitialized() {
@@ -35,56 +54,137 @@ class Topic extends topic_publisher_1.TopicPublisher {
35
54
  pipe(...operations) {
36
55
  return this.asObservable().pipe(...operations);
37
56
  }
57
+ /**
58
+ * @deprecated source is deprecated in rxjs. This is only here to be compatible with the interface.
59
+ */
60
+ get source() {
61
+ return this.asObservable().source;
62
+ }
63
+ /**
64
+ * @deprecated operator is deprecated in rxjs. This is only here to be compatible with the interface.
65
+ */
66
+ get operator() {
67
+ return this.asObservable().operator;
68
+ }
69
+ /**
70
+ * @deprecated lift is deprecated in rxjs. This is only here to be compatible with the interface.
71
+ */
72
+ lift(operator) {
73
+ return this.asObservable().lift(operator);
74
+ }
75
+ /**
76
+ * @deprecated foreach is deprecated in rxjs. This is only here to be compatible with the interface.
77
+ */
78
+ forEach(next, thisArg) {
79
+ return this.asObservable().forEach(next, thisArg);
80
+ }
81
+ /**
82
+ * @deprecated toPromise is deprecated in rxjs. This is only here to be compatible with the interface.
83
+ */
84
+ toPromise() {
85
+ return this.asObservable().toPromise();
86
+ }
38
87
  destroy() {
39
- window.removeEventListener('message', this.eventListener, true);
88
+ window.removeEventListener('message', this.windowEventListener, true);
89
+ this.broadcastChannel?.close();
40
90
  }
41
- onMessage(m) {
42
- if (window['@onecx/accelerator']?.topic?.debug?.includes(this.name) &&
91
+ onWindowMessage(m) {
92
+ if (this.isLogEnabled() &&
43
93
  m.data?.name === this.name &&
44
94
  m.data?.version === this.version) {
45
- console.log('Topic', this.name, ':', this.version, 'received message', m.data);
95
+ console.log('Topic', this.name, ':', this.version, 'received message via window', m.data);
46
96
  }
47
97
  switch (m.data.type) {
48
98
  case "TopicNext" /* TopicMessageType.TopicNext */: {
49
- if (m.data.name !== this.name || m.data.version !== this.version) {
50
- break;
51
- }
52
- if (!this.data.value ||
53
- (this.isInit &&
54
- m.data.id !== undefined &&
55
- this.data.value.id !== undefined &&
56
- m.data.id > this.data.value.id) ||
57
- (this.isInit && m.data.timestamp > this.data.value.timestamp)) {
58
- this.isInit = true;
59
- this.data.next(m.data);
60
- this.resolveInitPromise();
61
- }
62
- else if (this.data.value &&
63
- this.isInit &&
64
- m.data.timestamp === this.data.value.timestamp &&
65
- ((m.data.id && !this.data.value.id) || (!m.data.id && this.data.value.id))) {
66
- console.warn('Message was dropped because of equal timestamps, because there was an old style message in the system. Please upgrade all libraries to the latest version.');
99
+ this.disableBroadcastChannel();
100
+ if (m.data.name === this.name && m.data.version === this.version) {
101
+ this.handleTopicNextMessage(m);
67
102
  }
68
103
  break;
69
104
  }
70
105
  case "TopicGet" /* TopicMessageType.TopicGet */: {
106
+ this.disableBroadcastChannel();
71
107
  if (m.data.name === this.name && m.data.version === this.version && this.isInit && this.data.value) {
72
- window.postMessage(this.data.value, '*');
73
- m.stopImmediatePropagation();
74
- m.stopPropagation();
108
+ this.handleTopicGetMessage(m);
75
109
  }
76
110
  break;
77
111
  }
78
112
  case "TopicResolve" /* TopicMessageType.TopicResolve */: {
79
- const publishPromiseResolver = this.publishPromiseResolver[m.data.resolveId];
80
- if (publishPromiseResolver) {
81
- publishPromiseResolver();
82
- m.stopImmediatePropagation();
83
- m.stopPropagation();
84
- delete this.publishPromiseResolver[m.data.resolveId];
113
+ this.disableBroadcastChannel();
114
+ this.handleTopicResolveMessage(m);
115
+ break;
116
+ }
117
+ }
118
+ }
119
+ onBroadcastChannelMessage(m) {
120
+ if (this.isLogEnabled()) {
121
+ console.log('Topic', this.name, ':', this.version, 'received message', m.data);
122
+ }
123
+ switch (m.data.type) {
124
+ case "TopicNext" /* TopicMessageType.TopicNext */: {
125
+ this.handleTopicNextMessage(m);
126
+ break;
127
+ }
128
+ case "TopicGet" /* TopicMessageType.TopicGet */: {
129
+ if (this.isInit && this.data.value) {
130
+ this.handleTopicGetMessage(m);
85
131
  }
86
132
  break;
87
133
  }
134
+ case "TopicResolve" /* TopicMessageType.TopicResolve */: {
135
+ this.handleTopicResolveMessage(m);
136
+ break;
137
+ }
138
+ }
139
+ }
140
+ disableBroadcastChannel() {
141
+ window['@onecx/accelerator'] ??= {};
142
+ window['@onecx/accelerator'].topic ??= {};
143
+ if (window['@onecx/accelerator'].topic.useBroadcastChannel === true) {
144
+ console.log('Disabling BroadcastChannel for topic');
145
+ }
146
+ window['@onecx/accelerator'].topic.useBroadcastChannel = false;
147
+ }
148
+ isLogEnabled() {
149
+ return window['@onecx/accelerator']?.topic?.debug?.includes(this.name);
150
+ }
151
+ handleTopicResolveMessage(m) {
152
+ const publishPromiseResolver = this.publishPromiseResolver[m.data.resolveId];
153
+ if (publishPromiseResolver) {
154
+ try {
155
+ publishPromiseResolver();
156
+ m.stopImmediatePropagation();
157
+ m.stopPropagation();
158
+ delete this.publishPromiseResolver[m.data.resolveId];
159
+ }
160
+ catch (error) {
161
+ console.error('Error handling TopicResolveMessage:', error);
162
+ }
163
+ }
164
+ }
165
+ handleTopicGetMessage(m) {
166
+ if (this.data.value) {
167
+ this.sendMessage(this.data.value);
168
+ m.stopImmediatePropagation();
169
+ m.stopPropagation();
170
+ }
171
+ }
172
+ handleTopicNextMessage(m) {
173
+ if (!this.data.value ||
174
+ (this.isInit &&
175
+ (m.data).id !== undefined &&
176
+ this.data.value.id !== undefined &&
177
+ (m.data).id > this.data.value.id) ||
178
+ (this.isInit && (m.data).timestamp > this.data.value.timestamp)) {
179
+ this.isInit = true;
180
+ this.data.next(m.data);
181
+ this.resolveInitPromise();
182
+ }
183
+ else if (this.data.value &&
184
+ this.isInit &&
185
+ (m.data).timestamp === this.data.value.timestamp &&
186
+ (((m.data).id && !this.data.value.id) || (!(m.data).id && this.data.value.id))) {
187
+ console.warn('Message was dropped because of equal timestamps, because there was an old style message in the system. Please upgrade all libraries to the latest version.');
88
188
  }
89
189
  }
90
190
  }
@@ -1 +1 @@
1
- {"version":3,"file":"topic.js","sourceRoot":"","sources":["../../../../../../libs/accelerator/src/lib/topic/topic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"topic.js","sourceRoot":"","sources":["../../../../../../libs/accelerator/src/lib/topic/topic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import '../declarations';
2
+ import { TopicMessageType } from '../topic/topic-message-type';
3
+ export declare function isStatsEnabled(): boolean;
4
+ export declare function increaseMessageCount(topicName: string, messageType: TopicMessageType): void;
5
+ export declare function increaseInstanceCount(topicName: string): void;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isStatsEnabled = isStatsEnabled;
4
+ exports.increaseMessageCount = increaseMessageCount;
5
+ exports.increaseInstanceCount = increaseInstanceCount;
6
+ require("../declarations");
7
+ function isStatsEnabled() {
8
+ return window['@onecx/accelerator']?.topic?.statsEnabled === true;
9
+ }
10
+ function increaseMessageCount(topicName, messageType) {
11
+ window['@onecx/accelerator'].topic ??= {};
12
+ window['@onecx/accelerator'].topic.stats ??= {};
13
+ window['@onecx/accelerator'].topic.stats.messagesPublished ??= {};
14
+ if (isStatsEnabled()) {
15
+ const messageStats = window['@onecx/accelerator'].topic.stats.messagesPublished;
16
+ if (!messageStats[topicName]) {
17
+ messageStats[topicName] = {
18
+ TopicNext: 0,
19
+ TopicGet: 0,
20
+ TopicResolve: 0,
21
+ };
22
+ }
23
+ messageStats[topicName][messageType]++;
24
+ }
25
+ }
26
+ function increaseInstanceCount(topicName) {
27
+ window['@onecx/accelerator'].topic ??= {};
28
+ window['@onecx/accelerator'].topic.stats ??= {};
29
+ window['@onecx/accelerator'].topic.stats.instancesCreated ??= {};
30
+ if (isStatsEnabled()) {
31
+ const instanceStats = window['@onecx/accelerator'].topic.stats.instancesCreated;
32
+ if (!instanceStats[topicName]) {
33
+ instanceStats[topicName] = 0;
34
+ }
35
+ instanceStats[topicName]++;
36
+ }
37
+ }
38
+ //# sourceMappingURL=logs.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.utils.js","sourceRoot":"","sources":["../../../../../../libs/accelerator/src/lib/utils/logs.utils.ts"],"names":[],"mappings":";;AAGA,wCAEC;AAED,oDAeC;AAED,sDAWC;AAnCD,2BAAwB;AAGxB,SAAgB,cAAc;IAC5B,OAAO,MAAM,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,YAAY,KAAK,IAAI,CAAA;AACnE,CAAC;AAED,SAAgB,oBAAoB,CAAC,SAAiB,EAAE,WAA6B;IACnF,MAAM,CAAC,oBAAoB,CAAC,CAAC,KAAK,KAAK,EAAE,CAAA;IACzC,MAAM,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAA;IAC/C,MAAM,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,KAAK,EAAE,CAAA;IACjE,IAAI,cAAc,EAAE,EAAE,CAAC;QACrB,MAAM,YAAY,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAA;QAC/E,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,YAAY,CAAC,SAAS,CAAC,GAAG;gBACxB,SAAS,EAAE,CAAC;gBACZ,QAAQ,EAAE,CAAC;gBACX,YAAY,EAAE,CAAC;aAChB,CAAA;QACH,CAAC;QACD,YAAY,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,EAAE,CAAA;IACxC,CAAC;AACH,CAAC;AAED,SAAgB,qBAAqB,CAAC,SAAiB;IACrD,MAAM,CAAC,oBAAoB,CAAC,CAAC,KAAK,KAAK,EAAE,CAAA;IACzC,MAAM,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAA;IAC/C,MAAM,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,KAAK,EAAE,CAAA;IAChE,IAAI,cAAc,EAAE,EAAE,CAAC;QACrB,MAAM,aAAa,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAA;QAC/E,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QAC9B,CAAC;QACD,aAAa,CAAC,SAAS,CAAC,EAAE,CAAA;IAC5B,CAAC;AACH,CAAC"}