@botonic/plugin-flow-builder 0.21.5 → 0.22.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/README.md +19 -17
- package/lib/cjs/action.d.ts +1 -1
- package/lib/cjs/action.js +2 -2
- package/lib/cjs/action.js.map +1 -1
- package/lib/cjs/content-fields/types.d.ts +1 -1
- package/lib/cjs/flow-builder-models.d.ts +2 -2
- package/lib/cjs/functions/conditional-queue-status.js +1 -1
- package/lib/cjs/functions/conditional-queue-status.js.map +1 -1
- package/lib/cjs/functions/index.d.ts +1 -1
- package/lib/cjs/functions/index.js +1 -1
- package/lib/cjs/functions/index.js.map +1 -1
- package/lib/cjs/handoff.js +1 -1
- package/lib/cjs/handoff.js.map +1 -1
- package/lib/cjs/index.js +16 -9
- package/lib/cjs/index.js.map +1 -1
- package/lib/esm/action.d.ts +1 -1
- package/lib/esm/content-fields/types.d.ts +1 -1
- package/lib/esm/flow-builder-models.d.ts +2 -2
- package/lib/esm/functions/index.d.ts +1 -1
- package/lib/esm/functions/index.js +1 -1
- package/lib/esm/functions/index.js.map +1 -1
- package/lib/esm/index.js +13 -6
- package/lib/esm/index.js.map +1 -1
- package/package.json +2 -2
- package/src/functions/index.ts +1 -1
- package/src/index.ts +18 -7
package/README.md
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# Botonic Plugin Flow Builder
|
|
2
|
+
|
|
2
3
|
## What Does This Plugin Do?
|
|
3
4
|
|
|
4
5
|
Botonic Plugin Flow Builder is one of the **[available](https://github.com/hubtype/botonic/tree/master/packages)** plugins for Botonic.
|
|
@@ -7,7 +8,7 @@ Flow Builder is a no-code, drag-and-drop chatbot builder that makes the process
|
|
|
7
8
|
From [Hubtype](https://www.hubtype.com/) we offer a suite of tools and features that let you build, test and deploy both automated and agent-based journeys at scale. This plugin allows you to connect to our Flow Builder.
|
|
8
9
|
|
|
9
10
|
<p align="center">
|
|
10
|
-
<img alt="Flow Builder" title="flow-builder" src="https://i.ibb.co/ySRjD4M/Pasted-image-20230426161548.png" width="550"
|
|
11
|
+
<img alt="Flow Builder" title="flow-builder" src="https://i.ibb.co/ySRjD4M/Pasted-image-20230426161548.png" width="550"/>
|
|
11
12
|
</p>
|
|
12
13
|
|
|
13
14
|
### Features
|
|
@@ -22,15 +23,16 @@ From [Hubtype](https://www.hubtype.com/) we offer a suite of tools and features
|
|
|
22
23
|
|
|
23
24
|
### Advantages
|
|
24
25
|
|
|
25
|
-
|
|
26
|
+
- **Ease of use**: Flow builders are designed to be user-friendly and intuitive, allowing even non-technical users to create and edit chatbot flows with ease.
|
|
26
27
|
|
|
27
|
-
|
|
28
|
+
- **Time-saving**: With a flow builder, you can quickly create and edit chatbot flows using drag-and-drop functionality, saving you time and effort compared to manually coding each interaction.
|
|
28
29
|
|
|
29
|
-
|
|
30
|
+
- **Visual representation**: Flow builders provide a visual representation of your chatbot flow, allowing you to easily see the overall structure and make adjustments as needed.
|
|
30
31
|
|
|
31
|
-
|
|
32
|
+
- **Flexibility**: Flow builders offer a range of customization options, allowing you to create chatbot flows tailored to your specific needs and use cases.
|
|
32
33
|
|
|
33
34
|
## Setup
|
|
35
|
+
|
|
34
36
|
### Create an account at Hubtype
|
|
35
37
|
|
|
36
38
|
1. Create an account at https://www.hubtype.com.
|
|
@@ -38,20 +40,20 @@ From [Hubtype](https://www.hubtype.com/) we offer a suite of tools and features
|
|
|
38
40
|
2. Once you have deployed your bots, in the [Bots](https://app.hubtype.com/bots) section you can access the flow builder by clicking on any of your bots and in the button that says:
|
|
39
41
|
|
|
40
42
|
<p align="center">
|
|
41
|
-
<img alt="Flow Builder button" title="flow-builder-button" src="https://i.ibb.co/ZJ2fMQN/Pasted-image-20230427115219.png" width="250"
|
|
42
|
-
</p>
|
|
43
|
+
<img alt="Flow Builder button" title="flow-builder-button" src="https://i.ibb.co/ZJ2fMQN/Pasted-image-20230427115219.png" width="250"/>
|
|
44
|
+
</p>
|
|
43
45
|
|
|
44
46
|
### Install the Plugin
|
|
45
47
|
|
|
46
48
|
1. Install the plugin in your bot's project by running:
|
|
49
|
+
|
|
47
50
|
```bash
|
|
48
51
|
npm install @botonic/plugin-flow-builder
|
|
49
52
|
```
|
|
50
53
|
|
|
51
54
|
## Use
|
|
52
|
-
### Configuring the bot
|
|
53
55
|
|
|
54
|
-
|
|
56
|
+
### Configuring the bot
|
|
55
57
|
|
|
56
58
|
1. Add the following code to your `plugins.js` file:
|
|
57
59
|
|
|
@@ -77,16 +79,15 @@ By doing this, we are passing configuration parameters to the bot. This way we c
|
|
|
77
79
|
|
|
78
80
|
Below are the parameters that we can pass to the plugin:
|
|
79
81
|
|
|
80
|
-
-
|
|
82
|
+
- `flowUrl`: This is the URL where the Flow is located. The bot will automatically collect this URL, so in most cases, we don't have to pass it. It is used in cases where the Flow URL is in a testing environment.
|
|
81
83
|
|
|
82
|
-
-
|
|
84
|
+
- `flow`: In some situations, we may want to test a flow locally instead of using the Flow Builder service. To do this, we can define the flow and its corresponding tree of nodes in a JSON file and pass it to our plugin through this variable. By doing so, we can run and test our flow locally without relying on the external service.
|
|
83
85
|
|
|
84
|
-
-
|
|
86
|
+
- `customFunctions`: We are able to pass custom functions to the plugin by defining them in our code and then passing them as parameters. This allows us to extend the functionality of the plugin beyond its default capabilities and execute custom logic that is tailored to our specific needs. We can add custom functions in the frontend of the Flow Builder and pass them to the plugin through this variable.
|
|
85
87
|
|
|
86
|
-
-
|
|
87
|
-
|
|
88
|
-
- `getAccessToken`: When our bot is deployed in Hubtype, the plugin will automatically retrieve the access token. However, when testing our bot locally, we need to pass the access token as a variable.
|
|
88
|
+
- `getLocale`: We can pass an array of locales to the plugin to specify which language our bot will use.
|
|
89
89
|
|
|
90
|
+
- `getAccessToken`: When our bot is deployed in Hubtype, the plugin will automatically retrieve the access token. However, when testing our bot locally, we need to pass the access token as a variable.
|
|
90
91
|
|
|
91
92
|
2. Modify the `routes.ts` file, where routes map user inputs to actions which are in fact React Components:
|
|
92
93
|
|
|
@@ -102,8 +103,9 @@ export function routes(request: RouteRequest) {
|
|
|
102
103
|
type: /.*/,
|
|
103
104
|
payload: /.*/,
|
|
104
105
|
action: FlowBuilderAction,
|
|
105
|
-
}
|
|
106
|
+
},
|
|
106
107
|
]
|
|
107
108
|
}
|
|
108
109
|
```
|
|
109
|
-
|
|
110
|
+
|
|
111
|
+
For personalized behavior, create an action in your bot. For other cases, let the plugin handle all actions.
|
package/lib/cjs/action.d.ts
CHANGED
package/lib/cjs/action.js
CHANGED
|
@@ -9,7 +9,7 @@ const helpers_1 = require("./helpers");
|
|
|
9
9
|
let alternateFallbackMessage = false;
|
|
10
10
|
class FlowBuilderAction extends react_2.default.Component {
|
|
11
11
|
static async botonicInit(request) {
|
|
12
|
-
const flowBuilderPlugin = helpers_1.getFlowBuilderPlugin(request.plugins);
|
|
12
|
+
const flowBuilderPlugin = (0, helpers_1.getFlowBuilderPlugin)(request.plugins);
|
|
13
13
|
const locale = flowBuilderPlugin.getLocale(request.session);
|
|
14
14
|
const payload = request.input.payload;
|
|
15
15
|
let targetContentId = payload;
|
|
@@ -30,7 +30,7 @@ class FlowBuilderAction extends react_2.default.Component {
|
|
|
30
30
|
}
|
|
31
31
|
const { contents, handoffNode } = await flowBuilderPlugin.getContents(targetContentId, locale);
|
|
32
32
|
if (handoffNode)
|
|
33
|
-
await handoff_1.doHandoff(request, locale, handoffNode);
|
|
33
|
+
await (0, handoff_1.doHandoff)(request, locale, handoffNode);
|
|
34
34
|
return { contents, handoffNode };
|
|
35
35
|
}
|
|
36
36
|
render() {
|
package/lib/cjs/action.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.js","sourceRoot":"","sources":["../../src/action.tsx"],"names":[],"mappings":";;;;AAAA,0CAA8D;AAC9D,0DAAyB;AAGzB,uCAAqC;AACrC,uCAAgD;AAOhD,IAAI,wBAAwB,GAAG,KAAK,CAAA;AACpC,MAAa,iBAAkB,SAAQ,eAAK,CAAC,SAAiC;IAG5E,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,OAAsB;QAC7C,MAAM,iBAAiB,GAAG,8BAAoB,
|
|
1
|
+
{"version":3,"file":"action.js","sourceRoot":"","sources":["../../src/action.tsx"],"names":[],"mappings":";;;;AAAA,0CAA8D;AAC9D,0DAAyB;AAGzB,uCAAqC;AACrC,uCAAgD;AAOhD,IAAI,wBAAwB,GAAG,KAAK,CAAA;AACpC,MAAa,iBAAkB,SAAQ,eAAK,CAAC,SAAiC;IAG5E,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,OAAsB;QAC7C,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,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAA;QACrC,IAAI,eAAe,GAAuB,OAAO,CAAA;QACjD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE;YACpD,eAAe,GAAG,MAAM,iBAAiB,CAAC,UAAU,EAAE,CAAA;SACvD;QACD,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,kBAAkB,CAC9D,OAAO,CAAC,KAAK,EACb,MAAM,CACP,CAAA;YACD,IAAI,aAAa;gBAAE,eAAe,GAAG,aAAa,CAAA;YAClD,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC,mBAAmB,CAChE,OAAO,CAAC,KAAK,EACb,MAAM,CACP,CAAA;YACD,IAAI,cAAc;gBAAE,eAAe,GAAG,cAAc,CAAA;SACrD;QACD,IAAI,CAAC,eAAe,EAAE;YACpB,eAAe,GAAG,MAAM,iBAAiB,CAAC,aAAa,CACrD,wBAAwB,CACzB,CAAA;YACD,wBAAwB,GAAG,CAAC,wBAAwB,CAAA;SACrD;QAED,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,iBAAiB,CAAC,WAAW,CACnE,eAAe,EACf,MAAM,CACP,CAAA;QAED,IAAI,WAAW;YAAE,MAAM,IAAA,mBAAS,EAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAA;QAE9D,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAA;IAClC,CAAC;IAED,MAAM;QACJ,aAAa;QACb,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QAC5C,OAAO,QAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;IAChE,CAAC;;AA5CH,8CA6CC;AA5CQ,6BAAW,GAAG,sBAAc,CAAA"}
|
|
@@ -2,4 +2,4 @@ import { FlowCarousel } from './flow-carousel';
|
|
|
2
2
|
import { FlowImage } from './flow-image';
|
|
3
3
|
import { FlowText } from './flow-text';
|
|
4
4
|
import { FlowVideo } from './flow-video';
|
|
5
|
-
export
|
|
5
|
+
export type FlowContent = FlowText | FlowImage | FlowCarousel | FlowVideo;
|
|
@@ -150,7 +150,7 @@ export interface PayloadNode extends BaseNode {
|
|
|
150
150
|
type: NodeType.PAYLOAD;
|
|
151
151
|
content: PayloadNodeContent;
|
|
152
152
|
}
|
|
153
|
-
export
|
|
153
|
+
export type ArgumentType = number | string | Record<any, any>;
|
|
154
154
|
export interface FunctionNodeArgument {
|
|
155
155
|
type: ArgumentType;
|
|
156
156
|
name: string;
|
|
@@ -193,4 +193,4 @@ export interface VideoNode extends Node {
|
|
|
193
193
|
type: NodeType.VIDEO;
|
|
194
194
|
content: VideoNodeContent;
|
|
195
195
|
}
|
|
196
|
-
export
|
|
196
|
+
export type NodeComponent = TextNode | ImageNode | CarouselNode | HandoffNode | KeywordNode | IntentNode | UrlNode | StartNode | PayloadNode | FunctionNode | FallbackNode | VideoNode;
|
|
@@ -5,7 +5,7 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
6
6
|
const axios_1 = tslib_1.__importDefault(require("axios"));
|
|
7
7
|
const utils_1 = require("../utils");
|
|
8
|
-
const _HUBTYPE_API_URL_ = utils_1.getWebpackEnvVar(
|
|
8
|
+
const _HUBTYPE_API_URL_ = (0, utils_1.getWebpackEnvVar)(
|
|
9
9
|
// @ts-ignore
|
|
10
10
|
typeof HUBTYPE_API_URL !== 'undefined' && HUBTYPE_API_URL, 'HUBTYPE_API_URL', 'https://api.hubtype.com');
|
|
11
11
|
async function conditionalQueueStatus({ queue_id, }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditional-queue-status.js","sourceRoot":"","sources":["../../../src/functions/conditional-queue-status.ts"],"names":[],"mappings":";;;;AAAA,yDAAyD;AACzD,0DAAyB;AAEzB,oCAA2C;AAE3C,MAAM,iBAAiB,GAAG,wBAAgB;AACxC,aAAa;AACb,OAAO,eAAe,KAAK,WAAW,IAAI,eAAe,EACzD,iBAAiB,EACjB,yBAAyB,CAC1B,CAAA;AAEM,KAAK,UAAU,sBAAsB,CAAC,EAC3C,QAAQ,GAGT;IACC,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAC9B,GAAG,iBAAiB,cAAc,QAAQ,gBAAgB;IAC1D,2CAA2C;IAC3C;QACE,MAAM,EAAE;YACN,oBAAoB,EAAE,IAAI;YAC1B,mBAAmB,EAAE,KAAK;YAC1B,sBAAsB,EAAE,KAAK;SAC9B;KACF,CACF,CAAA;IACD,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAA;IAC3C,OAAO,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAA;AACxC,CAAC;AAlBD,wDAkBC"}
|
|
1
|
+
{"version":3,"file":"conditional-queue-status.js","sourceRoot":"","sources":["../../../src/functions/conditional-queue-status.ts"],"names":[],"mappings":";;;;AAAA,yDAAyD;AACzD,0DAAyB;AAEzB,oCAA2C;AAE3C,MAAM,iBAAiB,GAAG,IAAA,wBAAgB;AACxC,aAAa;AACb,OAAO,eAAe,KAAK,WAAW,IAAI,eAAe,EACzD,iBAAiB,EACjB,yBAAyB,CAC1B,CAAA;AAEM,KAAK,UAAU,sBAAsB,CAAC,EAC3C,QAAQ,GAGT;IACC,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAC9B,GAAG,iBAAiB,cAAc,QAAQ,gBAAgB;IAC1D,2CAA2C;IAC3C;QACE,MAAM,EAAE;YACN,oBAAoB,EAAE,IAAI;YAC1B,mBAAmB,EAAE,KAAK;YAC1B,sBAAsB,EAAE,KAAK;SAC9B;KACF,CACF,CAAA;IACD,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAA;IAC3C,OAAO,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAA;AACxC,CAAC;AAlBD,wDAkBC"}
|
|
@@ -2,5 +2,5 @@ import { conditionalProvider } from './conditional-provider';
|
|
|
2
2
|
import { conditionalQueueStatus } from './conditional-queue-status';
|
|
3
3
|
export declare const DEFAULT_FUNCTIONS: {
|
|
4
4
|
'check-queue-status': typeof conditionalQueueStatus;
|
|
5
|
-
'
|
|
5
|
+
'get-channel-type': typeof conditionalProvider;
|
|
6
6
|
};
|
|
@@ -7,6 +7,6 @@ exports.DEFAULT_FUNCTIONS = {
|
|
|
7
7
|
// TODO: Rename api action name
|
|
8
8
|
// 'conditional-queue-status': conditionalQueueStatus,
|
|
9
9
|
'check-queue-status': conditional_queue_status_1.conditionalQueueStatus,
|
|
10
|
-
'
|
|
10
|
+
'get-channel-type': conditional_provider_1.conditionalProvider,
|
|
11
11
|
};
|
|
12
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/functions/index.ts"],"names":[],"mappings":";;;AAAA,iEAA4D;AAC5D,yEAAmE;AAEtD,QAAA,iBAAiB,GAAG;IAC/B,+BAA+B;IAC/B,sDAAsD;IACtD,oBAAoB,EAAE,iDAAsB;IAC5C,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/functions/index.ts"],"names":[],"mappings":";;;AAAA,iEAA4D;AAC5D,yEAAmE;AAEtD,QAAA,iBAAiB,GAAG;IAC/B,+BAA+B;IAC/B,sDAAsD;IACtD,oBAAoB,EAAE,iDAAsB;IAC5C,kBAAkB,EAAE,0CAAmB;CACxC,CAAA"}
|
package/lib/cjs/handoff.js
CHANGED
|
@@ -5,7 +5,7 @@ const core_1 = require("@botonic/core");
|
|
|
5
5
|
const helpers_1 = require("./helpers");
|
|
6
6
|
async function doHandoff(request, locale, handoffNode) {
|
|
7
7
|
var _a;
|
|
8
|
-
const flowBuilderPlugin = helpers_1.getFlowBuilderPlugin(request.plugins);
|
|
8
|
+
const flowBuilderPlugin = (0, helpers_1.getFlowBuilderPlugin)(request.plugins);
|
|
9
9
|
const handoffTargetNode = await flowBuilderPlugin.getHandoffContent((_a = handoffNode.target) === null || _a === void 0 ? void 0 : _a.id);
|
|
10
10
|
// @ts-ignore
|
|
11
11
|
const handOffBuilder = new core_1.HandOffBuilder(request.session); // handOffBuilder.withQueue(handoffNode.content.queue)
|
package/lib/cjs/handoff.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handoff.js","sourceRoot":"","sources":["../../src/handoff.ts"],"names":[],"mappings":";;;AAAA,wCAA8C;AAI9C,uCAAgD;AAEzC,KAAK,UAAU,SAAS,CAC7B,OAAsB,EACtB,MAAc,EACd,WAAwB;;IAExB,MAAM,iBAAiB,GAAG,8BAAoB,
|
|
1
|
+
{"version":3,"file":"handoff.js","sourceRoot":"","sources":["../../src/handoff.ts"],"names":[],"mappings":";;;AAAA,wCAA8C;AAI9C,uCAAgD;AAEzC,KAAK,UAAU,SAAS,CAC7B,OAAsB,EACtB,MAAc,EACd,WAAwB;;IAExB,MAAM,iBAAiB,GAAG,IAAA,8BAAoB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/D,MAAM,iBAAiB,GAAG,MAAM,iBAAiB,CAAC,iBAAiB,CACjE,MAAA,WAAW,CAAC,MAAM,0CAAE,EAAE,CACvB,CAAA;IACD,aAAa;IACb,MAAM,cAAc,GAAG,IAAI,qBAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA,CAAC,sDAAsD;IACjH,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAA;IAC/C,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAA;IAC/D,IAAI,UAAU;QAAE,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;IACvD,yCAAyC;IACzC,0BAA0B;IAC1B,kCAAkC;IAClC,4EAA4E;IAC5E,IAAI;IAEJ,4BAA4B;IAC5B,gDAAgD;IAChD,IAAI;IAEJ,kCAAkC;IAClC,4DAA4D;IAC5D,IAAI;IAEJ,cAAc,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAA;IACxD,MAAM,cAAc,CAAC,OAAO,EAAE,CAAA;AAChC,CAAC;AA9BD,8BA8BC"}
|
package/lib/cjs/index.js
CHANGED
|
@@ -6,13 +6,13 @@ const axios_1 = tslib_1.__importDefault(require("axios"));
|
|
|
6
6
|
const content_fields_1 = require("./content-fields");
|
|
7
7
|
const flow_builder_models_1 = require("./flow-builder-models");
|
|
8
8
|
const functions_1 = require("./functions");
|
|
9
|
-
const utils_1 = require("./utils");
|
|
10
9
|
const helpers_1 = require("./helpers");
|
|
10
|
+
const utils_1 = require("./utils");
|
|
11
11
|
class BotonicPluginFlowBuilder {
|
|
12
12
|
constructor(options) {
|
|
13
13
|
this.options = options;
|
|
14
14
|
this.getLocale = options.getLocale;
|
|
15
|
-
this.getAccessToken = utils_1.resolveGetAccessToken(options);
|
|
15
|
+
this.getAccessToken = (0, utils_1.resolveGetAccessToken)(options);
|
|
16
16
|
this.flowUrl = options.flowUrl;
|
|
17
17
|
if (options.flow)
|
|
18
18
|
this.flow = options.flow;
|
|
@@ -81,9 +81,19 @@ class BotonicPluginFlowBuilder {
|
|
|
81
81
|
const hubtypeContent = await this.getContent(id);
|
|
82
82
|
const isHandoff = hubtypeContent.type === flow_builder_models_1.NodeType.HANDOFF;
|
|
83
83
|
// TODO: Create function to populate these buttons
|
|
84
|
-
await helpers_1.updateButtonUrls(hubtypeContent, 'elements', this.getContent);
|
|
85
|
-
await helpers_1.updateButtonUrls(hubtypeContent, 'buttons', this.getContent);
|
|
84
|
+
await (0, helpers_1.updateButtonUrls)(hubtypeContent, 'elements', this.getContent);
|
|
85
|
+
await (0, helpers_1.updateButtonUrls)(hubtypeContent, 'buttons', this.getContent);
|
|
86
86
|
const content = await this.getFlowContent(hubtypeContent, locale);
|
|
87
|
+
if (content && 'buttons' in content) {
|
|
88
|
+
content.buttons.forEach(async (button) => {
|
|
89
|
+
if (button.payload) {
|
|
90
|
+
const contentButton = await this.getContent(button.payload);
|
|
91
|
+
if ((contentButton === null || contentButton === void 0 ? void 0 : contentButton.type) === flow_builder_models_1.NodeType.PAYLOAD) {
|
|
92
|
+
button.payload = contentButton.content.payload;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
}
|
|
87
97
|
if (hubtypeContent.type === flow_builder_models_1.NodeType.FUNCTION) {
|
|
88
98
|
const targetId = await this.callFunction(hubtypeContent, locale);
|
|
89
99
|
return this.getContents(targetId, locale, contents);
|
|
@@ -158,11 +168,8 @@ class BotonicPluginFlowBuilder {
|
|
|
158
168
|
async callFunction(functionNode, locale) {
|
|
159
169
|
var _a;
|
|
160
170
|
const functionNodeId = functionNode.id;
|
|
161
|
-
const nameValues = (_a = functionNode.content.arguments
|
|
162
|
-
.find(arg => arg.locale === locale)) === null || _a === void 0 ? void 0 : _a.values.map(value => ({ [value.name]: value.value }));
|
|
163
|
-
if (!nameValues) {
|
|
164
|
-
throw new Error(`No arguments found for node with id ${functionNodeId}`);
|
|
165
|
-
}
|
|
171
|
+
const nameValues = ((_a = functionNode.content.arguments
|
|
172
|
+
.find(arg => arg.locale === locale)) === null || _a === void 0 ? void 0 : _a.values.map(value => ({ [value.name]: value.value }))) || [];
|
|
166
173
|
const args = Object.assign({
|
|
167
174
|
session: this.currentRequest.session,
|
|
168
175
|
results: [functionNode.content.result_mapping.map(r => r.result)],
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAOA,0DAAyB;AAEzB,qDAMyB;AACzB,+DAU8B;AAC9B,2CAA+C;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/action.d.ts
CHANGED
|
@@ -2,4 +2,4 @@ import { FlowCarousel } from './flow-carousel';
|
|
|
2
2
|
import { FlowImage } from './flow-image';
|
|
3
3
|
import { FlowText } from './flow-text';
|
|
4
4
|
import { FlowVideo } from './flow-video';
|
|
5
|
-
export
|
|
5
|
+
export type FlowContent = FlowText | FlowImage | FlowCarousel | FlowVideo;
|
|
@@ -150,7 +150,7 @@ export interface PayloadNode extends BaseNode {
|
|
|
150
150
|
type: NodeType.PAYLOAD;
|
|
151
151
|
content: PayloadNodeContent;
|
|
152
152
|
}
|
|
153
|
-
export
|
|
153
|
+
export type ArgumentType = number | string | Record<any, any>;
|
|
154
154
|
export interface FunctionNodeArgument {
|
|
155
155
|
type: ArgumentType;
|
|
156
156
|
name: string;
|
|
@@ -193,4 +193,4 @@ export interface VideoNode extends Node {
|
|
|
193
193
|
type: NodeType.VIDEO;
|
|
194
194
|
content: VideoNodeContent;
|
|
195
195
|
}
|
|
196
|
-
export
|
|
196
|
+
export type NodeComponent = TextNode | ImageNode | CarouselNode | HandoffNode | KeywordNode | IntentNode | UrlNode | StartNode | PayloadNode | FunctionNode | FallbackNode | VideoNode;
|
|
@@ -2,5 +2,5 @@ import { conditionalProvider } from './conditional-provider';
|
|
|
2
2
|
import { conditionalQueueStatus } from './conditional-queue-status';
|
|
3
3
|
export declare const DEFAULT_FUNCTIONS: {
|
|
4
4
|
'check-queue-status': typeof conditionalQueueStatus;
|
|
5
|
-
'
|
|
5
|
+
'get-channel-type': typeof conditionalProvider;
|
|
6
6
|
};
|
|
@@ -4,6 +4,6 @@ export const DEFAULT_FUNCTIONS = {
|
|
|
4
4
|
// TODO: Rename api action name
|
|
5
5
|
// 'conditional-queue-status': conditionalQueueStatus,
|
|
6
6
|
'check-queue-status': conditionalQueueStatus,
|
|
7
|
-
'
|
|
7
|
+
'get-channel-type': conditionalProvider,
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/functions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAEnE,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,+BAA+B;IAC/B,sDAAsD;IACtD,oBAAoB,EAAE,sBAAsB;IAC5C,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/functions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAEnE,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,+BAA+B;IAC/B,sDAAsD;IACtD,oBAAoB,EAAE,sBAAsB;IAC5C,kBAAkB,EAAE,mBAAmB;CACxC,CAAA"}
|
package/lib/esm/index.js
CHANGED
|
@@ -2,8 +2,8 @@ import axios from 'axios';
|
|
|
2
2
|
import { FlowCarousel, FlowImage, FlowText, FlowVideo, } from './content-fields';
|
|
3
3
|
import { NodeType, } from './flow-builder-models';
|
|
4
4
|
import { DEFAULT_FUNCTIONS } from './functions';
|
|
5
|
-
import { resolveGetAccessToken } from './utils';
|
|
6
5
|
import { updateButtonUrls } from './helpers';
|
|
6
|
+
import { resolveGetAccessToken } from './utils';
|
|
7
7
|
export default class BotonicPluginFlowBuilder {
|
|
8
8
|
constructor(options) {
|
|
9
9
|
this.options = options;
|
|
@@ -80,6 +80,16 @@ export default class BotonicPluginFlowBuilder {
|
|
|
80
80
|
await updateButtonUrls(hubtypeContent, 'elements', this.getContent);
|
|
81
81
|
await updateButtonUrls(hubtypeContent, 'buttons', this.getContent);
|
|
82
82
|
const content = await this.getFlowContent(hubtypeContent, locale);
|
|
83
|
+
if (content && 'buttons' in content) {
|
|
84
|
+
content.buttons.forEach(async (button) => {
|
|
85
|
+
if (button.payload) {
|
|
86
|
+
const contentButton = await this.getContent(button.payload);
|
|
87
|
+
if ((contentButton === null || contentButton === void 0 ? void 0 : contentButton.type) === NodeType.PAYLOAD) {
|
|
88
|
+
button.payload = contentButton.content.payload;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
}
|
|
83
93
|
if (hubtypeContent.type === NodeType.FUNCTION) {
|
|
84
94
|
const targetId = await this.callFunction(hubtypeContent, locale);
|
|
85
95
|
return this.getContents(targetId, locale, contents);
|
|
@@ -154,11 +164,8 @@ export default class BotonicPluginFlowBuilder {
|
|
|
154
164
|
async callFunction(functionNode, locale) {
|
|
155
165
|
var _a;
|
|
156
166
|
const functionNodeId = functionNode.id;
|
|
157
|
-
const nameValues = (_a = functionNode.content.arguments
|
|
158
|
-
.find(arg => arg.locale === locale)) === null || _a === void 0 ? void 0 : _a.values.map(value => ({ [value.name]: value.value }));
|
|
159
|
-
if (!nameValues) {
|
|
160
|
-
throw new Error(`No arguments found for node with id ${functionNodeId}`);
|
|
161
|
-
}
|
|
167
|
+
const nameValues = ((_a = functionNode.content.arguments
|
|
168
|
+
.find(arg => arg.locale === locale)) === null || _a === void 0 ? void 0 : _a.values.map(value => ({ [value.name]: value.value }))) || [];
|
|
162
169
|
const args = Object.assign({
|
|
163
170
|
session: this.currentRequest.session,
|
|
164
171
|
results: [functionNode.content.result_mapping.map(r => r.result)],
|
package/lib/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EACL,YAAY,EAEZ,SAAS,EACT,QAAQ,EACR,SAAS,GACV,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAQL,QAAQ,GAET,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;
|
|
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.22.0-alpha.0",
|
|
4
4
|
"main": "./lib/cjs/index.js",
|
|
5
5
|
"module": "./lib/esm/index.js",
|
|
6
6
|
"description": "Use Flow Builder to show your contents",
|
|
@@ -49,6 +49,6 @@
|
|
|
49
49
|
"dependencies": {
|
|
50
50
|
"@babel/runtime": "^7.21.0",
|
|
51
51
|
"axios": "^1.3.6",
|
|
52
|
-
"@botonic/react": "^0.21.
|
|
52
|
+
"@botonic/react": "^0.21.6"
|
|
53
53
|
}
|
|
54
54
|
}
|
package/src/functions/index.ts
CHANGED
package/src/index.ts
CHANGED
|
@@ -26,9 +26,9 @@ import {
|
|
|
26
26
|
StartNode,
|
|
27
27
|
} from './flow-builder-models'
|
|
28
28
|
import { DEFAULT_FUNCTIONS } from './functions'
|
|
29
|
+
import { updateButtonUrls } from './helpers'
|
|
29
30
|
import { BotonicPluginFlowBuilderOptions } from './types'
|
|
30
31
|
import { resolveGetAccessToken } from './utils'
|
|
31
|
-
import { updateButtonUrls } from './helpers'
|
|
32
32
|
|
|
33
33
|
export default class BotonicPluginFlowBuilder implements Plugin {
|
|
34
34
|
private flowUrl: string
|
|
@@ -129,6 +129,18 @@ export default class BotonicPluginFlowBuilder implements Plugin {
|
|
|
129
129
|
await updateButtonUrls(hubtypeContent, 'elements', this.getContent)
|
|
130
130
|
await updateButtonUrls(hubtypeContent, 'buttons', this.getContent)
|
|
131
131
|
const content = await this.getFlowContent(hubtypeContent, locale)
|
|
132
|
+
|
|
133
|
+
if (content && 'buttons' in content) {
|
|
134
|
+
content.buttons.forEach(async button => {
|
|
135
|
+
if (button.payload) {
|
|
136
|
+
const contentButton = await this.getContent(button.payload)
|
|
137
|
+
if (contentButton?.type === NodeType.PAYLOAD) {
|
|
138
|
+
button.payload = contentButton.content.payload
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
})
|
|
142
|
+
}
|
|
143
|
+
|
|
132
144
|
if (hubtypeContent.type === NodeType.FUNCTION) {
|
|
133
145
|
const targetId = await this.callFunction(hubtypeContent, locale)
|
|
134
146
|
return this.getContents(targetId, locale, contents)
|
|
@@ -230,12 +242,11 @@ export default class BotonicPluginFlowBuilder implements Plugin {
|
|
|
230
242
|
locale: string
|
|
231
243
|
): Promise<string> {
|
|
232
244
|
const functionNodeId = functionNode.id
|
|
233
|
-
const nameValues =
|
|
234
|
-
.
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
}
|
|
245
|
+
const nameValues =
|
|
246
|
+
functionNode.content.arguments
|
|
247
|
+
.find(arg => arg.locale === locale)
|
|
248
|
+
?.values.map(value => ({ [value.name]: value.value })) || []
|
|
249
|
+
|
|
239
250
|
const args = Object.assign(
|
|
240
251
|
{
|
|
241
252
|
session: this.currentRequest.session,
|