@botonic/plugin-flow-builder 0.24.5 → 0.24.6-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.
Files changed (68) hide show
  1. package/lib/cjs/action/index.js +4 -2
  2. package/lib/cjs/action/index.js.map +1 -1
  3. package/lib/cjs/action/knowledge-bases.js +1 -1
  4. package/lib/cjs/action/knowledge-bases.js.map +1 -1
  5. package/lib/cjs/api.d.ts +2 -1
  6. package/lib/cjs/api.js +15 -3
  7. package/lib/cjs/api.js.map +1 -1
  8. package/lib/cjs/constants.d.ts +3 -1
  9. package/lib/cjs/constants.js +4 -2
  10. package/lib/cjs/constants.js.map +1 -1
  11. package/lib/cjs/content-fields/flow-text.d.ts +3 -2
  12. package/lib/cjs/content-fields/flow-text.js +13 -10
  13. package/lib/cjs/content-fields/flow-text.js.map +1 -1
  14. package/lib/cjs/functions/conditional-bot-variable.d.ts +8 -0
  15. package/lib/cjs/functions/conditional-bot-variable.js +11 -0
  16. package/lib/cjs/functions/conditional-bot-variable.js.map +1 -0
  17. package/lib/cjs/functions/conditional-country.d.ts +7 -0
  18. package/lib/cjs/functions/conditional-country.js +9 -0
  19. package/lib/cjs/functions/conditional-country.js.map +1 -0
  20. package/lib/cjs/functions/conditional-provider.js +1 -3
  21. package/lib/cjs/functions/conditional-provider.js.map +1 -1
  22. package/lib/cjs/functions/index.d.ts +4 -0
  23. package/lib/cjs/functions/index.js +4 -0
  24. package/lib/cjs/functions/index.js.map +1 -1
  25. package/lib/cjs/types.d.ts +1 -1
  26. package/lib/cjs/utils.d.ts +2 -0
  27. package/lib/cjs/utils.js +12 -1
  28. package/lib/cjs/utils.js.map +1 -1
  29. package/lib/esm/action/index.js +4 -2
  30. package/lib/esm/action/index.js.map +1 -1
  31. package/lib/esm/action/knowledge-bases.js +1 -1
  32. package/lib/esm/action/knowledge-bases.js.map +1 -1
  33. package/lib/esm/api.d.ts +2 -1
  34. package/lib/esm/api.js +16 -4
  35. package/lib/esm/api.js.map +1 -1
  36. package/lib/esm/constants.d.ts +3 -1
  37. package/lib/esm/constants.js +3 -1
  38. package/lib/esm/constants.js.map +1 -1
  39. package/lib/esm/content-fields/flow-text.d.ts +3 -2
  40. package/lib/esm/content-fields/flow-text.js +14 -11
  41. package/lib/esm/content-fields/flow-text.js.map +1 -1
  42. package/lib/esm/functions/conditional-bot-variable.d.ts +8 -0
  43. package/lib/esm/functions/conditional-bot-variable.js +7 -0
  44. package/lib/esm/functions/conditional-bot-variable.js.map +1 -0
  45. package/lib/esm/functions/conditional-country.d.ts +7 -0
  46. package/lib/esm/functions/conditional-country.js +5 -0
  47. package/lib/esm/functions/conditional-country.js.map +1 -0
  48. package/lib/esm/functions/conditional-provider.js +1 -3
  49. package/lib/esm/functions/conditional-provider.js.map +1 -1
  50. package/lib/esm/functions/index.d.ts +4 -0
  51. package/lib/esm/functions/index.js +4 -0
  52. package/lib/esm/functions/index.js.map +1 -1
  53. package/lib/esm/types.d.ts +1 -1
  54. package/lib/esm/utils.d.ts +2 -0
  55. package/lib/esm/utils.js +10 -0
  56. package/lib/esm/utils.js.map +1 -1
  57. package/package.json +1 -1
  58. package/src/action/index.tsx +4 -2
  59. package/src/action/knowledge-bases.ts +1 -1
  60. package/src/api.ts +21 -4
  61. package/src/constants.ts +3 -1
  62. package/src/content-fields/flow-text.tsx +15 -17
  63. package/src/functions/conditional-bot-variable.ts +18 -0
  64. package/src/functions/conditional-country.ts +14 -0
  65. package/src/functions/conditional-provider.ts +1 -2
  66. package/src/functions/index.ts +4 -0
  67. package/src/types.ts +1 -1
  68. package/src/utils.ts +19 -0
@@ -21,7 +21,8 @@ class FlowBuilderAction extends react_2.default.Component {
21
21
  }
22
22
  render() {
23
23
  const { contents } = this.props;
24
- return contents.map(content => content.toBotonic(content.id));
24
+ const request = this.context;
25
+ return contents.map(content => content.toBotonic(content.id, request));
25
26
  }
26
27
  }
27
28
  exports.FlowBuilderAction = FlowBuilderAction;
@@ -29,7 +30,8 @@ FlowBuilderAction.contextType = react_1.RequestContext;
29
30
  class FlowBuilderMultichannelAction extends FlowBuilderAction {
30
31
  render() {
31
32
  const { contents } = this.props;
32
- return (react_2.default.createElement(react_1.Multichannel, { text: { buttonsAsText: false } }, contents.map(content => content.toBotonic(content.id))));
33
+ const request = this.context;
34
+ return (react_2.default.createElement(react_1.Multichannel, { text: { buttonsAsText: false } }, contents.map(content => content.toBotonic(content.id, request))));
33
35
  }
34
36
  }
35
37
  exports.FlowBuilderMultichannelAction = FlowBuilderMultichannelAction;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/action/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/action/index.tsx"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ async function createNodeFromKnowledgeBase(cmsApi, request) {
