@onecx/accelerator 8.0.0-rc.1 → 8.0.0-rc.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -7
- package/dist/index.cjs +680 -0
- package/dist/index.mjs +649 -0
- package/package.json +17 -12
- package/src/index.d.ts +3 -0
- package/src/index.js +14 -14
- package/src/index.js.map +1 -1
- package/src/lib/declarations.d.ts +40 -30
- package/src/lib/declarations.js +6 -10
- package/src/lib/declarations.js.map +1 -1
- package/src/lib/topic/message.d.ts +0 -5
- package/src/lib/topic/message.js +5 -8
- package/src/lib/topic/message.js.map +1 -1
- package/src/lib/topic/mocks/broadcast-channel.mock.js +1 -5
- package/src/lib/topic/mocks/broadcast-channel.mock.js.map +1 -1
- package/src/lib/topic/mocks/fake-topic.js +5 -9
- package/src/lib/topic/mocks/fake-topic.js.map +1 -1
- package/src/lib/topic/syncable-topic.js +2 -6
- package/src/lib/topic/syncable-topic.js.map +1 -1
- package/src/lib/topic/topic-data-message.js +2 -6
- package/src/lib/topic/topic-data-message.js.map +1 -1
- package/src/lib/topic/topic-message-type.js +0 -2
- package/src/lib/topic/topic-message.js +5 -9
- package/src/lib/topic/topic-message.js.map +1 -1
- package/src/lib/topic/topic-publisher.d.ts +3 -0
- package/src/lib/topic/topic-publisher.js +24 -17
- package/src/lib/topic/topic-publisher.js.map +1 -1
- package/src/lib/topic/topic-resolve-message.js +2 -6
- package/src/lib/topic/topic-resolve-message.js.map +1 -1
- package/src/lib/topic/topic.d.ts +4 -2
- package/src/lib/topic/topic.js +50 -43
- package/src/lib/topic/topic.js.map +1 -1
- package/src/lib/utils/create-logger.utils.d.ts +42 -0
- package/src/lib/utils/create-logger.utils.js +37 -0
- package/src/lib/utils/create-logger.utils.js.map +1 -0
- package/src/lib/utils/date.utils.js +2 -6
- package/src/lib/utils/date.utils.js.map +1 -1
- package/src/lib/utils/ensure-property.utils.d.ts +89 -0
- package/src/lib/utils/ensure-property.utils.js +17 -0
- package/src/lib/utils/ensure-property.utils.js.map +1 -0
- package/src/lib/utils/gatherer.d.ts +1 -2
- package/src/lib/utils/gatherer.js +22 -28
- package/src/lib/utils/gatherer.js.map +1 -1
- package/src/lib/utils/get-normalized-browser-locales.utils.js +6 -8
- package/src/lib/utils/get-normalized-browser-locales.utils.js.map +1 -1
- package/src/lib/utils/get-onecx-shared-recommendations.d.ts +9 -0
- package/src/lib/utils/get-onecx-shared-recommendations.js +11 -0
- package/src/lib/utils/get-onecx-shared-recommendations.js.map +1 -0
- package/src/lib/utils/is-test.utils.js +1 -4
- package/src/lib/utils/is-test.utils.js.map +1 -1
- package/src/lib/utils/logger.utils.d.ts +1 -0
- package/src/lib/utils/logger.utils.js +4 -0
- package/src/lib/utils/logger.utils.js.map +1 -0
- package/src/lib/utils/logs.utils.d.ts +0 -1
- package/src/lib/utils/logs.utils.js +11 -18
- package/src/lib/utils/logs.utils.js.map +1 -1
- package/src/lib/utils/normalize-locales.utils.js +1 -4
- package/src/lib/utils/normalize-locales.utils.js.map +1 -1
- package/src/lib/utils/path.utils.js +10 -8
- package/src/lib/utils/path.utils.js.map +1 -1
- package/src/version.d.ts +2 -0
- package/src/version.js +3 -0
- package/src/version.js.map +1 -0
- package/migrations/index.d.ts +0 -1
- package/migrations/index.js +0 -5
- package/migrations/index.js.map +0 -1
- package/migrations/v6/migrate-onecx-to-v6.d.ts +0 -2
- package/migrations/v6/migrate-onecx-to-v6.js +0 -8
- package/migrations/v6/migrate-onecx-to-v6.js.map +0 -1
- package/migrations.json +0 -34
package/src/index.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
export * from './lib/topic/topic';
|
|
2
|
+
export * from './lib/topic/mocks/fake-topic';
|
|
3
|
+
export * from './lib/topic/mocks/broadcast-channel.mock';
|
|
4
|
+
export * from './lib/topic/syncable-topic';
|
|
5
|
+
export * from './lib/topic/topic-publisher';
|
|
6
|
+
export * from './lib/utils/path.utils';
|
|
7
|
+
export * from './lib/utils/date.utils';
|
|
8
|
+
export * from './lib/utils/is-test.utils';
|
|
9
|
+
export * from './lib/utils/normalize-locales.utils';
|
|
10
|
+
export * from './lib/utils/get-normalized-browser-locales.utils';
|
|
11
|
+
export * from './lib/utils/gatherer';
|
|
12
|
+
export * from './lib/utils/create-logger.utils';
|
|
13
|
+
export * from './lib/utils/ensure-property.utils';
|
|
14
|
+
export * from './lib/utils/get-onecx-shared-recommendations';
|
|
15
15
|
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/accelerator/src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/accelerator/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,0CAA0C,CAAA;AACxD,cAAc,4BAA4B,CAAA;AAC1C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,2BAA2B,CAAA;AACzC,cAAc,qCAAqC,CAAA;AACnD,cAAc,kDAAkD,CAAA;AAChE,cAAc,sBAAsB,CAAA;AACpC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,mCAAmC,CAAA;AACjD,cAAc,8CAA8C,CAAA"}
|
|
@@ -1,31 +1,41 @@
|
|
|
1
|
-
declare
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
debug?: string[];
|
|
6
|
-
promises?: {
|
|
7
|
-
[id: number]: Promise<unknown>[];
|
|
8
|
-
};
|
|
9
|
-
};
|
|
10
|
-
topic?: {
|
|
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;
|
|
27
|
-
};
|
|
1
|
+
declare const topicTabId: object & {
|
|
2
|
+
"@onecx/accelerator": {
|
|
3
|
+
gatherer: object & {
|
|
4
|
+
promises: Record<number, Promise<any>[]>;
|
|
28
5
|
};
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
6
|
+
};
|
|
7
|
+
} & {
|
|
8
|
+
"@onecx/accelerator": {
|
|
9
|
+
gatherer: object & {
|
|
10
|
+
promises: Record<number, Promise<any>[]>;
|
|
11
|
+
};
|
|
12
|
+
topic: object & {
|
|
13
|
+
useBroadcastChannel: boolean | "V2";
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
} & {
|
|
17
|
+
"@onecx/accelerator": {
|
|
18
|
+
gatherer: object & {
|
|
19
|
+
promises: Record<number, Promise<any>[]>;
|
|
20
|
+
};
|
|
21
|
+
topic: object & {
|
|
22
|
+
useBroadcastChannel: boolean | "V2";
|
|
23
|
+
} & {
|
|
24
|
+
initDate: number;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
} & {
|
|
28
|
+
"@onecx/accelerator": {
|
|
29
|
+
gatherer: object & {
|
|
30
|
+
promises: Record<number, Promise<any>[]>;
|
|
31
|
+
};
|
|
32
|
+
topic: object & {
|
|
33
|
+
useBroadcastChannel: boolean | "V2";
|
|
34
|
+
} & {
|
|
35
|
+
initDate: number;
|
|
36
|
+
} & {
|
|
37
|
+
tabId: number;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
export { topicTabId as acceleratorState };
|
package/src/lib/declarations.js
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
window['@onecx/accelerator'].topic ??= {};
|
|
8
|
-
window['@onecx/accelerator'].topic.useBroadcastChannel ??= true;
|
|
9
|
-
window['@onecx/accelerator'].topic.initDate ??= Date.now();
|
|
10
|
-
exports.default = globalThis;
|
|
1
|
+
import { ensureProperty } from './utils/ensure-property.utils';
|
|
2
|
+
const gatherPromises = ensureProperty(globalThis, ['@onecx/accelerator', 'gatherer', 'promises'], {});
|
|
3
|
+
const topicUseBroadcastChannel = ensureProperty(gatherPromises, ['@onecx/accelerator', 'topic', 'useBroadcastChannel'], 'V2');
|
|
4
|
+
const topicInitDate = ensureProperty(topicUseBroadcastChannel, ['@onecx/accelerator', 'topic', 'initDate'], Date.now());
|
|
5
|
+
const topicTabId = ensureProperty(topicInitDate, ['@onecx/accelerator', 'topic', 'tabId'], Math.ceil(globalThis.performance?.now?.() ?? 0));
|
|
6
|
+
export { topicTabId as acceleratorState };
|
|
11
7
|
//# sourceMappingURL=declarations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"declarations.js","sourceRoot":"","sources":["../../../../../libs/accelerator/src/lib/declarations.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"declarations.js","sourceRoot":"","sources":["../../../../../libs/accelerator/src/lib/declarations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAE9D,MAAM,cAAc,GAAG,cAAc,CAAC,UAAoB,EAAE,CAAC,oBAAoB,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAyC,CAAC,CAAA;AACtJ,MAAM,wBAAwB,GAAG,cAAc,CAAC,cAAc,EAAE,CAAC,oBAAoB,EAAE,OAAO,EAAE,qBAAqB,CAAC,EAAE,IAAsB,CAAC,CAAA;AAC/I,MAAM,aAAa,GAAG,cAAc,CAAC,wBAAwB,EAAE,CAAC,oBAAoB,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;AACvH,MAAM,UAAU,GAAG,cAAc,CAAC,aAAa,EAAE,CAAC,oBAAoB,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;AAE3I,OAAO,EAAE,UAAU,IAAI,gBAAgB,EAAE,CAAA"}
|
package/src/lib/topic/message.js
CHANGED
|
@@ -1,16 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
window['onecxMessageId'] ??= 1;
|
|
5
|
-
class Message {
|
|
1
|
+
import { ensureProperty } from '../utils/ensure-property.utils';
|
|
2
|
+
const g = ensureProperty(globalThis, ['onecxMessageId'], 1);
|
|
3
|
+
export class Message {
|
|
6
4
|
type;
|
|
7
5
|
timestamp;
|
|
8
6
|
id; // id can be undefined while used via old implementation
|
|
9
7
|
constructor(type) {
|
|
10
8
|
this.type = type;
|
|
11
|
-
this.timestamp =
|
|
12
|
-
this.id =
|
|
9
|
+
this.timestamp = globalThis.performance?.now?.() ?? Date.now();
|
|
10
|
+
this.id = g.onecxMessageId++;
|
|
13
11
|
}
|
|
14
12
|
}
|
|
15
|
-
exports.Message = Message;
|
|
16
13
|
//# sourceMappingURL=message.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../../../../libs/accelerator/src/lib/topic/message.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../../../../libs/accelerator/src/lib/topic/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAE/D,MAAM,CAAC,GAAG,cAAc,CAAC,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAA;AAE3D,MAAM,OAAO,OAAO;IAIC;IAHnB,SAAS,CAAQ;IACjB,EAAE,CAAQ,CAAC,wDAAwD;IAEnE,YAAmB,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;QAC7B,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,WAAW,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAA;QAC9D,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,cAAc,EAAE,CAAA;IAC9B,CAAC;CACF"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BroadcastChannelMock = void 0;
|
|
4
|
-
class BroadcastChannelMock {
|
|
1
|
+
export class BroadcastChannelMock {
|
|
5
2
|
name;
|
|
6
3
|
static listeners = {}; // NOSONAR
|
|
7
4
|
static asyncCalls = false; // NOSONAR
|
|
@@ -30,5 +27,4 @@ class BroadcastChannelMock {
|
|
|
30
27
|
BroadcastChannelMock.listeners[this.name] = BroadcastChannelMock.listeners[this.name].filter((l) => l !== this.listener);
|
|
31
28
|
}
|
|
32
29
|
}
|
|
33
|
-
exports.BroadcastChannelMock = BroadcastChannelMock;
|
|
34
30
|
//# sourceMappingURL=broadcast-channel.mock.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broadcast-channel.mock.js","sourceRoot":"","sources":["../../../../../../../libs/accelerator/src/lib/topic/mocks/broadcast-channel.mock.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"broadcast-channel.mock.js","sourceRoot":"","sources":["../../../../../../../libs/accelerator/src/lib/topic/mocks/broadcast-channel.mock.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,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"}
|
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.FakeTopic = void 0;
|
|
4
|
-
const rxjs_1 = require("rxjs");
|
|
5
|
-
class FakeTopic {
|
|
1
|
+
import { BehaviorSubject, ReplaySubject } from 'rxjs';
|
|
2
|
+
export class FakeTopic {
|
|
6
3
|
state;
|
|
7
4
|
constructor(initialValue = undefined) {
|
|
8
5
|
if (initialValue !== undefined) {
|
|
9
|
-
this.state = new
|
|
6
|
+
this.state = new BehaviorSubject(initialValue);
|
|
10
7
|
}
|
|
11
8
|
else {
|
|
12
|
-
this.state = new
|
|
9
|
+
this.state = new ReplaySubject(1);
|
|
13
10
|
}
|
|
14
11
|
}
|
|
15
12
|
get isInitialized() {
|
|
@@ -63,7 +60,7 @@ class FakeTopic {
|
|
|
63
60
|
this.state.complete();
|
|
64
61
|
}
|
|
65
62
|
getValue() {
|
|
66
|
-
if (this.state instanceof
|
|
63
|
+
if (this.state instanceof BehaviorSubject) {
|
|
67
64
|
return this.state.getValue();
|
|
68
65
|
}
|
|
69
66
|
throw new Error('Only possible for FakeTopic with initial value');
|
|
@@ -72,5 +69,4 @@ class FakeTopic {
|
|
|
72
69
|
return new FakeTopic(initialValue);
|
|
73
70
|
}
|
|
74
71
|
}
|
|
75
|
-
exports.FakeTopic = FakeTopic;
|
|
76
72
|
//# sourceMappingURL=fake-topic.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fake-topic.js","sourceRoot":"","sources":["../../../../../../../libs/accelerator/src/lib/topic/mocks/fake-topic.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fake-topic.js","sourceRoot":"","sources":["../../../../../../../libs/accelerator/src/lib/topic/mocks/fake-topic.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8D,eAAe,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AAGjH,MAAM,OAAO,SAAS;IACZ,KAAK,CAAY;IACzB,YAAY,eAA8B,SAAS;QACjD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,eAAe,CAAI,YAAY,CAAC,CAAA;QACnD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,GAAG,IAAI,aAAa,CAAI,CAAC,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;IACD,IAAI,aAAa;QACf,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;IASD,SAAS,CACP,cAAmE,EACnE,KAAmC,EACnC,QAA4B;QAE5B,OAAa,IAAI,CAAC,YAAY,EAAG,CAAC,SAAS,CAAC,cAAc,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;IAC9E,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACR,OAAQ,IAAI,CAAC,YAAY,EAAU,CAAC,MAAM,CAAA;IAC5C,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAQ,IAAI,CAAC,YAAY,EAAU,CAAC,QAAQ,CAAA;IAC9C,CAAC;IAED;;OAEG;IACH,IAAI,CAAI,QAA6B;QACnC,OAAQ,IAAI,CAAC,YAAY,EAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACpD,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,IAAwB,EAAE,OAAa;QAC7C,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACnD,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,SAAS,EAAE,CAAA;IACxC,CAAC;IAED,gEAAgE;IAChE,YAAY;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAA;IAClC,CAAC;IAED,IAAI,CAAoB,GAAG,UAAqC;QAC9D,OAAQ,IAAI,CAAC,YAAY,EAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAA;IACzD,CAAC;IAED,OAAO,CAAC,KAAQ;QACd,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACtB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;IAED,OAAO;QACL,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAA;IACvB,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,KAAK,YAAY,eAAe,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAA;QAC9B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;IACnE,CAAC;IAED,MAAM,CAAC,MAAM,CAAI,eAA8B,SAAS;QACtD,OAAO,IAAI,SAAS,CAAI,YAAY,CAAwB,CAAA;IAC9D,CAAC;CACF"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SyncableTopic = void 0;
|
|
4
|
-
const topic_1 = require("./topic");
|
|
1
|
+
import { Topic } from './topic';
|
|
5
2
|
/**
|
|
6
3
|
* This class allows sync access to the value of a Topic.
|
|
7
4
|
* If you use this as a super class, you have to make sure that
|
|
@@ -15,7 +12,7 @@ const topic_1 = require("./topic");
|
|
|
15
12
|
*
|
|
16
13
|
* @deprecated Should not be used anymore because reading async data in a sync way is dangerous and leads to errors. Use `Topic` instead.
|
|
17
14
|
*/
|
|
18
|
-
class SyncableTopic extends
|
|
15
|
+
export class SyncableTopic extends Topic {
|
|
19
16
|
constructor(name, version) {
|
|
20
17
|
super(name, version);
|
|
21
18
|
}
|
|
@@ -29,5 +26,4 @@ class SyncableTopic extends topic_1.Topic {
|
|
|
29
26
|
return this.isInit ? this.data.value.data : undefined;
|
|
30
27
|
}
|
|
31
28
|
}
|
|
32
|
-
exports.SyncableTopic = SyncableTopic;
|
|
33
29
|
//# sourceMappingURL=syncable-topic.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncable-topic.js","sourceRoot":"","sources":["../../../../../../libs/accelerator/src/lib/topic/syncable-topic.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"syncable-topic.js","sourceRoot":"","sources":["../../../../../../libs/accelerator/src/lib/topic/syncable-topic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAG/B;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,aAAiB,SAAQ,KAAQ;IAC5C,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACtB,CAAC;IAED;;;;;OAKG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAuB,IAAI,CAAC,IAAI,CAAC,KAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;IAC9E,CAAC;CACF"}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.TopicDataMessage = void 0;
|
|
4
|
-
const topic_message_1 = require("./topic-message");
|
|
5
|
-
class TopicDataMessage extends topic_message_1.TopicMessage {
|
|
1
|
+
import { TopicMessage } from './topic-message';
|
|
2
|
+
export class TopicDataMessage extends TopicMessage {
|
|
6
3
|
data;
|
|
7
4
|
constructor(type, name, version, data) {
|
|
8
5
|
super(type, name, version);
|
|
9
6
|
this.data = data;
|
|
10
7
|
}
|
|
11
8
|
}
|
|
12
|
-
exports.TopicDataMessage = TopicDataMessage;
|
|
13
9
|
//# sourceMappingURL=topic-data-message.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topic-data-message.js","sourceRoot":"","sources":["../../../../../../libs/accelerator/src/lib/topic/topic-data-message.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"topic-data-message.js","sourceRoot":"","sources":["../../../../../../libs/accelerator/src/lib/topic/topic-data-message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,MAAM,OAAO,gBAAoB,SAAQ,YAAY;IACuB;IAA1E,YAAY,IAAsB,EAAE,IAAY,EAAE,OAAe,EAAS,IAAO;QAC/E,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;QAD8C,SAAI,GAAJ,IAAI,CAAG;IAEjF,CAAC;CACF"}
|
|
@@ -1,19 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const logs_utils_1 = require("../utils/logs.utils");
|
|
5
|
-
const message_1 = require("./message");
|
|
6
|
-
class TopicMessage extends message_1.Message {
|
|
1
|
+
import { increaseMessageCount, isStatsEnabled } from '../utils/logs.utils';
|
|
2
|
+
import { Message } from './message';
|
|
3
|
+
export class TopicMessage extends Message {
|
|
7
4
|
name;
|
|
8
5
|
version;
|
|
9
6
|
constructor(type, name, version) {
|
|
10
7
|
super(type);
|
|
11
8
|
this.name = name;
|
|
12
9
|
this.version = version;
|
|
13
|
-
if (
|
|
14
|
-
|
|
10
|
+
if (isStatsEnabled()) {
|
|
11
|
+
increaseMessageCount(this.name, type);
|
|
15
12
|
}
|
|
16
13
|
}
|
|
17
14
|
}
|
|
18
|
-
exports.TopicMessage = TopicMessage;
|
|
19
15
|
//# sourceMappingURL=topic-message.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topic-message.js","sourceRoot":"","sources":["../../../../../../libs/accelerator/src/lib/topic/topic-message.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"topic-message.js","sourceRoot":"","sources":["../../../../../../libs/accelerator/src/lib/topic/topic-message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGnC,MAAM,OAAO,YAAa,SAAQ,OAAO;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,cAAc,EAAE,EAAE,CAAC;YACrB,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACvC,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { TopicMessage } from './topic-message';
|
|
2
|
+
import { ComponentLogger } from '../utils/create-logger.utils';
|
|
2
3
|
export declare class TopicPublisher<T> {
|
|
3
4
|
name: string;
|
|
4
5
|
version: number;
|
|
5
6
|
protected publishPromiseResolver: Record<number, () => void>;
|
|
6
7
|
protected publishBroadcastChannel: BroadcastChannel | undefined;
|
|
8
|
+
protected publishBroadcastChannelV2: BroadcastChannel | undefined;
|
|
9
|
+
protected readonly baseLogger: ComponentLogger;
|
|
7
10
|
constructor(name: string, version: number);
|
|
8
11
|
publish(value: T): Promise<void>;
|
|
9
12
|
protected createBroadcastChannel(): void;
|
|
@@ -1,21 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
class TopicPublisher {
|
|
1
|
+
import { TopicDataMessage } from './topic-data-message';
|
|
2
|
+
import { TopicResolveMessage } from './topic-resolve-message';
|
|
3
|
+
import { createLogger } from '../utils/logger.utils';
|
|
4
|
+
import { acceleratorState } from '../declarations';
|
|
5
|
+
export class TopicPublisher {
|
|
7
6
|
name;
|
|
8
7
|
version;
|
|
9
8
|
publishPromiseResolver = {};
|
|
10
9
|
publishBroadcastChannel;
|
|
10
|
+
publishBroadcastChannelV2;
|
|
11
|
+
baseLogger;
|
|
11
12
|
constructor(name, version) {
|
|
12
13
|
this.name = name;
|
|
13
14
|
this.version = version;
|
|
15
|
+
this.baseLogger = createLogger(`TopicPublisher:${this.name}`);
|
|
14
16
|
}
|
|
15
17
|
publish(value) {
|
|
16
|
-
const message = new
|
|
18
|
+
const message = new TopicDataMessage("TopicNext" /* TopicMessageType.TopicNext */, this.name, this.version, value);
|
|
17
19
|
this.sendMessage(message);
|
|
18
|
-
const resolveMessage = new
|
|
20
|
+
const resolveMessage = new TopicResolveMessage("TopicResolve" /* TopicMessageType.TopicResolve */, this.name, this.version, message.id);
|
|
19
21
|
const promise = new Promise((resolve) => {
|
|
20
22
|
this.publishPromiseResolver[message.id] = resolve;
|
|
21
23
|
});
|
|
@@ -23,30 +25,35 @@ class TopicPublisher {
|
|
|
23
25
|
return promise;
|
|
24
26
|
}
|
|
25
27
|
createBroadcastChannel() {
|
|
26
|
-
if (this.publishBroadcastChannel) {
|
|
28
|
+
if (this.publishBroadcastChannel && this.publishBroadcastChannelV2) {
|
|
27
29
|
return;
|
|
28
30
|
}
|
|
29
|
-
if (
|
|
31
|
+
if (acceleratorState['@onecx/accelerator'].topic.useBroadcastChannel) {
|
|
30
32
|
if (typeof BroadcastChannel === 'undefined') {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
window['@onecx/accelerator'].topic ??= {};
|
|
34
|
-
window['@onecx/accelerator'].topic.useBroadcastChannel = false;
|
|
33
|
+
this.baseLogger.info('BroadcastChannel not supported. Disabling BroadcastChannel for topic publisher');
|
|
34
|
+
acceleratorState['@onecx/accelerator'].topic.useBroadcastChannel = false;
|
|
35
35
|
}
|
|
36
36
|
else {
|
|
37
37
|
this.publishBroadcastChannel = new BroadcastChannel(`Topic-${this.name}|${this.version}`);
|
|
38
|
+
this.publishBroadcastChannelV2 = new BroadcastChannel(`TopicV2-${this.name}|${this.version}-${acceleratorState['@onecx/accelerator'].topic.tabId}`);
|
|
38
39
|
}
|
|
39
40
|
}
|
|
40
41
|
}
|
|
41
42
|
sendMessage(message) {
|
|
42
43
|
this.createBroadcastChannel();
|
|
43
|
-
if (
|
|
44
|
+
if (acceleratorState['@onecx/accelerator'].topic.useBroadcastChannel === "V2") {
|
|
45
|
+
this.publishBroadcastChannelV2?.postMessage(message);
|
|
46
|
+
}
|
|
47
|
+
else if (acceleratorState['@onecx/accelerator'].topic.useBroadcastChannel) {
|
|
44
48
|
this.publishBroadcastChannel?.postMessage(message);
|
|
45
49
|
}
|
|
46
50
|
else {
|
|
47
|
-
|
|
51
|
+
const postMessage = globalThis.postMessage;
|
|
52
|
+
if (typeof postMessage !== 'function') {
|
|
53
|
+
throw new TypeError('postMessage is not available in this environment');
|
|
54
|
+
}
|
|
55
|
+
postMessage(message, '*');
|
|
48
56
|
}
|
|
49
57
|
}
|
|
50
58
|
}
|
|
51
|
-
exports.TopicPublisher = TopicPublisher;
|
|
52
59
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"topic-publisher.js","sourceRoot":"","sources":["../../../../../../libs/accelerator/src/lib/topic/topic-publisher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.TopicResolveMessage = void 0;
|
|
4
|
-
const topic_message_1 = require("./topic-message");
|
|
5
|
-
class TopicResolveMessage extends topic_message_1.TopicMessage {
|
|
1
|
+
import { TopicMessage } from './topic-message';
|
|
2
|
+
export class TopicResolveMessage extends TopicMessage {
|
|
6
3
|
resolveId;
|
|
7
4
|
constructor(type, name, version, resolveId) {
|
|
8
5
|
super(type, name, version);
|
|
9
6
|
this.resolveId = resolveId;
|
|
10
7
|
}
|
|
11
8
|
}
|
|
12
|
-
exports.TopicResolveMessage = TopicResolveMessage;
|
|
13
9
|
//# sourceMappingURL=topic-resolve-message.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topic-resolve-message.js","sourceRoot":"","sources":["../../../../../../libs/accelerator/src/lib/topic/topic-resolve-message.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"topic-resolve-message.js","sourceRoot":"","sources":["../../../../../../libs/accelerator/src/lib/topic/topic-resolve-message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,MAAM,OAAO,mBAAoB,SAAQ,YAAY;IAK1C;IAJT,YACE,IAAsB,EACtB,IAAY,EACZ,OAAe,EACR,SAAiB;QAExB,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;QAFnB,cAAS,GAAT,SAAS,CAAQ;IAG1B,CAAC;CACF"}
|
package/src/lib/topic/topic.d.ts
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { BehaviorSubject, Observable, Observer, OperatorFunction, Subscribable, Subscription, UnaryFunction } from 'rxjs';
|
|
2
2
|
import { TopicDataMessage } from './topic-data-message';
|
|
3
3
|
import { TopicPublisher } from './topic-publisher';
|
|
4
|
-
import '../declarations';
|
|
5
4
|
export declare class Topic<T> extends TopicPublisher<T> implements Subscribable<T> {
|
|
5
|
+
private readonly logger;
|
|
6
6
|
protected isInitializedPromise: Promise<void>;
|
|
7
7
|
protected data: BehaviorSubject<TopicDataMessage<T> | undefined>;
|
|
8
8
|
protected isInit: boolean;
|
|
9
9
|
private resolveInitPromise;
|
|
10
10
|
private readonly windowEventListener;
|
|
11
11
|
protected readonly readBroadcastChannel: BroadcastChannel | undefined;
|
|
12
|
+
protected readonly readBroadcastChannelV2: BroadcastChannel | undefined;
|
|
12
13
|
constructor(name: string, version: number, sendGetMessage?: boolean);
|
|
13
14
|
get isInitialized(): Promise<void>;
|
|
14
15
|
asObservable(): Observable<T>;
|
|
@@ -50,8 +51,9 @@ export declare class Topic<T> extends TopicPublisher<T> implements Subscribable<
|
|
|
50
51
|
destroy(): void;
|
|
51
52
|
private onWindowMessage;
|
|
52
53
|
private onBroadcastChannelMessage;
|
|
54
|
+
private onBroadcastChannelMessageV2;
|
|
53
55
|
private disableBroadcastChannel;
|
|
54
|
-
private
|
|
56
|
+
private disableBroadcastChannelV2;
|
|
55
57
|
private handleTopicResolveMessage;
|
|
56
58
|
private handleTopicGetMessage;
|
|
57
59
|
private handleTopicNextMessage;
|