@botonic/plugin-flow-builder 0.34.0 → 0.34.2-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/first-interaction.d.ts +1 -1
- package/lib/cjs/action/first-interaction.js +26 -28
- package/lib/cjs/action/first-interaction.js.map +1 -1
- package/lib/cjs/action/index.d.ts +1 -4
- package/lib/cjs/action/knowledge-bases.js +19 -17
- package/lib/cjs/action/knowledge-bases.js.map +1 -1
- package/lib/cjs/index.d.ts +2 -2
- package/lib/cjs/index.js +7 -4
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/tracking.js.map +1 -1
- package/lib/cjs/types.d.ts +6 -0
- package/lib/cjs/types.js.map +1 -1
- package/lib/cjs/user-input/index.js +22 -15
- package/lib/cjs/user-input/index.js.map +1 -1
- package/lib/cjs/user-input/intent.js +7 -0
- package/lib/cjs/user-input/intent.js.map +1 -1
- package/lib/cjs/user-input/keyword.js +2 -0
- package/lib/cjs/user-input/keyword.js.map +1 -1
- package/lib/cjs/user-input/smart-intent.js +2 -0
- package/lib/cjs/user-input/smart-intent.js.map +1 -1
- package/lib/cjs/utils.d.ts +3 -0
- package/lib/cjs/utils.js +19 -1
- package/lib/cjs/utils.js.map +1 -1
- package/lib/esm/action/first-interaction.d.ts +1 -1
- package/lib/esm/action/first-interaction.js +26 -28
- package/lib/esm/action/first-interaction.js.map +1 -1
- package/lib/esm/action/index.d.ts +1 -4
- package/lib/esm/action/knowledge-bases.js +20 -18
- package/lib/esm/action/knowledge-bases.js.map +1 -1
- package/lib/esm/index.d.ts +2 -2
- package/lib/esm/index.js +7 -4
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/tracking.js.map +1 -1
- package/lib/esm/types.d.ts +6 -0
- package/lib/esm/types.js.map +1 -1
- package/lib/esm/user-input/index.js +23 -16
- package/lib/esm/user-input/index.js.map +1 -1
- package/lib/esm/user-input/intent.js +7 -0
- package/lib/esm/user-input/intent.js.map +1 -1
- package/lib/esm/user-input/keyword.js +2 -0
- package/lib/esm/user-input/keyword.js.map +1 -1
- package/lib/esm/user-input/smart-intent.js +2 -0
- package/lib/esm/user-input/smart-intent.js.map +1 -1
- package/lib/esm/utils.d.ts +3 -0
- package/lib/esm/utils.js +16 -1
- package/lib/esm/utils.js.map +1 -1
- package/package.json +1 -1
- package/src/action/first-interaction.ts +31 -42
- package/src/action/knowledge-bases.ts +38 -36
- package/src/content-fields/hubtype-fields/intent.ts +1 -0
- package/src/index.ts +9 -4
- package/src/tracking.ts +0 -1
- package/src/types.ts +7 -0
- package/src/user-input/index.ts +33 -21
- package/src/user-input/intent.ts +8 -0
- package/src/user-input/keyword.ts +3 -0
- package/src/user-input/smart-intent.ts +5 -0
- package/src/utils.ts +27 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { FlowContent } from '../content-fields';
|
|
2
2
|
import { FlowBuilderContext } from './index';
|
|
3
|
-
export declare function getContentsByFirstInteraction(
|
|
3
|
+
export declare function getContentsByFirstInteraction(context: FlowBuilderContext): Promise<FlowContent[]>;
|
|
@@ -4,25 +4,20 @@ exports.getContentsByFirstInteraction = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const constants_1 = require("../constants");
|
|
6
6
|
const content_fields_1 = require("../content-fields");
|
|
7
|
-
const user_input_1 = require("../user-input");
|
|
8
7
|
const utils_1 = require("../utils");
|
|
9
8
|
const knowledge_bases_1 = require("./knowledge-bases");
|
|
10
9
|
const payload_1 = require("./payload");
|
|
11
|
-
function getContentsByFirstInteraction(
|
|
10
|
+
function getContentsByFirstInteraction(context) {
|
|
12
11
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
12
|
+
const { flowBuilderPlugin, request, resolvedLocale } = context;
|
|
13
13
|
const firstInteractionContents = yield flowBuilderPlugin.getStartContents(resolvedLocale);
|
|
14
14
|
// If the first interaction has a FlowBotAction, it should be the last content
|
|
15
15
|
// and avoid to render the match with keywords,intents or knowledge base
|
|
16
16
|
if (firstInteractionContents.at(-1) instanceof content_fields_1.FlowBotAction) {
|
|
17
17
|
return firstInteractionContents;
|
|
18
18
|
}
|
|
19
|
-
if ((0, utils_1.inputHasTextData)(request.input)) {
|
|
20
|
-
const contentsByUserInput = yield getContentsByUserInput(
|
|
21
|
-
cmsApi,
|
|
22
|
-
flowBuilderPlugin,
|
|
23
|
-
request,
|
|
24
|
-
resolvedLocale,
|
|
25
|
-
});
|
|
19
|
+
if (request.input.nluResolution || (0, utils_1.inputHasTextData)(request.input)) {
|
|
20
|
+
const contentsByUserInput = yield getContentsByUserInput(context);
|
|
26
21
|
return [...firstInteractionContents, ...contentsByUserInput];
|
|
27
22
|
}
|
|
28
23
|
return firstInteractionContents;
|
|
@@ -30,25 +25,28 @@ function getContentsByFirstInteraction({ cmsApi, flowBuilderPlugin, request, res
|
|
|
30
25
|
}
|
|
31
26
|
exports.getContentsByFirstInteraction = getContentsByFirstInteraction;
|
|
32
27
|
function getContentsByUserInput({ cmsApi, flowBuilderPlugin, request, resolvedLocale, }) {
|
|
28
|
+
var _a;
|
|
33
29
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
30
|
+
const payloadByNlu = (_a = request.input.nluResolution) === null || _a === void 0 ? void 0 : _a.payload;
|
|
31
|
+
if (payloadByNlu) {
|
|
32
|
+
request.input.payload = payloadByNlu;
|
|
33
|
+
const conversationStartId = getConversationStartId(cmsApi);
|
|
34
|
+
if (request.input.payload === conversationStartId) {
|
|
35
|
+
return [];
|
|
36
|
+
}
|
|
37
|
+
const contentsByKeywordsOrIntents = yield (0, payload_1.getContentsByPayload)({
|
|
38
|
+
cmsApi,
|
|
39
|
+
flowBuilderPlugin,
|
|
40
|
+
request,
|
|
41
|
+
resolvedLocale,
|
|
42
|
+
});
|
|
43
|
+
const hasRepeatedContent = yield checkRepeatedContents(flowBuilderPlugin, resolvedLocale, contentsByKeywordsOrIntents);
|
|
44
|
+
if (hasRepeatedContent) {
|
|
45
|
+
return [];
|
|
46
|
+
}
|
|
47
|
+
if (contentsByKeywordsOrIntents.length > 0) {
|
|
48
|
+
return contentsByKeywordsOrIntents;
|
|
49
|
+
}
|
|
52
50
|
}
|
|
53
51
|
return yield (0, knowledge_bases_1.getContentsByKnowledgeBase)({
|
|
54
52
|
cmsApi,
|
|
@@ -63,7 +61,7 @@ function getConversationStartId(cmsApi) {
|
|
|
63
61
|
const conversationStartId = (_a = cmsApi.flow.flows.find(flow => flow.name === constants_1.MAIN_FLOW_NAME)) === null || _a === void 0 ? void 0 : _a.start_node_id;
|
|
64
62
|
return conversationStartId;
|
|
65
63
|
}
|
|
66
|
-
function
|
|
64
|
+
function checkRepeatedContents(flowBuilderPlugin, resolvedLocale, contentsByKeywordsOrIntents) {
|
|
67
65
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
68
66
|
const startContents = yield flowBuilderPlugin.getStartContents(resolvedLocale);
|
|
69
67
|
const contentIds = new Set(contentsByKeywordsOrIntents.map(content => content.id));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"first-interaction.js","sourceRoot":"","sources":["../../../src/action/first-interaction.ts"],"names":[],"mappings":";;;;AACA,4CAA6C;AAC7C,sDAA8D;AAE9D,
|
|
1
|
+
{"version":3,"file":"first-interaction.js","sourceRoot":"","sources":["../../../src/action/first-interaction.ts"],"names":[],"mappings":";;;;AACA,4CAA6C;AAC7C,sDAA8D;AAE9D,oCAA2C;AAE3C,uDAA8D;AAC9D,uCAAgD;AAEhD,SAAsB,6BAA6B,CACjD,OAA2B;;QAE3B,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CAAA;QAC9D,MAAM,wBAAwB,GAC5B,MAAM,iBAAiB,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAA;QAE1D,8EAA8E;QAC9E,wEAAwE;QACxE,IAAI,wBAAwB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,8BAAa,EAAE;YAC5D,OAAO,wBAAwB,CAAA;SAChC;QAED,IAAI,OAAO,CAAC,KAAK,CAAC,aAAa,IAAI,IAAA,wBAAgB,EAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAClE,MAAM,mBAAmB,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAA;YAEjE,OAAO,CAAC,GAAG,wBAAwB,EAAE,GAAG,mBAAmB,CAAC,CAAA;SAC7D;QAED,OAAO,wBAAwB,CAAA;IACjC,CAAC;CAAA;AApBD,sEAoBC;AAED,SAAe,sBAAsB,CAAC,EACpC,MAAM,EACN,iBAAiB,EACjB,OAAO,EACP,cAAc,GACK;;;QACnB,MAAM,YAAY,GAAG,MAAA,OAAO,CAAC,KAAK,CAAC,aAAa,0CAAE,OAAO,CAAA;QAEzD,IAAI,YAAY,EAAE;YAChB,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,YAAY,CAAA;YACpC,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAA;YAE1D,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,mBAAmB,EAAE;gBACjD,OAAO,EAAE,CAAA;aACV;YAED,MAAM,2BAA2B,GAAG,MAAM,IAAA,8BAAoB,EAAC;gBAC7D,MAAM;gBACN,iBAAiB;gBACjB,OAAO;gBACP,cAAc;aACf,CAAC,CAAA;YAEF,MAAM,kBAAkB,GAAG,MAAM,qBAAqB,CACpD,iBAAiB,EACjB,cAAc,EACd,2BAA2B,CAC5B,CAAA;YAED,IAAI,kBAAkB,EAAE;gBACtB,OAAO,EAAE,CAAA;aACV;YAED,IAAI,2BAA2B,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1C,OAAO,2BAA2B,CAAA;aACnC;SACF;QAED,OAAO,MAAM,IAAA,4CAA0B,EAAC;YACtC,MAAM;YACN,iBAAiB;YACjB,OAAO;YACP,cAAc;SACf,CAAC,CAAA;;CACH;AAED,SAAS,sBAAsB,CAAC,MAAsB;;IACpD,MAAM,mBAAmB,GAAG,MAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAChD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,0BAAc,CACrC,0CAAE,aAAa,CAAA;IAEhB,OAAO,mBAAmB,CAAA;AAC5B,CAAC;AAED,SAAe,qBAAqB,CAClC,iBAA2C,EAC3C,cAAsB,EACtB,2BAA0C;;QAE1C,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAA;QAC9E,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,2BAA2B,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CACvD,CAAA;QACD,MAAM,kBAAkB,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CACtD,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAC3B,CAAA;QAED,OAAO,kBAAkB,CAAA;IAC3B,CAAC;CAAA"}
|
|
@@ -7,10 +7,7 @@ export type FlowBuilderActionProps = {
|
|
|
7
7
|
contents: FlowContent[];
|
|
8
8
|
};
|
|
9
9
|
export declare class FlowBuilderAction extends React.Component<FlowBuilderActionProps> {
|
|
10
|
-
static contextType: React.Context<
|
|
11
|
-
getString: () => string;
|
|
12
|
-
setLocale: () => void;
|
|
13
|
-
}>;
|
|
10
|
+
static contextType: React.Context<any>;
|
|
14
11
|
context: React.ContextType<typeof RequestContext>;
|
|
15
12
|
static executeConversationStart(request: ActionRequest): Promise<FlowBuilderActionProps>;
|
|
16
13
|
static botonicInit(request: ActionRequest, contentID?: string): Promise<FlowBuilderActionProps>;
|
|
@@ -7,23 +7,25 @@ const tracking_1 = require("../tracking");
|
|
|
7
7
|
const utils_1 = require("../utils");
|
|
8
8
|
function getContentsByKnowledgeBase({ cmsApi, flowBuilderPlugin, request, resolvedLocale, }) {
|
|
9
9
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
10
|
+
if ((0, utils_1.isKnowledgeBasesAllowed)(request)) {
|
|
11
|
+
const startNodeKnowledgeBaseFlow = cmsApi.getStartNodeKnowledgeBaseFlow();
|
|
12
|
+
if (!startNodeKnowledgeBaseFlow) {
|
|
13
|
+
return [];
|
|
14
|
+
}
|
|
15
|
+
const contents = yield flowBuilderPlugin.getContentsByNode(startNodeKnowledgeBaseFlow, resolvedLocale);
|
|
16
|
+
const knowledgeBaseContent = contents.find(content => content instanceof content_fields_1.FlowKnowledgeBase);
|
|
17
|
+
if (!knowledgeBaseContent) {
|
|
18
|
+
return contents;
|
|
19
|
+
}
|
|
20
|
+
const sourceIds = knowledgeBaseContent.sourcesData.map(source => source.id);
|
|
21
|
+
const flowId = cmsApi.getNodeById(knowledgeBaseContent.id).flow_id;
|
|
22
|
+
if (flowBuilderPlugin.getKnowledgeBaseResponse &&
|
|
23
|
+
(0, utils_1.inputHasTextData)(request.input) &&
|
|
24
|
+
sourceIds.length > 0) {
|
|
25
|
+
const contentsWithKnowledgeResponse = yield getContentsWithKnowledgeResponse(flowBuilderPlugin.getKnowledgeBaseResponse, request, contents, knowledgeBaseContent, flowId);
|
|
26
|
+
if (contentsWithKnowledgeResponse) {
|
|
27
|
+
return contentsWithKnowledgeResponse;
|
|
28
|
+
}
|
|
27
29
|
}
|
|
28
30
|
}
|
|
29
31
|
return [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge-bases.js","sourceRoot":"","sources":["../../../src/action/knowledge-bases.ts"],"names":[],"mappings":";;;;AAEA,sDAI0B;AAE1B,0CAA8E;AAE9E,
|
|
1
|
+
{"version":3,"file":"knowledge-bases.js","sourceRoot":"","sources":["../../../src/action/knowledge-bases.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/index.d.ts
CHANGED
|
@@ -2,10 +2,9 @@ import { Plugin, PluginPreRequest, Session } from '@botonic/core';
|
|
|
2
2
|
import { FlowBuilderApi } from './api';
|
|
3
3
|
import { FlowContent } from './content-fields';
|
|
4
4
|
import { HtNodeWithContent } from './content-fields/hubtype-fields';
|
|
5
|
-
import { BotonicPluginFlowBuilderOptions, FlowBuilderJSONVersion, KnowledgeBaseFunction, PayloadParamsBase, TrackEventFunction } from './types';
|
|
5
|
+
import { BotonicPluginFlowBuilderOptions, FlowBuilderJSONVersion, InShadowingConfig, KnowledgeBaseFunction, PayloadParamsBase, TrackEventFunction } from './types';
|
|
6
6
|
import { SmartIntentsInferenceConfig } from './user-input/smart-intent';
|
|
7
7
|
export default class BotonicPluginFlowBuilder implements Plugin {
|
|
8
|
-
readonly options: BotonicPluginFlowBuilderOptions;
|
|
9
8
|
cmsApi: FlowBuilderApi;
|
|
10
9
|
private flow?;
|
|
11
10
|
private functions;
|
|
@@ -15,6 +14,7 @@ export default class BotonicPluginFlowBuilder implements Plugin {
|
|
|
15
14
|
trackEvent?: TrackEventFunction;
|
|
16
15
|
getKnowledgeBaseResponse?: KnowledgeBaseFunction;
|
|
17
16
|
smartIntentsConfig: SmartIntentsInferenceConfig;
|
|
17
|
+
inShadowing: InShadowingConfig;
|
|
18
18
|
jsonVersion: FlowBuilderJSONVersion;
|
|
19
19
|
apiUrl: string;
|
|
20
20
|
constructor(options: BotonicPluginFlowBuilderOptions);
|
package/lib/cjs/index.js
CHANGED
|
@@ -14,7 +14,7 @@ const utils_1 = require("./utils");
|
|
|
14
14
|
// TODO: Create a proper service to wrap all calls and allow api versioning
|
|
15
15
|
class BotonicPluginFlowBuilder {
|
|
16
16
|
constructor(options) {
|
|
17
|
-
|
|
17
|
+
var _a, _b, _c;
|
|
18
18
|
this.apiUrl = options.apiUrl || constants_1.FLOW_BUILDER_API_URL_PROD;
|
|
19
19
|
this.jsonVersion = options.jsonVersion || types_1.FlowBuilderJSONVersion.LATEST;
|
|
20
20
|
this.flow = options.flow;
|
|
@@ -25,6 +25,11 @@ class BotonicPluginFlowBuilder {
|
|
|
25
25
|
this.smartIntentsConfig = Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.smartIntentsConfig), { useLatest: this.jsonVersion === types_1.FlowBuilderJSONVersion.LATEST });
|
|
26
26
|
const customFunctions = options.customFunctions || {};
|
|
27
27
|
this.functions = Object.assign(Object.assign({}, functions_1.DEFAULT_FUNCTIONS), customFunctions);
|
|
28
|
+
this.inShadowing = {
|
|
29
|
+
allowKeywords: ((_a = options.inShadowing) === null || _a === void 0 ? void 0 : _a.allowKeywords) || false,
|
|
30
|
+
allowSmartIntents: ((_b = options.inShadowing) === null || _b === void 0 ? void 0 : _b.allowSmartIntents) || false,
|
|
31
|
+
allowKnowledgeBases: ((_c = options.inShadowing) === null || _c === void 0 ? void 0 : _c.allowKnowledgeBases) || false,
|
|
32
|
+
};
|
|
28
33
|
}
|
|
29
34
|
resolveFlowUrl(request) {
|
|
30
35
|
if (request.session.is_test_integration) {
|
|
@@ -42,9 +47,7 @@ class BotonicPluginFlowBuilder {
|
|
|
42
47
|
accessToken: this.getAccessToken(request.session),
|
|
43
48
|
request: this.currentRequest,
|
|
44
49
|
});
|
|
45
|
-
const checkUserTextInput = (0, utils_1.inputHasTextData)(request.input) &&
|
|
46
|
-
!request.input.payload &&
|
|
47
|
-
!request.session.is_first_interaction;
|
|
50
|
+
const checkUserTextInput = (0, utils_1.inputHasTextData)(request.input) && !request.input.payload;
|
|
48
51
|
if (checkUserTextInput) {
|
|
49
52
|
const locale = this.getLocale(request.session);
|
|
50
53
|
const resolvedLocale = this.cmsApi.getResolvedLocale(locale);
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAEA,+BAAmC;AAEnC,+BAAsC;AACtC,2CAIoB;AACpB,qDAWyB;AACzB,oEASwC;AACxC,2CAA+C;AAC/C,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/tracking.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracking.js","sourceRoot":"","sources":["../../src/tracking.ts"],"names":[],"mappings":";;;;AACA,+BAAmC;AAGnC,
|
|
1
|
+
{"version":3,"file":"tracking.js","sourceRoot":"","sources":["../../src/tracking.ts"],"names":[],"mappings":";;;;AACA,+BAAmC;AAGnC,oEAGwC;AACxC,uCAAgD;AAEhD,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,qCAAsB,CAAA;IACtB,sCAAuB,CAAA;IACvB,oCAAqB,CAAA;IACrB,+CAAgC,CAAA;IAChC,8CAA+B,CAAA;IAC/B,oCAAqB,CAAA;AACvB,CAAC,EAPW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAOtB;AAED,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IACjC,uDAA4B,CAAA;IAC5B,0DAA+B,CAAA;AACjC,CAAC,EAHW,uBAAuB,GAAvB,+BAAuB,KAAvB,+BAAuB,QAGlC;AAED,SAAsB,UAAU,CAC9B,OAAsB,EACtB,WAAwB,EACxB,IAA0B;;QAE1B,MAAM,iBAAiB,GAAG,IAAA,8BAAoB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC/D,IAAI,iBAAiB,CAAC,UAAU,EAAE;YAChC,MAAM,iBAAiB,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,CAAA;SAC/D;QACD,OAAM;IACR,CAAC;CAAA;AAVD,gCAUC;AAED,SAAsB,gBAAgB,CACpC,OAAsB,EACtB,QAAuB;;;QAEvB,MAAM,iBAAiB,GAAG,IAAA,8BAAoB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC/D,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAA;QACvC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAoB,OAAO,CAAC,EAAE,CAAC,CAAA;YACrE,IAAI,WAAW,CAAC,IAAI,KAAK,sCAAqB,CAAC,cAAc,EAAE;gBAC7D,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,EAAE;oBAC7C,IAAI,EAAE,WAAW,CAAC,IAAI;oBACtB,MAAM,EAAE,WAAW,CAAC,OAAO;oBAC3B,QAAQ,EAAE,iBAAiB,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC;oBAC5D,EAAE,EAAE,WAAW,CAAC,EAAE;oBAClB,YAAY,EAAE,MAAA,WAAW,CAAC,aAAa,mCAAI,KAAK;iBACjD,CAAC,CAAA;gBACF,MAAM,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;aAC3D;SACF;;CACF;AAnBD,4CAmBC;AAED,SAAS,mBAAmB,CAC1B,OAAsB,EACtB,WAMC;;IAED,MAAM,YAAY,GAAG,MAAA,OAAO,CAAC,OAAO,CAAC,cAAc,mCAAI,IAAA,SAAM,GAAE,CAAA;IAC/D,OAAO,CAAC,OAAO,CAAC,cAAc,GAAG,YAAY,CAAA;IAE7C,OAAO;QACL,YAAY;QACZ,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,QAAQ,EAAE,WAAW,CAAC,QAAQ;QAC9B,UAAU,EAAE,WAAW,CAAC,EAAE;QAC1B,iBAAiB,EAAE,WAAW,CAAC,IAAI;QACnC,oBAAoB,EAAE,WAAW,CAAC,YAAY;KAC/C,CAAA;AACH,CAAC"}
|
package/lib/cjs/types.d.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { PluginPreRequest, Session } from '@botonic/core';
|
|
2
2
|
import { ActionRequest } from '@botonic/react';
|
|
3
3
|
import { HtFlowBuilderData } from './content-fields/hubtype-fields';
|
|
4
|
+
export interface InShadowingConfig {
|
|
5
|
+
allowKeywords: boolean;
|
|
6
|
+
allowSmartIntents: boolean;
|
|
7
|
+
allowKnowledgeBases: boolean;
|
|
8
|
+
}
|
|
4
9
|
export interface BotonicPluginFlowBuilderOptions {
|
|
5
10
|
apiUrl?: string;
|
|
6
11
|
jsonVersion?: FlowBuilderJSONVersion;
|
|
@@ -13,6 +18,7 @@ export interface BotonicPluginFlowBuilderOptions {
|
|
|
13
18
|
smartIntentsConfig?: {
|
|
14
19
|
numSmartIntentsToUse: number;
|
|
15
20
|
};
|
|
21
|
+
inShadowing?: Partial<InShadowingConfig>;
|
|
16
22
|
}
|
|
17
23
|
export type TrackEventFunction = (request: ActionRequest, eventAction: string, args?: Record<string, any>) => Promise<void>;
|
|
18
24
|
export type KnowledgeBaseFunction = (request: ActionRequest, sources: string[], instructions: string, messageId: string, memoryLength: number) => Promise<KnowledgeBaseResponse>;
|
package/lib/cjs/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AA8CA,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,+CAAyB,CAAA;IACzB,iDAA2B,CAAA;AAC7B,CAAC,EAHW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAG7B;AAED,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAChC,yCAAe,CAAA;IACf,2CAAiB,CAAA;AACnB,CAAC,EAHW,sBAAsB,GAAtB,8BAAsB,KAAtB,8BAAsB,QAGjC"}
|
|
@@ -9,23 +9,30 @@ const smart_intent_1 = require("./smart-intent");
|
|
|
9
9
|
function getNodeByUserInput(cmsApi, locale, request, smartIntentsConfig) {
|
|
10
10
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
11
11
|
if ((0, utils_1.inputHasTextData)(request.input)) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
12
|
+
if ((0, utils_1.isKeywordsAllowed)(request)) {
|
|
13
|
+
const keywordMatcher = new keyword_1.KeywordMatcher({
|
|
14
|
+
cmsApi,
|
|
15
|
+
locale,
|
|
16
|
+
request,
|
|
17
|
+
});
|
|
18
|
+
const keywordNode = yield keywordMatcher.getNodeByInput(request.input.data);
|
|
19
|
+
if (keywordNode) {
|
|
20
|
+
return keywordNode;
|
|
21
|
+
}
|
|
20
22
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
if ((0, utils_1.isSmartIntentsAllowed)(request)) {
|
|
24
|
+
const smartIntentsApi = new smart_intent_1.SmartIntentsApi(cmsApi, request, smartIntentsConfig);
|
|
25
|
+
const smartIntentNode = yield smartIntentsApi.getNodeByInput();
|
|
26
|
+
if (smartIntentNode) {
|
|
27
|
+
return smartIntentNode;
|
|
28
|
+
}
|
|
25
29
|
}
|
|
26
|
-
|
|
27
|
-
if (
|
|
28
|
-
|
|
30
|
+
// TODO: Remove this because frontend no allow create intents babel
|
|
31
|
+
if ((0, utils_1.isSmartIntentsAllowed)(request)) {
|
|
32
|
+
const intentNode = yield (0, intent_1.getIntentNodeByInput)(cmsApi, locale, request);
|
|
33
|
+
if (intentNode) {
|
|
34
|
+
return intentNode;
|
|
35
|
+
}
|
|
29
36
|
}
|
|
30
37
|
}
|
|
31
38
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/user-input/index.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/user-input/index.ts"],"names":[],"mappings":";;;;AAQA,oCAIiB;AACjB,qCAA+C;AAC/C,uCAA0C;AAC1C,iDAA6E;AAE7E,SAAsB,kBAAkB,CACtC,MAAsB,EACtB,MAAc,EACd,OAAsB,EACtB,kBAA+C;;QAE/C,IAAI,IAAA,wBAAgB,EAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACnC,IAAI,IAAA,yBAAiB,EAAC,OAAO,CAAC,EAAE;gBAC9B,MAAM,cAAc,GAAG,IAAI,wBAAc,CAAC;oBACxC,MAAM;oBACN,MAAM;oBACN,OAAO;iBACR,CAAC,CAAA;gBACF,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,cAAc,CACrD,OAAO,CAAC,KAAK,CAAC,IAAK,CACpB,CAAA;gBACD,IAAI,WAAW,EAAE;oBACf,OAAO,WAAW,CAAA;iBACnB;aACF;YAED,IAAI,IAAA,6BAAqB,EAAC,OAAO,CAAC,EAAE;gBAClC,MAAM,eAAe,GAAG,IAAI,8BAAe,CACzC,MAAM,EACN,OAAO,EACP,kBAAkB,CACnB,CAAA;gBACD,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,cAAc,EAAE,CAAA;gBAC9D,IAAI,eAAe,EAAE;oBACnB,OAAO,eAAe,CAAA;iBACvB;aACF;YAED,mEAAmE;YACnE,IAAI,IAAA,6BAAqB,EAAC,OAAO,CAAC,EAAE;gBAClC,MAAM,UAAU,GAAG,MAAM,IAAA,6BAAoB,EAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;gBACtE,IAAI,UAAU,EAAE;oBACd,OAAO,UAAU,CAAA;iBAClB;aACF;SACF;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;CAAA;AA3CD,gDA2CC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getIntentNodeByInput = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
+
const core_1 = require("@botonic/core");
|
|
5
6
|
const tracking_1 = require("../tracking");
|
|
6
7
|
function getIntentNodeByInput(cmsApi, locale, request) {
|
|
7
8
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
@@ -9,6 +10,12 @@ function getIntentNodeByInput(cmsApi, locale, request) {
|
|
|
9
10
|
if (request.input.confidence && request.input.intent && intentNode) {
|
|
10
11
|
yield trackIntentEvent(request, intentNode);
|
|
11
12
|
if (isIntentValid(intentNode, request, cmsApi)) {
|
|
13
|
+
const targetPayload = cmsApi.getPayload(intentNode.target);
|
|
14
|
+
request.input.nluResolution = {
|
|
15
|
+
type: core_1.NluType.Keyword,
|
|
16
|
+
matchedValue: intentNode.content.title,
|
|
17
|
+
payload: targetPayload,
|
|
18
|
+
};
|
|
12
19
|
return intentNode;
|
|
13
20
|
}
|
|
14
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intent.js","sourceRoot":"","sources":["../../../src/user-input/intent.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"intent.js","sourceRoot":"","sources":["../../../src/user-input/intent.ts"],"names":[],"mappings":";;;;AAAA,wCAAuC;AAKvC,0CAAqD;AAErD,SAAsB,oBAAoB,CACxC,MAAsB,EACtB,MAAc,EACd,OAAsB;;QAEtB,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAE9D,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,UAAU,EAAE;YAClE,MAAM,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;YAE3C,IAAI,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE;gBAC9C,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;gBAE1D,OAAO,CAAC,KAAK,CAAC,aAAa,GAAG;oBAC5B,IAAI,EAAE,cAAO,CAAC,OAAO;oBACrB,YAAY,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK;oBACtC,OAAO,EAAE,aAAa;iBACvB,CAAA;gBACD,OAAO,UAAU,CAAA;aAClB;SACF;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;CAAA;AAvBD,oDAuBC;AAED,SAAe,gBAAgB,CAC7B,OAAsB,EACtB,UAAwB;;QAExB,MAAM,SAAS,GAAG;YAChB,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;YACpC,mBAAmB,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU;YAC7C,kBAAkB,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,CAAC,UAAU;YAClD,kBAAkB,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU;YAC5C,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI;YAC7B,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc;YAC5C,MAAM,EAAE,UAAU,CAAC,OAAO;YAC1B,UAAU,EAAE,UAAU,CAAC,EAAE;SAC1B,CAAA;QACD,MAAM,IAAA,qBAAU,EAAC,OAAO,EAAE,sBAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAC1D,CAAC;CAAA;AAED,SAAS,aAAa,CACpB,UAAwB,EACxB,OAAsB,EACtB,MAAsB;IAEtB,OAAO,CACL,OAAO,CAAC,KAAK,CAAC,UAAU;QACxB,MAAM,CAAC,yBAAyB,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CACvE,CAAA;AACH,CAAC"}
|
|
@@ -19,9 +19,11 @@ class KeywordMatcher {
|
|
|
19
19
|
if (!keywordNode || !this.matchedKeyword) {
|
|
20
20
|
return undefined;
|
|
21
21
|
}
|
|
22
|
+
const targetPayload = this.cmsApi.getPayload(keywordNode.target);
|
|
22
23
|
this.request.input.nluResolution = {
|
|
23
24
|
type: core_1.NluType.Keyword,
|
|
24
25
|
matchedValue: this.matchedKeyword,
|
|
26
|
+
payload: targetPayload,
|
|
25
27
|
};
|
|
26
28
|
yield this.trackKeywordEvent();
|
|
27
29
|
return keywordNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyword.js","sourceRoot":"","sources":["../../../src/user-input/keyword.ts"],"names":[],"mappings":";;;;AAAA,wCAAuC;AAIvC,4CAA8C;AAK9C,0CAAqD;AAOrD,MAAa,cAAc;IASzB,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAgB;QACnD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;IACvB,CAAC;IAEK,cAAc,CAAC,SAAiB;;YACpC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAA;YAClD,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;YAClE,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBACxC,OAAO,SAAS,CAAA;aACjB;YACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,GAAG;gBACjC,IAAI,EAAE,cAAO,CAAC,OAAO;gBACrB,YAAY,EAAE,IAAI,CAAC,cAAc;
|
|
1
|
+
{"version":3,"file":"keyword.js","sourceRoot":"","sources":["../../../src/user-input/keyword.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,9 +30,11 @@ class SmartIntentsApi {
|
|
|
30
30
|
const response = yield this.getInference(params);
|
|
31
31
|
const smartIntentNode = smartIntentNodes.find(smartIntentNode => smartIntentNode.content.title === response.data.smart_intent_title);
|
|
32
32
|
if (smartIntentNode) {
|
|
33
|
+
const targetPayload = this.cmsApi.getPayload(smartIntentNode.target);
|
|
33
34
|
this.currentRequest.input.nluResolution = {
|
|
34
35
|
type: core_1.NluType.SmartIntent,
|
|
35
36
|
matchedValue: smartIntentNode.content.title,
|
|
37
|
+
payload: targetPayload,
|
|
36
38
|
};
|
|
37
39
|
yield (0, tracking_1.trackEvent)(this.currentRequest, tracking_1.EventAction.IntentSmart, {
|
|
38
40
|
nluIntentSmartTitle: response.data.smart_intent_title,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smart-intent.js","sourceRoot":"","sources":["../../../src/user-input/smart-intent.ts"],"names":[],"mappings":";;;;AAAA,wCAAuC;AAEvC,0DAAyB;AAIzB,wCAAiD;AACjD,0CAAqD;AAerD,MAAa,eAAe;IAC1B,YACS,MAAsB,EACtB,cAA6B,EAC7B,kBAA+C,EAC/C,MAAe;QAHf,WAAM,GAAN,MAAM,CAAgB;QACtB,mBAAc,GAAd,cAAc,CAAe;QAC7B,uBAAkB,GAAlB,kBAAkB,CAA6B;QAC/C,WAAM,GAAN,MAAM,CAAS;IACrB,CAAC;IAEE,cAAc;;YAClB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI;gBAAE,OAAO,SAAS,CAAA;YACrD,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAA;YAC1D,IAAI,CAAC,gBAAgB,CAAC,MAAM;gBAAE,OAAO,SAAS,CAAA;YAE9C,MAAM,MAAM,GAAG;gBACb,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBAC1C,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI;gBACpC,wBAAwB,EAAE,IAAI,CAAC,kBAAkB,CAAC,oBAAoB;gBACtE,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE;aACpC,CAAA;YAED,IAAI;gBACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;gBAChD,MAAM,eAAe,GAAG,gBAAgB,CAAC,IAAI,CAC3C,eAAe,CAAC,EAAE,CAChB,eAAe,CAAC,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CACrE,CAAA;
|
|
1
|
+
{"version":3,"file":"smart-intent.js","sourceRoot":"","sources":["../../../src/user-input/smart-intent.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/utils.d.ts
CHANGED
|
@@ -4,3 +4,6 @@ import { BotonicPluginFlowBuilderOptions } from './types';
|
|
|
4
4
|
export declare function resolveGetAccessToken(options: BotonicPluginFlowBuilderOptions): (session: Session) => string;
|
|
5
5
|
export declare function getValueFromKeyPath(request: ActionRequest, keyPath: string): any;
|
|
6
6
|
export declare function inputHasTextData(input: Input): boolean;
|
|
7
|
+
export declare function isKeywordsAllowed(request: ActionRequest): boolean;
|
|
8
|
+
export declare function isSmartIntentsAllowed(request: ActionRequest): boolean;
|
|
9
|
+
export declare function isKnowledgeBasesAllowed(request: ActionRequest): boolean;
|
package/lib/cjs/utils.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.inputHasTextData = exports.getValueFromKeyPath = exports.resolveGetAccessToken = void 0;
|
|
3
|
+
exports.isKnowledgeBasesAllowed = exports.isSmartIntentsAllowed = exports.isKeywordsAllowed = exports.inputHasTextData = exports.getValueFromKeyPath = exports.resolveGetAccessToken = void 0;
|
|
4
4
|
const core_1 = require("@botonic/core");
|
|
5
|
+
const helpers_1 = require("./helpers");
|
|
5
6
|
const types_1 = require("./types");
|
|
6
7
|
function getAccessTokenFromSession(session) {
|
|
7
8
|
if (!session._access_token) {
|
|
@@ -41,4 +42,21 @@ function inputHasTextData(input) {
|
|
|
41
42
|
return input.data !== undefined && input.type === core_1.INPUT.TEXT;
|
|
42
43
|
}
|
|
43
44
|
exports.inputHasTextData = inputHasTextData;
|
|
45
|
+
function isNluAllowed(request, nluFlag) {
|
|
46
|
+
const shadowing = Boolean(request.session._shadowing);
|
|
47
|
+
const flowBuilderPlugin = (0, helpers_1.getFlowBuilderPlugin)(request.plugins);
|
|
48
|
+
return !shadowing || (shadowing && flowBuilderPlugin.inShadowing[nluFlag]);
|
|
49
|
+
}
|
|
50
|
+
function isKeywordsAllowed(request) {
|
|
51
|
+
return isNluAllowed(request, 'allowKeywords');
|
|
52
|
+
}
|
|
53
|
+
exports.isKeywordsAllowed = isKeywordsAllowed;
|
|
54
|
+
function isSmartIntentsAllowed(request) {
|
|
55
|
+
return isNluAllowed(request, 'allowSmartIntents');
|
|
56
|
+
}
|
|
57
|
+
exports.isSmartIntentsAllowed = isSmartIntentsAllowed;
|
|
58
|
+
function isKnowledgeBasesAllowed(request) {
|
|
59
|
+
return isNluAllowed(request, 'allowKnowledgeBases');
|
|
60
|
+
}
|
|
61
|
+
exports.isKnowledgeBasesAllowed = isKnowledgeBasesAllowed;
|
|
44
62
|
//# sourceMappingURL=utils.js.map
|
package/lib/cjs/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;;AAAA,wCAAqD;AAGrD,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;;AAAA,wCAAqD;AAGrD,uCAAgD;AAChD,mCAIgB;AAEhB,SAAS,yBAAyB,CAAC,OAAgB;IACjD,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;KACpD;IACD,OAAO,OAAO,CAAC,aAAa,CAAA;AAC9B,CAAC;AAED,SAAgB,qBAAqB,CACnC,OAAwC;IAExC,QAAQ,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;QAC5B,KAAK,0BAAkB,CAAC,UAAU;YAChC,OAAO,yBAAyB,CAAA;QAClC,KAAK,0BAAkB,CAAC,WAAW;YACjC,OAAO,OAAO,CAAC,cAAc,CAAA;QAC/B;YACE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;KAChE;AACH,CAAC;AAXD,sDAWC;AAED,SAAgB,mBAAmB,CACjC,OAAsB,EACtB,OAAe;IAEf,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;QAChE,OAAO,OAAO;aACX,KAAK,CAAC,GAAG,CAAC;aACV,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,CAAA;KACnE;IAED,OAAO,OAAO;SACX,KAAK,CAAC,GAAG,CAAC;SACV,MAAM,CACL,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9C,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAChC,CAAA;AACL,CAAC;AAhBD,kDAgBC;AAED,SAAS,gBAAgB,CAAC,MAAW,EAAE,GAAW;IAChD,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;QACvC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;KACnB;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAgB,gBAAgB,CAAC,KAAY;IAC3C,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,YAAK,CAAC,IAAI,CAAA;AAC9D,CAAC;AAFD,4CAEC;AAED,SAAS,YAAY,CACnB,OAAsB,EACtB,OAAgC;IAEhC,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IACrD,MAAM,iBAAiB,GAAG,IAAA,8BAAoB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/D,OAAO,CAAC,SAAS,IAAI,CAAC,SAAS,IAAI,iBAAiB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAA;AAC5E,CAAC;AAED,SAAgB,iBAAiB,CAAC,OAAsB;IACtD,OAAO,YAAY,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;AAC/C,CAAC;AAFD,8CAEC;AAED,SAAgB,qBAAqB,CAAC,OAAsB;IAC1D,OAAO,YAAY,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAA;AACnD,CAAC;AAFD,sDAEC;AAED,SAAgB,uBAAuB,CAAC,OAAsB;IAC5D,OAAO,YAAY,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAA;AACrD,CAAC;AAFD,0DAEC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { FlowContent } from '../content-fields';
|
|
2
2
|
import { FlowBuilderContext } from './index';
|
|
3
|
-
export declare function getContentsByFirstInteraction(
|
|
3
|
+
export declare function getContentsByFirstInteraction(context: FlowBuilderContext): Promise<FlowContent[]>;
|
|
@@ -1,50 +1,48 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
2
|
import { MAIN_FLOW_NAME } from '../constants';
|
|
3
3
|
import { FlowBotAction } from '../content-fields';
|
|
4
|
-
import { getNodeByUserInput } from '../user-input';
|
|
5
4
|
import { inputHasTextData } from '../utils';
|
|
6
5
|
import { getContentsByKnowledgeBase } from './knowledge-bases';
|
|
7
6
|
import { getContentsByPayload } from './payload';
|
|
8
|
-
export function getContentsByFirstInteraction(
|
|
7
|
+
export function getContentsByFirstInteraction(context) {
|
|
9
8
|
return __awaiter(this, void 0, void 0, function* () {
|
|
9
|
+
const { flowBuilderPlugin, request, resolvedLocale } = context;
|
|
10
10
|
const firstInteractionContents = yield flowBuilderPlugin.getStartContents(resolvedLocale);
|
|
11
11
|
// If the first interaction has a FlowBotAction, it should be the last content
|
|
12
12
|
// and avoid to render the match with keywords,intents or knowledge base
|
|
13
13
|
if (firstInteractionContents.at(-1) instanceof FlowBotAction) {
|
|
14
14
|
return firstInteractionContents;
|
|
15
15
|
}
|
|
16
|
-
if (inputHasTextData(request.input)) {
|
|
17
|
-
const contentsByUserInput = yield getContentsByUserInput(
|
|
18
|
-
cmsApi,
|
|
19
|
-
flowBuilderPlugin,
|
|
20
|
-
request,
|
|
21
|
-
resolvedLocale,
|
|
22
|
-
});
|
|
16
|
+
if (request.input.nluResolution || inputHasTextData(request.input)) {
|
|
17
|
+
const contentsByUserInput = yield getContentsByUserInput(context);
|
|
23
18
|
return [...firstInteractionContents, ...contentsByUserInput];
|
|
24
19
|
}
|
|
25
20
|
return firstInteractionContents;
|
|
26
21
|
});
|
|
27
22
|
}
|
|
28
23
|
function getContentsByUserInput({ cmsApi, flowBuilderPlugin, request, resolvedLocale, }) {
|
|
24
|
+
var _a;
|
|
29
25
|
return __awaiter(this, void 0, void 0, function* () {
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
26
|
+
const payloadByNlu = (_a = request.input.nluResolution) === null || _a === void 0 ? void 0 : _a.payload;
|
|
27
|
+
if (payloadByNlu) {
|
|
28
|
+
request.input.payload = payloadByNlu;
|
|
29
|
+
const conversationStartId = getConversationStartId(cmsApi);
|
|
30
|
+
if (request.input.payload === conversationStartId) {
|
|
31
|
+
return [];
|
|
32
|
+
}
|
|
33
|
+
const contentsByKeywordsOrIntents = yield getContentsByPayload({
|
|
34
|
+
cmsApi,
|
|
35
|
+
flowBuilderPlugin,
|
|
36
|
+
request,
|
|
37
|
+
resolvedLocale,
|
|
38
|
+
});
|
|
39
|
+
const hasRepeatedContent = yield checkRepeatedContents(flowBuilderPlugin, resolvedLocale, contentsByKeywordsOrIntents);
|
|
40
|
+
if (hasRepeatedContent) {
|
|
41
|
+
return [];
|
|
42
|
+
}
|
|
43
|
+
if (contentsByKeywordsOrIntents.length > 0) {
|
|
44
|
+
return contentsByKeywordsOrIntents;
|
|
45
|
+
}
|
|
48
46
|
}
|
|
49
47
|
return yield getContentsByKnowledgeBase({
|
|
50
48
|
cmsApi,
|
|
@@ -59,7 +57,7 @@ function getConversationStartId(cmsApi) {
|
|
|
59
57
|
const conversationStartId = (_a = cmsApi.flow.flows.find(flow => flow.name === MAIN_FLOW_NAME)) === null || _a === void 0 ? void 0 : _a.start_node_id;
|
|
60
58
|
return conversationStartId;
|
|
61
59
|
}
|
|
62
|
-
function
|
|
60
|
+
function checkRepeatedContents(flowBuilderPlugin, resolvedLocale, contentsByKeywordsOrIntents) {
|
|
63
61
|
return __awaiter(this, void 0, void 0, function* () {
|
|
64
62
|
const startContents = yield flowBuilderPlugin.getStartContents(resolvedLocale);
|
|
65
63
|
const contentIds = new Set(contentsByKeywordsOrIntents.map(content => content.id));
|