@botonic/plugin-flow-builder 0.26.2-alpha.0 → 0.27.0-alpha.0
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/lib/cjs/action/index.js +38 -18
- package/lib/cjs/action/index.js.map +1 -1
- package/lib/cjs/action/knowledge-bases.js +14 -4
- package/lib/cjs/action/knowledge-bases.js.map +1 -1
- package/lib/cjs/api.d.ts +2 -4
- package/lib/cjs/api.js +7 -32
- package/lib/cjs/api.js.map +1 -1
- package/lib/cjs/constants.d.ts +1 -1
- package/lib/cjs/constants.js +2 -2
- package/lib/cjs/constants.js.map +1 -1
- package/lib/cjs/content-fields/flow-handoff.js +7 -19
- package/lib/cjs/content-fields/flow-handoff.js.map +1 -1
- package/lib/cjs/content-fields/index.d.ts +1 -0
- package/lib/cjs/content-fields/index.js +3 -1
- package/lib/cjs/content-fields/index.js.map +1 -1
- package/lib/cjs/functions/conditional-queue-status.d.ts +7 -1
- package/lib/cjs/functions/conditional-queue-status.js +34 -12
- package/lib/cjs/functions/conditional-queue-status.js.map +1 -1
- package/lib/cjs/index.d.ts +6 -3
- package/lib/cjs/index.js +22 -13
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/tracking.d.ts +18 -14
- package/lib/cjs/tracking.js +27 -20
- package/lib/cjs/tracking.js.map +1 -1
- package/lib/cjs/types.d.ts +14 -1
- package/lib/cjs/types.js.map +1 -1
- package/lib/cjs/user-input/index.d.ts +2 -1
- package/lib/cjs/user-input/index.js +9 -3
- package/lib/cjs/user-input/index.js.map +1 -1
- package/lib/cjs/user-input/intent.js +12 -8
- package/lib/cjs/user-input/intent.js.map +1 -1
- package/lib/cjs/user-input/keyword.d.ts +21 -1
- package/lib/cjs/user-input/keyword.js +68 -13
- package/lib/cjs/user-input/keyword.js.map +1 -1
- package/lib/cjs/user-input/smart-intent.d.ts +18 -1
- package/lib/cjs/user-input/smart-intent.js +46 -28
- package/lib/cjs/user-input/smart-intent.js.map +1 -1
- package/lib/esm/action/index.js +39 -19
- package/lib/esm/action/index.js.map +1 -1
- package/lib/esm/action/knowledge-bases.js +15 -5
- package/lib/esm/action/knowledge-bases.js.map +1 -1
- package/lib/esm/api.d.ts +2 -4
- package/lib/esm/api.js +8 -33
- package/lib/esm/api.js.map +1 -1
- package/lib/esm/constants.d.ts +1 -1
- package/lib/esm/constants.js +1 -1
- package/lib/esm/constants.js.map +1 -1
- package/lib/esm/content-fields/flow-handoff.js +7 -19
- package/lib/esm/content-fields/flow-handoff.js.map +1 -1
- package/lib/esm/content-fields/index.d.ts +1 -0
- package/lib/esm/content-fields/index.js +1 -0
- package/lib/esm/content-fields/index.js.map +1 -1
- package/lib/esm/functions/conditional-queue-status.d.ts +7 -1
- package/lib/esm/functions/conditional-queue-status.js +32 -11
- package/lib/esm/functions/conditional-queue-status.js.map +1 -1
- package/lib/esm/index.d.ts +6 -3
- package/lib/esm/index.js +23 -14
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/tracking.d.ts +18 -14
- package/lib/esm/tracking.js +25 -19
- package/lib/esm/tracking.js.map +1 -1
- package/lib/esm/types.d.ts +14 -1
- package/lib/esm/types.js.map +1 -1
- package/lib/esm/user-input/index.d.ts +2 -1
- package/lib/esm/user-input/index.js +11 -5
- package/lib/esm/user-input/index.js.map +1 -1
- package/lib/esm/user-input/intent.js +13 -9
- package/lib/esm/user-input/intent.js.map +1 -1
- package/lib/esm/user-input/keyword.d.ts +21 -1
- package/lib/esm/user-input/keyword.js +67 -12
- package/lib/esm/user-input/keyword.js.map +1 -1
- package/lib/esm/user-input/smart-intent.d.ts +18 -1
- package/lib/esm/user-input/smart-intent.js +44 -26
- package/lib/esm/user-input/smart-intent.js.map +1 -1
- package/package.json +2 -2
- package/src/action/index.tsx +58 -24
- package/src/action/knowledge-bases.ts +16 -5
- package/src/api.ts +11 -57
- package/src/constants.ts +1 -1
- package/src/content-fields/flow-handoff.tsx +8 -28
- package/src/content-fields/index.ts +1 -0
- package/src/functions/conditional-queue-status.ts +36 -13
- package/src/index.ts +39 -19
- package/src/tracking.ts +25 -14
- package/src/types.ts +13 -1
- package/src/user-input/index.ts +13 -7
- package/src/user-input/intent.ts +17 -10
- package/src/user-input/keyword.ts +93 -14
- package/src/user-input/smart-intent.ts +57 -29
package/lib/cjs/action/index.js
CHANGED
|
@@ -12,10 +12,7 @@ const knowledge_bases_1 = require("./knowledge-bases");
|
|
|
12
12
|
class FlowBuilderAction extends react_2.default.Component {
|
|
13
13
|
static botonicInit(request) {
|
|
14
14
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
15
|
-
const
|
|
16
|
-
const locale = flowBuilderPlugin.getLocale(request.session);
|
|
17
|
-
const targetNode = yield getTargetNode(flowBuilderPlugin.cmsApi, request);
|
|
18
|
-
const contents = yield flowBuilderPlugin.getContentsByNode(targetNode, locale);
|
|
15
|
+
const contents = yield getContents(request);
|
|
19
16
|
const handoffContent = contents.find(content => content instanceof content_fields_1.FlowHandoff);
|
|
20
17
|
if (handoffContent)
|
|
21
18
|
yield handoffContent.doHandoff(request);
|
|
@@ -38,25 +35,46 @@ class FlowBuilderMultichannelAction extends FlowBuilderAction {
|
|
|
38
35
|
}
|
|
39
36
|
}
|
|
40
37
|
exports.FlowBuilderMultichannelAction = FlowBuilderMultichannelAction;
|
|
41
|
-
function
|
|
38
|
+
function getContents(request) {
|
|
42
39
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
const flowBuilderPlugin = (0, helpers_1.getFlowBuilderPlugin)(request.plugins);
|
|
41
|
+
const cmsApi = flowBuilderPlugin.cmsApi;
|
|
42
|
+
const locale = flowBuilderPlugin.getLocale(request.session);
|
|
43
|
+
const resolvedLocale = flowBuilderPlugin.cmsApi.getResolvedLocale(locale);
|
|
44
|
+
const context = {
|
|
45
|
+
cmsApi,
|
|
46
|
+
flowBuilderPlugin,
|
|
47
|
+
request,
|
|
48
|
+
resolvedLocale,
|
|
49
|
+
};
|
|
43
50
|
if (request.session.is_first_interaction) {
|
|
44
|
-
|
|
45
|
-
yield (0, tracking_1.trackEvent)(request, tracking_1.EventName.botStart);
|
|
46
|
-
return startNode;
|
|
51
|
+
return yield flowBuilderPlugin.getStartContents(resolvedLocale);
|
|
47
52
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
53
|
+
if (request.input.payload) {
|
|
54
|
+
return yield getContentsByPayload(context);
|
|
55
|
+
}
|
|
56
|
+
return yield getContentsByFallback(context);
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
function getContentsByPayload({ cmsApi, flowBuilderPlugin, request, resolvedLocale, }) {
|
|
60
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
61
|
+
const targetNode = request.input.payload
|
|
62
|
+
? cmsApi.getNodeById(request.input.payload)
|
|
51
63
|
: undefined;
|
|
52
64
|
if (targetNode) {
|
|
53
|
-
const eventArgs =
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
yield (0, tracking_1.trackEvent)(request, tracking_1.EventName.botFaq, eventArgs);
|
|
57
|
-
return targetNode;
|
|
65
|
+
const eventArgs = (0, tracking_1.getNodeEventArgs)(request, targetNode);
|
|
66
|
+
yield (0, tracking_1.trackEvent)(request, tracking_1.EventAction.flowNode, eventArgs);
|
|
67
|
+
return yield flowBuilderPlugin.getContentsByNode(targetNode, resolvedLocale);
|
|
58
68
|
}
|
|
59
|
-
return
|
|
69
|
+
return [];
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
function getContentsByFallback({ cmsApi, flowBuilderPlugin, request, resolvedLocale, }) {
|
|
73
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
74
|
+
const fallbackNode = yield getFallbackNode(cmsApi, request);
|
|
75
|
+
const eventArgs = (0, tracking_1.getNodeEventArgs)(request, fallbackNode);
|
|
76
|
+
yield (0, tracking_1.trackEvent)(request, tracking_1.EventAction.flowNode, eventArgs);
|
|
77
|
+
return yield flowBuilderPlugin.getContentsByNode(fallbackNode, resolvedLocale);
|
|
60
78
|
});
|
|
61
79
|
}
|
|
62
80
|
function getFallbackNode(cmsApi, request) {
|
|
@@ -72,7 +90,9 @@ function getFallbackNode(cmsApi, request) {
|
|
|
72
90
|
const isFirstFallbackOption = !!request.session.user.extra_data.isFirstFallbackOption;
|
|
73
91
|
const fallbackNode = cmsApi.getFallbackNode(isFirstFallbackOption);
|
|
74
92
|
request.session.user.extra_data.isFirstFallbackOption = !isFirstFallbackOption;
|
|
75
|
-
|
|
93
|
+
(0, tracking_1.trackEvent)(request, tracking_1.EventAction.fallback, {
|
|
94
|
+
fallbackAttempt: isFirstFallbackOption ? 1 : 2,
|
|
95
|
+
});
|
|
76
96
|
return fallbackNode;
|
|
77
97
|
});
|
|
78
98
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/action/index.tsx"],"names":[],"mappings":";;;;;AAAA,0CAA4E;AAC5E,0DAAyB;AAGzB,sDAA4D;AAE5D,wCAAiD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/action/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -17,9 +17,9 @@ function createNodeFromKnowledgeBase(cmsApi, request) {
|
|
|
17
17
|
try {
|
|
18
18
|
const knowledgeBaseResponse = yield flowBuilderPlugin.getKnowledgeBaseResponse(request);
|
|
19
19
|
if (knowledgeBaseResponse.hasKnowledge) {
|
|
20
|
-
yield (0, tracking_1.trackEvent)(request, tracking_1.
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
yield (0, tracking_1.trackEvent)(request, tracking_1.EventAction.knowledgebase, {
|
|
21
|
+
knowledgebaseSourcesIds: knowledgeBaseResponse.sources.map(source => source.knowledgeSourceId),
|
|
22
|
+
knowledgebaseChunksIds: [],
|
|
23
23
|
});
|
|
24
24
|
const knowledgeBaseNode = {
|
|
25
25
|
type: hubtype_fields_1.HtNodeWithContentType.TEXT,
|
|
@@ -44,9 +44,19 @@ function createNodeFromKnowledgeBase(cmsApi, request) {
|
|
|
44
44
|
};
|
|
45
45
|
return knowledgeBaseNode;
|
|
46
46
|
}
|
|
47
|
+
yield (0, tracking_1.trackEvent)(request, tracking_1.EventAction.knowledgebase, {
|
|
48
|
+
knowledgebaseFailReason: 'The knowledge base does not have enough knowledge',
|
|
49
|
+
knowledgeSourceIds: [],
|
|
50
|
+
knowledgebaseChunksIds: [],
|
|
51
|
+
});
|
|
47
52
|
}
|
|
48
53
|
catch (e) {
|
|
49
|
-
console.
|
|
54
|
+
console.error('Hubtype knowledge base api error: ', { e });
|
|
55
|
+
yield (0, tracking_1.trackEvent)(request, tracking_1.EventAction.knowledgebase, {
|
|
56
|
+
knowledgebaseFailReason: 'Knowledge base api error',
|
|
57
|
+
knowledgeSourceIds: [],
|
|
58
|
+
knowledgebaseChunksIds: [],
|
|
59
|
+
});
|
|
50
60
|
return undefined;
|
|
51
61
|
}
|
|
52
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge-bases.js","sourceRoot":"","sources":["../../../src/action/knowledge-bases.ts"],"names":[],"mappings":";;;;AAEA,+BAAiC;AAGjC,qEAIyC;AACzC,wCAAiD;AACjD,
|
|
1
|
+
{"version":3,"file":"knowledge-bases.js","sourceRoot":"","sources":["../../../src/action/knowledge-bases.ts"],"names":[],"mappings":";;;;AAEA,+BAAiC;AAGjC,qEAIyC;AACzC,wCAAiD;AACjD,0CAAqD;AAErD,SAAsB,2BAA2B,CAC/C,MAAsB,EACtB,OAAsB;;QAEtB,MAAM,iBAAiB,GAAG,IAAA,8BAAoB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC/D,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC3D,MAAM,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAA;QACvD,MAAM,mBAAmB,GAAG,MAAM,CAAC,sBAAsB,EAAE,CAAA;QAE3D,IACE,iBAAiB,CAAC,wBAAwB;aAC1C,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,QAAQ,CAAA,EAC7B;YACA,IAAI;gBACF,MAAM,qBAAqB,GACzB,MAAM,iBAAiB,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAA;gBAC3D,IAAI,qBAAqB,CAAC,YAAY,EAAE;oBACtC,MAAM,IAAA,qBAAU,EAAC,OAAO,EAAE,sBAAW,CAAC,aAAa,EAAE;wBACnD,uBAAuB,EAAE,qBAAqB,CAAC,OAAO,CAAC,GAAG,CACxD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,iBAAiB,CACnC;wBACD,sBAAsB,EAAE,EAAE;qBAC3B,CAAC,CAAA;oBAEF,MAAM,iBAAiB,GAAe;wBACpC,IAAI,EAAE,sCAAqB,CAAC,IAAI;wBAChC,OAAO,EAAE;4BACP,IAAI,EAAE;gCACJ;oCACE,OAAO,EAAE,qBAAqB,CAAC,MAAM;oCACrC,MAAM,EAAE,cAAc;iCACvB;6BACF;4BACD,aAAa,EAAE,SAAS;4BACxB,OAAO,EAAE,EAAE;yBACZ;wBACD,OAAO,EAAE,YAAY;wBACrB,EAAE,EAAE,IAAA,SAAI,GAAE;wBACV,IAAI,EAAE,oBAAoB;wBAC1B,IAAI,EAAE;4BACJ,CAAC,EAAE,CAAC;4BACJ,CAAC,EAAE,CAAC;yBACL;wBACD,SAAS,EAAE,mBAAmB,CAAC,QAAQ;qBACxC,CAAA;oBACD,OAAO,iBAAiB,CAAA;iBACzB;gBACD,MAAM,IAAA,qBAAU,EAAC,OAAO,EAAE,sBAAW,CAAC,aAAa,EAAE;oBACnD,uBAAuB,EACrB,mDAAmD;oBACrD,kBAAkB,EAAE,EAAE;oBACtB,sBAAsB,EAAE,EAAE;iBAC3B,CAAC,CAAA;aACH;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;gBAC1D,MAAM,IAAA,qBAAU,EAAC,OAAO,EAAE,sBAAW,CAAC,aAAa,EAAE;oBACnD,uBAAuB,EAAE,0BAA0B;oBACnD,kBAAkB,EAAE,EAAE;oBACtB,sBAAsB,EAAE,EAAE;iBAC3B,CAAC,CAAA;gBACF,OAAO,SAAS,CAAA;aACjB;SACF;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;CAAA;AAhED,kEAgEC"}
|
package/lib/cjs/api.d.ts
CHANGED
|
@@ -22,12 +22,10 @@ export declare class FlowBuilderApi {
|
|
|
22
22
|
getSmartIntentNodes(): HtSmartIntentNode[];
|
|
23
23
|
private nodeContainsIntent;
|
|
24
24
|
hasMetConfidenceThreshold(node: HtIntentNode, predictedConfidence: number): boolean;
|
|
25
|
-
|
|
26
|
-
private matchKeywords;
|
|
27
|
-
private inputMatchesAnyKeyword;
|
|
28
|
-
private resolveKeywordAsRegExp;
|
|
25
|
+
getKeywordNodes(): HtKeywordNode[];
|
|
29
26
|
getPayload(target?: HtNodeLink): string | undefined;
|
|
30
27
|
createPayloadWithParams(botActionNode: HtBotActionNode): string;
|
|
31
28
|
private getFollowUpContentID;
|
|
29
|
+
getFlowName(flowId: string): string;
|
|
32
30
|
getResolvedLocale(locale: string): string;
|
|
33
31
|
}
|
package/lib/cjs/api.js
CHANGED
|
@@ -101,44 +101,15 @@ class FlowBuilderApi {
|
|
|
101
101
|
const nodeConfidence = node.content.confidence / 100;
|
|
102
102
|
return predictedConfidence >= nodeConfidence;
|
|
103
103
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
const keywordNodes = this.flow.nodes.filter(node => node.type === hubtype_fields_1.HtNodeWithContentType.KEYWORD);
|
|
107
|
-
const matchedKeywordNodes = keywordNodes.filter(node => this.matchKeywords(node, userInput, locale));
|
|
108
|
-
if (matchedKeywordNodes.length > 0 && matchedKeywordNodes[0].target) {
|
|
109
|
-
return matchedKeywordNodes[0];
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
catch (error) {
|
|
113
|
-
console.error(`Error getting node by keyword '${userInput}': `, error);
|
|
114
|
-
}
|
|
115
|
-
return undefined;
|
|
116
|
-
}
|
|
117
|
-
matchKeywords(node, input, locale) {
|
|
118
|
-
const result = node.content.keywords.find(keywords => keywords.locale === locale &&
|
|
119
|
-
this.inputMatchesAnyKeyword(input, keywords.values));
|
|
120
|
-
return Boolean(result);
|
|
121
|
-
}
|
|
122
|
-
inputMatchesAnyKeyword(input, keywords) {
|
|
123
|
-
return keywords.some(keyword => {
|
|
124
|
-
const regExpMatchArray = keyword.match(constants_1.REG_EXP_PATTERN);
|
|
125
|
-
if (regExpMatchArray) {
|
|
126
|
-
return this.resolveKeywordAsRegExp(regExpMatchArray, input);
|
|
127
|
-
}
|
|
128
|
-
return input.includes(keyword);
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
resolveKeywordAsRegExp(regExpMatchArray, input) {
|
|
132
|
-
const [, pattern, flags] = regExpMatchArray;
|
|
133
|
-
const keywordAsRegExp = new RegExp(pattern, flags);
|
|
134
|
-
return input.match(keywordAsRegExp);
|
|
104
|
+
getKeywordNodes() {
|
|
105
|
+
return this.flow.nodes.filter(node => node.type === hubtype_fields_1.HtNodeWithContentType.KEYWORD);
|
|
135
106
|
}
|
|
136
107
|
getPayload(target) {
|
|
137
108
|
if (!target) {
|
|
138
109
|
return undefined;
|
|
139
110
|
}
|
|
140
111
|
if (target.type === hubtype_fields_1.HtNodeWithoutContentType.BOT_ACTION) {
|
|
141
|
-
return `${constants_1.
|
|
112
|
+
return `${constants_1.BOT_ACTION_PAYLOAD_PREFIX}${target.id}`;
|
|
142
113
|
}
|
|
143
114
|
return target.id;
|
|
144
115
|
}
|
|
@@ -163,6 +134,10 @@ class FlowBuilderApi {
|
|
|
163
134
|
return followUpNode === null || followUpNode === void 0 ? void 0 : followUpNode.code;
|
|
164
135
|
}
|
|
165
136
|
}
|
|
137
|
+
getFlowName(flowId) {
|
|
138
|
+
const flow = this.flow.flows.find(flow => flow.id === flowId);
|
|
139
|
+
return flow ? flow.name : '';
|
|
140
|
+
}
|
|
166
141
|
getResolvedLocale(locale) {
|
|
167
142
|
if (this.flow.locales.find(flowLocale => flowLocale === locale)) {
|
|
168
143
|
return locale;
|
package/lib/cjs/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":";;;;AACA,0DAAyB;AAEzB,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/constants.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export declare const FLOW_BUILDER_API_URL_PROD = "https://api.ent0.flowbuilder.prod.hubtype.com";
|
|
2
2
|
export declare const SEPARATOR = "|";
|
|
3
3
|
export declare const SOURCE_INFO_SEPARATOR: string;
|
|
4
|
-
export declare const
|
|
4
|
+
export declare const BOT_ACTION_PAYLOAD_PREFIX: string;
|
|
5
5
|
export declare const VARIABLE_PATTERN: RegExp;
|
|
6
6
|
export declare const ACCESS_TOKEN_VARIABLE_KEY = "_access_token";
|
|
7
7
|
export declare const REG_EXP_PATTERN: RegExp;
|
package/lib/cjs/constants.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.REG_EXP_PATTERN = exports.ACCESS_TOKEN_VARIABLE_KEY = exports.VARIABLE_PATTERN = exports.
|
|
3
|
+
exports.REG_EXP_PATTERN = exports.ACCESS_TOKEN_VARIABLE_KEY = exports.VARIABLE_PATTERN = exports.BOT_ACTION_PAYLOAD_PREFIX = exports.SOURCE_INFO_SEPARATOR = exports.SEPARATOR = exports.FLOW_BUILDER_API_URL_PROD = void 0;
|
|
4
4
|
exports.FLOW_BUILDER_API_URL_PROD = 'https://api.ent0.flowbuilder.prod.hubtype.com';
|
|
5
5
|
exports.SEPARATOR = '|';
|
|
6
6
|
exports.SOURCE_INFO_SEPARATOR = `${exports.SEPARATOR}source_`;
|
|
7
|
-
exports.
|
|
7
|
+
exports.BOT_ACTION_PAYLOAD_PREFIX = `ba${exports.SEPARATOR}`;
|
|
8
8
|
exports.VARIABLE_PATTERN = /{([^}]+)}/g;
|
|
9
9
|
exports.ACCESS_TOKEN_VARIABLE_KEY = '_access_token';
|
|
10
10
|
exports.REG_EXP_PATTERN = /^\/(.*)\/([gimyus]*)$/;
|
package/lib/cjs/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,yBAAyB,GACpC,+CAA+C,CAAA;AACpC,QAAA,SAAS,GAAG,GAAG,CAAA;AACf,QAAA,qBAAqB,GAAG,GAAG,iBAAS,SAAS,CAAA;AAC7C,QAAA,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,yBAAyB,GACpC,+CAA+C,CAAA;AACpC,QAAA,SAAS,GAAG,GAAG,CAAA;AACf,QAAA,qBAAqB,GAAG,GAAG,iBAAS,SAAS,CAAA;AAC7C,QAAA,yBAAyB,GAAG,KAAK,iBAAS,EAAE,CAAA;AAC5C,QAAA,gBAAgB,GAAG,YAAY,CAAA;AAC/B,QAAA,yBAAyB,GAAG,eAAe,CAAA;AAC3C,QAAA,eAAe,GAAG,uBAAuB,CAAA"}
|
|
@@ -5,48 +5,36 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
6
|
const core_1 = require("@botonic/core");
|
|
7
7
|
const react_1 = require("@botonic/react");
|
|
8
|
-
const conditional_queue_status_1 = require("../functions/conditional-queue-status");
|
|
9
|
-
const tracking_1 = require("../tracking");
|
|
10
8
|
const content_fields_base_1 = require("./content-fields-base");
|
|
11
9
|
class FlowHandoff extends content_fields_base_1.ContentFieldsBase {
|
|
12
10
|
static fromHubtypeCMS(cmsHandoff, locale, cmsApi) {
|
|
13
11
|
const newHandoff = new FlowHandoff(cmsHandoff.id);
|
|
14
12
|
newHandoff.code = cmsHandoff.code;
|
|
15
13
|
newHandoff.queue = this.getQueueByLocale(locale, cmsHandoff.content.queue);
|
|
16
|
-
newHandoff.onFinishPayload = this.getOnFinishPayload(cmsHandoff,
|
|
14
|
+
newHandoff.onFinishPayload = this.getOnFinishPayload(cmsHandoff, cmsApi);
|
|
17
15
|
newHandoff.handoffAutoAssign = cmsHandoff.content.has_auto_assign;
|
|
18
16
|
return newHandoff;
|
|
19
17
|
}
|
|
20
|
-
static getOnFinishPayload(cmsHandoff,
|
|
21
|
-
var _a
|
|
18
|
+
static getOnFinishPayload(cmsHandoff, cmsApi) {
|
|
19
|
+
var _a;
|
|
22
20
|
if ((_a = cmsHandoff.target) === null || _a === void 0 ? void 0 : _a.id) {
|
|
23
21
|
return cmsApi.getPayload(cmsHandoff.target);
|
|
24
22
|
}
|
|
25
|
-
// OLD PAYLOAD
|
|
26
|
-
const payloadId = (_b = cmsHandoff.content.payload.find(payload => payload.locale === locale)) === null || _b === void 0 ? void 0 : _b.id;
|
|
27
|
-
if (payloadId) {
|
|
28
|
-
return cmsApi.getNodeById(payloadId).content.payload;
|
|
29
|
-
}
|
|
30
23
|
return undefined;
|
|
31
24
|
}
|
|
32
25
|
doHandoff(request) {
|
|
33
26
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
34
|
-
// @ts-ignore
|
|
35
27
|
const handOffBuilder = new core_1.HandOffBuilder(request.session);
|
|
36
28
|
handOffBuilder.withAutoAssignOnWaiting(this.handoffAutoAssign);
|
|
37
29
|
if (this.onFinishPayload) {
|
|
38
30
|
handOffBuilder.withOnFinishPayload(this.onFinishPayload);
|
|
39
31
|
}
|
|
40
32
|
if (this.queue) {
|
|
41
|
-
const availabilityData = yield (0, conditional_queue_status_1.getQueueAvailability)(this.queue.id);
|
|
42
|
-
const eventArgs = {
|
|
43
|
-
queue_open: availabilityData.open,
|
|
44
|
-
queue_id: this.queue.id,
|
|
45
|
-
available_agents: availabilityData.available_agents > 0,
|
|
46
|
-
threshold_reached: availabilityData.availability_threshold_waiting_cases > 0,
|
|
47
|
-
};
|
|
48
|
-
yield (0, tracking_1.trackEvent)(request, tracking_1.EventName.handoffSuccess, eventArgs);
|
|
49
33
|
handOffBuilder.withQueue(this.queue.id);
|
|
34
|
+
handOffBuilder.withBotEvent({
|
|
35
|
+
language: request.session.user.extra_data.language,
|
|
36
|
+
country: request.session.user.extra_data.country,
|
|
37
|
+
});
|
|
50
38
|
yield handOffBuilder.handOff();
|
|
51
39
|
}
|
|
52
40
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow-handoff.js","sourceRoot":"","sources":["../../../src/content-fields/flow-handoff.tsx"],"names":[],"mappings":";;;;;AAAA,wCAA8C;AAC9C,0CAA+D;AAI/D
|
|
1
|
+
{"version":3,"file":"flow-handoff.js","sourceRoot":"","sources":["../../../src/content-fields/flow-handoff.tsx"],"names":[],"mappings":";;;;;AAAA,wCAA8C;AAC9C,0CAA+D;AAI/D,+DAAyD;AAGzD,MAAa,WAAY,SAAQ,uCAAiB;IAMhD,MAAM,CAAC,cAAc,CACnB,UAAyB,EACzB,MAAc,EACd,MAAsB;QAEtB,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QACjD,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAA;QACjC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC1E,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;QACxE,UAAU,CAAC,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC,eAAe,CAAA;QAEjE,OAAO,UAAU,CAAA;IACnB,CAAC;IAEO,MAAM,CAAC,kBAAkB,CAC/B,UAAyB,EACzB,MAAsB;;QAEtB,IAAI,MAAA,UAAU,CAAC,MAAM,0CAAE,EAAE,EAAE;YACzB,OAAO,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;SAC5C;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAEK,SAAS,CAAC,OAAsB;;YACpC,MAAM,cAAc,GAAG,IAAI,qBAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YAC1D,cAAc,CAAC,uBAAuB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;YAE9D,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,cAAc,CAAC,mBAAmB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;aACzD;YAED,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;gBACvC,cAAc,CAAC,YAAY,CAAC;oBAC1B,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ;oBAClD,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO;iBACjD,CAAC,CAAA;gBACF,MAAM,cAAc,CAAC,OAAO,EAAE,CAAA;aAC/B;QACH,CAAC;KAAA;IAED,SAAS;QACP,OAAO,uBAAC,uBAAe,IAAC,eAAe,EAAE,IAAI,GAAI,CAAA;IACnD,CAAC;CACF;AApDD,kCAoDC"}
|
|
@@ -10,4 +10,5 @@ export { FlowButton } from './flow-button';
|
|
|
10
10
|
export { FlowElement } from './flow-element';
|
|
11
11
|
export { FlowCarousel, FlowImage, FlowText, FlowVideo, FlowWhatsappButtonList };
|
|
12
12
|
export { FlowHandoff } from './flow-handoff';
|
|
13
|
+
export { FlowWhatsappCtaUrlButtonNode } from './flow-whatsapp-cta-url-button';
|
|
13
14
|
export type FlowContent = FlowCarousel | FlowImage | FlowText | FlowVideo | FlowWhatsappButtonList | FlowWhatsappCtaUrlButtonNode | FlowHandoff;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FlowHandoff = exports.FlowWhatsappButtonList = exports.FlowVideo = exports.FlowText = exports.FlowImage = exports.FlowCarousel = exports.FlowElement = exports.FlowButton = exports.ContentFieldsBase = void 0;
|
|
3
|
+
exports.FlowWhatsappCtaUrlButtonNode = exports.FlowHandoff = exports.FlowWhatsappButtonList = exports.FlowVideo = exports.FlowText = exports.FlowImage = exports.FlowCarousel = exports.FlowElement = exports.FlowButton = exports.ContentFieldsBase = void 0;
|
|
4
4
|
const flow_carousel_1 = require("./flow-carousel");
|
|
5
5
|
Object.defineProperty(exports, "FlowCarousel", { enumerable: true, get: function () { return flow_carousel_1.FlowCarousel; } });
|
|
6
6
|
const flow_image_1 = require("./flow-image");
|
|
@@ -19,4 +19,6 @@ var flow_element_1 = require("./flow-element");
|
|
|
19
19
|
Object.defineProperty(exports, "FlowElement", { enumerable: true, get: function () { return flow_element_1.FlowElement; } });
|
|
20
20
|
var flow_handoff_1 = require("./flow-handoff");
|
|
21
21
|
Object.defineProperty(exports, "FlowHandoff", { enumerable: true, get: function () { return flow_handoff_1.FlowHandoff; } });
|
|
22
|
+
var flow_whatsapp_cta_url_button_1 = require("./flow-whatsapp-cta-url-button");
|
|
23
|
+
Object.defineProperty(exports, "FlowWhatsappCtaUrlButtonNode", { enumerable: true, get: function () { return flow_whatsapp_cta_url_button_1.FlowWhatsappCtaUrlButtonNode; } });
|
|
22
24
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/content-fields/index.ts"],"names":[],"mappings":";;;AAAA,mDAA8C;AAWrC,6FAXA,4BAAY,OAWA;AATrB,6CAAwC;AASjB,0FATd,sBAAS,OASc;AARhC,2CAAsC;AAQJ,yFARzB,oBAAQ,OAQyB;AAP1C,6CAAwC;AAOI,0FAPnC,sBAAS,OAOmC;AALrD,gGAAyF;AAKlC,uGAL9C,kDAAsB,OAK8C;AAH7E,6DAAyD;AAAhD,wHAAA,iBAAiB,OAAA;AAC1B,6CAA0C;AAAjC,yGAAA,UAAU,OAAA;AACnB,+CAA4C;AAAnC,2GAAA,WAAW,OAAA;AAEpB,+CAA4C;AAAnC,2GAAA,WAAW,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/content-fields/index.ts"],"names":[],"mappings":";;;AAAA,mDAA8C;AAWrC,6FAXA,4BAAY,OAWA;AATrB,6CAAwC;AASjB,0FATd,sBAAS,OASc;AARhC,2CAAsC;AAQJ,yFARzB,oBAAQ,OAQyB;AAP1C,6CAAwC;AAOI,0FAPnC,sBAAS,OAOmC;AALrD,gGAAyF;AAKlC,uGAL9C,kDAAsB,OAK8C;AAH7E,6DAAyD;AAAhD,wHAAA,iBAAiB,OAAA;AAC1B,6CAA0C;AAAjC,yGAAA,UAAU,OAAA;AACnB,+CAA4C;AAAnC,2GAAA,WAAW,OAAA;AAEpB,+CAA4C;AAAnC,2GAAA,WAAW,OAAA;AACpB,+EAA6E;AAApE,4IAAA,4BAA4B,OAAA"}
|
|
@@ -11,7 +11,13 @@ declare enum QueueStatusResult {
|
|
|
11
11
|
OPEN_WITHOUT_AGENTS = "open-without-agents"
|
|
12
12
|
}
|
|
13
13
|
export declare function conditionalQueueStatus({ queue_id, check_available_agents, }: ConditionalQueueStatusArgs): Promise<QueueStatusResult>;
|
|
14
|
-
|
|
14
|
+
export declare class HubtypeQueuesApi {
|
|
15
|
+
queueId: string;
|
|
16
|
+
checkAvailableAgents: boolean;
|
|
17
|
+
constructor(queueId: string, checkAvailableAgents?: boolean);
|
|
18
|
+
getAvailability(): Promise<AvailabilityData>;
|
|
19
|
+
}
|
|
20
|
+
export interface AvailabilityData {
|
|
15
21
|
available: boolean;
|
|
16
22
|
waiting_cases: number;
|
|
17
23
|
availability_threshold_waiting_cases: number;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getQueueAvailability = exports.conditionalQueueStatus = void 0;
|
|
3
|
+
exports.getQueueAvailability = exports.HubtypeQueuesApi = exports.conditionalQueueStatus = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const axios_1 = tslib_1.__importDefault(require("axios"));
|
|
6
|
+
// import { EventAction, trackEvent } from '../tracking'
|
|
6
7
|
const HUBTYPE_API_URL = process.env.HUBTYPE_API_URL || 'https://api.hubtype.com';
|
|
7
8
|
var QueueStatusResult;
|
|
8
9
|
(function (QueueStatusResult) {
|
|
@@ -10,9 +11,17 @@ var QueueStatusResult;
|
|
|
10
11
|
QueueStatusResult["CLOSED"] = "closed";
|
|
11
12
|
QueueStatusResult["OPEN_WITHOUT_AGENTS"] = "open-without-agents";
|
|
12
13
|
})(QueueStatusResult || (QueueStatusResult = {}));
|
|
13
|
-
function conditionalQueueStatus({
|
|
14
|
+
function conditionalQueueStatus({
|
|
15
|
+
// request,
|
|
16
|
+
queue_id,
|
|
17
|
+
// queue_name,
|
|
18
|
+
check_available_agents, }) {
|
|
14
19
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
15
20
|
const data = yield getQueueAvailability(queue_id, check_available_agents);
|
|
21
|
+
// await trackEvent(request, EventAction.handoffOption, {
|
|
22
|
+
// queueId: queue_id,
|
|
23
|
+
// queueName: queue_name,
|
|
24
|
+
// })
|
|
16
25
|
if (check_available_agents && data.open && data.available_agents === 0) {
|
|
17
26
|
return QueueStatusResult.OPEN_WITHOUT_AGENTS;
|
|
18
27
|
}
|
|
@@ -20,18 +29,31 @@ function conditionalQueueStatus({ queue_id, check_available_agents, }) {
|
|
|
20
29
|
});
|
|
21
30
|
}
|
|
22
31
|
exports.conditionalQueueStatus = conditionalQueueStatus;
|
|
32
|
+
class HubtypeQueuesApi {
|
|
33
|
+
constructor(queueId, checkAvailableAgents) {
|
|
34
|
+
this.queueId = queueId;
|
|
35
|
+
this.checkAvailableAgents = checkAvailableAgents || false;
|
|
36
|
+
}
|
|
37
|
+
getAvailability() {
|
|
38
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
39
|
+
const response = yield axios_1.default.get(`${HUBTYPE_API_URL}/public/v1/queues/${this.queueId}/availability/`,
|
|
40
|
+
// TODO: Make it configurable in the future
|
|
41
|
+
{
|
|
42
|
+
params: {
|
|
43
|
+
check_queue_schedule: true,
|
|
44
|
+
check_waiting_cases: false,
|
|
45
|
+
check_available_agents: this.checkAvailableAgents,
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
return response.data;
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.HubtypeQueuesApi = HubtypeQueuesApi;
|
|
23
53
|
function getQueueAvailability(queueId, checkAvailableAgents = false) {
|
|
24
54
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
{
|
|
28
|
-
params: {
|
|
29
|
-
check_queue_schedule: true,
|
|
30
|
-
check_waiting_cases: false,
|
|
31
|
-
check_available_agents: checkAvailableAgents,
|
|
32
|
-
},
|
|
33
|
-
});
|
|
34
|
-
return response.data;
|
|
55
|
+
const queuesApi = new HubtypeQueuesApi(queueId, checkAvailableAgents);
|
|
56
|
+
return yield queuesApi.getAvailability();
|
|
35
57
|
});
|
|
36
58
|
}
|
|
37
59
|
exports.getQueueAvailability = getQueueAvailability;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditional-queue-status.js","sourceRoot":"","sources":["../../../src/functions/conditional-queue-status.ts"],"names":[],"mappings":";;;;AACA,0DAAyB;AAEzB,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,yBAAyB,CAAA;AAShF,IAAK,iBAIJ;AAJD,WAAK,iBAAiB;IACpB,kCAAa,CAAA;IACb,sCAAiB,CAAA;IACjB,gEAA2C,CAAA;AAC7C,CAAC,EAJI,iBAAiB,KAAjB,iBAAiB,QAIrB;AAED,SAAsB,sBAAsB,CAAC,
|
|
1
|
+
{"version":3,"file":"conditional-queue-status.js","sourceRoot":"","sources":["../../../src/functions/conditional-queue-status.ts"],"names":[],"mappings":";;;;AACA,0DAAyB;AAEzB,wDAAwD;AAExD,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,yBAAyB,CAAA;AAShF,IAAK,iBAIJ;AAJD,WAAK,iBAAiB;IACpB,kCAAa,CAAA;IACb,sCAAiB,CAAA;IACjB,gEAA2C,CAAA;AAC7C,CAAC,EAJI,iBAAiB,KAAjB,iBAAiB,QAIrB;AAED,SAAsB,sBAAsB,CAAC;AAC3C,WAAW;AACX,QAAQ;AACR,cAAc;AACd,sBAAsB,GACK;;QAC3B,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAA;QACzE,yDAAyD;QACzD,uBAAuB;QACvB,2BAA2B;QAC3B,KAAK;QACL,IAAI,sBAAsB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,gBAAgB,KAAK,CAAC,EAAE;YACtE,OAAO,iBAAiB,CAAC,mBAAmB,CAAA;SAC7C;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAA;IACtE,CAAC;CAAA;AAfD,wDAeC;AAED,MAAa,gBAAgB;IAI3B,YAAY,OAAe,EAAE,oBAA8B;QACzD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,IAAI,KAAK,CAAA;IAC3D,CAAC;IAEK,eAAe;;YACnB,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAC9B,GAAG,eAAe,qBAAqB,IAAI,CAAC,OAAO,gBAAgB;YACnE,2CAA2C;YAC3C;gBACE,MAAM,EAAE;oBACN,oBAAoB,EAAE,IAAI;oBAC1B,mBAAmB,EAAE,KAAK;oBAC1B,sBAAsB,EAAE,IAAI,CAAC,oBAAoB;iBAClD;aACF,CACF,CAAA;YACD,OAAO,QAAQ,CAAC,IAAI,CAAA;QACtB,CAAC;KAAA;CACF;AAvBD,4CAuBC;AAWD,SAAsB,oBAAoB,CACxC,OAAe,EACf,oBAAoB,GAAG,KAAK;;QAE5B,MAAM,SAAS,GAAG,IAAI,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAA;QACrE,OAAO,MAAM,SAAS,CAAC,eAAe,EAAE,CAAA;IAC1C,CAAC;CAAA;AAND,oDAMC"}
|
package/lib/cjs/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { FlowBuilderApi } from './api';
|
|
|
4
4
|
import { FlowContent } from './content-fields';
|
|
5
5
|
import { HtNodeWithContent } from './content-fields/hubtype-fields';
|
|
6
6
|
import { BotonicPluginFlowBuilderOptions, KnowledgeBaseResponse, PayloadParamsBase } from './types';
|
|
7
|
+
import { SmartIntentsInferenceConfig } from './user-input/smart-intent';
|
|
7
8
|
export default class BotonicPluginFlowBuilder implements Plugin {
|
|
8
9
|
readonly options: BotonicPluginFlowBuilderOptions;
|
|
9
10
|
cmsApi: FlowBuilderApi;
|
|
@@ -13,13 +14,14 @@ export default class BotonicPluginFlowBuilder implements Plugin {
|
|
|
13
14
|
private currentRequest;
|
|
14
15
|
private getAccessToken;
|
|
15
16
|
getLocale: (session: Session) => string;
|
|
16
|
-
trackEvent?: (request: ActionRequest,
|
|
17
|
+
trackEvent?: (request: ActionRequest, eventAction: string, args?: Record<string, any>) => Promise<void>;
|
|
17
18
|
getKnowledgeBaseResponse?: (request: ActionRequest) => Promise<KnowledgeBaseResponse>;
|
|
19
|
+
smartIntentsConfig: SmartIntentsInferenceConfig;
|
|
18
20
|
constructor(options: BotonicPluginFlowBuilderOptions);
|
|
19
21
|
pre(request: PluginPreRequest): Promise<void>;
|
|
20
22
|
private updateRequestBeforeRoutes;
|
|
21
|
-
private
|
|
22
|
-
private
|
|
23
|
+
private removeSourceSufix;
|
|
24
|
+
private replacePayload;
|
|
23
25
|
getContentsByContentID(contentID: string, locale: string, prevContents?: FlowContent[]): Promise<FlowContent[]>;
|
|
24
26
|
getUUIDByContentID(contentID: string): string;
|
|
25
27
|
private getContentsById;
|
|
@@ -29,6 +31,7 @@ export default class BotonicPluginFlowBuilder implements Plugin {
|
|
|
29
31
|
private callFunction;
|
|
30
32
|
private getArgumentsByLocale;
|
|
31
33
|
getPayloadParams<T extends PayloadParamsBase>(payload: string): T;
|
|
34
|
+
getFlowName(flowId: string): string;
|
|
32
35
|
}
|
|
33
36
|
export * from './action';
|
|
34
37
|
export * from './content-fields';
|
package/lib/cjs/index.js
CHANGED
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FlowBuilderJSONVersion = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
+
const uuid_1 = require("uuid");
|
|
5
6
|
const api_1 = require("./api");
|
|
6
7
|
const constants_1 = require("./constants");
|
|
7
8
|
const content_fields_1 = require("./content-fields");
|
|
8
9
|
const flow_whatsapp_cta_url_button_1 = require("./content-fields/flow-whatsapp-cta-url-button");
|
|
9
10
|
const hubtype_fields_1 = require("./content-fields/hubtype-fields");
|
|
10
11
|
const functions_1 = require("./functions");
|
|
12
|
+
const tracking_1 = require("./tracking");
|
|
11
13
|
const types_1 = require("./types");
|
|
12
14
|
const user_input_1 = require("./user-input");
|
|
13
15
|
const utils_1 = require("./utils");
|
|
@@ -22,6 +24,7 @@ class BotonicPluginFlowBuilder {
|
|
|
22
24
|
this.getAccessToken = (0, utils_1.resolveGetAccessToken)(options);
|
|
23
25
|
this.trackEvent = options.trackEvent;
|
|
24
26
|
this.getKnowledgeBaseResponse = options.getKnowledgeBaseResponse;
|
|
27
|
+
this.smartIntentsConfig = Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.smartIntentsConfig), { useLatest: jsonVersion === types_1.FlowBuilderJSONVersion.LATEST });
|
|
25
28
|
const customFunctions = options.customFunctions || {};
|
|
26
29
|
this.functions = Object.assign(Object.assign({}, functions_1.DEFAULT_FUNCTIONS), customFunctions);
|
|
27
30
|
}
|
|
@@ -40,7 +43,7 @@ class BotonicPluginFlowBuilder {
|
|
|
40
43
|
if (checkUserTextInput) {
|
|
41
44
|
const locale = this.getLocale(request.session);
|
|
42
45
|
const resolvedLocale = this.cmsApi.getResolvedLocale(locale);
|
|
43
|
-
const nodeByUserInput = yield (0, user_input_1.getNodeByUserInput)(this.cmsApi, resolvedLocale, request);
|
|
46
|
+
const nodeByUserInput = yield (0, user_input_1.getNodeByUserInput)(this.cmsApi, resolvedLocale, request, this.smartIntentsConfig);
|
|
44
47
|
request.input.payload = this.cmsApi.getPayload(nodeByUserInput === null || nodeByUserInput === void 0 ? void 0 : nodeByUserInput.target);
|
|
45
48
|
}
|
|
46
49
|
this.updateRequestBeforeRoutes(request);
|
|
@@ -48,20 +51,19 @@ class BotonicPluginFlowBuilder {
|
|
|
48
51
|
}
|
|
49
52
|
updateRequestBeforeRoutes(request) {
|
|
50
53
|
if (request.input.payload) {
|
|
51
|
-
request.input.payload = this.
|
|
52
|
-
request.input.payload
|
|
54
|
+
request.input.payload = this.removeSourceSufix(request.input.payload);
|
|
55
|
+
if (request.input.payload.startsWith(constants_1.BOT_ACTION_PAYLOAD_PREFIX)) {
|
|
56
|
+
request.input.payload = this.replacePayload(request.input.payload);
|
|
57
|
+
}
|
|
53
58
|
}
|
|
54
59
|
}
|
|
55
|
-
|
|
56
|
-
return payload
|
|
60
|
+
removeSourceSufix(payload) {
|
|
61
|
+
return payload.split(constants_1.SOURCE_INFO_SEPARATOR)[0];
|
|
57
62
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
return this.cmsApi.createPayloadWithParams(botActionNode);
|
|
63
|
-
}
|
|
64
|
-
return payload;
|
|
63
|
+
replacePayload(payload) {
|
|
64
|
+
const botActionId = payload.split(constants_1.SEPARATOR)[1];
|
|
65
|
+
const botActionNode = this.cmsApi.getNodeById(botActionId);
|
|
66
|
+
return this.cmsApi.createPayloadWithParams(botActionNode);
|
|
65
67
|
}
|
|
66
68
|
getContentsByContentID(contentID, locale, prevContents) {
|
|
67
69
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
@@ -81,8 +83,12 @@ class BotonicPluginFlowBuilder {
|
|
|
81
83
|
}
|
|
82
84
|
getStartContents(locale) {
|
|
83
85
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
86
|
+
const resolvedLocale = this.cmsApi.getResolvedLocale(locale);
|
|
84
87
|
const startNode = this.cmsApi.getStartNode();
|
|
85
|
-
|
|
88
|
+
this.currentRequest.session.flow_thread_id = (0, uuid_1.v4)();
|
|
89
|
+
const eventArgs = (0, tracking_1.getNodeEventArgs)(this.currentRequest, startNode);
|
|
90
|
+
yield (0, tracking_1.trackEvent)(this.currentRequest, tracking_1.EventAction.flowNode, eventArgs);
|
|
91
|
+
return yield this.getContentsByNode(startNode, resolvedLocale);
|
|
86
92
|
});
|
|
87
93
|
}
|
|
88
94
|
getContentsByNode(node, locale, prevContents) {
|
|
@@ -160,6 +166,9 @@ class BotonicPluginFlowBuilder {
|
|
|
160
166
|
const payloadParams = JSON.parse(payload.split(constants_1.SEPARATOR)[1] || '{}');
|
|
161
167
|
return payloadParams;
|
|
162
168
|
}
|
|
169
|
+
getFlowName(flowId) {
|
|
170
|
+
return this.cmsApi.getFlowName(flowId);
|
|
171
|
+
}
|
|
163
172
|
}
|
|
164
173
|
exports.default = BotonicPluginFlowBuilder;
|
|
165
174
|
tslib_1.__exportStar(require("./action"), exports);
|