@botonic/plugin-flow-builder 0.22.0-alpha.2 → 0.22.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/action.d.ts +2 -16
- package/lib/cjs/action.js +7 -7
- package/lib/cjs/action.js.map +1 -1
- package/lib/cjs/flow-builder-models.d.ts +1 -2
- package/lib/cjs/flow-builder-models.js.map +1 -1
- package/lib/cjs/functions/conditional-provider.d.ts +2 -2
- package/lib/cjs/functions/conditional-provider.js +2 -2
- package/lib/cjs/functions/conditional-provider.js.map +1 -1
- package/lib/cjs/functions/conditional-queue-status.d.ts +2 -7
- package/lib/cjs/functions/conditional-queue-status.js +1 -13
- package/lib/cjs/functions/conditional-queue-status.js.map +1 -1
- package/lib/cjs/handoff.js +6 -8
- package/lib/cjs/handoff.js.map +1 -1
- package/lib/cjs/index.d.ts +0 -2
- package/lib/cjs/index.js +1 -2
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/types.d.ts +0 -2
- package/lib/cjs/types.js.map +1 -1
- package/lib/esm/action.d.ts +2 -16
- package/lib/esm/action.js +7 -7
- package/lib/esm/action.js.map +1 -1
- package/lib/esm/flow-builder-models.d.ts +1 -2
- package/lib/esm/flow-builder-models.js.map +1 -1
- package/lib/esm/functions/conditional-provider.d.ts +2 -2
- package/lib/esm/functions/conditional-provider.js +2 -2
- package/lib/esm/functions/conditional-provider.js.map +1 -1
- package/lib/esm/functions/conditional-queue-status.d.ts +2 -7
- package/lib/esm/functions/conditional-queue-status.js +1 -13
- package/lib/esm/functions/conditional-queue-status.js.map +1 -1
- package/lib/esm/handoff.js +6 -8
- package/lib/esm/handoff.js.map +1 -1
- package/lib/esm/index.d.ts +0 -2
- package/lib/esm/index.js +1 -2
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/types.d.ts +0 -2
- package/lib/esm/types.js.map +1 -1
- package/package.json +5 -5
- package/src/.DS_Store +0 -0
- package/src/action.tsx +10 -12
- package/src/flow-builder-models.ts +2 -2
- package/src/functions/conditional-provider.ts +2 -2
- package/src/functions/conditional-queue-status.ts +3 -24
- package/src/handoff.ts +8 -15
- package/src/index.ts +1 -8
- package/src/types.ts +0 -6
package/lib/cjs/action.d.ts
CHANGED
|
@@ -1,24 +1,10 @@
|
|
|
1
1
|
import { ActionRequest } from '@botonic/react';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
contents: FlowContent[];
|
|
6
|
-
isHandoff?: boolean;
|
|
7
|
-
};
|
|
8
|
-
export declare class FlowBuilderAction extends React.Component<FlowBuilderActionProps> {
|
|
9
|
-
static contextType: React.Context<{
|
|
10
|
-
getString: () => "";
|
|
11
|
-
setLocale: () => "";
|
|
12
|
-
session: {};
|
|
13
|
-
params: {};
|
|
14
|
-
input: {};
|
|
15
|
-
defaultDelay: number;
|
|
16
|
-
defaultTyping: number;
|
|
17
|
-
}>;
|
|
3
|
+
export declare class FlowBuilderAction extends React.Component {
|
|
4
|
+
static contextType: any;
|
|
18
5
|
static botonicInit(request: ActionRequest): Promise<any>;
|
|
19
6
|
render(): JSX.Element | JSX.Element[];
|
|
20
7
|
}
|
|
21
8
|
export declare class FlowBuilderMultichannelAction extends FlowBuilderAction {
|
|
22
9
|
render(): JSX.Element | JSX.Element[];
|
|
23
10
|
}
|
|
24
|
-
export {};
|
package/lib/cjs/action.js
CHANGED
|
@@ -29,16 +29,13 @@ class FlowBuilderAction extends react_2.default.Component {
|
|
|
29
29
|
alternateFallbackMessage = !alternateFallbackMessage;
|
|
30
30
|
}
|
|
31
31
|
const { contents, handoffNode } = await flowBuilderPlugin.getContents(targetContentId, locale);
|
|
32
|
-
if (flowBuilderPlugin.trackEvent) {
|
|
33
|
-
// TODO: track all targets nodes?
|
|
34
|
-
await flowBuilderPlugin.trackEvent(request, contents[0].code);
|
|
35
|
-
}
|
|
36
32
|
if (handoffNode)
|
|
37
33
|
await (0, handoff_1.doHandoff)(request, locale, handoffNode);
|
|
38
34
|
return { contents, handoffNode };
|
|
39
35
|
}
|
|
40
36
|
render() {
|
|
41
|
-
|
|
37
|
+
// @ts-ignore
|
|
38
|
+
const { contents, handoffNode } = this.props;
|
|
42
39
|
return contents.map(content => content.toBotonic(content.id));
|
|
43
40
|
}
|
|
44
41
|
}
|
|
@@ -46,8 +43,11 @@ exports.FlowBuilderAction = FlowBuilderAction;
|
|
|
46
43
|
FlowBuilderAction.contextType = react_1.RequestContext;
|
|
47
44
|
class FlowBuilderMultichannelAction extends FlowBuilderAction {
|
|
48
45
|
render() {
|
|
49
|
-
|
|
50
|
-
|
|
46
|
+
// @ts-ignore
|
|
47
|
+
const { contents, handoffNode } = this.props;
|
|
48
|
+
return (
|
|
49
|
+
//@ts-ignore
|
|
50
|
+
react_2.default.createElement(react_1.Multichannel, { text: { buttonsAsText: false } }, contents.map(content => content.toBotonic(content.id))));
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
exports.FlowBuilderMultichannelAction = FlowBuilderMultichannelAction;
|
package/lib/cjs/action.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.js","sourceRoot":"","sources":["../../src/action.tsx"],"names":[],"mappings":";;;;AAAA,0CAA4E;AAC5E,0DAAyB;AAGzB,uCAAqC;AACrC,uCAAgD;AAOhD,IAAI,wBAAwB,GAAG,KAAK,CAAA;AACpC,MAAa,iBAAkB,SAAQ,eAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"action.js","sourceRoot":"","sources":["../../src/action.tsx"],"names":[],"mappings":";;;;AAAA,0CAA4E;AAC5E,0DAAyB;AAGzB,uCAAqC;AACrC,uCAAgD;AAOhD,IAAI,wBAAwB,GAAG,KAAK,CAAA;AACpC,MAAa,iBAAkB,SAAQ,eAAK,CAAC,SAAS;IAGpD,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,GAAQ,sBAAc,CAAA;AA8C1C,MAAa,6BAA8B,SAAQ,iBAAiB;IAClE,MAAM;QACJ,aAAa;QACb,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QAC5C,OAAO;QACL,YAAY;QACZ,8BAAC,oBAAY,IAAC,IAAI,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,IACzC,QAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAC3C,CAChB,CAAA;IACH,CAAC;CACF;AAXD,sEAWC"}
|
|
@@ -103,10 +103,9 @@ export interface QueueLocale {
|
|
|
103
103
|
locale: string;
|
|
104
104
|
}
|
|
105
105
|
export interface HandoffNodeContent {
|
|
106
|
-
message: TextLocale[];
|
|
107
|
-
fail_message: TextLocale[];
|
|
108
106
|
queue: QueueLocale[];
|
|
109
107
|
payload: PayloadLocale[];
|
|
108
|
+
has_auto_assign: boolean;
|
|
110
109
|
}
|
|
111
110
|
export interface HandoffNode extends Node {
|
|
112
111
|
type: NodeType.HANDOFF;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow-builder-models.js","sourceRoot":"","sources":["../../src/flow-builder-models.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"flow-builder-models.js","sourceRoot":"","sources":["../../src/flow-builder-models.ts"],"names":[],"mappings":";;;AAUA,IAAY,QAaX;AAbD,WAAY,QAAQ;IAClB,yBAAa,CAAA;IACb,2BAAe,CAAA;IACf,iCAAqB,CAAA;IACrB,+BAAmB,CAAA;IACnB,+BAAmB,CAAA;IACnB,6BAAiB,CAAA;IACjB,iCAAqB,CAAA;IACrB,uBAAW,CAAA;IACX,+BAAmB,CAAA;IACnB,iCAAqB,CAAA;IACrB,iCAAqB,CAAA;IACrB,2BAAe,CAAA;AACjB,CAAC,EAbW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAanB;AA6BD,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,gCAAiB,CAAA;IACjB,0CAA2B,CAAA;AAC7B,CAAC,EAHW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAGtB"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.conditionalProvider = void 0;
|
|
4
|
-
function conditionalProvider({
|
|
5
|
-
const provider =
|
|
4
|
+
function conditionalProvider({ session, results }) {
|
|
5
|
+
const provider = session.user.provider;
|
|
6
6
|
if (results.includes(provider))
|
|
7
7
|
return provider;
|
|
8
8
|
return 'default';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditional-provider.js","sourceRoot":"","sources":["../../../src/functions/conditional-provider.ts"],"names":[],"mappings":";;;AAAA,SAAgB,mBAAmB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE;IACtD,MAAM,QAAQ,GAAG,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"conditional-provider.js","sourceRoot":"","sources":["../../../src/functions/conditional-provider.ts"],"names":[],"mappings":";;;AAAA,SAAgB,mBAAmB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE;IACtD,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAA;IACtC,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAA;IAC/C,OAAO,SAAS,CAAA;AAClB,CAAC;AAJD,kDAIC"}
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
type ConditionalQueueStatusArgs = {
|
|
3
|
-
request: ActionRequest;
|
|
1
|
+
export declare function conditionalQueueStatus({ queue_id, }: {
|
|
4
2
|
queue_id: string;
|
|
5
|
-
|
|
6
|
-
};
|
|
7
|
-
export declare function conditionalQueueStatus({ request, queue_id, queue_name, }: ConditionalQueueStatusArgs): Promise<string>;
|
|
8
|
-
export {};
|
|
3
|
+
}): Promise<string>;
|
|
@@ -3,12 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.conditionalQueueStatus = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const axios_1 = tslib_1.__importDefault(require("axios"));
|
|
6
|
-
const helpers_1 = require("../helpers");
|
|
7
6
|
const utils_1 = require("../utils");
|
|
8
7
|
const _HUBTYPE_API_URL_ = (0, utils_1.getWebpackEnvVar)(
|
|
9
8
|
// @ts-ignore
|
|
10
9
|
typeof HUBTYPE_API_URL !== 'undefined' && HUBTYPE_API_URL, 'HUBTYPE_API_URL', 'https://api.hubtype.com');
|
|
11
|
-
async function conditionalQueueStatus({
|
|
10
|
+
async function conditionalQueueStatus({ queue_id, }) {
|
|
12
11
|
const response = await axios_1.default.get(`${_HUBTYPE_API_URL_}/v1/queues/${queue_id}/availability/`,
|
|
13
12
|
// TODO: Make it configurable in the future
|
|
14
13
|
{
|
|
@@ -19,17 +18,6 @@ async function conditionalQueueStatus({ request, queue_id, queue_name, }) {
|
|
|
19
18
|
},
|
|
20
19
|
});
|
|
21
20
|
const isAvailable = response.data.available;
|
|
22
|
-
console.log('conditionalQueueStatus', { data: response.data });
|
|
23
|
-
const flowBuilderPlugin = (0, helpers_1.getFlowBuilderPlugin)(request.plugins);
|
|
24
|
-
if (flowBuilderPlugin.trackEvent) {
|
|
25
|
-
const eventName = 'QUEUE_STATUS';
|
|
26
|
-
const args = {
|
|
27
|
-
queue_id,
|
|
28
|
-
queue_name,
|
|
29
|
-
status: isAvailable ? 'open' : 'closed',
|
|
30
|
-
};
|
|
31
|
-
await flowBuilderPlugin.trackEvent(request, eventName, args);
|
|
32
|
-
}
|
|
33
21
|
return isAvailable ? 'open' : 'closed';
|
|
34
22
|
}
|
|
35
23
|
exports.conditionalQueueStatus = conditionalQueueStatus;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditional-queue-status.js","sourceRoot":"","sources":["../../../src/functions/conditional-queue-status.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"conditional-queue-status.js","sourceRoot":"","sources":["../../../src/functions/conditional-queue-status.ts"],"names":[],"mappings":";;;;AAAA,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"}
|
package/lib/cjs/handoff.js
CHANGED
|
@@ -4,16 +4,18 @@ exports.doHandoff = void 0;
|
|
|
4
4
|
const core_1 = require("@botonic/core");
|
|
5
5
|
const helpers_1 = require("./helpers");
|
|
6
6
|
async function doHandoff(request, locale, handoffNode) {
|
|
7
|
-
const flowBuilderPlugin = (0, helpers_1.getFlowBuilderPlugin)(request.plugins);
|
|
8
7
|
// @ts-ignore
|
|
9
8
|
const handOffBuilder = new core_1.HandOffBuilder(request.session);
|
|
10
9
|
const handoffQueues = handoffNode.content.queue;
|
|
11
10
|
const queueFound = handoffQueues.find(q => q.locale === locale);
|
|
12
11
|
if (queueFound)
|
|
13
12
|
handOffBuilder.withQueue(queueFound.id);
|
|
14
|
-
const onFinishPayload = await getOnFinishPayload(
|
|
13
|
+
const onFinishPayload = await getOnFinishPayload(handoffNode, locale, request);
|
|
15
14
|
if (onFinishPayload)
|
|
16
15
|
handOffBuilder.withOnFinishPayload(onFinishPayload);
|
|
16
|
+
if (handoffNode.content.has_auto_assign) {
|
|
17
|
+
handOffBuilder.withAutoAssignOnWaiting(true);
|
|
18
|
+
}
|
|
17
19
|
// TODO: Retrieve params from FlowBuilder
|
|
18
20
|
// const handoffParams = {
|
|
19
21
|
// agentEmail: 'test@gmail.com',
|
|
@@ -26,15 +28,11 @@ async function doHandoff(request, locale, handoffNode) {
|
|
|
26
28
|
// handOffBuilder.withAgentEmail(handoffParams.agentEmail)
|
|
27
29
|
// }
|
|
28
30
|
await handOffBuilder.handOff();
|
|
29
|
-
if (flowBuilderPlugin.trackEvent) {
|
|
30
|
-
await flowBuilderPlugin.trackEvent(request, 'HANDOFF_SUCCESSFULL', {
|
|
31
|
-
queueName: queueFound === null || queueFound === void 0 ? void 0 : queueFound.name,
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
31
|
}
|
|
35
32
|
exports.doHandoff = doHandoff;
|
|
36
|
-
async function getOnFinishPayload(
|
|
33
|
+
async function getOnFinishPayload(handoffNode, locale, request) {
|
|
37
34
|
var _a, _b;
|
|
35
|
+
const flowBuilderPlugin = (0, helpers_1.getFlowBuilderPlugin)(request.plugins);
|
|
38
36
|
const handoffTargetNode = await flowBuilderPlugin.getHandoffContent((_a = handoffNode.target) === null || _a === void 0 ? void 0 : _a.id);
|
|
39
37
|
if (handoffTargetNode === null || handoffTargetNode === void 0 ? void 0 : handoffTargetNode.id)
|
|
40
38
|
return handoffTargetNode === null || handoffTargetNode === void 0 ? void 0 : handoffTargetNode.id;
|
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;
|
|
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,aAAa;IACb,MAAM,cAAc,GAAG,IAAI,qBAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC1D,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;IAEvD,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9E,IAAI,eAAe;QAAE,cAAc,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAA;IACxE,IAAI,WAAW,CAAC,OAAO,CAAC,eAAe,EAAE;QACvC,cAAc,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAA;KAC7C;IAED,yCAAyC;IACzC,0BAA0B;IAC1B,kCAAkC;IAClC,4EAA4E;IAC5E,IAAI;IAEJ,4BAA4B;IAC5B,gDAAgD;IAChD,IAAI;IAEJ,kCAAkC;IAClC,4DAA4D;IAC5D,IAAI;IAEJ,MAAM,cAAc,CAAC,OAAO,EAAE,CAAA;AAChC,CAAC;AAhCD,8BAgCC;AAED,KAAK,UAAU,kBAAkB,CAC/B,WAAwB,EACxB,MAAc,EACd,OAAsB;;IAEtB,MAAM,iBAAiB,GAAG,IAAA,8BAAoB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAE/D,MAAM,iBAAiB,GAAG,MAAM,iBAAiB,CAAC,iBAAiB,CACjE,MAAA,WAAW,CAAC,MAAM,0CAAE,EAAE,CACvB,CAAA;IACD,IAAI,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,EAAE;QAAE,OAAO,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,EAAE,CAAA;IAEvD,MAAM,SAAS,GAAG,MAAA,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAChD,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,CACrC,0CAAE,EAAE,CAAA;IAEL,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAA;IAEhC,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;IAEnE,OAAQ,aAA6B,CAAC,OAAO,CAAC,OAAO,CAAA;AACvD,CAAC"}
|
package/lib/cjs/index.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Input, Plugin, PluginPostRequest, PluginPreRequest, Session } from '@botonic/core';
|
|
2
|
-
import { ActionRequest } from '@botonic/react';
|
|
3
2
|
import { FlowContent } from './content-fields';
|
|
4
3
|
import { FlowBuilderData, FunctionNode, HandoffNode, IntentNode, KeywordNode, NodeComponent } from './flow-builder-models';
|
|
5
4
|
import { BotonicPluginFlowBuilderOptions } from './types';
|
|
@@ -11,7 +10,6 @@ export default class BotonicPluginFlowBuilder implements Plugin {
|
|
|
11
10
|
private currentRequest;
|
|
12
11
|
private getAccessToken;
|
|
13
12
|
getLocale: (session: Session) => string;
|
|
14
|
-
trackEvent?: (request: ActionRequest, eventName: string, args?: Record<string, any>) => Promise<void>;
|
|
15
13
|
constructor(options: BotonicPluginFlowBuilderOptions);
|
|
16
14
|
readFlowContent(session: Session): Promise<FlowBuilderData>;
|
|
17
15
|
pre(request: PluginPreRequest): Promise<void>;
|
package/lib/cjs/index.js
CHANGED
|
@@ -12,7 +12,6 @@ class BotonicPluginFlowBuilder {
|
|
|
12
12
|
this.options = options;
|
|
13
13
|
this.getLocale = options.getLocale;
|
|
14
14
|
this.getAccessToken = (0, utils_1.resolveGetAccessToken)(options);
|
|
15
|
-
this.trackEvent = options.trackEvent;
|
|
16
15
|
this.flowUrl = options.flowUrl;
|
|
17
16
|
if (options.flow)
|
|
18
17
|
this.flow = options.flow;
|
|
@@ -183,7 +182,7 @@ class BotonicPluginFlowBuilder {
|
|
|
183
182
|
const nameValues = ((_a = functionNode.content.arguments
|
|
184
183
|
.find(arg => arg.locale === locale)) === null || _a === void 0 ? void 0 : _a.values.map(value => ({ [value.name]: value.value }))) || [];
|
|
185
184
|
const args = Object.assign({
|
|
186
|
-
|
|
185
|
+
session: this.currentRequest.session,
|
|
187
186
|
results: [functionNode.content.result_mapping.map(r => r.result)],
|
|
188
187
|
}, ...nameValues);
|
|
189
188
|
const functionResult = await this.functions[functionNode.content.action](args);
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/types.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Session } from '@botonic/core';
|
|
2
|
-
import { ActionRequest } from '@botonic/react';
|
|
3
2
|
import { FlowBuilderData } from './flow-builder-models';
|
|
4
3
|
export interface BotonicPluginFlowBuilderOptions {
|
|
5
4
|
flowUrl: string;
|
|
@@ -7,7 +6,6 @@ export interface BotonicPluginFlowBuilderOptions {
|
|
|
7
6
|
customFunctions?: Record<any, any>;
|
|
8
7
|
getLocale: (session: Session) => string;
|
|
9
8
|
getAccessToken: () => string;
|
|
10
|
-
trackEvent?: (request: ActionRequest, eventName: string, args?: Record<string, any>) => Promise<void>;
|
|
11
9
|
}
|
|
12
10
|
export declare enum ProcessEnvNodeEnvs {
|
|
13
11
|
PRODUCTION = "production",
|
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":";;;AAYA,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,+CAAyB,CAAA;IACzB,iDAA2B,CAAA;AAC7B,CAAC,EAHW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAG7B"}
|
package/lib/esm/action.d.ts
CHANGED
|
@@ -1,24 +1,10 @@
|
|
|
1
1
|
import { ActionRequest } from '@botonic/react';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
contents: FlowContent[];
|
|
6
|
-
isHandoff?: boolean;
|
|
7
|
-
};
|
|
8
|
-
export declare class FlowBuilderAction extends React.Component<FlowBuilderActionProps> {
|
|
9
|
-
static contextType: React.Context<{
|
|
10
|
-
getString: () => "";
|
|
11
|
-
setLocale: () => "";
|
|
12
|
-
session: {};
|
|
13
|
-
params: {};
|
|
14
|
-
input: {};
|
|
15
|
-
defaultDelay: number;
|
|
16
|
-
defaultTyping: number;
|
|
17
|
-
}>;
|
|
3
|
+
export declare class FlowBuilderAction extends React.Component {
|
|
4
|
+
static contextType: any;
|
|
18
5
|
static botonicInit(request: ActionRequest): Promise<any>;
|
|
19
6
|
render(): JSX.Element | JSX.Element[];
|
|
20
7
|
}
|
|
21
8
|
export declare class FlowBuilderMultichannelAction extends FlowBuilderAction {
|
|
22
9
|
render(): JSX.Element | JSX.Element[];
|
|
23
10
|
}
|
|
24
|
-
export {};
|
package/lib/esm/action.js
CHANGED
|
@@ -25,24 +25,24 @@ export class FlowBuilderAction extends React.Component {
|
|
|
25
25
|
alternateFallbackMessage = !alternateFallbackMessage;
|
|
26
26
|
}
|
|
27
27
|
const { contents, handoffNode } = await flowBuilderPlugin.getContents(targetContentId, locale);
|
|
28
|
-
if (flowBuilderPlugin.trackEvent) {
|
|
29
|
-
// TODO: track all targets nodes?
|
|
30
|
-
await flowBuilderPlugin.trackEvent(request, contents[0].code);
|
|
31
|
-
}
|
|
32
28
|
if (handoffNode)
|
|
33
29
|
await doHandoff(request, locale, handoffNode);
|
|
34
30
|
return { contents, handoffNode };
|
|
35
31
|
}
|
|
36
32
|
render() {
|
|
37
|
-
|
|
33
|
+
// @ts-ignore
|
|
34
|
+
const { contents, handoffNode } = this.props;
|
|
38
35
|
return contents.map(content => content.toBotonic(content.id));
|
|
39
36
|
}
|
|
40
37
|
}
|
|
41
38
|
FlowBuilderAction.contextType = RequestContext;
|
|
42
39
|
export class FlowBuilderMultichannelAction extends FlowBuilderAction {
|
|
43
40
|
render() {
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
// @ts-ignore
|
|
42
|
+
const { contents, handoffNode } = this.props;
|
|
43
|
+
return (
|
|
44
|
+
//@ts-ignore
|
|
45
|
+
React.createElement(Multichannel, { text: { buttonsAsText: false } }, contents.map(content => content.toBotonic(content.id))));
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
//# sourceMappingURL=action.js.map
|
package/lib/esm/action.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.js","sourceRoot":"","sources":["../../src/action.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC5E,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAOhD,IAAI,wBAAwB,GAAG,KAAK,CAAA;AACpC,MAAM,OAAO,iBAAkB,SAAQ,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"action.js","sourceRoot":"","sources":["../../src/action.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC5E,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAOhD,IAAI,wBAAwB,GAAG,KAAK,CAAA;AACpC,MAAM,OAAO,iBAAkB,SAAQ,KAAK,CAAC,SAAS;IAGpD,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,OAAsB;QAC7C,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,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,SAAS,CAAC,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;;AA3CM,6BAAW,GAAQ,cAAc,CAAA;AA8C1C,MAAM,OAAO,6BAA8B,SAAQ,iBAAiB;IAClE,MAAM;QACJ,aAAa;QACb,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QAC5C,OAAO;QACL,YAAY;QACZ,oBAAC,YAAY,IAAC,IAAI,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,IACzC,QAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAC3C,CAChB,CAAA;IACH,CAAC;CACF"}
|
|
@@ -103,10 +103,9 @@ export interface QueueLocale {
|
|
|
103
103
|
locale: string;
|
|
104
104
|
}
|
|
105
105
|
export interface HandoffNodeContent {
|
|
106
|
-
message: TextLocale[];
|
|
107
|
-
fail_message: TextLocale[];
|
|
108
106
|
queue: QueueLocale[];
|
|
109
107
|
payload: PayloadLocale[];
|
|
108
|
+
has_auto_assign: boolean;
|
|
110
109
|
}
|
|
111
110
|
export interface HandoffNode extends Node {
|
|
112
111
|
type: NodeType.HANDOFF;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow-builder-models.js","sourceRoot":"","sources":["../../src/flow-builder-models.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"flow-builder-models.js","sourceRoot":"","sources":["../../src/flow-builder-models.ts"],"names":[],"mappings":"AAUA,MAAM,CAAN,IAAY,QAaX;AAbD,WAAY,QAAQ;IAClB,yBAAa,CAAA;IACb,2BAAe,CAAA;IACf,iCAAqB,CAAA;IACrB,+BAAmB,CAAA;IACnB,+BAAmB,CAAA;IACnB,6BAAiB,CAAA;IACjB,iCAAqB,CAAA;IACrB,uBAAW,CAAA;IACX,+BAAmB,CAAA;IACnB,iCAAqB,CAAA;IACrB,iCAAqB,CAAA;IACrB,2BAAe,CAAA;AACjB,CAAC,EAbW,QAAQ,KAAR,QAAQ,QAanB;AA6BD,MAAM,CAAN,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,gCAAiB,CAAA;IACjB,0CAA2B,CAAA;AAC7B,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export function conditionalProvider({
|
|
2
|
-
const provider =
|
|
1
|
+
export function conditionalProvider({ session, results }) {
|
|
2
|
+
const provider = session.user.provider;
|
|
3
3
|
if (results.includes(provider))
|
|
4
4
|
return provider;
|
|
5
5
|
return 'default';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditional-provider.js","sourceRoot":"","sources":["../../../src/functions/conditional-provider.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,mBAAmB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE;IACtD,MAAM,QAAQ,GAAG,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"conditional-provider.js","sourceRoot":"","sources":["../../../src/functions/conditional-provider.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,mBAAmB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE;IACtD,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAA;IACtC,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAA;IAC/C,OAAO,SAAS,CAAA;AAClB,CAAC"}
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
type ConditionalQueueStatusArgs = {
|
|
3
|
-
request: ActionRequest;
|
|
1
|
+
export declare function conditionalQueueStatus({ queue_id, }: {
|
|
4
2
|
queue_id: string;
|
|
5
|
-
|
|
6
|
-
};
|
|
7
|
-
export declare function conditionalQueueStatus({ request, queue_id, queue_name, }: ConditionalQueueStatusArgs): Promise<string>;
|
|
8
|
-
export {};
|
|
3
|
+
}): Promise<string>;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
|
-
import { getFlowBuilderPlugin } from '../helpers';
|
|
3
2
|
import { getWebpackEnvVar } from '../utils';
|
|
4
3
|
const _HUBTYPE_API_URL_ = getWebpackEnvVar(
|
|
5
4
|
// @ts-ignore
|
|
6
5
|
typeof HUBTYPE_API_URL !== 'undefined' && HUBTYPE_API_URL, 'HUBTYPE_API_URL', 'https://api.hubtype.com');
|
|
7
|
-
export async function conditionalQueueStatus({
|
|
6
|
+
export async function conditionalQueueStatus({ queue_id, }) {
|
|
8
7
|
const response = await axios.get(`${_HUBTYPE_API_URL_}/v1/queues/${queue_id}/availability/`,
|
|
9
8
|
// TODO: Make it configurable in the future
|
|
10
9
|
{
|
|
@@ -15,17 +14,6 @@ export async function conditionalQueueStatus({ request, queue_id, queue_name, })
|
|
|
15
14
|
},
|
|
16
15
|
});
|
|
17
16
|
const isAvailable = response.data.available;
|
|
18
|
-
console.log('conditionalQueueStatus', { data: response.data });
|
|
19
|
-
const flowBuilderPlugin = getFlowBuilderPlugin(request.plugins);
|
|
20
|
-
if (flowBuilderPlugin.trackEvent) {
|
|
21
|
-
const eventName = 'QUEUE_STATUS';
|
|
22
|
-
const args = {
|
|
23
|
-
queue_id,
|
|
24
|
-
queue_name,
|
|
25
|
-
status: isAvailable ? 'open' : 'closed',
|
|
26
|
-
};
|
|
27
|
-
await flowBuilderPlugin.trackEvent(request, eventName, args);
|
|
28
|
-
}
|
|
29
17
|
return isAvailable ? 'open' : 'closed';
|
|
30
18
|
}
|
|
31
19
|
//# sourceMappingURL=conditional-queue-status.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditional-queue-status.js","sourceRoot":"","sources":["../../../src/functions/conditional-queue-status.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"conditional-queue-status.js","sourceRoot":"","sources":["../../../src/functions/conditional-queue-status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAE3C,MAAM,iBAAiB,GAAG,gBAAgB;AACxC,aAAa;AACb,OAAO,eAAe,KAAK,WAAW,IAAI,eAAe,EACzD,iBAAiB,EACjB,yBAAyB,CAC1B,CAAA;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,EAC3C,QAAQ,GAGT;IACC,MAAM,QAAQ,GAAG,MAAM,KAAK,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"}
|
package/lib/esm/handoff.js
CHANGED
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { HandOffBuilder } from '@botonic/core';
|
|
2
2
|
import { getFlowBuilderPlugin } from './helpers';
|
|
3
3
|
export async function doHandoff(request, locale, handoffNode) {
|
|
4
|
-
const flowBuilderPlugin = getFlowBuilderPlugin(request.plugins);
|
|
5
4
|
// @ts-ignore
|
|
6
5
|
const handOffBuilder = new HandOffBuilder(request.session);
|
|
7
6
|
const handoffQueues = handoffNode.content.queue;
|
|
8
7
|
const queueFound = handoffQueues.find(q => q.locale === locale);
|
|
9
8
|
if (queueFound)
|
|
10
9
|
handOffBuilder.withQueue(queueFound.id);
|
|
11
|
-
const onFinishPayload = await getOnFinishPayload(
|
|
10
|
+
const onFinishPayload = await getOnFinishPayload(handoffNode, locale, request);
|
|
12
11
|
if (onFinishPayload)
|
|
13
12
|
handOffBuilder.withOnFinishPayload(onFinishPayload);
|
|
13
|
+
if (handoffNode.content.has_auto_assign) {
|
|
14
|
+
handOffBuilder.withAutoAssignOnWaiting(true);
|
|
15
|
+
}
|
|
14
16
|
// TODO: Retrieve params from FlowBuilder
|
|
15
17
|
// const handoffParams = {
|
|
16
18
|
// agentEmail: 'test@gmail.com',
|
|
@@ -23,14 +25,10 @@ export async function doHandoff(request, locale, handoffNode) {
|
|
|
23
25
|
// handOffBuilder.withAgentEmail(handoffParams.agentEmail)
|
|
24
26
|
// }
|
|
25
27
|
await handOffBuilder.handOff();
|
|
26
|
-
if (flowBuilderPlugin.trackEvent) {
|
|
27
|
-
await flowBuilderPlugin.trackEvent(request, 'HANDOFF_SUCCESSFULL', {
|
|
28
|
-
queueName: queueFound === null || queueFound === void 0 ? void 0 : queueFound.name,
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
28
|
}
|
|
32
|
-
async function getOnFinishPayload(
|
|
29
|
+
async function getOnFinishPayload(handoffNode, locale, request) {
|
|
33
30
|
var _a, _b;
|
|
31
|
+
const flowBuilderPlugin = getFlowBuilderPlugin(request.plugins);
|
|
34
32
|
const handoffTargetNode = await flowBuilderPlugin.getHandoffContent((_a = handoffNode.target) === null || _a === void 0 ? void 0 : _a.id);
|
|
35
33
|
if (handoffTargetNode === null || handoffTargetNode === void 0 ? void 0 : handoffTargetNode.id)
|
|
36
34
|
return handoffTargetNode === null || handoffTargetNode === void 0 ? void 0 : handoffTargetNode.id;
|
package/lib/esm/handoff.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handoff.js","sourceRoot":"","sources":["../../src/handoff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAI9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"handoff.js","sourceRoot":"","sources":["../../src/handoff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAI9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEhD,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,OAAsB,EACtB,MAAc,EACd,WAAwB;IAExB,aAAa;IACb,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC1D,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;IAEvD,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9E,IAAI,eAAe;QAAE,cAAc,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAA;IACxE,IAAI,WAAW,CAAC,OAAO,CAAC,eAAe,EAAE;QACvC,cAAc,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAA;KAC7C;IAED,yCAAyC;IACzC,0BAA0B;IAC1B,kCAAkC;IAClC,4EAA4E;IAC5E,IAAI;IAEJ,4BAA4B;IAC5B,gDAAgD;IAChD,IAAI;IAEJ,kCAAkC;IAClC,4DAA4D;IAC5D,IAAI;IAEJ,MAAM,cAAc,CAAC,OAAO,EAAE,CAAA;AAChC,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,WAAwB,EACxB,MAAc,EACd,OAAsB;;IAEtB,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAE/D,MAAM,iBAAiB,GAAG,MAAM,iBAAiB,CAAC,iBAAiB,CACjE,MAAA,WAAW,CAAC,MAAM,0CAAE,EAAE,CACvB,CAAA;IACD,IAAI,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,EAAE;QAAE,OAAO,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,EAAE,CAAA;IAEvD,MAAM,SAAS,GAAG,MAAA,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAChD,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,CACrC,0CAAE,EAAE,CAAA;IAEL,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAA;IAEhC,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;IAEnE,OAAQ,aAA6B,CAAC,OAAO,CAAC,OAAO,CAAA;AACvD,CAAC"}
|
package/lib/esm/index.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Input, Plugin, PluginPostRequest, PluginPreRequest, Session } from '@botonic/core';
|
|
2
|
-
import { ActionRequest } from '@botonic/react';
|
|
3
2
|
import { FlowContent } from './content-fields';
|
|
4
3
|
import { FlowBuilderData, FunctionNode, HandoffNode, IntentNode, KeywordNode, NodeComponent } from './flow-builder-models';
|
|
5
4
|
import { BotonicPluginFlowBuilderOptions } from './types';
|
|
@@ -11,7 +10,6 @@ export default class BotonicPluginFlowBuilder implements Plugin {
|
|
|
11
10
|
private currentRequest;
|
|
12
11
|
private getAccessToken;
|
|
13
12
|
getLocale: (session: Session) => string;
|
|
14
|
-
trackEvent?: (request: ActionRequest, eventName: string, args?: Record<string, any>) => Promise<void>;
|
|
15
13
|
constructor(options: BotonicPluginFlowBuilderOptions);
|
|
16
14
|
readFlowContent(session: Session): Promise<FlowBuilderData>;
|
|
17
15
|
pre(request: PluginPreRequest): Promise<void>;
|
package/lib/esm/index.js
CHANGED
|
@@ -9,7 +9,6 @@ export default class BotonicPluginFlowBuilder {
|
|
|
9
9
|
this.options = options;
|
|
10
10
|
this.getLocale = options.getLocale;
|
|
11
11
|
this.getAccessToken = resolveGetAccessToken(options);
|
|
12
|
-
this.trackEvent = options.trackEvent;
|
|
13
12
|
this.flowUrl = options.flowUrl;
|
|
14
13
|
if (options.flow)
|
|
15
14
|
this.flow = options.flow;
|
|
@@ -180,7 +179,7 @@ export default class BotonicPluginFlowBuilder {
|
|
|
180
179
|
const nameValues = ((_a = functionNode.content.arguments
|
|
181
180
|
.find(arg => arg.locale === locale)) === null || _a === void 0 ? void 0 : _a.values.map(value => ({ [value.name]: value.value }))) || [];
|
|
182
181
|
const args = Object.assign({
|
|
183
|
-
|
|
182
|
+
session: this.currentRequest.session,
|
|
184
183
|
results: [functionNode.content.result_mapping.map(r => r.result)],
|
|
185
184
|
}, ...nameValues);
|
|
186
185
|
const functionResult = await this.functions[functionNode.content.action](args);
|
package/lib/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/types.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Session } from '@botonic/core';
|
|
2
|
-
import { ActionRequest } from '@botonic/react';
|
|
3
2
|
import { FlowBuilderData } from './flow-builder-models';
|
|
4
3
|
export interface BotonicPluginFlowBuilderOptions {
|
|
5
4
|
flowUrl: string;
|
|
@@ -7,7 +6,6 @@ export interface BotonicPluginFlowBuilderOptions {
|
|
|
7
6
|
customFunctions?: Record<any, any>;
|
|
8
7
|
getLocale: (session: Session) => string;
|
|
9
8
|
getAccessToken: () => string;
|
|
10
|
-
trackEvent?: (request: ActionRequest, eventName: string, args?: Record<string, any>) => Promise<void>;
|
|
11
9
|
}
|
|
12
10
|
export declare enum ProcessEnvNodeEnvs {
|
|
13
11
|
PRODUCTION = "production",
|
package/lib/esm/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":"AAYA,MAAM,CAAN,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,+CAAyB,CAAA;IACzB,iDAA2B,CAAA;AAC7B,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,QAG7B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@botonic/plugin-flow-builder",
|
|
3
|
-
"version": "0.22.0-
|
|
3
|
+
"version": "0.22.0-beta.3",
|
|
4
4
|
"main": "./lib/cjs/index.js",
|
|
5
5
|
"module": "./lib/esm/index.js",
|
|
6
6
|
"description": "Use Flow Builder to show your contents",
|
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
],
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@types/minipass": "^3.3.5",
|
|
33
|
-
"@types/node": "^
|
|
34
|
-
"@types/react": "^
|
|
33
|
+
"@types/node": "^16.0.0",
|
|
34
|
+
"@types/react": "^16.0.0",
|
|
35
35
|
"typescript": "^5.0.4"
|
|
36
36
|
},
|
|
37
37
|
"keywords": [
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
50
|
"@babel/runtime": "^7.21.0",
|
|
51
|
-
"
|
|
52
|
-
"
|
|
51
|
+
"@botonic/react": "^0.22.0-beta.3",
|
|
52
|
+
"axios": "^1.3.6"
|
|
53
53
|
}
|
|
54
54
|
}
|
package/src/.DS_Store
ADDED
|
Binary file
|
package/src/action.tsx
CHANGED
|
@@ -6,13 +6,13 @@ import { doHandoff } from './handoff'
|
|
|
6
6
|
import { getFlowBuilderPlugin } from './helpers'
|
|
7
7
|
|
|
8
8
|
type FlowBuilderActionProps = {
|
|
9
|
-
|
|
9
|
+
content?: FlowContent[]
|
|
10
10
|
isHandoff?: boolean
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
let alternateFallbackMessage = false
|
|
14
|
-
export class FlowBuilderAction extends React.Component
|
|
15
|
-
static contextType = RequestContext
|
|
14
|
+
export class FlowBuilderAction extends React.Component {
|
|
15
|
+
static contextType: any = RequestContext
|
|
16
16
|
|
|
17
17
|
static async botonicInit(request: ActionRequest): Promise<any> {
|
|
18
18
|
const flowBuilderPlugin = getFlowBuilderPlugin(request.plugins)
|
|
@@ -46,28 +46,26 @@ export class FlowBuilderAction extends React.Component<FlowBuilderActionProps> {
|
|
|
46
46
|
locale
|
|
47
47
|
)
|
|
48
48
|
|
|
49
|
-
if (flowBuilderPlugin.trackEvent) {
|
|
50
|
-
// TODO: track all targets nodes?
|
|
51
|
-
await flowBuilderPlugin.trackEvent(request, contents[0].code)
|
|
52
|
-
}
|
|
53
|
-
|
|
54
49
|
if (handoffNode) await doHandoff(request, locale, handoffNode)
|
|
55
50
|
|
|
56
51
|
return { contents, handoffNode }
|
|
57
52
|
}
|
|
58
53
|
|
|
59
54
|
render(): JSX.Element | JSX.Element[] {
|
|
60
|
-
|
|
61
|
-
|
|
55
|
+
// @ts-ignore
|
|
56
|
+
const { contents, handoffNode } = this.props
|
|
57
|
+
return contents!.map(content => content.toBotonic(content.id))
|
|
62
58
|
}
|
|
63
59
|
}
|
|
64
60
|
|
|
65
61
|
export class FlowBuilderMultichannelAction extends FlowBuilderAction {
|
|
66
62
|
render(): JSX.Element | JSX.Element[] {
|
|
67
|
-
|
|
63
|
+
// @ts-ignore
|
|
64
|
+
const { contents, handoffNode } = this.props
|
|
68
65
|
return (
|
|
66
|
+
//@ts-ignore
|
|
69
67
|
<Multichannel text={{ buttonsAsText: false }}>
|
|
70
|
-
{contents
|
|
68
|
+
{contents!.map(content => content.toBotonic(content.id))}
|
|
71
69
|
</Multichannel>
|
|
72
70
|
)
|
|
73
71
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
1
2
|
export interface FlowBuilderData {
|
|
2
3
|
version: string
|
|
3
4
|
name: string
|
|
@@ -123,10 +124,9 @@ export interface QueueLocale {
|
|
|
123
124
|
}
|
|
124
125
|
|
|
125
126
|
export interface HandoffNodeContent {
|
|
126
|
-
message: TextLocale[]
|
|
127
|
-
fail_message: TextLocale[]
|
|
128
127
|
queue: QueueLocale[]
|
|
129
128
|
payload: PayloadLocale[]
|
|
129
|
+
has_auto_assign: boolean
|
|
130
130
|
}
|
|
131
131
|
|
|
132
132
|
export interface HandoffNode extends Node {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export function conditionalProvider({
|
|
2
|
-
const provider =
|
|
1
|
+
export function conditionalProvider({ session, results }): string {
|
|
2
|
+
const provider = session.user.provider
|
|
3
3
|
if (results.includes(provider)) return provider
|
|
4
4
|
return 'default'
|
|
5
5
|
}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { ActionRequest } from '@botonic/react'
|
|
2
1
|
import axios from 'axios'
|
|
3
2
|
|
|
4
|
-
import { getFlowBuilderPlugin } from '../helpers'
|
|
5
3
|
import { getWebpackEnvVar } from '../utils'
|
|
6
4
|
|
|
7
5
|
const _HUBTYPE_API_URL_ = getWebpackEnvVar(
|
|
@@ -11,17 +9,11 @@ const _HUBTYPE_API_URL_ = getWebpackEnvVar(
|
|
|
11
9
|
'https://api.hubtype.com'
|
|
12
10
|
)
|
|
13
11
|
|
|
14
|
-
type ConditionalQueueStatusArgs = {
|
|
15
|
-
request: ActionRequest
|
|
16
|
-
queue_id: string
|
|
17
|
-
queue_name: string
|
|
18
|
-
}
|
|
19
|
-
|
|
20
12
|
export async function conditionalQueueStatus({
|
|
21
|
-
request,
|
|
22
13
|
queue_id,
|
|
23
|
-
|
|
24
|
-
|
|
14
|
+
}: {
|
|
15
|
+
queue_id: string
|
|
16
|
+
}): Promise<string> {
|
|
25
17
|
const response = await axios.get(
|
|
26
18
|
`${_HUBTYPE_API_URL_}/v1/queues/${queue_id}/availability/`,
|
|
27
19
|
// TODO: Make it configurable in the future
|
|
@@ -34,18 +26,5 @@ export async function conditionalQueueStatus({
|
|
|
34
26
|
}
|
|
35
27
|
)
|
|
36
28
|
const isAvailable = response.data.available
|
|
37
|
-
|
|
38
|
-
console.log('conditionalQueueStatus', { data: response.data })
|
|
39
|
-
const flowBuilderPlugin = getFlowBuilderPlugin(request.plugins)
|
|
40
|
-
if (flowBuilderPlugin.trackEvent) {
|
|
41
|
-
const eventName = 'QUEUE_STATUS'
|
|
42
|
-
const args = {
|
|
43
|
-
queue_id,
|
|
44
|
-
queue_name,
|
|
45
|
-
status: isAvailable ? 'open' : 'closed',
|
|
46
|
-
}
|
|
47
|
-
await flowBuilderPlugin.trackEvent(request, eventName, args)
|
|
48
|
-
}
|
|
49
|
-
|
|
50
29
|
return isAvailable ? 'open' : 'closed'
|
|
51
30
|
}
|
package/src/handoff.ts
CHANGED
|
@@ -3,26 +3,23 @@ import { ActionRequest } from '@botonic/react'
|
|
|
3
3
|
|
|
4
4
|
import { HandoffNode, PayloadNode } from './flow-builder-models'
|
|
5
5
|
import { getFlowBuilderPlugin } from './helpers'
|
|
6
|
-
import BotonicPluginFlowBuilder from './index'
|
|
7
6
|
|
|
8
7
|
export async function doHandoff(
|
|
9
8
|
request: ActionRequest,
|
|
10
9
|
locale: string,
|
|
11
10
|
handoffNode: HandoffNode
|
|
12
11
|
): Promise<void> {
|
|
13
|
-
const flowBuilderPlugin = getFlowBuilderPlugin(request.plugins)
|
|
14
12
|
// @ts-ignore
|
|
15
13
|
const handOffBuilder = new HandOffBuilder(request.session)
|
|
16
14
|
const handoffQueues = handoffNode.content.queue
|
|
17
15
|
const queueFound = handoffQueues.find(q => q.locale === locale)
|
|
18
16
|
if (queueFound) handOffBuilder.withQueue(queueFound.id)
|
|
19
17
|
|
|
20
|
-
const onFinishPayload = await getOnFinishPayload(
|
|
21
|
-
flowBuilderPlugin,
|
|
22
|
-
handoffNode,
|
|
23
|
-
locale
|
|
24
|
-
)
|
|
18
|
+
const onFinishPayload = await getOnFinishPayload(handoffNode, locale, request)
|
|
25
19
|
if (onFinishPayload) handOffBuilder.withOnFinishPayload(onFinishPayload)
|
|
20
|
+
if (handoffNode.content.has_auto_assign) {
|
|
21
|
+
handOffBuilder.withAutoAssignOnWaiting(true)
|
|
22
|
+
}
|
|
26
23
|
|
|
27
24
|
// TODO: Retrieve params from FlowBuilder
|
|
28
25
|
// const handoffParams = {
|
|
@@ -39,19 +36,15 @@ export async function doHandoff(
|
|
|
39
36
|
// }
|
|
40
37
|
|
|
41
38
|
await handOffBuilder.handOff()
|
|
42
|
-
|
|
43
|
-
if (flowBuilderPlugin.trackEvent) {
|
|
44
|
-
await flowBuilderPlugin.trackEvent(request, 'HANDOFF_SUCCESSFULL', {
|
|
45
|
-
queueName: queueFound?.name,
|
|
46
|
-
})
|
|
47
|
-
}
|
|
48
39
|
}
|
|
49
40
|
|
|
50
41
|
async function getOnFinishPayload(
|
|
51
|
-
flowBuilderPlugin: BotonicPluginFlowBuilder,
|
|
52
42
|
handoffNode: HandoffNode,
|
|
53
|
-
locale: string
|
|
43
|
+
locale: string,
|
|
44
|
+
request: ActionRequest
|
|
54
45
|
): Promise<string | undefined> {
|
|
46
|
+
const flowBuilderPlugin = getFlowBuilderPlugin(request.plugins)
|
|
47
|
+
|
|
55
48
|
const handoffTargetNode = await flowBuilderPlugin.getHandoffContent(
|
|
56
49
|
handoffNode.target?.id
|
|
57
50
|
)
|
package/src/index.ts
CHANGED
|
@@ -5,7 +5,6 @@ import {
|
|
|
5
5
|
PluginPreRequest,
|
|
6
6
|
Session,
|
|
7
7
|
} from '@botonic/core'
|
|
8
|
-
import { ActionRequest } from '@botonic/react'
|
|
9
8
|
import axios from 'axios'
|
|
10
9
|
|
|
11
10
|
import {
|
|
@@ -38,16 +37,10 @@ export default class BotonicPluginFlowBuilder implements Plugin {
|
|
|
38
37
|
private currentRequest: PluginPreRequest
|
|
39
38
|
private getAccessToken: (session: Session) => string
|
|
40
39
|
public getLocale: (session: Session) => string
|
|
41
|
-
public trackEvent?: (
|
|
42
|
-
request: ActionRequest,
|
|
43
|
-
eventName: string,
|
|
44
|
-
args?: Record<string, any>
|
|
45
|
-
) => Promise<void>
|
|
46
40
|
|
|
47
41
|
constructor(readonly options: BotonicPluginFlowBuilderOptions) {
|
|
48
42
|
this.getLocale = options.getLocale
|
|
49
43
|
this.getAccessToken = resolveGetAccessToken(options)
|
|
50
|
-
this.trackEvent = options.trackEvent
|
|
51
44
|
this.flowUrl = options.flowUrl
|
|
52
45
|
if (options.flow) this.flow = options.flow
|
|
53
46
|
const customFunctions = options.customFunctions || {}
|
|
@@ -266,7 +259,7 @@ export default class BotonicPluginFlowBuilder implements Plugin {
|
|
|
266
259
|
|
|
267
260
|
const args = Object.assign(
|
|
268
261
|
{
|
|
269
|
-
|
|
262
|
+
session: this.currentRequest.session,
|
|
270
263
|
results: [functionNode.content.result_mapping.map(r => r.result)],
|
|
271
264
|
},
|
|
272
265
|
...nameValues
|
package/src/types.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Session } from '@botonic/core'
|
|
2
|
-
import { ActionRequest } from '@botonic/react'
|
|
3
2
|
|
|
4
3
|
import { FlowBuilderData } from './flow-builder-models'
|
|
5
4
|
|
|
@@ -9,11 +8,6 @@ export interface BotonicPluginFlowBuilderOptions {
|
|
|
9
8
|
customFunctions?: Record<any, any>
|
|
10
9
|
getLocale: (session: Session) => string
|
|
11
10
|
getAccessToken: () => string
|
|
12
|
-
trackEvent?: (
|
|
13
|
-
request: ActionRequest,
|
|
14
|
-
eventName: string,
|
|
15
|
-
args?: Record<string, any>
|
|
16
|
-
) => Promise<void>
|
|
17
11
|
}
|
|
18
12
|
|
|
19
13
|
export enum ProcessEnvNodeEnvs {
|