@corto-ai/integrations-messenger 0.0.10-dev.2 → 0.0.10-dev.3
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,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InternalActionTypeEnum } from '../actions/base';
|
|
2
|
+
import { type AllMessageTypeDTO, type MessageForwardingConfigDTO, type PlatformCustomEventDetailDTO, type PlatformMessageBaseDTO, type TargetDTO } from '../models';
|
|
2
3
|
declare const _default: {
|
|
3
4
|
sendData: <T extends AllMessageTypeDTO>(params: Omit<PlatformMessageBaseDTO<T>, "src">) => void;
|
|
4
5
|
sendDataInternal: <T extends AllMessageTypeDTO>(data: PlatformMessageBaseDTO<T>, targetRef: TargetDTO | undefined) => void;
|
|
@@ -6,5 +7,7 @@ declare const _default: {
|
|
|
6
7
|
init: (parentRef?: Window) => Promise<{
|
|
7
8
|
parentId: string | undefined;
|
|
8
9
|
}>;
|
|
10
|
+
addUnhandledInternalMsg: (msg: PlatformCustomEventDetailDTO<InternalActionTypeEnum>) => void;
|
|
11
|
+
fetchUnhandledInternalMsg: (src: string) => PlatformCustomEventDetailDTO<InternalActionTypeEnum> | undefined;
|
|
9
12
|
};
|
|
10
13
|
export default _default;
|
package/src/lib/core/emitter.js
CHANGED
|
@@ -1,10 +1,17 @@
|
|
|
1
|
-
import { v4 as uuid } from 'uuid';
|
|
2
1
|
import listener from './listener';
|
|
3
2
|
import logger from './logger';
|
|
4
3
|
import target from './target';
|
|
5
4
|
import { ActionTypeEnum, InternalActionTypeEnum } from '../actions/base';
|
|
6
5
|
import { isInternalActionType } from '../actions/utils';
|
|
7
|
-
|
|
6
|
+
const unhandledInternalMsgMap = new Map();
|
|
7
|
+
const addUnhandledInternalMsg = (msg) => {
|
|
8
|
+
unhandledInternalMsgMap.set(msg.data.src, msg);
|
|
9
|
+
};
|
|
10
|
+
const fetchUnhandledInternalMsg = (src) => {
|
|
11
|
+
const message = unhandledInternalMsgMap.get(src);
|
|
12
|
+
unhandledInternalMsgMap.delete(src);
|
|
13
|
+
return message;
|
|
14
|
+
};
|
|
8
15
|
const expectedResponseMap = new Map();
|
|
9
16
|
const forward = (params, config = {}) => {
|
|
10
17
|
// the message is an internal message, which should be handled. Throw an error
|
|
@@ -66,15 +73,6 @@ const init = (parentRef = window.parent) => new Promise((resolve) => {
|
|
|
66
73
|
handler.remove();
|
|
67
74
|
resolve({ parentId: data.src });
|
|
68
75
|
});
|
|
69
|
-
sendDataInternal({
|
|
70
|
-
id: uuid(),
|
|
71
|
-
type: InternalActionTypeEnum.Handshake,
|
|
72
|
-
target: TARGET_WILDCARD,
|
|
73
|
-
src: target.getSourceId(),
|
|
74
|
-
data: void 0
|
|
75
|
-
},
|
|
76
|
-
// Bootstrap only: parent origin is unknown before handshake; subsequent sends use the pinned target origin.
|
|
77
|
-
{ window: parentRef, origin: '*', id: '' });
|
|
78
76
|
});
|
|
79
|
-
export default { sendData, sendDataInternal, forward, init };
|
|
77
|
+
export default { sendData, sendDataInternal, forward, init, addUnhandledInternalMsg, fetchUnhandledInternalMsg };
|
|
80
78
|
//# sourceMappingURL=emitter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../../../../../libs/integrations-messenger/src/lib/core/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../../../../../libs/integrations-messenger/src/lib/core/emitter.ts"],"names":[],"mappings":"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"}
|
package/src/lib/core/listener.js
CHANGED
|
@@ -26,31 +26,44 @@ const setupDefaultListeners = () => {
|
|
|
26
26
|
emitter.forward(event.data, { keepAlive: !!AdditionalMessageConfig[type]?.keepAlive });
|
|
27
27
|
}, { silent: true });
|
|
28
28
|
});
|
|
29
|
+
addMessageHandler(InternalActionTypeEnum.Handshake, (event) => {
|
|
30
|
+
emitter.addUnhandledInternalMsg(event);
|
|
31
|
+
});
|
|
29
32
|
};
|
|
30
33
|
const registerChild = (child, id) => new Promise((resolve) => {
|
|
31
34
|
logger.info('wait for handshake from', id);
|
|
35
|
+
const event = emitter.fetchUnhandledInternalMsg(id);
|
|
36
|
+
if (event && respondToHandshake(event, { child, id })) {
|
|
37
|
+
logger.info('Responded to unhandled handshake message for', id);
|
|
38
|
+
resolve();
|
|
39
|
+
}
|
|
32
40
|
// Re-registering a child replaces its handler rather than stacking another one on top. The new
|
|
33
41
|
// handler is armed before the old one is dropped so there's never a moment with none listening.
|
|
34
42
|
const previousHandler = childHandshakeHandlers[id];
|
|
35
43
|
childHandshakeHandlers[id] = addMessageHandler(InternalActionTypeEnum.Handshake, (event) => {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
const data = event.data;
|
|
41
|
-
logger.info('init handshake received', data, child);
|
|
42
|
-
const targetRef = target.addTarget(data.src, { window: child, origin: event.origin });
|
|
43
|
-
emitter.sendDataInternal({
|
|
44
|
-
id: data.id,
|
|
45
|
-
type: `${InternalActionTypeEnum.Handshake}Response`,
|
|
46
|
-
target: id,
|
|
47
|
-
src: target.getSourceId(),
|
|
48
|
-
data: void 0
|
|
49
|
-
}, targetRef);
|
|
44
|
+
respondToHandshake(event, { child, id });
|
|
45
|
+
emitter.fetchUnhandledInternalMsg(id);
|
|
50
46
|
resolve();
|
|
51
47
|
});
|
|
52
48
|
previousHandler?.remove();
|
|
53
49
|
});
|
|
50
|
+
const respondToHandshake = (event, expected) => {
|
|
51
|
+
if (event.source !== expected.child || event.data.src !== expected.id) {
|
|
52
|
+
logger.error('Received handshake from unexpected source');
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
const data = event.data;
|
|
56
|
+
logger.info('init handshake received', data, expected.child);
|
|
57
|
+
const targetRef = target.addTarget(data.src, { window: expected.child, origin: event.origin });
|
|
58
|
+
emitter.sendDataInternal({
|
|
59
|
+
id: data.id,
|
|
60
|
+
type: `${InternalActionTypeEnum.Handshake}Response`,
|
|
61
|
+
target: expected.id,
|
|
62
|
+
src: target.getSourceId(),
|
|
63
|
+
data: void 0
|
|
64
|
+
}, targetRef);
|
|
65
|
+
return true;
|
|
66
|
+
};
|
|
54
67
|
const addMessageHandler = (type, callback, config = {}) => {
|
|
55
68
|
if (!config.silent) {
|
|
56
69
|
logger.info('Adding event listener for type', type);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listener.js","sourceRoot":"","sources":["../../../../../../libs/integrations-messenger/src/lib/core/listener.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAClG,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EACL,iBAAiB,EAOlB,MAAM,WAAW,CAAC;AAEnB,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAEtC,sGAAsG;AACtG,MAAM,sBAAsB,GAA8C,EAAE,CAAC;AAE7E,MAAM,sBAAsB,GAAG;AAC7B,8DAA8D;AAC9D,KAAwB,EACgC,EAAE,CAC1D,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAExH,MAAM,4BAA4B,GAAG,CACnC,KAAY,EACZ,IAAO,EACgD,EAAE;IACzD,IAAI,CAAC,CAAC,KAAK,YAAY,WAAW,CAAC;QAAE,OAAO,KAAK,CAAC;IAClD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAkD,CAAC;IACxE,OAAO,CAAC,CAAC,MAAM,EAAE,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;AACrD,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,GAAS,EAAE;IACvC,4EAA4E;IAC5E,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC7C,iBAAiB,CACf,IAAI,EACJ,CAAC,KAAK,EAAE,EAAE;YACR,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC,EACD,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAC;QAEF,iBAAiB,CACf,GAAG,IAAI,UAAU,EACjB,CAAC,KAAK,EAAE,EAAE;YACR,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QACzF,CAAC,EACD,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,EAAU,EAAiB,EAAE,CACjE,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;IACtB,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;IAE3C,+FAA+F;IAC/F,gGAAgG;IAChG,MAAM,eAAe,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAEnD,sBAAsB,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,sBAAsB,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;QACzF,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"listener.js","sourceRoot":"","sources":["../../../../../../libs/integrations-messenger/src/lib/core/listener.ts"],"names":[],"mappings":"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"}
|