@botonic/plugin-flow-builder 0.29.0 → 0.30.0-alpha.1
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.js +0 -4
- package/lib/cjs/action/first-interaction.js.map +1 -1
- package/lib/cjs/action/index.d.ts +2 -1
- package/lib/cjs/action/index.js +10 -4
- package/lib/cjs/action/index.js.map +1 -1
- package/lib/cjs/action/payload.d.ts +1 -1
- package/lib/cjs/action/payload.js +6 -4
- package/lib/cjs/action/payload.js.map +1 -1
- package/lib/cjs/api.js +0 -3
- package/lib/cjs/api.js.map +1 -1
- package/lib/cjs/constants.d.ts +0 -1
- package/lib/cjs/constants.js +1 -2
- package/lib/cjs/constants.js.map +1 -1
- package/lib/cjs/content-fields/flow-bot-action.d.ts +11 -0
- package/lib/cjs/content-fields/flow-bot-action.js +22 -0
- package/lib/cjs/content-fields/flow-bot-action.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/bot-action.d.ts +2 -2
- package/lib/cjs/content-fields/hubtype-fields/node-types.d.ts +3 -3
- package/lib/cjs/content-fields/hubtype-fields/node-types.js +1 -1
- package/lib/cjs/content-fields/hubtype-fields/node-types.js.map +1 -1
- package/lib/cjs/content-fields/hubtype-fields/nodes.d.ts +2 -2
- package/lib/cjs/content-fields/index.d.ts +3 -2
- package/lib/cjs/content-fields/index.js +3 -1
- package/lib/cjs/content-fields/index.js.map +1 -1
- package/lib/cjs/index.d.ts +0 -3
- package/lib/cjs/index.js +7 -11
- package/lib/cjs/index.js.map +1 -1
- package/lib/esm/action/first-interaction.js +1 -5
- package/lib/esm/action/first-interaction.js.map +1 -1
- package/lib/esm/action/index.d.ts +2 -1
- package/lib/esm/action/index.js +10 -4
- package/lib/esm/action/index.js.map +1 -1
- package/lib/esm/action/payload.d.ts +1 -1
- package/lib/esm/action/payload.js +6 -4
- package/lib/esm/action/payload.js.map +1 -1
- package/lib/esm/api.js +1 -4
- package/lib/esm/api.js.map +1 -1
- package/lib/esm/constants.d.ts +0 -1
- package/lib/esm/constants.js +0 -1
- package/lib/esm/constants.js.map +1 -1
- package/lib/esm/content-fields/flow-bot-action.d.ts +11 -0
- package/lib/esm/content-fields/flow-bot-action.js +18 -0
- package/lib/esm/content-fields/flow-bot-action.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/bot-action.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/node-types.d.ts +3 -3
- package/lib/esm/content-fields/hubtype-fields/node-types.js +1 -1
- package/lib/esm/content-fields/hubtype-fields/node-types.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/nodes.d.ts +2 -2
- package/lib/esm/content-fields/index.d.ts +3 -2
- package/lib/esm/content-fields/index.js +2 -1
- package/lib/esm/content-fields/index.js.map +1 -1
- package/lib/esm/index.d.ts +0 -3
- package/lib/esm/index.js +8 -11
- package/lib/esm/index.js.map +1 -1
- package/package.json +2 -2
- package/src/action/first-interaction.ts +1 -7
- package/src/action/index.tsx +19 -4
- package/src/action/payload.ts +5 -3
- package/src/api.ts +1 -9
- package/src/constants.ts +0 -1
- package/src/content-fields/flow-bot-action.tsx +31 -0
- package/src/content-fields/hubtype-fields/bot-action.ts +2 -2
- package/src/content-fields/hubtype-fields/node-types.ts +1 -1
- package/src/content-fields/hubtype-fields/nodes.ts +2 -5
- package/src/content-fields/index.ts +3 -0
- package/src/index.ts +11 -17
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
|
-
export function getContentsByPayload({ cmsApi, flowBuilderPlugin, request, resolvedLocale, }) {
|
|
2
|
+
export function getContentsByPayload({ cmsApi, flowBuilderPlugin, request, resolvedLocale, contentID, }) {
|
|
3
|
+
var _a;
|
|
3
4
|
return __awaiter(this, void 0, void 0, function* () {
|
|
4
|
-
const
|
|
5
|
-
? cmsApi.
|
|
6
|
-
:
|
|
5
|
+
const id = contentID
|
|
6
|
+
? (_a = cmsApi.getNodeByContentID(contentID)) === null || _a === void 0 ? void 0 : _a.id
|
|
7
|
+
: request.input.payload;
|
|
8
|
+
const targetNode = id ? cmsApi.getNodeById(id) : undefined;
|
|
7
9
|
if (targetNode) {
|
|
8
10
|
return yield flowBuilderPlugin.getContentsByNode(targetNode, resolvedLocale);
|
|
9
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payload.js","sourceRoot":"","sources":["../../../src/action/payload.ts"],"names":[],"mappings":";AAIA,MAAM,UAAgB,oBAAoB,CAAC,EACzC,MAAM,EACN,iBAAiB,EACjB,OAAO,EACP,cAAc,
|
|
1
|
+
{"version":3,"file":"payload.js","sourceRoot":"","sources":["../../../src/action/payload.ts"],"names":[],"mappings":";AAIA,MAAM,UAAgB,oBAAoB,CAAC,EACzC,MAAM,EACN,iBAAiB,EACjB,OAAO,EACP,cAAc,EACd,SAAS,GACU;;;QACnB,MAAM,EAAE,GAAG,SAAS;YAClB,CAAC,CAAC,MAAA,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,0CAAE,EAAE;YAC1C,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAA;QACzB,MAAM,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAoB,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAE7E,IAAI,UAAU,EAAE;YACd,OAAO,MAAM,iBAAiB,CAAC,iBAAiB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAA;SAC7E;QAED,OAAO,EAAE,CAAA;;CACV"}
|
package/lib/esm/api.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
2
|
import axios from 'axios';
|
|
3
|
-
import {
|
|
3
|
+
import { KNOWLEDGE_BASE_FLOW_NAME, SEPARATOR } from './constants';
|
|
4
4
|
import { HtNodeWithContentType, HtNodeWithoutContentType, } from './content-fields/hubtype-fields';
|
|
5
5
|
export class FlowBuilderApi {
|
|
6
6
|
constructor() { }
|
|
@@ -105,9 +105,6 @@ export class FlowBuilderApi {
|
|
|
105
105
|
if (!target) {
|
|
106
106
|
return undefined;
|
|
107
107
|
}
|
|
108
|
-
if (target.type === HtNodeWithoutContentType.BOT_ACTION) {
|
|
109
|
-
return `${BOT_ACTION_PAYLOAD_PREFIX}${target.id}`;
|
|
110
|
-
}
|
|
111
108
|
return target.id;
|
|
112
109
|
}
|
|
113
110
|
createPayloadWithParams(botActionNode) {
|
package/lib/esm/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/constants.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
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 BOT_ACTION_PAYLOAD_PREFIX: string;
|
|
5
4
|
export declare const VARIABLE_PATTERN: RegExp;
|
|
6
5
|
export declare const ACCESS_TOKEN_VARIABLE_KEY = "_access_token";
|
|
7
6
|
export declare const REG_EXP_PATTERN: RegExp;
|
package/lib/esm/constants.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export const FLOW_BUILDER_API_URL_PROD = 'https://api.ent0.flowbuilder.prod.hubtype.com';
|
|
2
2
|
export const SEPARATOR = '|';
|
|
3
3
|
export const SOURCE_INFO_SEPARATOR = `${SEPARATOR}source_`;
|
|
4
|
-
export const BOT_ACTION_PAYLOAD_PREFIX = `ba${SEPARATOR}`;
|
|
5
4
|
export const VARIABLE_PATTERN = /{([^}]+)}/g;
|
|
6
5
|
export const ACCESS_TOKEN_VARIABLE_KEY = '_access_token';
|
|
7
6
|
export const REG_EXP_PATTERN = /^\/(.*)\/([gimyus]*)$/;
|
package/lib/esm/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,yBAAyB,GACpC,+CAA+C,CAAA;AACjD,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAA;AAC5B,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,SAAS,SAAS,CAAA;AAC1D,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,yBAAyB,GACpC,+CAA+C,CAAA;AACjD,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAA;AAC5B,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,SAAS,SAAS,CAAA;AAC1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAA;AAC5C,MAAM,CAAC,MAAM,yBAAyB,GAAG,eAAe,CAAA;AACxD,MAAM,CAAC,MAAM,eAAe,GAAG,uBAAuB,CAAA;AAEtD,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAA;AACpC,MAAM,CAAC,MAAM,wBAAwB,GAAG,gBAAgB,CAAA;AACxD,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ActionRequest } from '@botonic/react';
|
|
2
|
+
import { FlowBuilderApi } from '../api';
|
|
3
|
+
import { ContentFieldsBase } from './content-fields-base';
|
|
4
|
+
import { HtBotActionNode } from './hubtype-fields';
|
|
5
|
+
export declare class FlowBotAction extends ContentFieldsBase {
|
|
6
|
+
code: string;
|
|
7
|
+
payload: string;
|
|
8
|
+
static fromHubtypeCMS(cmsBotAction: HtBotActionNode, _locale: string, cmsApi: FlowBuilderApi): FlowBotAction;
|
|
9
|
+
doBotAction(request: ActionRequest): void;
|
|
10
|
+
toBotonic(): JSX.Element;
|
|
11
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { BotonicAction } from '@botonic/core';
|
|
3
|
+
import { ContentFieldsBase } from './content-fields-base';
|
|
4
|
+
export class FlowBotAction extends ContentFieldsBase {
|
|
5
|
+
static fromHubtypeCMS(cmsBotAction, _locale, cmsApi) {
|
|
6
|
+
const newBotAction = new FlowBotAction(cmsBotAction.id);
|
|
7
|
+
newBotAction.code = cmsBotAction.code;
|
|
8
|
+
newBotAction.payload = cmsApi.createPayloadWithParams(cmsBotAction);
|
|
9
|
+
return newBotAction;
|
|
10
|
+
}
|
|
11
|
+
doBotAction(request) {
|
|
12
|
+
request.session._botonic_action = `${BotonicAction.Redirect}:${this.payload}`;
|
|
13
|
+
}
|
|
14
|
+
toBotonic() {
|
|
15
|
+
return _jsx(_Fragment, {});
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=flow-bot-action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-bot-action.js","sourceRoot":"","sources":["../../../src/content-fields/flow-bot-action.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAI7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAGzD,MAAM,OAAO,aAAc,SAAQ,iBAAiB;IAIlD,MAAM,CAAC,cAAc,CACnB,YAA6B,EAC7B,OAAe,EACf,MAAsB;QAEtB,MAAM,YAAY,GAAG,IAAI,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;QACvD,YAAY,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAA;QACrC,YAAY,CAAC,OAAO,GAAG,MAAM,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAA;QAEnE,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,WAAW,CAAC,OAAsB;QAChC,OAAO,CAAC,OAAO,CAAC,eAAe,GAAG,GAAG,aAAa,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE,CAAA;IAC/E,CAAC;IAED,SAAS;QACP,OAAO,mBAAK,CAAA;IACd,CAAC;CACF"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { HtBaseNode } from './common';
|
|
2
|
-
import {
|
|
2
|
+
import { HtNodeWithContentType } from './node-types';
|
|
3
3
|
export interface HtBotActionNode extends HtBaseNode {
|
|
4
4
|
id: string;
|
|
5
|
-
type:
|
|
5
|
+
type: HtNodeWithContentType.BOT_ACTION;
|
|
6
6
|
content: {
|
|
7
7
|
payload_id: string;
|
|
8
8
|
payload_params?: string;
|
|
@@ -11,13 +11,13 @@ export declare enum HtNodeWithContentType {
|
|
|
11
11
|
VIDEO = "video",
|
|
12
12
|
WHATSAPP_BUTTON_LIST = "whatsapp-button-list",
|
|
13
13
|
WHATSAPP_CTA_URL_BUTTON = "whatsapp-cta-url-button",
|
|
14
|
-
KNOWLEDGE_BASE = "knowledge-base"
|
|
14
|
+
KNOWLEDGE_BASE = "knowledge-base",
|
|
15
|
+
BOT_ACTION = "bot-action"
|
|
15
16
|
}
|
|
16
17
|
export declare enum HtNodeWithoutContentType {
|
|
17
18
|
URL = "url",
|
|
18
19
|
PAYLOAD = "payload",
|
|
19
|
-
GO_TO_FLOW = "go-to-flow"
|
|
20
|
-
BOT_ACTION = "bot-action"
|
|
20
|
+
GO_TO_FLOW = "go-to-flow"
|
|
21
21
|
}
|
|
22
22
|
export declare enum HtButtonStyle {
|
|
23
23
|
BUTTON = "button",
|
|
@@ -13,13 +13,13 @@ export var HtNodeWithContentType;
|
|
|
13
13
|
HtNodeWithContentType["WHATSAPP_BUTTON_LIST"] = "whatsapp-button-list";
|
|
14
14
|
HtNodeWithContentType["WHATSAPP_CTA_URL_BUTTON"] = "whatsapp-cta-url-button";
|
|
15
15
|
HtNodeWithContentType["KNOWLEDGE_BASE"] = "knowledge-base";
|
|
16
|
+
HtNodeWithContentType["BOT_ACTION"] = "bot-action";
|
|
16
17
|
})(HtNodeWithContentType || (HtNodeWithContentType = {}));
|
|
17
18
|
export var HtNodeWithoutContentType;
|
|
18
19
|
(function (HtNodeWithoutContentType) {
|
|
19
20
|
HtNodeWithoutContentType["URL"] = "url";
|
|
20
21
|
HtNodeWithoutContentType["PAYLOAD"] = "payload";
|
|
21
22
|
HtNodeWithoutContentType["GO_TO_FLOW"] = "go-to-flow";
|
|
22
|
-
HtNodeWithoutContentType["BOT_ACTION"] = "bot-action";
|
|
23
23
|
})(HtNodeWithoutContentType || (HtNodeWithoutContentType = {}));
|
|
24
24
|
export var HtButtonStyle;
|
|
25
25
|
(function (HtButtonStyle) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-types.js","sourceRoot":"","sources":["../../../../src/content-fields/hubtype-fields/node-types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"node-types.js","sourceRoot":"","sources":["../../../../src/content-fields/hubtype-fields/node-types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,qBAeX;AAfD,WAAY,qBAAqB;IAC/B,8CAAqB,CAAA;IACrB,4CAAmB,CAAA;IACnB,wCAAe,CAAA;IACf,sCAAa,CAAA;IACb,4CAAmB,CAAA;IACnB,0CAAiB,CAAA;IACjB,sDAA6B,CAAA;IAC7B,8CAAqB,CAAA;IACrB,8CAAqB,CAAA;IACrB,wCAAe,CAAA;IACf,sEAA6C,CAAA;IAC7C,4EAAmD,CAAA;IACnD,0DAAiC,CAAA;IACjC,kDAAyB,CAAA;AAC3B,CAAC,EAfW,qBAAqB,KAArB,qBAAqB,QAehC;AAED,MAAM,CAAN,IAAY,wBAIX;AAJD,WAAY,wBAAwB;IAClC,uCAAW,CAAA;IACX,+CAAmB,CAAA;IACnB,qDAAyB,CAAA;AAC3B,CAAC,EAJW,wBAAwB,KAAxB,wBAAwB,QAInC;AAED,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,kCAAiB,CAAA;IACjB,4CAA2B,CAAA;AAC7B,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB"}
|
|
@@ -15,6 +15,6 @@ import { HtUrlNode } from './url';
|
|
|
15
15
|
import { HtVideoNode } from './video';
|
|
16
16
|
import { HtWhatsappButtonListNode } from './whatsapp-button-list';
|
|
17
17
|
import { HtWhatsappCTAUrlButtonNode } from './whatsapp-cta-url-button';
|
|
18
|
-
export type HtNodeWithContent = HtTextNode | HtImageNode | HtVideoNode | HtCarouselNode | HtHandoffNode | HtKeywordNode | HtIntentNode | HtFunctionNode | HtFallbackNode | HtWhatsappButtonListNode | HtWhatsappCTAUrlButtonNode | HtSmartIntentNode | HtKnowledgeBaseNode;
|
|
19
|
-
export type HtNodeWithoutContent = HtUrlNode | HtPayloadNode | HtGoToFlow
|
|
18
|
+
export type HtNodeWithContent = HtTextNode | HtImageNode | HtVideoNode | HtCarouselNode | HtHandoffNode | HtKeywordNode | HtIntentNode | HtFunctionNode | HtFallbackNode | HtWhatsappButtonListNode | HtWhatsappCTAUrlButtonNode | HtSmartIntentNode | HtKnowledgeBaseNode | HtBotActionNode;
|
|
19
|
+
export type HtNodeWithoutContent = HtUrlNode | HtPayloadNode | HtGoToFlow;
|
|
20
20
|
export type HtNodeComponent = HtNodeWithContent | HtNodeWithoutContent;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { FlowBotAction } from './flow-bot-action';
|
|
1
2
|
import { FlowCarousel } from './flow-carousel';
|
|
2
3
|
import { FlowHandoff } from './flow-handoff';
|
|
3
4
|
import { FlowImage } from './flow-image';
|
|
@@ -9,7 +10,7 @@ import { FlowWhatsappButtonList } from './whatsapp-button-list/flow-whatsapp-but
|
|
|
9
10
|
export { ContentFieldsBase } from './content-fields-base';
|
|
10
11
|
export { FlowButton } from './flow-button';
|
|
11
12
|
export { FlowElement } from './flow-element';
|
|
12
|
-
export { FlowCarousel, FlowImage, FlowKnowledgeBase, FlowText, FlowVideo, FlowWhatsappButtonList, };
|
|
13
|
+
export { FlowBotAction, FlowCarousel, FlowImage, FlowKnowledgeBase, FlowText, FlowVideo, FlowWhatsappButtonList, };
|
|
13
14
|
export { FlowHandoff } from './flow-handoff';
|
|
14
15
|
export { FlowWhatsappCtaUrlButtonNode } from './flow-whatsapp-cta-url-button';
|
|
15
|
-
export type FlowContent = FlowCarousel | FlowImage | FlowText | FlowVideo | FlowWhatsappButtonList | FlowWhatsappCtaUrlButtonNode | FlowHandoff | FlowKnowledgeBase;
|
|
16
|
+
export type FlowContent = FlowCarousel | FlowImage | FlowText | FlowVideo | FlowWhatsappButtonList | FlowWhatsappCtaUrlButtonNode | FlowHandoff | FlowKnowledgeBase | FlowBotAction;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { FlowBotAction } from './flow-bot-action';
|
|
1
2
|
import { FlowCarousel } from './flow-carousel';
|
|
2
3
|
import { FlowImage } from './flow-image';
|
|
3
4
|
import { FlowKnowledgeBase } from './flow-knowledge-base';
|
|
@@ -7,7 +8,7 @@ import { FlowWhatsappButtonList } from './whatsapp-button-list/flow-whatsapp-but
|
|
|
7
8
|
export { ContentFieldsBase } from './content-fields-base';
|
|
8
9
|
export { FlowButton } from './flow-button';
|
|
9
10
|
export { FlowElement } from './flow-element';
|
|
10
|
-
export { FlowCarousel, FlowImage, FlowKnowledgeBase, FlowText, FlowVideo, FlowWhatsappButtonList, };
|
|
11
|
+
export { FlowBotAction, FlowCarousel, FlowImage, FlowKnowledgeBase, FlowText, FlowVideo, FlowWhatsappButtonList, };
|
|
11
12
|
export { FlowHandoff } from './flow-handoff';
|
|
12
13
|
export { FlowWhatsappCtaUrlButtonNode } from './flow-whatsapp-cta-url-button';
|
|
13
14
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/content-fields/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAA;AAEzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EACL,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,sBAAsB,GACvB,CAAA;AACD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/content-fields/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAA;AAEzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EACL,aAAa,EACb,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,sBAAsB,GACvB,CAAA;AACD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAA"}
|
package/lib/esm/index.d.ts
CHANGED
|
@@ -7,7 +7,6 @@ import { SmartIntentsInferenceConfig } from './user-input/smart-intent';
|
|
|
7
7
|
export default class BotonicPluginFlowBuilder implements Plugin {
|
|
8
8
|
readonly options: BotonicPluginFlowBuilderOptions;
|
|
9
9
|
cmsApi: FlowBuilderApi;
|
|
10
|
-
private flowUrl;
|
|
11
10
|
private flow?;
|
|
12
11
|
private functions;
|
|
13
12
|
private currentRequest;
|
|
@@ -23,7 +22,6 @@ export default class BotonicPluginFlowBuilder implements Plugin {
|
|
|
23
22
|
pre(request: PluginPreRequest): Promise<void>;
|
|
24
23
|
private updateRequestBeforeRoutes;
|
|
25
24
|
private removeSourceSufix;
|
|
26
|
-
replaceBotActionPayload(payload: string): string;
|
|
27
25
|
getContentsByContentID(contentID: string, locale: string, prevContents?: FlowContent[]): Promise<FlowContent[]>;
|
|
28
26
|
getUUIDByContentID(contentID: string): string;
|
|
29
27
|
private getContentsById;
|
|
@@ -36,7 +34,6 @@ export default class BotonicPluginFlowBuilder implements Plugin {
|
|
|
36
34
|
getFlowName(flowId: string): string;
|
|
37
35
|
}
|
|
38
36
|
export * from './action';
|
|
39
|
-
export { BOT_ACTION_PAYLOAD_PREFIX } from './constants';
|
|
40
37
|
export * from './content-fields';
|
|
41
38
|
export { trackFlowContent } from './tracking';
|
|
42
39
|
export { BotonicPluginFlowBuilderOptions, FlowBuilderJSONVersion, PayloadParamsBase, } from './types';
|
package/lib/esm/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
2
|
import { v4 as uuid } from 'uuid';
|
|
3
3
|
import { FlowBuilderApi } from './api';
|
|
4
|
-
import {
|
|
5
|
-
import { FlowCarousel, FlowHandoff, FlowImage, FlowKnowledgeBase, FlowText, FlowVideo, FlowWhatsappButtonList, FlowWhatsappCtaUrlButtonNode, } from './content-fields';
|
|
4
|
+
import { FLOW_BUILDER_API_URL_PROD, SEPARATOR, SOURCE_INFO_SEPARATOR, } from './constants';
|
|
5
|
+
import { FlowBotAction, FlowCarousel, FlowHandoff, FlowImage, FlowKnowledgeBase, FlowText, FlowVideo, FlowWhatsappButtonList, FlowWhatsappCtaUrlButtonNode, } from './content-fields';
|
|
6
6
|
import { HtNodeWithContentType, } from './content-fields/hubtype-fields';
|
|
7
7
|
import { DEFAULT_FUNCTIONS } from './functions';
|
|
8
8
|
import { FlowBuilderJSONVersion, } from './types';
|
|
@@ -52,19 +52,11 @@ export default class BotonicPluginFlowBuilder {
|
|
|
52
52
|
updateRequestBeforeRoutes(request) {
|
|
53
53
|
if (request.input.payload) {
|
|
54
54
|
request.input.payload = this.removeSourceSufix(request.input.payload);
|
|
55
|
-
if (request.input.payload.startsWith(BOT_ACTION_PAYLOAD_PREFIX)) {
|
|
56
|
-
request.input.payload = this.replaceBotActionPayload(request.input.payload);
|
|
57
|
-
}
|
|
58
55
|
}
|
|
59
56
|
}
|
|
60
57
|
removeSourceSufix(payload) {
|
|
61
58
|
return payload.split(SOURCE_INFO_SEPARATOR)[0];
|
|
62
59
|
}
|
|
63
|
-
replaceBotActionPayload(payload) {
|
|
64
|
-
const botActionId = payload.split(SEPARATOR)[1];
|
|
65
|
-
const botActionNode = this.cmsApi.getNodeById(botActionId);
|
|
66
|
-
return this.cmsApi.createPayloadWithParams(botActionNode);
|
|
67
|
-
}
|
|
68
60
|
getContentsByContentID(contentID, locale, prevContents) {
|
|
69
61
|
return __awaiter(this, void 0, void 0, function* () {
|
|
70
62
|
const node = this.cmsApi.getNodeByContentID(contentID);
|
|
@@ -101,6 +93,10 @@ export default class BotonicPluginFlowBuilder {
|
|
|
101
93
|
if (content) {
|
|
102
94
|
contents.push(content);
|
|
103
95
|
}
|
|
96
|
+
// If node is BOT_ACTION not add more contents to render, next nodes render after execute action
|
|
97
|
+
if (node.type === HtNodeWithContentType.BOT_ACTION) {
|
|
98
|
+
return contents;
|
|
99
|
+
}
|
|
104
100
|
// TODO: prevent infinite recursive calls
|
|
105
101
|
if (node.follow_up) {
|
|
106
102
|
return this.getContentsById(node.follow_up.id, resolvedLocale, contents);
|
|
@@ -126,6 +122,8 @@ export default class BotonicPluginFlowBuilder {
|
|
|
126
122
|
return FlowHandoff.fromHubtypeCMS(hubtypeContent, locale, this.cmsApi);
|
|
127
123
|
case HtNodeWithContentType.KNOWLEDGE_BASE:
|
|
128
124
|
return FlowKnowledgeBase.fromHubtypeCMS(hubtypeContent);
|
|
125
|
+
case HtNodeWithContentType.BOT_ACTION:
|
|
126
|
+
return FlowBotAction.fromHubtypeCMS(hubtypeContent, locale, this.cmsApi);
|
|
129
127
|
default:
|
|
130
128
|
return undefined;
|
|
131
129
|
}
|
|
@@ -171,7 +169,6 @@ export default class BotonicPluginFlowBuilder {
|
|
|
171
169
|
}
|
|
172
170
|
}
|
|
173
171
|
export * from './action';
|
|
174
|
-
export { BOT_ACTION_PAYLOAD_PREFIX } from './constants';
|
|
175
172
|
export * from './content-fields';
|
|
176
173
|
export { trackFlowContent } from './tracking';
|
|
177
174
|
export { FlowBuilderJSONVersion, } from './types';
|
package/lib/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAA;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EACL,yBAAyB,EACzB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@botonic/plugin-flow-builder",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.30.0-alpha.1",
|
|
4
4
|
"main": "./lib/cjs/index.js",
|
|
5
5
|
"module": "./lib/esm/index.js",
|
|
6
6
|
"description": "Use Flow Builder to show your contents",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"lint_core": "../../node_modules/.bin/eslint_d --cache --quiet 'src/**/*.ts*'"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@botonic/react": "
|
|
17
|
+
"@botonic/react": "0.30.0-alpha.1",
|
|
18
18
|
"axios": "^1.7.2",
|
|
19
19
|
"uuid": "^9.0.1"
|
|
20
20
|
},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FlowBuilderApi } from '../api'
|
|
2
|
-
import {
|
|
2
|
+
import { MAIN_FLOW_NAME } from '../constants'
|
|
3
3
|
import { FlowContent } from '../content-fields'
|
|
4
4
|
import BotonicPluginFlowBuilder from '../index'
|
|
5
5
|
import { getNodeByUserInput } from '../user-input'
|
|
@@ -51,12 +51,6 @@ async function getContentsByUserInput({
|
|
|
51
51
|
return []
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
if (request.input.payload?.startsWith(BOT_ACTION_PAYLOAD_PREFIX)) {
|
|
55
|
-
request.input.payload = flowBuilderPlugin.replaceBotActionPayload(
|
|
56
|
-
request.input.payload
|
|
57
|
-
)
|
|
58
|
-
}
|
|
59
|
-
|
|
60
54
|
const contentsByKeywordsOrIntents = await getContentsByPayload({
|
|
61
55
|
cmsApi,
|
|
62
56
|
flowBuilderPlugin,
|
package/src/action/index.tsx
CHANGED
|
@@ -3,6 +3,7 @@ import React from 'react'
|
|
|
3
3
|
|
|
4
4
|
import { FlowBuilderApi } from '../api'
|
|
5
5
|
import { FlowContent, FlowHandoff } from '../content-fields'
|
|
6
|
+
import { FlowBotAction } from '../content-fields/flow-bot-action'
|
|
6
7
|
import { getFlowBuilderPlugin } from '../helpers'
|
|
7
8
|
import BotonicPluginFlowBuilder from '../index'
|
|
8
9
|
import { trackFlowContent } from '../tracking'
|
|
@@ -20,9 +21,10 @@ export class FlowBuilderAction extends React.Component<FlowBuilderActionProps> {
|
|
|
20
21
|
static contextType = RequestContext
|
|
21
22
|
|
|
22
23
|
static async botonicInit(
|
|
23
|
-
request: ActionRequest
|
|
24
|
+
request: ActionRequest,
|
|
25
|
+
contentID?: string
|
|
24
26
|
): Promise<FlowBuilderActionProps> {
|
|
25
|
-
const contents = await getContents(request)
|
|
27
|
+
const contents = await getContents(request, contentID)
|
|
26
28
|
await trackFlowContent(request, contents)
|
|
27
29
|
|
|
28
30
|
const handoffContent = contents.find(
|
|
@@ -31,6 +33,14 @@ export class FlowBuilderAction extends React.Component<FlowBuilderActionProps> {
|
|
|
31
33
|
if (handoffContent) {
|
|
32
34
|
await handoffContent.doHandoff(request)
|
|
33
35
|
}
|
|
36
|
+
|
|
37
|
+
const botActionContent = contents.find(
|
|
38
|
+
content => content instanceof FlowBotAction
|
|
39
|
+
) as FlowBotAction
|
|
40
|
+
if (botActionContent) {
|
|
41
|
+
botActionContent.doBotAction(request)
|
|
42
|
+
}
|
|
43
|
+
|
|
34
44
|
return { contents }
|
|
35
45
|
}
|
|
36
46
|
|
|
@@ -53,7 +63,10 @@ export class FlowBuilderMultichannelAction extends FlowBuilderAction {
|
|
|
53
63
|
}
|
|
54
64
|
}
|
|
55
65
|
|
|
56
|
-
async function getContents(
|
|
66
|
+
async function getContents(
|
|
67
|
+
request: ActionRequest,
|
|
68
|
+
contentID?: string
|
|
69
|
+
): Promise<FlowContent[]> {
|
|
57
70
|
const flowBuilderPlugin = getFlowBuilderPlugin(request.plugins)
|
|
58
71
|
const cmsApi = flowBuilderPlugin.cmsApi
|
|
59
72
|
const locale = flowBuilderPlugin.getLocale(request.session)
|
|
@@ -63,13 +76,14 @@ async function getContents(request: ActionRequest): Promise<FlowContent[]> {
|
|
|
63
76
|
flowBuilderPlugin,
|
|
64
77
|
request,
|
|
65
78
|
resolvedLocale,
|
|
79
|
+
contentID,
|
|
66
80
|
}
|
|
67
81
|
|
|
68
82
|
if (request.session.is_first_interaction) {
|
|
69
83
|
return await getContentsByFirstInteraction(context)
|
|
70
84
|
}
|
|
71
85
|
|
|
72
|
-
if (request.input.payload) {
|
|
86
|
+
if (request.input.payload || contentID) {
|
|
73
87
|
return await getContentsByPayload(context)
|
|
74
88
|
}
|
|
75
89
|
|
|
@@ -88,4 +102,5 @@ export interface FlowBuilderContext {
|
|
|
88
102
|
flowBuilderPlugin: BotonicPluginFlowBuilder
|
|
89
103
|
request: ActionRequest
|
|
90
104
|
resolvedLocale: string
|
|
105
|
+
contentID?: string
|
|
91
106
|
}
|
package/src/action/payload.ts
CHANGED
|
@@ -7,10 +7,12 @@ export async function getContentsByPayload({
|
|
|
7
7
|
flowBuilderPlugin,
|
|
8
8
|
request,
|
|
9
9
|
resolvedLocale,
|
|
10
|
+
contentID,
|
|
10
11
|
}: FlowBuilderContext): Promise<FlowContent[]> {
|
|
11
|
-
const
|
|
12
|
-
? cmsApi.
|
|
13
|
-
:
|
|
12
|
+
const id = contentID
|
|
13
|
+
? cmsApi.getNodeByContentID(contentID)?.id
|
|
14
|
+
: request.input.payload
|
|
15
|
+
const targetNode = id ? cmsApi.getNodeById<HtNodeWithContent>(id) : undefined
|
|
14
16
|
|
|
15
17
|
if (targetNode) {
|
|
16
18
|
return await flowBuilderPlugin.getContentsByNode(targetNode, resolvedLocale)
|
package/src/api.ts
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
import { Input, PluginPreRequest } from '@botonic/core'
|
|
2
2
|
import axios from 'axios'
|
|
3
3
|
|
|
4
|
-
import {
|
|
5
|
-
BOT_ACTION_PAYLOAD_PREFIX,
|
|
6
|
-
KNOWLEDGE_BASE_FLOW_NAME,
|
|
7
|
-
SEPARATOR,
|
|
8
|
-
} from './constants'
|
|
4
|
+
import { KNOWLEDGE_BASE_FLOW_NAME, SEPARATOR } from './constants'
|
|
9
5
|
import {
|
|
10
6
|
HtBotActionNode,
|
|
11
7
|
HtFallbackNode,
|
|
@@ -165,10 +161,6 @@ export class FlowBuilderApi {
|
|
|
165
161
|
return undefined
|
|
166
162
|
}
|
|
167
163
|
|
|
168
|
-
if (target.type === HtNodeWithoutContentType.BOT_ACTION) {
|
|
169
|
-
return `${BOT_ACTION_PAYLOAD_PREFIX}${target.id}`
|
|
170
|
-
}
|
|
171
|
-
|
|
172
164
|
return target.id
|
|
173
165
|
}
|
|
174
166
|
|
package/src/constants.ts
CHANGED
|
@@ -2,7 +2,6 @@ export const FLOW_BUILDER_API_URL_PROD =
|
|
|
2
2
|
'https://api.ent0.flowbuilder.prod.hubtype.com'
|
|
3
3
|
export const SEPARATOR = '|'
|
|
4
4
|
export const SOURCE_INFO_SEPARATOR = `${SEPARATOR}source_`
|
|
5
|
-
export const BOT_ACTION_PAYLOAD_PREFIX = `ba${SEPARATOR}`
|
|
6
5
|
export const VARIABLE_PATTERN = /{([^}]+)}/g
|
|
7
6
|
export const ACCESS_TOKEN_VARIABLE_KEY = '_access_token'
|
|
8
7
|
export const REG_EXP_PATTERN = /^\/(.*)\/([gimyus]*)$/
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { BotonicAction } from '@botonic/core'
|
|
2
|
+
import { ActionRequest } from '@botonic/react'
|
|
3
|
+
|
|
4
|
+
import { FlowBuilderApi } from '../api'
|
|
5
|
+
import { ContentFieldsBase } from './content-fields-base'
|
|
6
|
+
import { HtBotActionNode } from './hubtype-fields'
|
|
7
|
+
|
|
8
|
+
export class FlowBotAction extends ContentFieldsBase {
|
|
9
|
+
public code: string
|
|
10
|
+
public payload: string
|
|
11
|
+
|
|
12
|
+
static fromHubtypeCMS(
|
|
13
|
+
cmsBotAction: HtBotActionNode,
|
|
14
|
+
_locale: string,
|
|
15
|
+
cmsApi: FlowBuilderApi
|
|
16
|
+
): FlowBotAction {
|
|
17
|
+
const newBotAction = new FlowBotAction(cmsBotAction.id)
|
|
18
|
+
newBotAction.code = cmsBotAction.code
|
|
19
|
+
newBotAction.payload = cmsApi.createPayloadWithParams(cmsBotAction)
|
|
20
|
+
|
|
21
|
+
return newBotAction
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
doBotAction(request: ActionRequest): void {
|
|
25
|
+
request.session._botonic_action = `${BotonicAction.Redirect}:${this.payload}`
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
toBotonic(): JSX.Element {
|
|
29
|
+
return <></>
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { HtBaseNode } from './common'
|
|
2
|
-
import {
|
|
2
|
+
import { HtNodeWithContentType } from './node-types'
|
|
3
3
|
|
|
4
4
|
export interface HtBotActionNode extends HtBaseNode {
|
|
5
5
|
id: string
|
|
6
|
-
type:
|
|
6
|
+
type: HtNodeWithContentType.BOT_ACTION
|
|
7
7
|
content: {
|
|
8
8
|
payload_id: string
|
|
9
9
|
payload_params?: string
|
|
@@ -12,13 +12,13 @@ export enum HtNodeWithContentType {
|
|
|
12
12
|
WHATSAPP_BUTTON_LIST = 'whatsapp-button-list',
|
|
13
13
|
WHATSAPP_CTA_URL_BUTTON = 'whatsapp-cta-url-button',
|
|
14
14
|
KNOWLEDGE_BASE = 'knowledge-base',
|
|
15
|
+
BOT_ACTION = 'bot-action',
|
|
15
16
|
}
|
|
16
17
|
|
|
17
18
|
export enum HtNodeWithoutContentType {
|
|
18
19
|
URL = 'url',
|
|
19
20
|
PAYLOAD = 'payload',
|
|
20
21
|
GO_TO_FLOW = 'go-to-flow',
|
|
21
|
-
BOT_ACTION = 'bot-action',
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
export enum HtButtonStyle {
|
|
@@ -30,11 +30,8 @@ export type HtNodeWithContent =
|
|
|
30
30
|
| HtWhatsappCTAUrlButtonNode
|
|
31
31
|
| HtSmartIntentNode
|
|
32
32
|
| HtKnowledgeBaseNode
|
|
33
|
-
|
|
34
|
-
export type HtNodeWithoutContent =
|
|
35
|
-
| HtUrlNode
|
|
36
|
-
| HtPayloadNode
|
|
37
|
-
| HtGoToFlow
|
|
38
33
|
| HtBotActionNode
|
|
39
34
|
|
|
35
|
+
export type HtNodeWithoutContent = HtUrlNode | HtPayloadNode | HtGoToFlow
|
|
36
|
+
|
|
40
37
|
export type HtNodeComponent = HtNodeWithContent | HtNodeWithoutContent
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { FlowBotAction } from './flow-bot-action'
|
|
1
2
|
import { FlowCarousel } from './flow-carousel'
|
|
2
3
|
import { FlowHandoff } from './flow-handoff'
|
|
3
4
|
import { FlowImage } from './flow-image'
|
|
@@ -11,6 +12,7 @@ export { ContentFieldsBase } from './content-fields-base'
|
|
|
11
12
|
export { FlowButton } from './flow-button'
|
|
12
13
|
export { FlowElement } from './flow-element'
|
|
13
14
|
export {
|
|
15
|
+
FlowBotAction,
|
|
14
16
|
FlowCarousel,
|
|
15
17
|
FlowImage,
|
|
16
18
|
FlowKnowledgeBase,
|
|
@@ -30,3 +32,4 @@ export type FlowContent =
|
|
|
30
32
|
| FlowWhatsappCtaUrlButtonNode
|
|
31
33
|
| FlowHandoff
|
|
32
34
|
| FlowKnowledgeBase
|
|
35
|
+
| FlowBotAction
|