14
14
  (knowledgeBaseConfig === null || knowledgeBaseConfig === void 0 ? void 0 : knowledgeBaseConfig.isActive)) {
15
15
  try {
16
16
  const knowledgeBaseResponse = await flowBuilderPlugin.getKnowledgeBaseResponse(request);
17
- if (knowledgeBaseResponse.hasKnowledge) {
17
+ if (knowledgeBaseResponse.isValid) {
18
18
  await (0, tracking_1.trackEvent)(request, tracking_1.EventName.botAiKnowledgeBase, {
19
19
  answer: knowledgeBaseResponse.answer,
20
20
  knowledge_source_ids: knowledgeBaseResponse.sources.map(source => source.knowledgeSourceId),
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge-bases.js","sourceRoot":"","sources":["../../../src/action/knowledge-bases.ts"],"names":[],"mappings":";;;AAEA,mCAAmC;AAGnC,qEAIyC;AACzC,wCAAiD;AACjD,yCAAkD;AAE3C,KAAK,UAAU,2BAA2B,CAC/C,MAAsB,EACtB,OAAsB;IAEtB,MAAM,iBAAiB,GAAG,IAAA,8BAAoB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/D,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC3D,MAAM,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAA;IACvD,MAAM,mBAAmB,GAAG,MAAM,CAAC,sBAAsB,EAAE,CAAA;IAE3D,IACE,iBAAiB,CAAC,wBAAwB;SAC1C,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,QAAQ,CAAA,EAC7B;QACA,IAAI;YACF,MAAM,qBAAqB,GACzB,MAAM,iBAAiB,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAA;YAC3D,IAAI,qBAAqB,CAAC,YAAY,EAAE;gBACtC,MAAM,IAAA,qBAAU,EAAC,OAAO,EAAE,oBAAS,CAAC,kBAAkB,EAAE;oBACtD,MAAM,EAAE,qBAAqB,CAAC,MAAM;oBACpC,oBAAoB,EAAE,qBAAqB,CAAC,OAAO,CAAC,GAAG,CACrD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,iBAAiB,CACnC;iBACF,CAAC,CAAA;gBAEF,MAAM,iBAAiB,GAAe;oBACpC,IAAI,EAAE,sCAAqB,CAAC,IAAI;oBAChC,OAAO,EAAE;wBACP,IAAI,EAAE;4BACJ;gCACE,OAAO,EAAE,qBAAqB,CAAC,MAAM;gCACrC,MAAM,EAAE,cAAc;6BACvB;yBACF;wBACD,aAAa,EAAE,SAAS;wBACxB,OAAO,EAAE,EAAE;qBACZ;oBACD,EAAE,EAAE,IAAA,mBAAU,GAAE;oBAChB,IAAI,EAAE,oBAAoB;oBAC1B,IAAI,EAAE;wBACJ,CAAC,EAAE,CAAC;wBACJ,CAAC,EAAE,CAAC;qBACL;oBACD,SAAS,EAAE,mBAAmB,CAAC,QAAQ;iBACxC,CAAA;gBACD,OAAO,iBAAiB,CAAA;aACzB;SACF;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;YACxD,OAAO,SAAS,CAAA;SACjB;KACF;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AApDD,kEAoDC"}
1
+ {"version":3,"file":"knowledge-bases.js","sourceRoot":"","sources":["../../../src/action/knowledge-bases.ts"],"names":[],"mappings":";;;AAEA,mCAAmC;AAGnC,qEAIyC;AACzC,wCAAiD;AACjD,yCAAkD;AAE3C,KAAK,UAAU,2BAA2B,CAC/C,MAAsB,EACtB,OAAsB;IAEtB,MAAM,iBAAiB,GAAG,IAAA,8BAAoB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/D,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC3D,MAAM,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAA;IACvD,MAAM,mBAAmB,GAAG,MAAM,CAAC,sBAAsB,EAAE,CAAA;IAE3D,IACE,iBAAiB,CAAC,wBAAwB;SAC1C,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,QAAQ,CAAA,EAC7B;QACA,IAAI;YACF,MAAM,qBAAqB,GACzB,MAAM,iBAAiB,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAA;YAC3D,IAAI,qBAAqB,CAAC,OAAO,EAAE;gBACjC,MAAM,IAAA,qBAAU,EAAC,OAAO,EAAE,oBAAS,CAAC,kBAAkB,EAAE;oBACtD,MAAM,EAAE,qBAAqB,CAAC,MAAM;oBACpC,oBAAoB,EAAE,qBAAqB,CAAC,OAAO,CAAC,GAAG,CACrD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,iBAAiB,CACnC;iBACF,CAAC,CAAA;gBAEF,MAAM,iBAAiB,GAAe;oBACpC,IAAI,EAAE,sCAAqB,CAAC,IAAI;oBAChC,OAAO,EAAE;wBACP,IAAI,EAAE;4BACJ;gCACE,OAAO,EAAE,qBAAqB,CAAC,MAAM;gCACrC,MAAM,EAAE,cAAc;6BACvB;yBACF;wBACD,aAAa,EAAE,SAAS;wBACxB,OAAO,EAAE,EAAE;qBACZ;oBACD,EAAE,EAAE,IAAA,mBAAU,GAAE;oBAChB,IAAI,EAAE,oBAAoB;oBAC1B,IAAI,EAAE;wBACJ,CAAC,EAAE,CAAC;wBACJ,CAAC,EAAE,CAAC;qBACL;oBACD,SAAS,EAAE,mBAAmB,CAAC,QAAQ;iBACxC,CAAA;gBACD,OAAO,iBAAiB,CAAA;aACzB;SACF;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;YACxD,OAAO,SAAS,CAAA;SACjB;KACF;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AApDD,kEAoDC"}
package/lib/cjs/api.d.ts CHANGED
@@ -22,7 +22,8 @@ export declare class FlowBuilderApi {
22
22
  hasMetConfidenceThreshold(node: HtIntentNode, predictedConfidence: number): boolean;
23
23
  getNodeByKeyword(userInput: string, locale: string): HtKeywordNode | undefined;
24
24
  private matchKeywords;
25
- private containsAnyKeywords;
25
+ private inputMatchesAnyKeyword;
26
+ private resolveKeywordAsRegExp;
26
27
  getPayload(target?: HtNodeLink): string | undefined;
27
28
  private createPayloadWithParams;
28
29
  getResolvedLocale(locale: string): string;
package/lib/cjs/api.js CHANGED
@@ -108,11 +108,23 @@ class FlowBuilderApi {
108
108
  return undefined;
109
109
  }
110
110
  matchKeywords(node, input, locale) {
111
- const result = node.content.keywords.find(i => i.locale === locale && this.containsAnyKeywords(input, i.values));
111
+ const result = node.content.keywords.find(keywords => keywords.locale === locale &&
112
+ this.inputMatchesAnyKeyword(input, keywords.values));
112
113
  return Boolean(result);
113
114
  }
114
- containsAnyKeywords(input, keywords) {
115
- return keywords.some(keyword => input.includes(keyword));
115
+ inputMatchesAnyKeyword(input, keywords) {
116
+ return keywords.some(keyword => {
117
+ const regExpMatchArray = keyword.match(constants_1.REG_EXP_PATTERN);
118
+ if (regExpMatchArray) {
119
+ return this.resolveKeywordAsRegExp(regExpMatchArray, input);
120
+ }
121
+ return input.includes(keyword);
122
+ });
123
+ }
124
+ resolveKeywordAsRegExp(regExpMatchArray, input) {
125
+ const [, pattern, flags] = regExpMatchArray;
126
+ const keywordAsRegExp = new RegExp(pattern, flags);
127
+ return input.match(keywordAsRegExp);
116
128
  }
117
129
  getPayload(target) {
118
130
  if (!target) {
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
1
  export declare const SEPARATOR = "|";
2
2
  export declare const SOURCE_INFO_SEPARATOR: string;
3
- export declare const VARIABLE_REGEX: RegExp;
3
+ export declare const VARIABLE_PATTERN: RegExp;
4
+ export declare const ACCESS_TOKEN_VARIABLE_KEY = "_access_token";
5
+ export declare const REG_EXP_PATTERN: RegExp;
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VARIABLE_REGEX = exports.SOURCE_INFO_SEPARATOR = exports.SEPARATOR = void 0;
3
+ exports.REG_EXP_PATTERN = exports.ACCESS_TOKEN_VARIABLE_KEY = exports.VARIABLE_PATTERN = exports.SOURCE_INFO_SEPARATOR = exports.SEPARATOR = void 0;
4
4
  exports.SEPARATOR = '|';
5
5
  exports.SOURCE_INFO_SEPARATOR = `${exports.SEPARATOR}source_`;
6
- exports.VARIABLE_REGEX = /{([^}]+)}/g;
6
+ exports.VARIABLE_PATTERN = /{([^}]+)}/g;
7
+ exports.ACCESS_TOKEN_VARIABLE_KEY = '_access_token';
8
+ exports.REG_EXP_PATTERN = /^\/(.*)\/([gimyus]*)$/;
7
9
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG,GAAG,CAAA;AACf,QAAA,qBAAqB,GAAG,GAAG,iBAAS,SAAS,CAAA;AAC7C,QAAA,cAAc,GAAG,YAAY,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG,GAAG,CAAA;AACf,QAAA,qBAAqB,GAAG,GAAG,iBAAS,SAAS,CAAA;AAC7C,QAAA,gBAAgB,GAAG,YAAY,CAAA;AAC/B,QAAA,yBAAyB,GAAG,eAAe,CAAA;AAC3C,QAAA,eAAe,GAAG,uBAAuB,CAAA"}
@@ -1,4 +1,5 @@
1
1
  /// <reference types="react" />
2
+ import { ActionRequest } from '@botonic/react';
2
3
  import { FlowBuilderApi } from '../api';
3
4
  import { ContentFieldsBase } from './content-fields-base';
4
5
  import { FlowButton } from './flow-button';
@@ -9,6 +10,6 @@ export declare class FlowText extends ContentFieldsBase {
9
10
  buttons: FlowButton[];
10
11
  buttonStyle: HtButtonStyle;
11
12
  static fromHubtypeCMS(cmsText: HtTextNode, locale: string, cmsApi: FlowBuilderApi): FlowText;
12
- static replaceVariables(text: string, extraData?: Record<string, any>): string;
13
- toBotonic(id: string): JSX.Element;
13
+ static replaceVariables(text: string, request: ActionRequest): string;
14
+ toBotonic(id: string, request: ActionRequest): JSX.Element;
14
15
  }
@@ -5,6 +5,7 @@ const tslib_1 = require("tslib");
5
5
  const react_1 = require("@botonic/react");
6
6
  const react_2 = tslib_1.__importDefault(require("react"));
7
7
  const constants_1 = require("../constants");
8
+ const utils_1 = require("../utils");
8
9
  const content_fields_base_1 = require("./content-fields-base");
9
10
  const flow_button_1 = require("./flow-button");
10
11
  const hubtype_fields_1 = require("./hubtype-fields");
@@ -20,26 +21,28 @@ class FlowText extends content_fields_base_1.ContentFieldsBase {
20
21
  const newText = new FlowText(cmsText.id);
21
22
  newText.code = cmsText.code;
22
23
  newText.buttonStyle = cmsText.content.buttons_style || hubtype_fields_1.HtButtonStyle.BUTTON;
23
- newText.text = this.replaceVariables(this.getTextByLocale(locale, cmsText.content.text), cmsApi.request.session.user.extra_data);
24
+ newText.text = this.getTextByLocale(locale, cmsText.content.text);
24
25
  newText.buttons = cmsText.content.buttons.map(button => flow_button_1.FlowButton.fromHubtypeCMS(button, locale, cmsApi));
25
26
  return newText;
26
27
  }
27
- static replaceVariables(text, extraData) {
28
- const matches = text.match(constants_1.VARIABLE_REGEX);
28
+ static replaceVariables(text, request) {
29
+ const matches = text.match(constants_1.VARIABLE_PATTERN);
29
30
  let replacedText = text;
30
- if (matches && extraData) {
31
+ if (matches && request) {
31
32
  matches.forEach(match => {
32
- var _a;
33
- const variable = match.slice(1, -1);
34
- const value = (_a = extraData[variable]) !== null && _a !== void 0 ? _a : match;
35
- replacedText = replacedText.replace(match, value);
33
+ const keyPath = match.slice(1, -1);
34
+ const botVariable = keyPath.endsWith(constants_1.ACCESS_TOKEN_VARIABLE_KEY)
35
+ ? (0, utils_1.getValueFromKeyPath)(request, match)
36
+ : (0, utils_1.getValueFromKeyPath)(request, keyPath);
37
+ replacedText = replacedText.replace(match, botVariable !== null && botVariable !== void 0 ? botVariable : match);
36
38
  });
37
39
  }
38
40
  return replacedText;
39
41
  }
40
- toBotonic(id) {
42
+ toBotonic(id, request) {
43
+ const replacedText = FlowText.replaceVariables(this.text, request);
41
44
  return (react_2.default.createElement(react_1.Text, { key: id },
42
- this.text,
45
+ replacedText,
43
46
  this.buttons.map((button, buttonIndex) => button.renderButton(buttonIndex, this.buttonStyle))));
44
47
  }
45
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"flow-text.js","sourceRoot":"","sources":["../../../src/content-fields/flow-text.tsx"],"names":[],"mappings":";;;;AAAA,0CAAqC;AACrC,0DAAyB;AAGzB,4CAA6C;AAC7C,+DAAyD;AACzD,+CAA0C;AAC1C,qDAA4D;AAE5D,MAAa,QAAS,SAAQ,uCAAiB;IAA/C;;QACS,SAAI,GAAG,EAAE,CAAA;QACT,SAAI,GAAG,EAAE,CAAA;QACT,YAAO,GAAiB,EAAE,CAAA;QAC1B,gBAAW,GAAG,8BAAa,CAAC,MAAM,CAAA;IAgD3C,CAAC;IA9CC,MAAM,CAAC,cAAc,CACnB,OAAmB,EACnB,MAAc,EACd,MAAsB;QAEtB,MAAM,OAAO,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACxC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QAC3B,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,IAAI,8BAAa,CAAC,MAAM,CAAA;QAC3E,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAClC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAClD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CACvC,CAAA;QACD,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CACrD,wBAAU,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAClD,CAAA;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,MAAM,CAAC,gBAAgB,CACrB,IAAY,EACZ,SAA+B;QAE/B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,0BAAc,CAAC,CAAA;QAE1C,IAAI,YAAY,GAAG,IAAI,CAAA;QACvB,IAAI,OAAO,IAAI,SAAS,EAAE;YACxB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;;gBACtB,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;gBACnC,MAAM,KAAK,GAAG,MAAA,SAAS,CAAC,QAAQ,CAAC,mCAAI,KAAK,CAAA;gBAC1C,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YACnD,CAAC,CAAC,CAAA;SACH;QAED,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,SAAS,CAAC,EAAU;QAClB,OAAO,CACL,8BAAC,YAAI,IAAC,GAAG,EAAE,EAAE;YACV,IAAI,CAAC,IAAI;YACT,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,CACxC,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CACnD,CACI,CACR,CAAA;IACH,CAAC;CACF;AApDD,4BAoDC"}
1
+ {"version":3,"file":"flow-text.js","sourceRoot":"","sources":["../../../src/content-fields/flow-text.tsx"],"names":[],"mappings":";;;;AAAA,0CAAoD;AACpD,0DAAyB;AAGzB,4CAA0E;AAC1E,oCAA8C;AAC9C,+DAAyD;AACzD,+CAA0C;AAC1C,qDAA4D;AAE5D,MAAa,QAAS,SAAQ,uCAAiB;IAA/C;;QACS,SAAI,GAAG,EAAE,CAAA;QACT,SAAI,GAAG,EAAE,CAAA;QACT,YAAO,GAAiB,EAAE,CAAA;QAC1B,gBAAW,GAAG,8BAAa,CAAC,MAAM,CAAA;IA6C3C,CAAC;IA3CC,MAAM,CAAC,cAAc,CACnB,OAAmB,EACnB,MAAc,EACd,MAAsB;QAEtB,MAAM,OAAO,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACxC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QAC3B,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,IAAI,8BAAa,CAAC,MAAM,CAAA;QAC3E,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACjE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CACrD,wBAAU,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAClD,CAAA;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,IAAY,EAAE,OAAsB;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,4BAAgB,CAAC,CAAA;QAE5C,IAAI,YAAY,GAAG,IAAI,CAAA;QACvB,IAAI,OAAO,IAAI,OAAO,EAAE;YACtB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACtB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;gBAClC,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,qCAAyB,CAAC;oBAC7D,CAAC,CAAC,IAAA,2BAAmB,EAAC,OAAO,EAAE,KAAK,CAAC;oBACrC,CAAC,CAAC,IAAA,2BAAmB,EAAC,OAAO,EAAE,OAAO,CAAC,CAAA;gBACzC,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,KAAK,CAAC,CAAA;YAClE,CAAC,CAAC,CAAA;SACH;QAED,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,SAAS,CAAC,EAAU,EAAE,OAAsB;QAC1C,MAAM,YAAY,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAClE,OAAO,CACL,8BAAC,YAAI,IAAC,GAAG,EAAE,EAAE;YACV,YAAY;YACZ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,CACxC,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CACnD,CACI,CACR,CAAA;IACH,CAAC;CACF;AAjDD,4BAiDC"}
@@ -0,0 +1,8 @@
1
+ import { ActionRequest } from '@botonic/react';
2
+ interface ConditionalCountryArgs {
3
+ request: ActionRequest;
4
+ results: string[];
5
+ keyPath: string;
6
+ }
7
+ export declare function conditionalBotVariable({ request, results, keyPath, }: ConditionalCountryArgs): string;
8
+ export {};
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.conditionalBotVariable = void 0;
4
+ const utils_1 = require("../utils");
5
+ function conditionalBotVariable({ request, results, keyPath, }) {
6
+ var _a;
7
+ const botVariable = (0, utils_1.getValueFromKeyPath)(request, keyPath);
8
+ return (_a = results.find(result => result === botVariable)) !== null && _a !== void 0 ? _a : 'default';
9
+ }
10
+ exports.conditionalBotVariable = conditionalBotVariable;
11
+ //# sourceMappingURL=conditional-bot-variable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conditional-bot-variable.js","sourceRoot":"","sources":["../../../src/functions/conditional-bot-variable.ts"],"names":[],"mappings":";;;AAEA,oCAA8C;AAQ9C,SAAgB,sBAAsB,CAAC,EACrC,OAAO,EACP,OAAO,EACP,OAAO,GACgB;;IACvB,MAAM,WAAW,GAAG,IAAA,2BAAmB,EAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACzD,OAAO,MAAA,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,WAAW,CAAC,mCAAI,SAAS,CAAA;AACpE,CAAC;AAPD,wDAOC"}
@@ -0,0 +1,7 @@
1
+ import { ActionRequest } from '@botonic/react';
2
+ interface ConditionalCountryArgs {
3
+ request: ActionRequest;
4
+ results: string[];
5
+ }
6
+ export declare function conditionalCountry({ request, results, }: ConditionalCountryArgs): string;
7
+ export {};
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.conditionalCountry = void 0;
4
+ function conditionalCountry({ request, results, }) {
5
+ const country = request.session.user.extra_data.country;
6
+ return results.find(result => result === country) || 'default';
7
+ }
8
+ exports.conditionalCountry = conditionalCountry;
9
+ //# sourceMappingURL=conditional-country.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conditional-country.js","sourceRoot":"","sources":["../../../src/functions/conditional-country.ts"],"names":[],"mappings":";;;AAOA,SAAgB,kBAAkB,CAAC,EACjC,OAAO,EACP,OAAO,GACgB;IACvB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAA;IACvD,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,OAAO,CAAC,IAAI,SAAS,CAAA;AAChE,CAAC;AAND,gDAMC"}
@@ -3,9 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.conditionalProvider = void 0;
4
4
  function conditionalProvider({ request, results, }) {
5
5
  const provider = request.session.user.provider;
6
- if (results.includes(provider))
7
- return provider;
8
- return 'default';
6
+ return results.find(result => result === provider) || 'default';
9
7
  }
10
8
  exports.conditionalProvider = conditionalProvider;
11
9
  //# sourceMappingURL=conditional-provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conditional-provider.js","sourceRoot":"","sources":["../../../src/functions/conditional-provider.ts"],"names":[],"mappings":";;;AAOA,SAAgB,mBAAmB,CAAC,EAClC,OAAO,EACP,OAAO,GACiB;IACxB,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAA;IAC9C,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAA;IAC/C,OAAO,SAAS,CAAA;AAClB,CAAC;AAPD,kDAOC"}
1
+ {"version":3,"file":"conditional-provider.js","sourceRoot":"","sources":["../../../src/functions/conditional-provider.ts"],"names":[],"mappings":";;;AAOA,SAAgB,mBAAmB,CAAC,EAClC,OAAO,EACP,OAAO,GACiB;IACxB,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAA;IAC9C,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,QAAQ,CAAC,IAAI,SAAS,CAAA;AACjE,CAAC;AAND,kDAMC"}
@@ -1,6 +1,10 @@
1
+ import { conditionalBotVariable } from './conditional-bot-variable';
2
+ import { conditionalCountry } from './conditional-country';
1
3
  import { conditionalProvider } from './conditional-provider';
2
4
  import { conditionalQueueStatus } from './conditional-queue-status';
3
5
  export declare const DEFAULT_FUNCTIONS: {
4
6
  'check-queue-status': typeof conditionalQueueStatus;
5
7
  'get-channel-type': typeof conditionalProvider;
8
+ 'check-country': typeof conditionalCountry;
9
+ 'check-bot-variable': typeof conditionalBotVariable;
6
10
  };
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DEFAULT_FUNCTIONS = void 0;
4
+ const conditional_bot_variable_1 = require("./conditional-bot-variable");
5
+ const conditional_country_1 = require("./conditional-country");
4
6
  const conditional_provider_1 = require("./conditional-provider");
5
7
  const conditional_queue_status_1 = require("./conditional-queue-status");
6
8
  exports.DEFAULT_FUNCTIONS = {
7
9
  // TODO: Rename api action name
8
10
  'check-queue-status': conditional_queue_status_1.conditionalQueueStatus,
9
11
  'get-channel-type': conditional_provider_1.conditionalProvider,
12
+ 'check-country': conditional_country_1.conditionalCountry,
13
+ 'check-bot-variable': conditional_bot_variable_1.conditionalBotVariable,
10
14
  };
11
15
  //# 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,oBAAoB,EAAE,iDAAsB;IAC5C,kBAAkB,EAAE,0CAAmB;CACxC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/functions/index.ts"],"names":[],"mappings":";;;AAAA,yEAAmE;AACnE,+DAA0D;AAC1D,iEAA4D;AAC5D,yEAAmE;AAEtD,QAAA,iBAAiB,GAAG;IAC/B,+BAA+B;IAC/B,oBAAoB,EAAE,iDAAsB;IAC5C,kBAAkB,EAAE,0CAAmB;IACvC,eAAe,EAAE,wCAAkB;IACnC,oBAAoB,EAAE,iDAAsB;CAC7C,CAAA"}
@@ -22,7 +22,7 @@ export declare enum ProcessEnvNodeEnvs {
22
22
  }
23
23
  export interface KnowledgeBaseResponse {
24
24
  answer: string;
25
- hasKnowledge: boolean;
25
+ isValid: boolean;
26
26
  sources: {
27
27
  knowledgeSourceId: string;
28
28
  page?: number;
@@ -1,3 +1,5 @@
1
1
  import { Session } from '@botonic/core';
2
+ import { ActionRequest } from '@botonic/react';
2
3
  import { BotonicPluginFlowBuilderOptions } from './types';
3
4
  export declare function resolveGetAccessToken(options: BotonicPluginFlowBuilderOptions): (session: Session) => string;
5
+ export declare function getValueFromKeyPath(request: ActionRequest, keyPath: string): any;
package/lib/cjs/utils.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolveGetAccessToken = void 0;
3
+ exports.getValueFromKeyPath = exports.resolveGetAccessToken = void 0;
4
4
  const types_1 = require("./types");
5
5
  function getAccessTokenFromSession(session) {
6
6
  if (!session._access_token) {
@@ -19,4 +19,15 @@ function resolveGetAccessToken(options) {
19
19
  }
20
20
  }
21
21
  exports.resolveGetAccessToken = resolveGetAccessToken;
22
+ function getValueFromKeyPath(request, keyPath) {
23
+ if (keyPath.startsWith('input') || keyPath.startsWith('session')) {
24
+ return keyPath
25
+ .split('.')
26
+ .reduce((object, key) => (object && object[key]) || undefined, request);
27
+ }
28
+ return keyPath
29
+ .split('.')
30
+ .reduce((object, key) => (object && object[key]) || undefined, request.session.user.extra_data);
31
+ }
32
+ exports.getValueFromKeyPath = getValueFromKeyPath;
22
33
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;;AAEA,mCAA6E;AAE7E,SAAS,yBAAyB,CAAC,OAAgB;IACjD,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;KACpD;IACD,OAAO,OAAO,CAAC,aAAa,CAAA;AAC9B,CAAC;AAED,SAAgB,qBAAqB,CACnC,OAAwC;IAExC,QAAQ,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;QAC5B,KAAK,0BAAkB,CAAC,UAAU;YAChC,OAAO,yBAAyB,CAAA;QAClC,KAAK,0BAAkB,CAAC,WAAW;YACjC,OAAO,OAAO,CAAC,cAAc,CAAA;QAC/B;YACE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;KAChE;AACH,CAAC;AAXD,sDAWC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;;AAGA,mCAA6E;AAE7E,SAAS,yBAAyB,CAAC,OAAgB;IACjD,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;KACpD;IACD,OAAO,OAAO,CAAC,aAAa,CAAA;AAC9B,CAAC;AAED,SAAgB,qBAAqB,CACnC,OAAwC;IAExC,QAAQ,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;QAC5B,KAAK,0BAAkB,CAAC,UAAU;YAChC,OAAO,yBAAyB,CAAA;QAClC,KAAK,0BAAkB,CAAC,WAAW;YACjC,OAAO,OAAO,CAAC,cAAc,CAAA;QAC/B;YACE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;KAChE;AACH,CAAC;AAXD,sDAWC;AAED,SAAgB,mBAAmB,CACjC,OAAsB,EACtB,OAAe;IAEf,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;QAChE,OAAO,OAAO;aACX,KAAK,CAAC,GAAG,CAAC;aACV,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,SAAS,EAAE,OAAO,CAAC,CAAA;KAC1E;IAED,OAAO,OAAO;SACX,KAAK,CAAC,GAAG,CAAC;SACV,MAAM,CACL,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,SAAS,EACrD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAChC,CAAA;AACL,CAAC;AAhBD,kDAgBC"}
@@ -17,14 +17,16 @@ export class FlowBuilderAction extends React.Component {
17
17
  }
18
18
  render() {
19
19
  const { contents } = this.props;
20
- return contents.map(content => content.toBotonic(content.id));
20
+ const request = this.context;
21
+ return contents.map(content => content.toBotonic(content.id, request));
21
22
  }
22
23
  }
23
24
  FlowBuilderAction.contextType = RequestContext;
24
25
  export class FlowBuilderMultichannelAction extends FlowBuilderAction {
25
26
  render() {
26
27
  const { contents } = this.props;
27
- return (React.createElement(Multichannel, { text: { buttonsAsText: false } }, contents.map(content => content.toBotonic(content.id))));
28
+ const request = this.context;
29
+ return (React.createElement(Multichannel, { text: { buttonsAsText: false } }, contents.map(content => content.toBotonic(content.id, request))));
28
30
  }
29
31
  }
30
32
  async function getTargetNode(cmsApi, request) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/action/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/action/index.tsx"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ export async function createNodeFromKnowledgeBase(cmsApi, request) {
11
11
  (knowledgeBaseConfig === null || knowledgeBaseConfig === void 0 ? void 0 : knowledgeBaseConfig.isActive)) {
12
12
  try {
13
13
  const knowledgeBaseResponse = await flowBuilderPlugin.getKnowledgeBaseResponse(request);
14
- if (knowledgeBaseResponse.hasKnowledge) {
14
+ if (knowledgeBaseResponse.isValid) {
15
15
  await trackEvent(request, EventName.botAiKnowledgeBase, {
16
16
  answer: knowledgeBaseResponse.answer,
17
17
  knowledge_source_ids: knowledgeBaseResponse.sources.map(source => source.knowledgeSourceId),
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge-bases.js","sourceRoot":"","sources":["../../../src/action/knowledge-bases.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAGnC,OAAO,EAEL,qBAAqB,GAEtB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAElD,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,MAAsB,EACtB,OAAsB;IAEtB,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/D,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC3D,MAAM,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAA;IACvD,MAAM,mBAAmB,GAAG,MAAM,CAAC,sBAAsB,EAAE,CAAA;IAE3D,IACE,iBAAiB,CAAC,wBAAwB;SAC1C,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,QAAQ,CAAA,EAC7B;QACA,IAAI;YACF,MAAM,qBAAqB,GACzB,MAAM,iBAAiB,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAA;YAC3D,IAAI,qBAAqB,CAAC,YAAY,EAAE;gBACtC,MAAM,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,kBAAkB,EAAE;oBACtD,MAAM,EAAE,qBAAqB,CAAC,MAAM;oBACpC,oBAAoB,EAAE,qBAAqB,CAAC,OAAO,CAAC,GAAG,CACrD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,iBAAiB,CACnC;iBACF,CAAC,CAAA;gBAEF,MAAM,iBAAiB,GAAe;oBACpC,IAAI,EAAE,qBAAqB,CAAC,IAAI;oBAChC,OAAO,EAAE;wBACP,IAAI,EAAE;4BACJ;gCACE,OAAO,EAAE,qBAAqB,CAAC,MAAM;gCACrC,MAAM,EAAE,cAAc;6BACvB;yBACF;wBACD,aAAa,EAAE,SAAS;wBACxB,OAAO,EAAE,EAAE;qBACZ;oBACD,EAAE,EAAE,UAAU,EAAE;oBAChB,IAAI,EAAE,oBAAoB;oBAC1B,IAAI,EAAE;wBACJ,CAAC,EAAE,CAAC;wBACJ,CAAC,EAAE,CAAC;qBACL;oBACD,SAAS,EAAE,mBAAmB,CAAC,QAAQ;iBACxC,CAAA;gBACD,OAAO,iBAAiB,CAAA;aACzB;SACF;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;YACxD,OAAO,SAAS,CAAA;SACjB;KACF;IACD,OAAO,SAAS,CAAA;AAClB,CAAC"}
1
+ {"version":3,"file":"knowledge-bases.js","sourceRoot":"","sources":["../../../src/action/knowledge-bases.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAGnC,OAAO,EAEL,qBAAqB,GAEtB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAElD,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,MAAsB,EACtB,OAAsB;IAEtB,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/D,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC3D,MAAM,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAA;IACvD,MAAM,mBAAmB,GAAG,MAAM,CAAC,sBAAsB,EAAE,CAAA;IAE3D,IACE,iBAAiB,CAAC,wBAAwB;SAC1C,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,QAAQ,CAAA,EAC7B;QACA,IAAI;YACF,MAAM,qBAAqB,GACzB,MAAM,iBAAiB,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAA;YAC3D,IAAI,qBAAqB,CAAC,OAAO,EAAE;gBACjC,MAAM,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,kBAAkB,EAAE;oBACtD,MAAM,EAAE,qBAAqB,CAAC,MAAM;oBACpC,oBAAoB,EAAE,qBAAqB,CAAC,OAAO,CAAC,GAAG,CACrD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,iBAAiB,CACnC;iBACF,CAAC,CAAA;gBAEF,MAAM,iBAAiB,GAAe;oBACpC,IAAI,EAAE,qBAAqB,CAAC,IAAI;oBAChC,OAAO,EAAE;wBACP,IAAI,EAAE;4BACJ;gCACE,OAAO,EAAE,qBAAqB,CAAC,MAAM;gCACrC,MAAM,EAAE,cAAc;6BACvB;yBACF;wBACD,aAAa,EAAE,SAAS;wBACxB,OAAO,EAAE,EAAE;qBACZ;oBACD,EAAE,EAAE,UAAU,EAAE;oBAChB,IAAI,EAAE,oBAAoB;oBAC1B,IAAI,EAAE;wBACJ,CAAC,EAAE,CAAC;wBACJ,CAAC,EAAE,CAAC;qBACL;oBACD,SAAS,EAAE,mBAAmB,CAAC,QAAQ;iBACxC,CAAA;gBACD,OAAO,iBAAiB,CAAA;aACzB;SACF;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;YACxD,OAAO,SAAS,CAAA;SACjB;KACF;IACD,OAAO,SAAS,CAAA;AAClB,CAAC"}
package/lib/esm/api.d.ts CHANGED
@@ -22,7 +22,8 @@ export declare class FlowBuilderApi {
22
22
  hasMetConfidenceThreshold(node: HtIntentNode, predictedConfidence: number): boolean;
23
23
  getNodeByKeyword(userInput: string, locale: string): HtKeywordNode | undefined;
24
24
  private matchKeywords;
25
- private containsAnyKeywords;
25
+ private inputMatchesAnyKeyword;
26
+ private resolveKeywordAsRegExp;
26
27
  getPayload(target?: HtNodeLink): string | undefined;
27
28
  private createPayloadWithParams;
28
29
  getResolvedLocale(locale: string): string;
package/lib/esm/api.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import axios from 'axios';
2
- import { SEPARATOR } from './constants';
2
+ import { REG_EXP_PATTERN, SEPARATOR } from './constants';
3
3
  import { HtNodeWithContentType, HtNodeWithoutContentType, } from './content-fields/hubtype-fields';
4
4
  export class FlowBuilderApi {
5
5
  constructor() { }
@@ -104,11 +104,23 @@ export class FlowBuilderApi {
104
104
  return undefined;
105
105
  }
106
106
  matchKeywords(node, input, locale) {
107
- const result = node.content.keywords.find(i => i.locale === locale && this.containsAnyKeywords(input, i.values));
107
+ const result = node.content.keywords.find(keywords => keywords.locale === locale &&
108
+ this.inputMatchesAnyKeyword(input, keywords.values));
108
109
  return Boolean(result);
109
110
  }
110
- containsAnyKeywords(input, keywords) {
111
- return keywords.some(keyword => input.includes(keyword));
111
+ inputMatchesAnyKeyword(input, keywords) {
112
+ return keywords.some(keyword => {
113
+ const regExpMatchArray = keyword.match(REG_EXP_PATTERN);
114
+ if (regExpMatchArray) {
115
+ return this.resolveKeywordAsRegExp(regExpMatchArray, input);
116
+ }
117
+ return input.includes(keyword);
118
+ });
119
+ }
120
+ resolveKeywordAsRegExp(regExpMatchArray, input) {
121
+ const [, pattern, flags] = regExpMatchArray;
122
+ const keywordAsRegExp = new RegExp(pattern, flags);
123
+ return input.match(keywordAsRegExp);
112
124
  }
113
125
  getPayload(target) {
114
126
  if (!target) {
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EASL,qBAAqB,EACrB,wBAAwB,GAEzB,MAAM,iCAAiC,CAAA;AAGxC,MAAM,OAAO,cAAc;IAKzB,gBAAuB,CAAC;IAExB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAA8B;;QAChD,MAAM,MAAM,GAAG,IAAI,cAAc,EAAE,CAAA;QAEnC,MAAM,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;QACxB,MAAM,CAAC,IAAI,GAAG,MAAA,OAAO,CAAC,IAAI,mCAAI,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAA;QACzE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;QAEhC,OAAO,MAAM,CAAA;IACf,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,KAAa;QACjC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE;YACzC,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;SAC9C,CAAC,CAAA;QACF,OAAO,IAAyB,CAAA;IAClC,CAAC;IAED,eAAe,CAAC,EAAU;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;QAClE,IAAI,CAAC,OAAO;YAAE,MAAM,KAAK,CAAC,qBAAqB,EAAE,aAAa,CAAC,CAAA;QAC/D,OAAO,IAAI,CAAC,WAAW,CAAoB,OAAO,CAAC,aAAa,CAAC,CAAA;IACnE,CAAC;IAED,WAAW,CAA4B,EAAU;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;QACzD,IAAI,CAAC,IAAI;YAAE,MAAM,KAAK,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAA;QACzD,IAAI,IAAI,CAAC,IAAI,KAAK,wBAAwB,CAAC,UAAU,EAAE;YACrD,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAM,CAAA;SACvD;QACD,OAAO,IAAS,CAAA;IAClB,CAAC;IAED,aAAa,CAAC,IAAY;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC1C,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAC5C,CAAA;QACD,IAAI,CAAC,OAAO;YAAE,MAAM,KAAK,CAAC,oBAAoB,IAAI,aAAa,CAAC,CAAA;QAChE,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,YAAY;QACV,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAA;QAC3C,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAClE,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAA;IACtC,CAAC;IAED,eAAe,CAAC,SAAkB;QAChC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CACvC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,qBAAqB,CAAC,QAAQ,CACvB,CAAA;QAC/B,IAAI,CAAC,YAAY,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;SACjD;QACD,MAAM,oBAAoB,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAA;QAC/D,IAAI,CAAC,oBAAoB,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;SACxD;QACD,MAAM,qBAAqB,GAAG,YAAY,CAAC,OAAO,CAAC,cAAc,CAAA;QACjE,IAAI,CAAC,qBAAqB,EAAE;YAC1B,OAAO,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAA;SACjD;QACD,OAAO,SAAS;YACd,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,EAAE,CAAC;YAC3C,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAA;IAChD,CAAC;IAED,sBAAsB;QAGpB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CACvC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,qBAAqB,CAAC,QAAQ,CACvB,CAAA;QAE/B,OAAO,YAAY;YACjB,CAAC,CAAC;gBACE,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,uBAAuB;gBACtD,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,wBAAwB,IAAI,KAAK;aACjE;YACH,CAAC,CAAC,SAAS,CAAA;IACf,CAAC;IAED,aAAa,CAAC,KAAY,EAAE,MAAc;QACxC,IAAI;YACF,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CACzC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,qBAAqB,CAAC,MAAM,CACjC,CAAA;YACnB,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAA;YAChC,IAAI,WAAW,EAAE;gBACf,OAAO,YAAY,CAAC,IAAI,CACtB,IAAI,CAAC,EAAE,CACL,WAAW,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,CACpE,CAAA;aACF;SACF;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,iCAAiC,KAAK,CAAC,MAAM,KAAK,EAAE,KAAK,CAAC,CAAA;SACzE;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAEO,kBAAkB,CACxB,IAAkB,EAClB,MAAc,EACd,MAAc;QAEd,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CACtD,CAAA;IACH,CAAC;IAED,yBAAyB,CACvB,IAAkB,EAClB,mBAA2B;QAE3B,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,GAAG,CAAA;QACpD,OAAO,mBAAmB,IAAI,cAAc,CAAA;IAC9C,CAAC;IAED,gBAAgB,CACd,SAAiB,EACjB,MAAc;QAEd,IAAI;YACF,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CACzC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,qBAAqB,CAAC,OAAO,CACjC,CAAA;YACpB,MAAM,mBAAmB,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CACrD,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAC5C,CAAA;YACD,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,IAAI,mBAAmB,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;gBACnE,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAA;aAC9B;SACF;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,kCAAkC,SAAS,KAAK,EAAE,KAAK,CAAC,CAAA;SACvE;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAEO,aAAa,CACnB,IAAmB,EACnB,KAAa,EACb,MAAc;QAEd,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CACvC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CACtE,CAAA;QACD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAA;IACxB,CAAC;IAEO,mBAAmB,CAAC,KAAa,EAAE,QAAkB;QAC3D,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;IAC1D,CAAC;IAED,UAAU,CAAC,MAAmB;QAC5B,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,SAAS,CAAA;SACjB;QAED,IAAI,MAAM,CAAC,IAAI,KAAK,wBAAwB,CAAC,UAAU,EAAE;YACvD,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAkB,MAAM,CAAC,EAAE,CAAC,CAAA;YAClE,OAAO,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAA;SACnD;QAED,OAAO,MAAM,CAAC,EAAE,CAAA;IAClB,CAAC;IAEO,uBAAuB,CAAC,aAA8B;;QAC5D,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,UAAU,CAAA;QAClD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAgB,SAAS,CAAC,CAAA;QAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAC7B,aAAa,CAAC,OAAO,CAAC,cAAc,IAAI,IAAI,CAC7C,CAAA;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,iCAC7B,YAAY,KACf,UAAU,EAAE,MAAA,aAAa,CAAC,SAAS,0CAAE,EAAE,IACvC,CAAA;QACF,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,GAAG,SAAS,GAAG,WAAW,EAAE,CAAA;IACnE,CAAC;IAED,iBAAiB,CAAC,MAAc;QAC9B,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,KAAK,MAAM,CAAC,EAAE;YAC/D,OAAO,MAAM,CAAA;SACd;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACrC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,KAAK,QAAQ,CAAC,EAAE;YACjE,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,yBAAyB,QAAQ,EAAE,CAAC,CAAA;YACjE,OAAO,QAAQ,CAAA;SAChB;QACD,MAAM,IAAI,KAAK,CACb,WAAW,MAAM,2BAA2B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAChE,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,EASL,qBAAqB,EACrB,wBAAwB,GAEzB,MAAM,iCAAiC,CAAA;AAGxC,MAAM,OAAO,cAAc;IAKzB,gBAAuB,CAAC;IAExB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAA8B;;QAChD,MAAM,MAAM,GAAG,IAAI,cAAc,EAAE,CAAA;QAEnC,MAAM,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;QACxB,MAAM,CAAC,IAAI,GAAG,MAAA,OAAO,CAAC,IAAI,mCAAI,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAA;QACzE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;QAEhC,OAAO,MAAM,CAAA;IACf,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,KAAa;QACjC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE;YACzC,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;SAC9C,CAAC,CAAA;QACF,OAAO,IAAyB,CAAA;IAClC,CAAC;IAED,eAAe,CAAC,EAAU;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;QAClE,IAAI,CAAC,OAAO;YAAE,MAAM,KAAK,CAAC,qBAAqB,EAAE,aAAa,CAAC,CAAA;QAC/D,OAAO,IAAI,CAAC,WAAW,CAAoB,OAAO,CAAC,aAAa,CAAC,CAAA;IACnE,CAAC;IAED,WAAW,CAA4B,EAAU;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;QACzD,IAAI,CAAC,IAAI;YAAE,MAAM,KAAK,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAA;QACzD,IAAI,IAAI,CAAC,IAAI,KAAK,wBAAwB,CAAC,UAAU,EAAE;YACrD,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAM,CAAA;SACvD;QACD,OAAO,IAAS,CAAA;IAClB,CAAC;IAED,aAAa,CAAC,IAAY;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC1C,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAC5C,CAAA;QACD,IAAI,CAAC,OAAO;YAAE,MAAM,KAAK,CAAC,oBAAoB,IAAI,aAAa,CAAC,CAAA;QAChE,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,YAAY;QACV,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAA;QAC3C,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAClE,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAA;IACtC,CAAC;IAED,eAAe,CAAC,SAAkB;QAChC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CACvC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,qBAAqB,CAAC,QAAQ,CACvB,CAAA;QAC/B,IAAI,CAAC,YAAY,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;SACjD;QACD,MAAM,oBAAoB,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAA;QAC/D,IAAI,CAAC,oBAAoB,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;SACxD;QACD,MAAM,qBAAqB,GAAG,YAAY,CAAC,OAAO,CAAC,cAAc,CAAA;QACjE,IAAI,CAAC,qBAAqB,EAAE;YAC1B,OAAO,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAA;SACjD;QACD,OAAO,SAAS;YACd,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,EAAE,CAAC;YAC3C,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAA;IAChD,CAAC;IAED,sBAAsB;QAGpB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CACvC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,qBAAqB,CAAC,QAAQ,CACvB,CAAA;QAE/B,OAAO,YAAY;YACjB,CAAC,CAAC;gBACE,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,uBAAuB;gBACtD,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,wBAAwB,IAAI,KAAK;aACjE;YACH,CAAC,CAAC,SAAS,CAAA;IACf,CAAC;IAED,aAAa,CAAC,KAAY,EAAE,MAAc;QACxC,IAAI;YACF,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CACzC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,qBAAqB,CAAC,MAAM,CACjC,CAAA;YACnB,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAA;YAChC,IAAI,WAAW,EAAE;gBACf,OAAO,YAAY,CAAC,IAAI,CACtB,IAAI,CAAC,EAAE,CACL,WAAW,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,CACpE,CAAA;aACF;SACF;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,iCAAiC,KAAK,CAAC,MAAM,KAAK,EAAE,KAAK,CAAC,CAAA;SACzE;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAEO,kBAAkB,CACxB,IAAkB,EAClB,MAAc,EACd,MAAc;QAEd,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CACtD,CAAA;IACH,CAAC;IAED,yBAAyB,CACvB,IAAkB,EAClB,mBAA2B;QAE3B,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,GAAG,CAAA;QACpD,OAAO,mBAAmB,IAAI,cAAc,CAAA;IAC9C,CAAC;IAED,gBAAgB,CACd,SAAiB,EACjB,MAAc;QAEd,IAAI;YACF,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CACzC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,qBAAqB,CAAC,OAAO,CACjC,CAAA;YACpB,MAAM,mBAAmB,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CACrD,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAC5C,CAAA;YACD,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,IAAI,mBAAmB,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;gBACnE,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAA;aAC9B;SACF;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,kCAAkC,SAAS,KAAK,EAAE,KAAK,CAAC,CAAA;SACvE;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAEO,aAAa,CACnB,IAAmB,EACnB,KAAa,EACb,MAAc;QAEd,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CACvC,QAAQ,CAAC,EAAE,CACT,QAAQ,CAAC,MAAM,KAAK,MAAM;YAC1B,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CACtD,CAAA;QACD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAA;IACxB,CAAC;IAEO,sBAAsB,CAAC,KAAa,EAAE,QAAkB;QAC9D,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAC7B,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;YACvD,IAAI,gBAAgB,EAAE;gBACpB,OAAO,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;aAC5D;YACD,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QAChC,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,sBAAsB,CAC5B,gBAAkC,EAClC,KAAa;QAEb,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,gBAAgB,CAAA;QAC3C,MAAM,eAAe,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAClD,OAAO,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;IACrC,CAAC;IAED,UAAU,CAAC,MAAmB;QAC5B,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,SAAS,CAAA;SACjB;QAED,IAAI,MAAM,CAAC,IAAI,KAAK,wBAAwB,CAAC,UAAU,EAAE;YACvD,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAkB,MAAM,CAAC,EAAE,CAAC,CAAA;YAClE,OAAO,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAA;SACnD;QAED,OAAO,MAAM,CAAC,EAAE,CAAA;IAClB,CAAC;IAEO,uBAAuB,CAAC,aAA8B;;QAC5D,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,UAAU,CAAA;QAClD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAgB,SAAS,CAAC,CAAA;QAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAC7B,aAAa,CAAC,OAAO,CAAC,cAAc,IAAI,IAAI,CAC7C,CAAA;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,iCAC7B,YAAY,KACf,UAAU,EAAE,MAAA,aAAa,CAAC,SAAS,0CAAE,EAAE,IACvC,CAAA;QACF,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,GAAG,SAAS,GAAG,WAAW,EAAE,CAAA;IACnE,CAAC;IAED,iBAAiB,CAAC,MAAc;QAC9B,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,KAAK,MAAM,CAAC,EAAE;YAC/D,OAAO,MAAM,CAAA;SACd;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACrC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,KAAK,QAAQ,CAAC,EAAE;YACjE,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,yBAAyB,QAAQ,EAAE,CAAC,CAAA;YACjE,OAAO,QAAQ,CAAA;SAChB;QACD,MAAM,IAAI,KAAK,CACb,WAAW,MAAM,2BAA2B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAChE,CAAA;IACH,CAAC;CACF"}
@@ -1,3 +1,5 @@
1
1
  export declare const SEPARATOR = "|";
2
2
  export declare const SOURCE_INFO_SEPARATOR: string;
3
- export declare const VARIABLE_REGEX: RegExp;
3
+ export declare const VARIABLE_PATTERN: RegExp;
4
+ export declare const ACCESS_TOKEN_VARIABLE_KEY = "_access_token";
5
+ export declare const REG_EXP_PATTERN: RegExp;
@@ -1,4 +1,6 @@
1
1
  export const SEPARATOR = '|';
2
2
  export const SOURCE_INFO_SEPARATOR = `${SEPARATOR}source_`;
3
- export const VARIABLE_REGEX = /{([^}]+)}/g;
3
+ export const VARIABLE_PATTERN = /{([^}]+)}/g;
4
+ export const ACCESS_TOKEN_VARIABLE_KEY = '_access_token';
5
+ export const REG_EXP_PATTERN = /^\/(.*)\/([gimyus]*)$/;
4
6
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAA;AAC5B,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,SAAS,SAAS,CAAA;AAC1D,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,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"}
@@ -1,4 +1,5 @@
1
1
  /// <reference types="react" />
2
+ import { ActionRequest } from '@botonic/react';
2
3
  import { FlowBuilderApi } from '../api';
3
4
  import { ContentFieldsBase } from './content-fields-base';
4
5
  import { FlowButton } from './flow-button';
@@ -9,6 +10,6 @@ export declare class FlowText extends ContentFieldsBase {
9
10
  buttons: FlowButton[];
10
11
  buttonStyle: HtButtonStyle;
11
12
  static fromHubtypeCMS(cmsText: HtTextNode, locale: string, cmsApi: FlowBuilderApi): FlowText;
12
- static replaceVariables(text: string, extraData?: Record<string, any>): string;
13
- toBotonic(id: string): JSX.Element;
13
+ static replaceVariables(text: string, request: ActionRequest): string;
14
+ toBotonic(id: string, request: ActionRequest): JSX.Element;
14
15
  }
@@ -1,6 +1,7 @@
1
1
  import { Text } from '@botonic/react';
2
2
  import React from 'react';
3
- import { VARIABLE_REGEX } from '../constants';
3
+ import { ACCESS_TOKEN_VARIABLE_KEY, VARIABLE_PATTERN } from '../constants';
4
+ import { getValueFromKeyPath } from '../utils';
4
5
  import { ContentFieldsBase } from './content-fields-base';
5
6
  import { FlowButton } from './flow-button';
6
7
  import { HtButtonStyle } from './hubtype-fields';
@@ -16,26 +17,28 @@ export class FlowText extends ContentFieldsBase {
16
17
  const newText = new FlowText(cmsText.id);
17
18
  newText.code = cmsText.code;
18
19
  newText.buttonStyle = cmsText.content.buttons_style || HtButtonStyle.BUTTON;
19
- newText.text = this.replaceVariables(this.getTextByLocale(locale, cmsText.content.text), cmsApi.request.session.user.extra_data);
20
+ newText.text = this.getTextByLocale(locale, cmsText.content.text);
20
21
  newText.buttons = cmsText.content.buttons.map(button => FlowButton.fromHubtypeCMS(button, locale, cmsApi));
21
22
  return newText;
22
23
  }
23
- static replaceVariables(text, extraData) {
24
- const matches = text.match(VARIABLE_REGEX);
24
+ static replaceVariables(text, request) {
25
+ const matches = text.match(VARIABLE_PATTERN);
25
26
  let replacedText = text;
26
- if (matches && extraData) {
27
+ if (matches && request) {
27
28
  matches.forEach(match => {
28
- var _a;
29
- const variable = match.slice(1, -1);
30
- const value = (_a = extraData[variable]) !== null && _a !== void 0 ? _a : match;
31
- replacedText = replacedText.replace(match, value);
29
+ const keyPath = match.slice(1, -1);
30
+ const botVariable = keyPath.endsWith(ACCESS_TOKEN_VARIABLE_KEY)
31
+ ? getValueFromKeyPath(request, match)
32
+ : getValueFromKeyPath(request, keyPath);
33
+ replacedText = replacedText.replace(match, botVariable !== null && botVariable !== void 0 ? botVariable : match);
32
34
  });
33
35
  }
34
36
  return replacedText;
35
37
  }
36
- toBotonic(id) {
38
+ toBotonic(id, request) {
39
+ const replacedText = FlowText.replaceVariables(this.text, request);
37
40
  return (React.createElement(Text, { key: id },
38
- this.text,
41
+ replacedText,
39
42
  this.buttons.map((button, buttonIndex) => button.renderButton(buttonIndex, this.buttonStyle))));
40
43
  }
41
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"flow-text.js","sourceRoot":"","sources":["../../../src/content-fields/flow-text.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACrC,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAc,MAAM,kBAAkB,CAAA;AAE5D,MAAM,OAAO,QAAS,SAAQ,iBAAiB;IAA/C;;QACS,SAAI,GAAG,EAAE,CAAA;QACT,SAAI,GAAG,EAAE,CAAA;QACT,YAAO,GAAiB,EAAE,CAAA;QAC1B,gBAAW,GAAG,aAAa,CAAC,MAAM,CAAA;IAgD3C,CAAC;IA9CC,MAAM,CAAC,cAAc,CACnB,OAAmB,EACnB,MAAc,EACd,MAAsB;QAEtB,MAAM,OAAO,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACxC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QAC3B,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,CAAA;QAC3E,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAClC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAClD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CACvC,CAAA;QACD,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CACrD,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAClD,CAAA;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,MAAM,CAAC,gBAAgB,CACrB,IAAY,EACZ,SAA+B;QAE/B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;QAE1C,IAAI,YAAY,GAAG,IAAI,CAAA;QACvB,IAAI,OAAO,IAAI,SAAS,EAAE;YACxB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;;gBACtB,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;gBACnC,MAAM,KAAK,GAAG,MAAA,SAAS,CAAC,QAAQ,CAAC,mCAAI,KAAK,CAAA;gBAC1C,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YACnD,CAAC,CAAC,CAAA;SACH;QAED,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,SAAS,CAAC,EAAU;QAClB,OAAO,CACL,oBAAC,IAAI,IAAC,GAAG,EAAE,EAAE;YACV,IAAI,CAAC,IAAI;YACT,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,CACxC,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CACnD,CACI,CACR,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"flow-text.js","sourceRoot":"","sources":["../../../src/content-fields/flow-text.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAc,MAAM,kBAAkB,CAAA;AAE5D,MAAM,OAAO,QAAS,SAAQ,iBAAiB;IAA/C;;QACS,SAAI,GAAG,EAAE,CAAA;QACT,SAAI,GAAG,EAAE,CAAA;QACT,YAAO,GAAiB,EAAE,CAAA;QAC1B,gBAAW,GAAG,aAAa,CAAC,MAAM,CAAA;IA6C3C,CAAC;IA3CC,MAAM,CAAC,cAAc,CACnB,OAAmB,EACnB,MAAc,EACd,MAAsB;QAEtB,MAAM,OAAO,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACxC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QAC3B,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,CAAA;QAC3E,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACjE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CACrD,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAClD,CAAA;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,IAAY,EAAE,OAAsB;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;QAE5C,IAAI,YAAY,GAAG,IAAI,CAAA;QACvB,IAAI,OAAO,IAAI,OAAO,EAAE;YACtB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACtB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;gBAClC,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC;oBAC7D,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC;oBACrC,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;gBACzC,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,KAAK,CAAC,CAAA;YAClE,CAAC,CAAC,CAAA;SACH;QAED,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,SAAS,CAAC,EAAU,EAAE,OAAsB;QAC1C,MAAM,YAAY,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAClE,OAAO,CACL,oBAAC,IAAI,IAAC,GAAG,EAAE,EAAE;YACV,YAAY;YACZ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,CACxC,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CACnD,CACI,CACR,CAAA;IACH,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ import { ActionRequest } from '@botonic/react';
2
+ interface ConditionalCountryArgs {
3
+ request: ActionRequest;
4
+ results: string[];
5
+ keyPath: string;
6
+ }
7
+ export declare function conditionalBotVariable({ request, results, keyPath, }: ConditionalCountryArgs): string;
8
+ export {};
@@ -0,0 +1,7 @@
1
+ import { getValueFromKeyPath } from '../utils';
2
+ export function conditionalBotVariable({ request, results, keyPath, }) {
3
+ var _a;
4
+ const botVariable = getValueFromKeyPath(request, keyPath);
5
+ return (_a = results.find(result => result === botVariable)) !== null && _a !== void 0 ? _a : 'default';
6
+ }
7
+ //# sourceMappingURL=conditional-bot-variable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conditional-bot-variable.js","sourceRoot":"","sources":["../../../src/functions/conditional-bot-variable.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAQ9C,MAAM,UAAU,sBAAsB,CAAC,EACrC,OAAO,EACP,OAAO,EACP,OAAO,GACgB;;IACvB,MAAM,WAAW,GAAG,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACzD,OAAO,MAAA,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,WAAW,CAAC,mCAAI,SAAS,CAAA;AACpE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { ActionRequest } from '@botonic/react';
2
+ interface ConditionalCountryArgs {
3
+ request: ActionRequest;
4
+ results: string[];
5
+ }
6
+ export declare function conditionalCountry({ request, results, }: ConditionalCountryArgs): string;
7
+ export {};
@@ -0,0 +1,5 @@
1
+ export function conditionalCountry({ request, results, }) {
2
+ const country = request.session.user.extra_data.country;
3
+ return results.find(result => result === country) || 'default';
4
+ }
5
+ //# sourceMappingURL=conditional-country.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conditional-country.js","sourceRoot":"","sources":["../../../src/functions/conditional-country.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,kBAAkB,CAAC,EACjC,OAAO,EACP,OAAO,GACgB;IACvB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAA;IACvD,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,OAAO,CAAC,IAAI,SAAS,CAAA;AAChE,CAAC"}
@@ -1,7 +1,5 @@
1
1
  export function conditionalProvider({ request, results, }) {
2
2
  const provider = request.session.user.provider;
3
- if (results.includes(provider))
4
- return provider;
5
- return 'default';
3
+ return results.find(result => result === provider) || 'default';
6
4
  }
7
5
  //# sourceMappingURL=conditional-provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conditional-provider.js","sourceRoot":"","sources":["../../../src/functions/conditional-provider.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,mBAAmB,CAAC,EAClC,OAAO,EACP,OAAO,GACiB;IACxB,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAA;IAC9C,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAA;IAC/C,OAAO,SAAS,CAAA;AAClB,CAAC"}
1
+ {"version":3,"file":"conditional-provider.js","sourceRoot":"","sources":["../../../src/functions/conditional-provider.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,mBAAmB,CAAC,EAClC,OAAO,EACP,OAAO,GACiB;IACxB,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAA;IAC9C,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,QAAQ,CAAC,IAAI,SAAS,CAAA;AACjE,CAAC"}
@@ -1,6 +1,10 @@
1
+ import { conditionalBotVariable } from './conditional-bot-variable';
2
+ import { conditionalCountry } from './conditional-country';
1
3
  import { conditionalProvider } from './conditional-provider';
2
4
  import { conditionalQueueStatus } from './conditional-queue-status';
3
5
  export declare const DEFAULT_FUNCTIONS: {
4
6
  'check-queue-status': typeof conditionalQueueStatus;
5
7
  'get-channel-type': typeof conditionalProvider;
8
+ 'check-country': typeof conditionalCountry;
9
+ 'check-bot-variable': typeof conditionalBotVariable;
6
10
  };
@@ -1,8 +1,12 @@
1
+ import { conditionalBotVariable } from './conditional-bot-variable';
2
+ import { conditionalCountry } from './conditional-country';
1
3
  import { conditionalProvider } from './conditional-provider';
2
4
  import { conditionalQueueStatus } from './conditional-queue-status';
3
5
  export const DEFAULT_FUNCTIONS = {
4
6
  // TODO: Rename api action name
5
7
  'check-queue-status': conditionalQueueStatus,
6
8
  'get-channel-type': conditionalProvider,
9
+ 'check-country': conditionalCountry,
10
+ 'check-bot-variable': conditionalBotVariable,
7
11
  };
8
12
  //# 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,oBAAoB,EAAE,sBAAsB;IAC5C,kBAAkB,EAAE,mBAAmB;CACxC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/functions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,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,oBAAoB,EAAE,sBAAsB;IAC5C,kBAAkB,EAAE,mBAAmB;IACvC,eAAe,EAAE,kBAAkB;IACnC,oBAAoB,EAAE,sBAAsB;CAC7C,CAAA"}
@@ -22,7 +22,7 @@ export declare enum ProcessEnvNodeEnvs {
22
22
  }
23
23
  export interface KnowledgeBaseResponse {
24
24
  answer: string;
25
- hasKnowledge: boolean;
25
+ isValid: boolean;
26
26
  sources: {
27
27
  knowledgeSourceId: string;
28
28
  page?: number;
@@ -1,3 +1,5 @@
1
1
  import { Session } from '@botonic/core';
2
+ import { ActionRequest } from '@botonic/react';
2
3
  import { BotonicPluginFlowBuilderOptions } from './types';
3
4
  export declare function resolveGetAccessToken(options: BotonicPluginFlowBuilderOptions): (session: Session) => string;
5
+ export declare function getValueFromKeyPath(request: ActionRequest, keyPath: string): any;
package/lib/esm/utils.js CHANGED
@@ -15,4 +15,14 @@ export function resolveGetAccessToken(options) {
15
15
  throw new Error('No method defined for getting access token');
16
16
  }
17
17
  }
18
+ export function getValueFromKeyPath(request, keyPath) {
19
+ if (keyPath.startsWith('input') || keyPath.startsWith('session')) {
20
+ return keyPath
21
+ .split('.')
22
+ .reduce((object, key) => (object && object[key]) || undefined, request);
23
+ }
24
+ return keyPath
25
+ .split('.')
26
+ .reduce((object, key) => (object && object[key]) || undefined, request.session.user.extra_data);
27
+ }
18
28
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmC,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAE7E,SAAS,yBAAyB,CAAC,OAAgB;IACjD,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;KACpD;IACD,OAAO,OAAO,CAAC,aAAa,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,OAAwC;IAExC,QAAQ,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;QAC5B,KAAK,kBAAkB,CAAC,UAAU;YAChC,OAAO,yBAAyB,CAAA;QAClC,KAAK,kBAAkB,CAAC,WAAW;YACjC,OAAO,OAAO,CAAC,cAAc,CAAA;QAC/B;YACE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;KAChE;AACH,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmC,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAE7E,SAAS,yBAAyB,CAAC,OAAgB;IACjD,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;KACpD;IACD,OAAO,OAAO,CAAC,aAAa,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,OAAwC;IAExC,QAAQ,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;QAC5B,KAAK,kBAAkB,CAAC,UAAU;YAChC,OAAO,yBAAyB,CAAA;QAClC,KAAK,kBAAkB,CAAC,WAAW;YACjC,OAAO,OAAO,CAAC,cAAc,CAAA;QAC/B;YACE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;KAChE;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,OAAsB,EACtB,OAAe;IAEf,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;QAChE,OAAO,OAAO;aACX,KAAK,CAAC,GAAG,CAAC;aACV,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,SAAS,EAAE,OAAO,CAAC,CAAA;KAC1E;IAED,OAAO,OAAO;SACX,KAAK,CAAC,GAAG,CAAC;SACV,MAAM,CACL,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,SAAS,EACrD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAChC,CAAA;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@botonic/plugin-flow-builder",
3
- "version": "0.24.5",
3
+ "version": "0.24.6-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",
@@ -38,16 +38,18 @@ export class FlowBuilderAction extends React.Component<FlowBuilderActionProps> {
38
38
 
39
39
  render(): JSX.Element | JSX.Element[] {
40
40
  const { contents } = this.props
41
- return contents.map(content => content.toBotonic(content.id))
41
+ const request = this.context
42
+ return contents.map(content => content.toBotonic(content.id, request))
42
43
  }
43
44
  }
44
45
 
45
46
  export class FlowBuilderMultichannelAction extends FlowBuilderAction {
46
47
  render(): JSX.Element | JSX.Element[] {
47
48
  const { contents } = this.props
49
+ const request = this.context
48
50
  return (
49
51
  <Multichannel text={{ buttonsAsText: false }}>
50
- {contents.map(content => content.toBotonic(content.id))}
52
+ {contents.map(content => content.toBotonic(content.id, request))}
51
53
  </Multichannel>
52
54
  )
53
55
  }
@@ -27,7 +27,7 @@ export async function createNodeFromKnowledgeBase(
27
27
  try {
28
28
  const knowledgeBaseResponse =
29
29
  await flowBuilderPlugin.getKnowledgeBaseResponse(request)
30
- if (knowledgeBaseResponse.hasKnowledge) {
30
+ if (knowledgeBaseResponse.isValid) {
31
31
  await trackEvent(request, EventName.botAiKnowledgeBase, {
32
32
  answer: knowledgeBaseResponse.answer,
33
33
  knowledge_source_ids: knowledgeBaseResponse.sources.map(
package/src/api.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Input, PluginPreRequest } from '@botonic/core'
2
2
  import axios from 'axios'
3
3
 
4
- import { SEPARATOR } from './constants'
4
+ import { REG_EXP_PATTERN, SEPARATOR } from './constants'
5
5
  import {
6
6
  HtBotActionNode,
7
7
  HtFallbackNode,
@@ -169,13 +169,30 @@ export class FlowBuilderApi {
169
169
  locale: string
170
170
  ): boolean {
171
171
  const result = node.content.keywords.find(
172
- i => i.locale === locale && this.containsAnyKeywords(input, i.values)
172
+ keywords =>
173
+ keywords.locale === locale &&
174
+ this.inputMatchesAnyKeyword(input, keywords.values)
173
175
  )
174
176
  return Boolean(result)
175
177
  }
176
178
 
177
- private containsAnyKeywords(input: string, keywords: string[]): boolean {
178
- return keywords.some(keyword => input.includes(keyword))
179
+ private inputMatchesAnyKeyword(input: string, keywords: string[]): boolean {
180
+ return keywords.some(keyword => {
181
+ const regExpMatchArray = keyword.match(REG_EXP_PATTERN)
182
+ if (regExpMatchArray) {
183
+ return this.resolveKeywordAsRegExp(regExpMatchArray, input)
184
+ }
185
+ return input.includes(keyword)
186
+ })
187
+ }
188
+
189
+ private resolveKeywordAsRegExp(
190
+ regExpMatchArray: RegExpMatchArray,
191
+ input: string
192
+ ) {
193
+ const [, pattern, flags] = regExpMatchArray
194
+ const keywordAsRegExp = new RegExp(pattern, flags)
195
+ return input.match(keywordAsRegExp)
179
196
  }
180
197
 
181
198
  getPayload(target?: HtNodeLink): string | undefined {
package/src/constants.ts CHANGED
@@ -1,3 +1,5 @@
1
1
  export const SEPARATOR = '|'
2
2
  export const SOURCE_INFO_SEPARATOR = `${SEPARATOR}source_`
3
- export const VARIABLE_REGEX = /{([^}]+)}/g
3
+ export const VARIABLE_PATTERN = /{([^}]+)}/g
4
+ export const ACCESS_TOKEN_VARIABLE_KEY = '_access_token'
5
+ export const REG_EXP_PATTERN = /^\/(.*)\/([gimyus]*)$/
@@ -1,8 +1,9 @@
1
- import { Text } from '@botonic/react'
1
+ import { ActionRequest, Text } from '@botonic/react'
2
2
  import React from 'react'
3
3
 
4
4
  import { FlowBuilderApi } from '../api'
5
- import { VARIABLE_REGEX } from '../constants'
5
+ import { ACCESS_TOKEN_VARIABLE_KEY, VARIABLE_PATTERN } from '../constants'
6
+ import { getValueFromKeyPath } from '../utils'
6
7
  import { ContentFieldsBase } from './content-fields-base'
7
8
  import { FlowButton } from './flow-button'
8
9
  import { HtButtonStyle, HtTextNode } from './hubtype-fields'
@@ -21,38 +22,35 @@ export class FlowText extends ContentFieldsBase {
21
22
  const newText = new FlowText(cmsText.id)
22
23
  newText.code = cmsText.code
23
24
  newText.buttonStyle = cmsText.content.buttons_style || HtButtonStyle.BUTTON
24
- newText.text = this.replaceVariables(
25
- this.getTextByLocale(locale, cmsText.content.text),
26
- cmsApi.request.session.user.extra_data
27
- )
25
+ newText.text = this.getTextByLocale(locale, cmsText.content.text)
28
26
  newText.buttons = cmsText.content.buttons.map(button =>
29
27
  FlowButton.fromHubtypeCMS(button, locale, cmsApi)
30
28
  )
31
29
  return newText
32
30
  }
33
31
 
34
- static replaceVariables(
35
- text: string,
36
- extraData?: Record<string, any>
37
- ): string {
38
- const matches = text.match(VARIABLE_REGEX)
32
+ static replaceVariables(text: string, request: ActionRequest): string {
33
+ const matches = text.match(VARIABLE_PATTERN)
39
34
 
40
35
  let replacedText = text
41
- if (matches && extraData) {
36
+ if (matches && request) {
42
37
  matches.forEach(match => {
43
- const variable = match.slice(1, -1)
44
- const value = extraData[variable] ?? match
45
- replacedText = replacedText.replace(match, value)
38
+ const keyPath = match.slice(1, -1)
39
+ const botVariable = keyPath.endsWith(ACCESS_TOKEN_VARIABLE_KEY)
40
+ ? getValueFromKeyPath(request, match)
41
+ : getValueFromKeyPath(request, keyPath)
42
+ replacedText = replacedText.replace(match, botVariable ?? match)
46
43
  })
47
44
  }
48
45
 
49
46
  return replacedText
50
47
  }
51
48
 
52
- toBotonic(id: string): JSX.Element {
49
+ toBotonic(id: string, request: ActionRequest): JSX.Element {
50
+ const replacedText = FlowText.replaceVariables(this.text, request)
53
51
  return (
54
52
  <Text key={id}>
55
- {this.text}
53
+ {replacedText}
56
54
  {this.buttons.map((button, buttonIndex) =>
57
55
  button.renderButton(buttonIndex, this.buttonStyle)
58
56
  )}
@@ -0,0 +1,18 @@
1
+ import { ActionRequest } from '@botonic/react'
2
+
3
+ import { getValueFromKeyPath } from '../utils'
4
+
5
+ interface ConditionalCountryArgs {
6
+ request: ActionRequest
7
+ results: string[]
8
+ keyPath: string
9
+ }
10
+
11
+ export function conditionalBotVariable({
12
+ request,
13
+ results,
14
+ keyPath,
15
+ }: ConditionalCountryArgs): string {
16
+ const botVariable = getValueFromKeyPath(request, keyPath)
17
+ return results.find(result => result === botVariable) ?? 'default'
18
+ }
@@ -0,0 +1,14 @@
1
+ import { ActionRequest } from '@botonic/react'
2
+
3
+ interface ConditionalCountryArgs {
4
+ request: ActionRequest
5
+ results: string[]
6
+ }
7
+
8
+ export function conditionalCountry({
9
+ request,
10
+ results,
11
+ }: ConditionalCountryArgs): string {
12
+ const country = request.session.user.extra_data.country
13
+ return results.find(result => result === country) || 'default'
14
+ }
@@ -10,6 +10,5 @@ export function conditionalProvider({
10
10
  results,
11
11
  }: ConditionalProviderArgs): string {
12
12
  const provider = request.session.user.provider
13
- if (results.includes(provider)) return provider
14
- return 'default'
13
+ return results.find(result => result === provider) || 'default'
15
14
  }
@@ -1,3 +1,5 @@
1
+ import { conditionalBotVariable } from './conditional-bot-variable'
2
+ import { conditionalCountry } from './conditional-country'
1
3
  import { conditionalProvider } from './conditional-provider'
2
4
  import { conditionalQueueStatus } from './conditional-queue-status'
3
5
 
@@ -5,4 +7,6 @@ export const DEFAULT_FUNCTIONS = {
5
7
  // TODO: Rename api action name
6
8
  'check-queue-status': conditionalQueueStatus,
7
9
  'get-channel-type': conditionalProvider,
10
+ 'check-country': conditionalCountry,
11
+ 'check-bot-variable': conditionalBotVariable,
8
12
  }
package/src/types.ts CHANGED
@@ -33,7 +33,7 @@ export enum ProcessEnvNodeEnvs {
33
33
 
34
34
  export interface KnowledgeBaseResponse {
35
35
  answer: string
36
- hasKnowledge: boolean
36
+ isValid: boolean
37
37
  sources: {
38
38
  knowledgeSourceId: string
39
39
  page?: number
package/src/utils.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { Session } from '@botonic/core'
2
+ import { ActionRequest } from '@botonic/react'
2
3
 
3
4
  import { BotonicPluginFlowBuilderOptions, ProcessEnvNodeEnvs } from './types'
4
5
 
@@ -21,3 +22,21 @@ export function resolveGetAccessToken(
21
22
  throw new Error('No method defined for getting access token')
22
23
  }
23
24
  }
25
+
26
+ export function getValueFromKeyPath(
27
+ request: ActionRequest,
28
+ keyPath: string
29
+ ): any {
30
+ if (keyPath.startsWith('input') || keyPath.startsWith('session')) {
31
+ return keyPath
32
+ .split('.')
33
+ .reduce((object, key) => (object && object[key]) || undefined, request)
34
+ }
35
+
36
+ return keyPath
37
+ .split('.')
38
+ .reduce(
39
+ (object, key) => (object && object[key]) || undefined,
40
+ request.session.user.extra_data
41
+ )
42
+ }