@botonic/plugin-flow-builder 0.56.0-alpha.0 → 0.57.0-rslib-esm.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/esm/action/ai-agent-from-user-input.d.ts +2 -2
- package/lib/esm/action/ai-agent-from-user-input.js +9 -6
- package/lib/esm/action/ai-agent-from-user-input.js.map +1 -1
- package/lib/esm/action/context.d.ts +2 -2
- package/lib/esm/action/context.js +9 -6
- package/lib/esm/action/context.js.map +1 -1
- package/lib/esm/action/fallback.d.ts +2 -2
- package/lib/esm/action/fallback.js +16 -11
- package/lib/esm/action/fallback.js.map +1 -1
- package/lib/esm/action/first-interaction.d.ts +2 -2
- package/lib/esm/action/first-interaction.js +39 -27
- package/lib/esm/action/first-interaction.js.map +1 -1
- package/lib/esm/action/get-contents.d.ts +1 -1
- package/lib/esm/action/get-contents.js +37 -20
- package/lib/esm/action/get-contents.js.map +1 -1
- package/lib/esm/action/index.d.ts +1 -1
- package/lib/esm/action/index.js +68 -32
- package/lib/esm/action/index.js.map +1 -1
- package/lib/esm/action/payload.d.ts +2 -2
- package/lib/esm/action/payload.js +27 -23
- package/lib/esm/action/payload.js.map +1 -1
- package/lib/esm/api.d.ts +2 -2
- package/lib/esm/api.js +55 -44
- package/lib/esm/api.js.map +1 -1
- package/lib/esm/constants.js +16 -18
- package/lib/esm/constants.js.map +1 -1
- package/lib/esm/content-fields/content-fields-base.d.ts +2 -2
- package/lib/esm/content-fields/content-fields-base.js +33 -29
- package/lib/esm/content-fields/content-fields-base.js.map +1 -1
- package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-evaluators.d.ts +1 -1
- package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-evaluators.js +35 -33
- package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-evaluators.js.map +1 -1
- package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-resolver.d.ts +1 -1
- package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-resolver.js +15 -15
- package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-resolver.js.map +1 -1
- package/lib/esm/content-fields/custom-conditional/flow-custom-condition-v2.d.ts +2 -2
- package/lib/esm/content-fields/custom-conditional/flow-custom-condition-v2.js +50 -35
- package/lib/esm/content-fields/custom-conditional/flow-custom-condition-v2.js.map +1 -1
- package/lib/esm/content-fields/flow-ai-agent-base.d.ts +4 -4
- package/lib/esm/content-fields/flow-ai-agent-base.js +50 -47
- package/lib/esm/content-fields/flow-ai-agent-base.js.map +1 -1
- package/lib/esm/content-fields/flow-ai-agent-router.d.ts +5 -5
- package/lib/esm/content-fields/flow-ai-agent-router.js +57 -46
- package/lib/esm/content-fields/flow-ai-agent-router.js.map +1 -1
- package/lib/esm/content-fields/flow-ai-agent.d.ts +4 -4
- package/lib/esm/content-fields/flow-ai-agent.js +33 -22
- package/lib/esm/content-fields/flow-ai-agent.js.map +1 -1
- package/lib/esm/content-fields/flow-bot-action.d.ts +3 -3
- package/lib/esm/content-fields/flow-bot-action.js +23 -15
- package/lib/esm/content-fields/flow-bot-action.js.map +1 -1
- package/lib/esm/content-fields/flow-button.d.ts +5 -5
- package/lib/esm/content-fields/flow-button.js +48 -29
- package/lib/esm/content-fields/flow-button.js.map +1 -1
- package/lib/esm/content-fields/flow-capture-user-input.d.ts +2 -2
- package/lib/esm/content-fields/flow-capture-user-input.js +24 -23
- package/lib/esm/content-fields/flow-capture-user-input.js.map +1 -1
- package/lib/esm/content-fields/flow-carousel.d.ts +4 -4
- package/lib/esm/content-fields/flow-carousel.js +99 -58
- package/lib/esm/content-fields/flow-carousel.js.map +1 -1
- package/lib/esm/content-fields/flow-channel-conditional.d.ts +3 -3
- package/lib/esm/content-fields/flow-channel-conditional.js +26 -22
- package/lib/esm/content-fields/flow-channel-conditional.js.map +1 -1
- package/lib/esm/content-fields/flow-country-conditional.d.ts +3 -3
- package/lib/esm/content-fields/flow-country-conditional.js +26 -21
- package/lib/esm/content-fields/flow-country-conditional.js.map +1 -1
- package/lib/esm/content-fields/flow-custom-conditional.d.ts +3 -3
- package/lib/esm/content-fields/flow-custom-conditional.js +31 -33
- package/lib/esm/content-fields/flow-custom-conditional.js.map +1 -1
- package/lib/esm/content-fields/flow-element.d.ts +4 -4
- package/lib/esm/content-fields/flow-element.js +37 -20
- package/lib/esm/content-fields/flow-element.js.map +1 -1
- package/lib/esm/content-fields/flow-go-to-flow.d.ts +3 -3
- package/lib/esm/content-fields/flow-go-to-flow.js +25 -20
- package/lib/esm/content-fields/flow-go-to-flow.js.map +1 -1
- package/lib/esm/content-fields/flow-handoff.d.ts +3 -3
- package/lib/esm/content-fields/flow-handoff.js +30 -19
- package/lib/esm/content-fields/flow-handoff.js.map +1 -1
- package/lib/esm/content-fields/flow-image.d.ts +2 -2
- package/lib/esm/content-fields/flow-image.js +24 -15
- package/lib/esm/content-fields/flow-image.js.map +1 -1
- package/lib/esm/content-fields/flow-queue-status-conditional.d.ts +3 -3
- package/lib/esm/content-fields/flow-queue-status-conditional.js +45 -40
- package/lib/esm/content-fields/flow-queue-status-conditional.js.map +1 -1
- package/lib/esm/content-fields/flow-rating.d.ts +3 -3
- package/lib/esm/content-fields/flow-rating.js +62 -40
- package/lib/esm/content-fields/flow-rating.js.map +1 -1
- package/lib/esm/content-fields/flow-text.d.ts +4 -4
- package/lib/esm/content-fields/flow-text.js +51 -29
- package/lib/esm/content-fields/flow-text.js.map +1 -1
- package/lib/esm/content-fields/flow-video.d.ts +2 -2
- package/lib/esm/content-fields/flow-video.js +24 -15
- package/lib/esm/content-fields/flow-video.js.map +1 -1
- package/lib/esm/content-fields/flow-webview.d.ts +2 -2
- package/lib/esm/content-fields/flow-webview.js +31 -28
- package/lib/esm/content-fields/flow-webview.js.map +1 -1
- package/lib/esm/content-fields/flow-whatsapp-cta-url-button.d.ts +3 -3
- package/lib/esm/content-fields/flow-whatsapp-cta-url-button.js +91 -52
- package/lib/esm/content-fields/flow-whatsapp-cta-url-button.js.map +1 -1
- package/lib/esm/content-fields/flow-whatsapp-request-contact-info.d.ts +3 -4
- package/lib/esm/content-fields/flow-whatsapp-request-contact-info.js +32 -26
- package/lib/esm/content-fields/flow-whatsapp-request-contact-info.js.map +1 -1
- package/lib/esm/content-fields/flow-whatsapp-template.d.ts +2 -2
- package/lib/esm/content-fields/flow-whatsapp-template.js +119 -102
- package/lib/esm/content-fields/flow-whatsapp-template.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/ai-agent-router.d.ts +3 -3
- package/lib/esm/content-fields/hubtype-fields/ai-agent-router.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/ai-agent-router.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/ai-agent.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/ai-agent.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/ai-agent.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/bot-action.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/bot-action.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/bot-action.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/button.d.ts +1 -1
- package/lib/esm/content-fields/hubtype-fields/button.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/button.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/capture-user-input.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/capture-user-input.js +6 -6
- package/lib/esm/content-fields/hubtype-fields/capture-user-input.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/carousel.d.ts +3 -3
- package/lib/esm/content-fields/hubtype-fields/carousel.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/carousel.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/channel-conditional.d.ts +3 -3
- package/lib/esm/content-fields/hubtype-fields/channel-conditional.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/channel-conditional.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/common.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/common.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/common.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/country-conditional.d.ts +3 -3
- package/lib/esm/content-fields/hubtype-fields/country-conditional.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/country-conditional.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/custom-conditional-v2.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/custom-conditional-v2.js +15 -15
- package/lib/esm/content-fields/hubtype-fields/custom-conditional-v2.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/custom-conditional.d.ts +3 -3
- package/lib/esm/content-fields/hubtype-fields/custom-conditional.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/custom-conditional.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/fallback.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/fallback.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/fallback.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/function.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/function.js +6 -6
- package/lib/esm/content-fields/hubtype-fields/function.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/go-to-flow.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/go-to-flow.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/go-to-flow.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/handoff.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/handoff.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/handoff.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/image.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/image.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/image.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/index.d.ts +27 -27
- package/lib/esm/content-fields/hubtype-fields/index.js +56 -30
- package/lib/esm/content-fields/hubtype-fields/index.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/keyword.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/keyword.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/keyword.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/node-types.js +12 -12
- package/lib/esm/content-fields/hubtype-fields/node-types.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/nodes.d.ts +23 -23
- package/lib/esm/content-fields/hubtype-fields/nodes.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/nodes.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/payload.d.ts +1 -1
- package/lib/esm/content-fields/hubtype-fields/payload.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/payload.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/queue-status-conditional.d.ts +3 -3
- package/lib/esm/content-fields/hubtype-fields/queue-status-conditional.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/queue-status-conditional.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/rating.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/rating.js +6 -6
- package/lib/esm/content-fields/hubtype-fields/rating.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/smart-intent.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/smart-intent.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/smart-intent.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/text.d.ts +3 -3
- package/lib/esm/content-fields/hubtype-fields/text.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/text.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/url.d.ts +1 -1
- package/lib/esm/content-fields/hubtype-fields/url.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/url.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/video.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/video.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/video.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/webview.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/webview.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/webview.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/whatsapp-button-list.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/whatsapp-button-list.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/whatsapp-button-list.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/whatsapp-cta-url-button.d.ts +3 -3
- package/lib/esm/content-fields/hubtype-fields/whatsapp-cta-url-button.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/whatsapp-cta-url-button.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/whatsapp-request-contact-info.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/whatsapp-request-contact-info.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/whatsapp-request-contact-info.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/whatsapp-template.d.ts +3 -3
- package/lib/esm/content-fields/hubtype-fields/whatsapp-template.js +6 -6
- package/lib/esm/content-fields/hubtype-fields/whatsapp-template.js.map +1 -1
- package/lib/esm/content-fields/index.d.ts +23 -23
- package/lib/esm/content-fields/index.js +72 -51
- package/lib/esm/content-fields/index.js.map +1 -1
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.d.ts +3 -3
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js +16 -14
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js.map +1 -1
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.d.ts +4 -4
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js +20 -15
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js.map +1 -1
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list.d.ts +4 -4
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js +46 -26
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js.map +1 -1
- package/lib/esm/content-fields/whatsapp-button-list/index.d.ts +3 -3
- package/lib/esm/content-fields/whatsapp-button-list/index.js +11 -9
- package/lib/esm/content-fields/whatsapp-button-list/index.js.map +1 -1
- package/lib/esm/filters/index.d.ts +2 -2
- package/lib/esm/filters/index.js +8 -9
- package/lib/esm/filters/index.js.map +1 -1
- package/lib/esm/flow-factory.d.ts +3 -3
- package/lib/esm/flow-factory.js +57 -51
- package/lib/esm/flow-factory.js.map +1 -1
- package/lib/esm/functions/index.d.ts +1 -1
- package/lib/esm/functions/index.js +25 -19
- package/lib/esm/functions/index.js.map +1 -1
- package/lib/esm/index.d.ts +12 -12
- package/lib/esm/index.js +94 -77
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/package.json +3 -0
- package/lib/esm/services/hubtype-queues-api.js +14 -14
- package/lib/esm/services/hubtype-queues-api.js.map +1 -1
- package/lib/esm/structured-output/flow-builder-content.js +14 -13
- package/lib/esm/structured-output/flow-builder-content.js.map +1 -1
- package/lib/esm/tracking.d.ts +2 -2
- package/lib/esm/tracking.js +27 -21
- package/lib/esm/tracking.js.map +1 -1
- package/lib/esm/types.d.ts +5 -5
- package/lib/esm/types.js +9 -9
- package/lib/esm/types.js.map +1 -1
- package/lib/esm/user-input/capture-user-input-api.d.ts +2 -2
- package/lib/esm/user-input/capture-user-input-api.js +44 -33
- package/lib/esm/user-input/capture-user-input-api.js.map +1 -1
- package/lib/esm/user-input/index.d.ts +2 -2
- package/lib/esm/user-input/index.js +23 -14
- package/lib/esm/user-input/index.js.map +1 -1
- package/lib/esm/user-input/keyword.d.ts +2 -2
- package/lib/esm/user-input/keyword.js +31 -26
- package/lib/esm/user-input/keyword.js.map +1 -1
- package/lib/esm/user-input/smart-intent.d.ts +2 -2
- package/lib/esm/user-input/smart-intent.js +36 -32
- package/lib/esm/user-input/smart-intent.js.map +1 -1
- package/lib/esm/utils/ai-agent.d.ts +3 -3
- package/lib/esm/utils/ai-agent.js +17 -12
- package/lib/esm/utils/ai-agent.js.map +1 -1
- package/lib/esm/utils/authentication.js +10 -7
- package/lib/esm/utils/authentication.js.map +1 -1
- package/lib/esm/utils/flow-locale.js +14 -18
- package/lib/esm/utils/flow-locale.js.map +1 -1
- package/lib/esm/utils/get-flow-builder-plugin.d.ts +1 -1
- package/lib/esm/utils/get-flow-builder-plugin.js +4 -4
- package/lib/esm/utils/get-flow-builder-plugin.js.map +1 -1
- package/lib/esm/utils/hubtype-assistant-content.d.ts +1 -2
- package/lib/esm/utils/hubtype-assistant-content.js +57 -54
- package/lib/esm/utils/hubtype-assistant-content.js.map +1 -1
- package/lib/esm/utils/input.js +16 -14
- package/lib/esm/utils/input.js.map +1 -1
- package/lib/esm/webview/contents-context.d.ts +1 -1
- package/lib/esm/webview/contents-context.js +13 -11
- package/lib/esm/webview/contents-context.js.map +1 -1
- package/lib/esm/webview/index.d.ts +3 -3
- package/lib/esm/webview/index.js +10 -9
- package/lib/esm/webview/index.js.map +1 -1
- package/lib/esm/webview/types.d.ts +1 -1
- package/lib/esm/webview/types.js +6 -6
- package/lib/esm/webview/types.js.map +1 -1
- package/lib/esm/webview/use-webview-contents.d.ts +1 -1
- package/lib/esm/webview/use-webview-contents.js +46 -39
- package/lib/esm/webview/use-webview-contents.js.map +1 -1
- package/package.json +8 -7
- package/src/content-fields/flow-ai-agent-base.tsx +0 -11
- package/src/content-fields/flow-whatsapp-request-contact-info.tsx +1 -17
- package/src/index.ts +5 -5
- package/src/types.ts +6 -6
- package/src/utils/hubtype-assistant-content.ts +0 -14
- package/lib/cjs/action/ai-agent-from-user-input.d.ts +0 -3
- package/lib/cjs/action/ai-agent-from-user-input.js +0 -32
- package/lib/cjs/action/ai-agent-from-user-input.js.map +0 -1
- package/lib/cjs/action/context.d.ts +0 -11
- package/lib/cjs/action/context.js +0 -17
- package/lib/cjs/action/context.js.map +0 -1
- package/lib/cjs/action/fallback.d.ts +0 -3
- package/lib/cjs/action/fallback.js +0 -36
- package/lib/cjs/action/fallback.js.map +0 -1
- package/lib/cjs/action/first-interaction.d.ts +0 -3
- package/lib/cjs/action/first-interaction.js +0 -88
- package/lib/cjs/action/first-interaction.js.map +0 -1
- package/lib/cjs/action/get-contents.d.ts +0 -3
- package/lib/cjs/action/get-contents.js +0 -39
- package/lib/cjs/action/get-contents.js.map +0 -1
- package/lib/cjs/action/index.d.ts +0 -25
- package/lib/cjs/action/index.js +0 -90
- package/lib/cjs/action/index.js.map +0 -1
- package/lib/cjs/action/payload.d.ts +0 -3
- package/lib/cjs/action/payload.js +0 -74
- package/lib/cjs/action/payload.js.map +0 -1
- package/lib/cjs/api.d.ts +0 -40
- package/lib/cjs/api.js +0 -205
- package/lib/cjs/api.js.map +0 -1
- package/lib/cjs/constants.d.ts +0 -13
- package/lib/cjs/constants.js +0 -19
- package/lib/cjs/constants.js.map +0 -1
- package/lib/cjs/content-fields/content-fields-base.d.ts +0 -20
- package/lib/cjs/content-fields/content-fields-base.js +0 -74
- package/lib/cjs/content-fields/content-fields-base.js.map +0 -1
- package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-evaluators.d.ts +0 -15
- package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-evaluators.js +0 -71
- package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-evaluators.js.map +0 -1
- package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-resolver.d.ts +0 -9
- package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-resolver.js +0 -58
- package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-resolver.js.map +0 -1
- package/lib/cjs/content-fields/custom-conditional/flow-custom-condition-v2.d.ts +0 -17
- package/lib/cjs/content-fields/custom-conditional/flow-custom-condition-v2.js +0 -79
- package/lib/cjs/content-fields/custom-conditional/flow-custom-condition-v2.js.map +0 -1
- package/lib/cjs/content-fields/flow-ai-agent-base.d.ts +0 -25
- package/lib/cjs/content-fields/flow-ai-agent-base.js +0 -97
- package/lib/cjs/content-fields/flow-ai-agent-base.js.map +0 -1
- package/lib/cjs/content-fields/flow-ai-agent-router.d.ts +0 -21
- package/lib/cjs/content-fields/flow-ai-agent-router.js +0 -125
- package/lib/cjs/content-fields/flow-ai-agent-router.js.map +0 -1
- package/lib/cjs/content-fields/flow-ai-agent.d.ts +0 -17
- package/lib/cjs/content-fields/flow-ai-agent.js +0 -64
- package/lib/cjs/content-fields/flow-ai-agent.js.map +0 -1
- package/lib/cjs/content-fields/flow-bot-action.d.ts +0 -14
- package/lib/cjs/content-fields/flow-bot-action.js +0 -45
- package/lib/cjs/content-fields/flow-bot-action.js.map +0 -1
- package/lib/cjs/content-fields/flow-button.d.ts +0 -31
- package/lib/cjs/content-fields/flow-button.js +0 -86
- package/lib/cjs/content-fields/flow-button.js.map +0 -1
- package/lib/cjs/content-fields/flow-capture-user-input.d.ts +0 -14
- package/lib/cjs/content-fields/flow-capture-user-input.js +0 -45
- package/lib/cjs/content-fields/flow-capture-user-input.js.map +0 -1
- package/lib/cjs/content-fields/flow-carousel.d.ts +0 -22
- package/lib/cjs/content-fields/flow-carousel.js +0 -152
- package/lib/cjs/content-fields/flow-carousel.js.map +0 -1
- package/lib/cjs/content-fields/flow-channel-conditional.d.ts +0 -14
- package/lib/cjs/content-fields/flow-channel-conditional.js +0 -57
- package/lib/cjs/content-fields/flow-channel-conditional.js.map +0 -1
- package/lib/cjs/content-fields/flow-country-conditional.d.ts +0 -13
- package/lib/cjs/content-fields/flow-country-conditional.js +0 -59
- package/lib/cjs/content-fields/flow-country-conditional.js.map +0 -1
- package/lib/cjs/content-fields/flow-custom-conditional.d.ts +0 -17
- package/lib/cjs/content-fields/flow-custom-conditional.js +0 -89
- package/lib/cjs/content-fields/flow-custom-conditional.js.map +0 -1
- package/lib/cjs/content-fields/flow-element.d.ts +0 -22
- package/lib/cjs/content-fields/flow-element.js +0 -50
- package/lib/cjs/content-fields/flow-element.js.map +0 -1
- package/lib/cjs/content-fields/flow-go-to-flow.d.ts +0 -13
- package/lib/cjs/content-fields/flow-go-to-flow.js +0 -51
- package/lib/cjs/content-fields/flow-go-to-flow.js.map +0 -1
- package/lib/cjs/content-fields/flow-handoff.d.ts +0 -17
- package/lib/cjs/content-fields/flow-handoff.js +0 -68
- package/lib/cjs/content-fields/flow-handoff.js.map +0 -1
- package/lib/cjs/content-fields/flow-image.d.ts +0 -10
- package/lib/cjs/content-fields/flow-image.js +0 -33
- package/lib/cjs/content-fields/flow-image.js.map +0 -1
- package/lib/cjs/content-fields/flow-queue-status-conditional.d.ts +0 -30
- package/lib/cjs/content-fields/flow-queue-status-conditional.js +0 -95
- package/lib/cjs/content-fields/flow-queue-status-conditional.js.map +0 -1
- package/lib/cjs/content-fields/flow-rating.d.ts +0 -15
- package/lib/cjs/content-fields/flow-rating.js +0 -66
- package/lib/cjs/content-fields/flow-rating.js.map +0 -1
- package/lib/cjs/content-fields/flow-text.d.ts +0 -15
- package/lib/cjs/content-fields/flow-text.js +0 -60
- package/lib/cjs/content-fields/flow-text.js.map +0 -1
- package/lib/cjs/content-fields/flow-video.d.ts +0 -10
- package/lib/cjs/content-fields/flow-video.js +0 -33
- package/lib/cjs/content-fields/flow-video.js.map +0 -1
- package/lib/cjs/content-fields/flow-webview.d.ts +0 -16
- package/lib/cjs/content-fields/flow-webview.js +0 -78
- package/lib/cjs/content-fields/flow-webview.js.map +0 -1
- package/lib/cjs/content-fields/flow-whatsapp-cta-url-button.d.ts +0 -21
- package/lib/cjs/content-fields/flow-whatsapp-cta-url-button.js +0 -92
- package/lib/cjs/content-fields/flow-whatsapp-cta-url-button.js.map +0 -1
- package/lib/cjs/content-fields/flow-whatsapp-request-contact-info.d.ts +0 -11
- package/lib/cjs/content-fields/flow-whatsapp-request-contact-info.js +0 -45
- package/lib/cjs/content-fields/flow-whatsapp-request-contact-info.js.map +0 -1
- package/lib/cjs/content-fields/flow-whatsapp-template.d.ts +0 -37
- package/lib/cjs/content-fields/flow-whatsapp-template.js +0 -264
- package/lib/cjs/content-fields/flow-whatsapp-template.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/ai-agent-router.d.ts +0 -21
- package/lib/cjs/content-fields/hubtype-fields/ai-agent-router.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/ai-agent-router.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/ai-agent.d.ts +0 -25
- package/lib/cjs/content-fields/hubtype-fields/ai-agent.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/ai-agent.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/bot-action.d.ts +0 -10
- package/lib/cjs/content-fields/hubtype-fields/bot-action.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/bot-action.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/button.d.ts +0 -8
- package/lib/cjs/content-fields/hubtype-fields/button.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/button.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/capture-user-input.d.ts +0 -19
- package/lib/cjs/content-fields/hubtype-fields/capture-user-input.js +0 -12
- package/lib/cjs/content-fields/hubtype-fields/capture-user-input.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/carousel.d.ts +0 -17
- package/lib/cjs/content-fields/hubtype-fields/carousel.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/carousel.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/channel-conditional.d.ts +0 -10
- package/lib/cjs/content-fields/hubtype-fields/channel-conditional.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/channel-conditional.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/common.d.ts +0 -83
- package/lib/cjs/content-fields/hubtype-fields/common.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/common.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/country-conditional.d.ts +0 -10
- package/lib/cjs/content-fields/hubtype-fields/country-conditional.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/country-conditional.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/custom-conditional-v2.d.ts +0 -56
- package/lib/cjs/content-fields/hubtype-fields/custom-conditional-v2.js +0 -36
- package/lib/cjs/content-fields/hubtype-fields/custom-conditional-v2.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/custom-conditional.d.ts +0 -11
- package/lib/cjs/content-fields/hubtype-fields/custom-conditional.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/custom-conditional.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/fallback.d.ts +0 -9
- package/lib/cjs/content-fields/hubtype-fields/fallback.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/fallback.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/function.d.ts +0 -30
- package/lib/cjs/content-fields/hubtype-fields/function.js +0 -11
- package/lib/cjs/content-fields/hubtype-fields/function.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/go-to-flow.d.ts +0 -9
- package/lib/cjs/content-fields/hubtype-fields/go-to-flow.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/go-to-flow.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/handoff.d.ts +0 -11
- package/lib/cjs/content-fields/hubtype-fields/handoff.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/handoff.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/image.d.ts +0 -8
- package/lib/cjs/content-fields/hubtype-fields/image.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/image.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/index.d.ts +0 -27
- package/lib/cjs/content-fields/hubtype-fields/index.js +0 -31
- package/lib/cjs/content-fields/hubtype-fields/index.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/keyword.d.ts +0 -9
- package/lib/cjs/content-fields/hubtype-fields/keyword.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/keyword.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/node-types.d.ts +0 -31
- package/lib/cjs/content-fields/hubtype-fields/node-types.js +0 -38
- package/lib/cjs/content-fields/hubtype-fields/node-types.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/nodes.d.ts +0 -26
- package/lib/cjs/content-fields/hubtype-fields/nodes.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/nodes.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/payload.d.ts +0 -8
- package/lib/cjs/content-fields/hubtype-fields/payload.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/payload.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/queue-status-conditional.d.ts +0 -25
- package/lib/cjs/content-fields/hubtype-fields/queue-status-conditional.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/queue-status-conditional.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/rating.d.ts +0 -23
- package/lib/cjs/content-fields/hubtype-fields/rating.js +0 -9
- package/lib/cjs/content-fields/hubtype-fields/rating.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/smart-intent.d.ts +0 -12
- package/lib/cjs/content-fields/hubtype-fields/smart-intent.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/smart-intent.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/text.d.ts +0 -11
- package/lib/cjs/content-fields/hubtype-fields/text.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/text.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/url.d.ts +0 -8
- package/lib/cjs/content-fields/hubtype-fields/url.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/url.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/video.d.ts +0 -8
- package/lib/cjs/content-fields/hubtype-fields/video.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/video.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/webview.d.ts +0 -17
- package/lib/cjs/content-fields/hubtype-fields/webview.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/webview.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-button-list.d.ts +0 -21
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-button-list.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-button-list.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-cta-url-button.d.ts +0 -17
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-cta-url-button.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-cta-url-button.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-request-contact-info.d.ts +0 -8
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-request-contact-info.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-request-contact-info.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-template.d.ts +0 -96
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-template.js +0 -9
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-template.js.map +0 -1
- package/lib/cjs/content-fields/index.d.ts +0 -25
- package/lib/cjs/content-fields/index.js +0 -52
- package/lib/cjs/content-fields/index.js.map +0 -1
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.d.ts +0 -14
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js +0 -41
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js.map +0 -1
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.d.ts +0 -13
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js +0 -36
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js.map +0 -1
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list.d.ts +0 -14
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js +0 -46
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js.map +0 -1
- package/lib/cjs/content-fields/whatsapp-button-list/index.d.ts +0 -3
- package/lib/cjs/content-fields/whatsapp-button-list/index.js +0 -10
- package/lib/cjs/content-fields/whatsapp-button-list/index.js.map +0 -1
- package/lib/cjs/filters/index.d.ts +0 -12
- package/lib/cjs/filters/index.js +0 -17
- package/lib/cjs/filters/index.js.map +0 -1
- package/lib/cjs/flow-factory.d.ts +0 -12
- package/lib/cjs/flow-factory.js +0 -69
- package/lib/cjs/flow-factory.js.map +0 -1
- package/lib/cjs/functions/index.d.ts +0 -11
- package/lib/cjs/functions/index.js +0 -49
- package/lib/cjs/functions/index.js.map +0 -1
- package/lib/cjs/index.d.ts +0 -45
- package/lib/cjs/index.js +0 -178
- package/lib/cjs/index.js.map +0 -1
- package/lib/cjs/services/hubtype-queues-api.d.ts +0 -14
- package/lib/cjs/services/hubtype-queues-api.js +0 -26
- package/lib/cjs/services/hubtype-queues-api.js.map +0 -1
- package/lib/cjs/structured-output/flow-builder-content.d.ts +0 -13
- package/lib/cjs/structured-output/flow-builder-content.js +0 -15
- package/lib/cjs/structured-output/flow-builder-content.js.map +0 -1
- package/lib/cjs/tracking.d.ts +0 -16
- package/lib/cjs/tracking.js +0 -71
- package/lib/cjs/tracking.js.map +0 -1
- package/lib/cjs/types.d.ts +0 -62
- package/lib/cjs/types.js +0 -14
- package/lib/cjs/types.js.map +0 -1
- package/lib/cjs/user-input/capture-user-input-api.d.ts +0 -21
- package/lib/cjs/user-input/capture-user-input-api.js +0 -88
- package/lib/cjs/user-input/capture-user-input-api.js.map +0 -1
- package/lib/cjs/user-input/index.d.ts +0 -4
- package/lib/cjs/user-input/index.js +0 -37
- package/lib/cjs/user-input/index.js.map +0 -1
- package/lib/cjs/user-input/keyword.d.ts +0 -27
- package/lib/cjs/user-input/keyword.js +0 -84
- package/lib/cjs/user-input/keyword.js.map +0 -1
- package/lib/cjs/user-input/smart-intent.d.ts +0 -24
- package/lib/cjs/user-input/smart-intent.js +0 -89
- package/lib/cjs/user-input/smart-intent.js.map +0 -1
- package/lib/cjs/utils/ai-agent.d.ts +0 -11
- package/lib/cjs/utils/ai-agent.js +0 -28
- package/lib/cjs/utils/ai-agent.js.map +0 -1
- package/lib/cjs/utils/authentication.d.ts +0 -2
- package/lib/cjs/utils/authentication.js +0 -21
- package/lib/cjs/utils/authentication.js.map +0 -1
- package/lib/cjs/utils/flow-locale.d.ts +0 -22
- package/lib/cjs/utils/flow-locale.js +0 -79
- package/lib/cjs/utils/flow-locale.js.map +0 -1
- package/lib/cjs/utils/get-flow-builder-plugin.d.ts +0 -3
- package/lib/cjs/utils/get-flow-builder-plugin.js +0 -16
- package/lib/cjs/utils/get-flow-builder-plugin.js.map +0 -1
- package/lib/cjs/utils/hubtype-assistant-content.d.ts +0 -13
- package/lib/cjs/utils/hubtype-assistant-content.js +0 -184
- package/lib/cjs/utils/hubtype-assistant-content.js.map +0 -1
- package/lib/cjs/utils/input.d.ts +0 -6
- package/lib/cjs/utils/input.js +0 -35
- package/lib/cjs/utils/input.js.map +0 -1
- package/lib/cjs/webview/contents-context.d.ts +0 -2
- package/lib/cjs/webview/contents-context.js +0 -12
- package/lib/cjs/webview/contents-context.js.map +0 -1
- package/lib/cjs/webview/index.d.ts +0 -3
- package/lib/cjs/webview/index.js +0 -10
- package/lib/cjs/webview/index.js.map +0 -1
- package/lib/cjs/webview/types.d.ts +0 -47
- package/lib/cjs/webview/types.js +0 -9
- package/lib/cjs/webview/types.js.map +0 -1
- package/lib/cjs/webview/use-webview-contents.d.ts +0 -2
- package/lib/cjs/webview/use-webview-contents.js +0 -83
- package/lib/cjs/webview/use-webview-contents.js.map +0 -1
|
@@ -1,18 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { EventAction, NluType } from "@botonic/core";
|
|
2
|
+
import axios from "axios";
|
|
3
|
+
import { getCommonFlowContentEventArgsForContentId, trackEvent } from "../tracking.js";
|
|
4
|
+
import { getFlowBuilderPlugin } from "../utils/get-flow-builder-plugin.js";
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
9
14
|
class SmartIntentsApi {
|
|
10
|
-
constructor(cmsApi, currentRequest, smartIntentsConfig, userTextOrTranscript) {
|
|
11
|
-
this.cmsApi = cmsApi;
|
|
12
|
-
this.currentRequest = currentRequest;
|
|
13
|
-
this.smartIntentsConfig = smartIntentsConfig;
|
|
14
|
-
this.userTextOrTranscript = userTextOrTranscript;
|
|
15
|
-
}
|
|
16
15
|
async getNodeByInput() {
|
|
17
16
|
if (!this.userTextOrTranscript) {
|
|
18
17
|
return undefined;
|
|
@@ -21,29 +20,27 @@ class SmartIntentsApi {
|
|
|
21
20
|
if (!smartIntentNodes.length) {
|
|
22
21
|
return undefined;
|
|
23
22
|
}
|
|
24
|
-
const disabledSmartIntentTitles = smartIntentNodes
|
|
25
|
-
.filter(smartIntentNode => smartIntentNode.content.is_active === false)
|
|
26
|
-
.map(smartIntentNode => smartIntentNode.content.title);
|
|
23
|
+
const disabledSmartIntentTitles = smartIntentNodes.filter((smartIntentNode)=>smartIntentNode.content.is_active === false).map((smartIntentNode)=>smartIntentNode.content.title);
|
|
27
24
|
const params = {
|
|
28
25
|
bot_id: this.currentRequest.session.bot.id,
|
|
29
26
|
text: this.userTextOrTranscript,
|
|
30
27
|
num_smart_intents_to_use: this.smartIntentsConfig.numSmartIntentsToUse,
|
|
31
28
|
use_latest: this.resolveUseLatest(),
|
|
32
|
-
disabled_smart_intent_titles: disabledSmartIntentTitles
|
|
29
|
+
disabled_smart_intent_titles: disabledSmartIntentTitles
|
|
33
30
|
};
|
|
34
31
|
try {
|
|
35
32
|
const response = await this.getInference(params);
|
|
36
|
-
const smartIntentNode = smartIntentNodes.find(smartIntentNode
|
|
33
|
+
const smartIntentNode = smartIntentNodes.find((smartIntentNode)=>smartIntentNode.content.title === response.data.smart_intent_title);
|
|
37
34
|
if (smartIntentNode) {
|
|
38
35
|
const targetPayload = this.cmsApi.getPayload(smartIntentNode.target);
|
|
39
36
|
this.currentRequest.input.nluResolution = {
|
|
40
|
-
type:
|
|
37
|
+
type: NluType.SmartIntent,
|
|
41
38
|
matchedValue: smartIntentNode.content.title,
|
|
42
|
-
payload: targetPayload
|
|
39
|
+
payload: targetPayload
|
|
43
40
|
};
|
|
44
|
-
const { flowId, flowName, flowNodeId, flowNodeContentId } =
|
|
41
|
+
const { flowId, flowName, flowNodeId, flowNodeContentId } = getCommonFlowContentEventArgsForContentId(this.currentRequest, smartIntentNode.id);
|
|
45
42
|
const event = {
|
|
46
|
-
action:
|
|
43
|
+
action: EventAction.IntentSmart,
|
|
47
44
|
nluIntentSmartTitle: response.data.smart_intent_title,
|
|
48
45
|
nluIntentSmartNumUsed: response.data.smart_intents_used.length,
|
|
49
46
|
nluIntentSmartMessageId: this.currentRequest.input.message_id,
|
|
@@ -52,14 +49,13 @@ class SmartIntentsApi {
|
|
|
52
49
|
flowId,
|
|
53
50
|
flowName,
|
|
54
51
|
flowNodeContentId,
|
|
55
|
-
flowNodeId
|
|
52
|
+
flowNodeId
|
|
56
53
|
};
|
|
57
54
|
const { action, ...eventArgs } = event;
|
|
58
|
-
await
|
|
55
|
+
await trackEvent(this.currentRequest, action, eventArgs);
|
|
59
56
|
return smartIntentNode;
|
|
60
57
|
}
|
|
61
|
-
}
|
|
62
|
-
catch (e) {
|
|
58
|
+
} catch (e) {
|
|
63
59
|
console.error(e);
|
|
64
60
|
}
|
|
65
61
|
return undefined;
|
|
@@ -71,19 +67,27 @@ class SmartIntentsApi {
|
|
|
71
67
|
return this.smartIntentsConfig.useLatest;
|
|
72
68
|
}
|
|
73
69
|
async getInference(inferenceParams) {
|
|
74
|
-
const pluginFlowBuilder =
|
|
70
|
+
const pluginFlowBuilder = getFlowBuilderPlugin(this.currentRequest.plugins);
|
|
75
71
|
const token = pluginFlowBuilder.getAccessToken(this.currentRequest.session);
|
|
76
|
-
return await (
|
|
72
|
+
return await axios({
|
|
77
73
|
method: 'POST',
|
|
78
74
|
url: `${process.env.HUBTYPE_API_URL}/external/v2/ai/smart_intents/inference/`,
|
|
79
75
|
headers: {
|
|
80
76
|
Authorization: `Bearer ${token}`,
|
|
81
|
-
'Content-Type': 'application/json'
|
|
77
|
+
'Content-Type': 'application/json'
|
|
82
78
|
},
|
|
83
79
|
data: inferenceParams,
|
|
84
|
-
timeout: 10000
|
|
80
|
+
timeout: 10000
|
|
85
81
|
});
|
|
86
82
|
}
|
|
83
|
+
constructor(cmsApi, currentRequest, smartIntentsConfig, userTextOrTranscript){
|
|
84
|
+
this.cmsApi = cmsApi;
|
|
85
|
+
this.currentRequest = currentRequest;
|
|
86
|
+
this.smartIntentsConfig = smartIntentsConfig;
|
|
87
|
+
this.userTextOrTranscript = userTextOrTranscript;
|
|
88
|
+
}
|
|
87
89
|
}
|
|
88
|
-
|
|
90
|
+
|
|
91
|
+
export { SmartIntentsApi };
|
|
92
|
+
|
|
89
93
|
//# sourceMappingURL=smart-intent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smart-intent.js","
|
|
1
|
+
{"version":3,"file":"user-input/smart-intent.js","sources":["../../../src/user-input/smart-intent.ts"],"sourcesContent":["import { EventAction, type EventIntentSmart, NluType } from '@botonic/core'\nimport type { ActionRequest } from '@botonic/react'\nimport axios from 'axios'\n\nimport type { FlowBuilderApi } from '../api'\nimport type { HtSmartIntentNode } from '../content-fields/hubtype-fields/smart-intent'\nimport {\n getCommonFlowContentEventArgsForContentId,\n trackEvent,\n} from '../tracking'\nimport type { SmartIntentResponse } from '../types'\nimport { getFlowBuilderPlugin } from '../utils/get-flow-builder-plugin'\n\nexport interface SmartIntentsInferenceParams {\n bot_id: string\n text: string\n num_smart_intents_to_use?: number\n use_latest: boolean\n disabled_smart_intent_titles: string[]\n}\n\nexport interface SmartIntentsInferenceConfig {\n useLatest: boolean\n numSmartIntentsToUse?: number\n}\n\nexport class SmartIntentsApi {\n constructor(\n public cmsApi: FlowBuilderApi,\n public currentRequest: ActionRequest,\n public smartIntentsConfig: SmartIntentsInferenceConfig,\n public userTextOrTranscript: string\n ) {}\n\n async getNodeByInput(): Promise<HtSmartIntentNode | undefined> {\n if (!this.userTextOrTranscript) {\n return undefined\n }\n const smartIntentNodes = this.cmsApi.getSmartIntentNodes()\n if (!smartIntentNodes.length) {\n return undefined\n }\n\n const disabledSmartIntentTitles = smartIntentNodes\n .filter(smartIntentNode => smartIntentNode.content.is_active === false)\n .map(smartIntentNode => smartIntentNode.content.title)\n\n const params = {\n bot_id: this.currentRequest.session.bot.id,\n text: this.userTextOrTranscript,\n num_smart_intents_to_use: this.smartIntentsConfig.numSmartIntentsToUse,\n use_latest: this.resolveUseLatest(),\n disabled_smart_intent_titles: disabledSmartIntentTitles,\n }\n\n try {\n const response = await this.getInference(params)\n const smartIntentNode = smartIntentNodes.find(\n smartIntentNode =>\n smartIntentNode.content.title === response.data.smart_intent_title\n )\n\n if (smartIntentNode) {\n const targetPayload = this.cmsApi.getPayload(smartIntentNode.target)\n this.currentRequest.input.nluResolution = {\n type: NluType.SmartIntent,\n matchedValue: smartIntentNode.content.title,\n payload: targetPayload,\n }\n\n const { flowId, flowName, flowNodeId, flowNodeContentId } =\n getCommonFlowContentEventArgsForContentId(\n this.currentRequest,\n smartIntentNode.id\n )\n\n const event: EventIntentSmart = {\n action: EventAction.IntentSmart,\n nluIntentSmartTitle: response.data.smart_intent_title,\n nluIntentSmartNumUsed: response.data.smart_intents_used.length,\n nluIntentSmartMessageId: this.currentRequest.input.message_id,\n userInput: this.userTextOrTranscript,\n flowThreadId: this.currentRequest.session.flow_thread_id as string,\n flowId,\n flowName,\n flowNodeContentId,\n flowNodeId,\n }\n const { action, ...eventArgs } = event\n\n await trackEvent(this.currentRequest, action, eventArgs)\n\n return smartIntentNode\n }\n } catch (e) {\n console.error(e)\n }\n return undefined\n }\n\n private resolveUseLatest(): boolean {\n if (this.currentRequest.session.is_test_integration) {\n return false\n }\n return this.smartIntentsConfig.useLatest\n }\n\n private async getInference(\n inferenceParams: SmartIntentsInferenceParams\n ): Promise<SmartIntentResponse> {\n const pluginFlowBuilder = getFlowBuilderPlugin(this.currentRequest.plugins)\n const token = pluginFlowBuilder.getAccessToken(this.currentRequest.session)\n\n return await axios({\n method: 'POST',\n url: `${process.env.HUBTYPE_API_URL}/external/v2/ai/smart_intents/inference/`,\n headers: {\n Authorization: `Bearer ${token}`,\n 'Content-Type': 'application/json',\n },\n data: inferenceParams,\n timeout: 10000,\n })\n }\n}\n"],"names":["EventAction","NluType","axios","getCommonFlowContentEventArgsForContentId","trackEvent","getFlowBuilderPlugin","SmartIntentsApi","undefined","smartIntentNodes","disabledSmartIntentTitles","smartIntentNode","params","response","targetPayload","flowId","flowName","flowNodeId","flowNodeContentId","event","action","eventArgs","e","console","inferenceParams","pluginFlowBuilder","token","process","cmsApi","currentRequest","smartIntentsConfig","userTextOrTranscript"],"mappings":";;;;;;;;;AAA2E;AAElD;AAOL;AAEmD;AAehE,MAAMM,eAAeA;IAQ1B,MAAM,iBAAyD;QAC7D,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC9B,OAAOC;QACT;QACA,MAAMC,mBAAmB,IAAI,CAAC,MAAM,CAAC,mBAAmB;QACxD,IAAI,CAACA,iBAAiB,MAAM,EAAE;YAC5B,OAAOD;QACT;QAEA,MAAME,4BAA4BD,iBAC/B,MAAM,CAACE,CAAAA,kBAAmBA,gBAAgB,OAAO,CAAC,SAAS,KAAK,OAChE,GAAG,CAACA,CAAAA,kBAAmBA,gBAAgB,OAAO,CAAC,KAAK;QAEvD,MAAMC,SAAS;YACb,QAAQ,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC1C,MAAM,IAAI,CAAC,oBAAoB;YAC/B,0BAA0B,IAAI,CAAC,kBAAkB,CAAC,oBAAoB;YACtE,YAAY,IAAI,CAAC,gBAAgB;YACjC,8BAA8BF;QAChC;QAEA,IAAI;YACF,MAAMG,WAAW,MAAM,IAAI,CAAC,YAAY,CAACD;YACzC,MAAMD,kBAAkBF,iBAAiB,IAAI,CAC3CE,CAAAA,kBACEA,gBAAgB,OAAO,CAAC,KAAK,KAAKE,SAAS,IAAI,CAAC,kBAAkB;YAGtE,IAAIF,iBAAiB;gBACnB,MAAMG,gBAAgB,IAAI,CAAC,MAAM,CAAC,UAAU,CAACH,gBAAgB,MAAM;gBACnE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,aAAa,GAAG;oBACxC,MAAMT,mBAAmB;oBACzB,cAAcS,gBAAgB,OAAO,CAAC,KAAK;oBAC3C,SAASG;gBACX;gBAEA,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,iBAAiB,EAAE,GACvDd,yCAAyCA,CACvC,IAAI,CAAC,cAAc,EACnBO,gBAAgB,EAAE;gBAGtB,MAAMQ,QAA0B;oBAC9B,QAAQlB,uBAAuB;oBAC/B,qBAAqBY,SAAS,IAAI,CAAC,kBAAkB;oBACrD,uBAAuBA,SAAS,IAAI,CAAC,kBAAkB,CAAC,MAAM;oBAC9D,yBAAyB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU;oBAC7D,WAAW,IAAI,CAAC,oBAAoB;oBACpC,cAAc,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,cAAc;oBACxDE;oBACAC;oBACAE;oBACAD;gBACF;gBACA,MAAM,EAAEG,MAAM,EAAE,GAAGC,WAAW,GAAGF;gBAEjC,MAAMd,UAAUA,CAAC,IAAI,CAAC,cAAc,EAAEe,QAAQC;gBAE9C,OAAOV;YACT;QACF,EAAE,OAAOW,GAAG;YACVC,QAAQ,KAAK,CAACD;QAChB;QACA,OAAOd;IACT;IAEQ,mBAA4B;QAClC,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,mBAAmB,EAAE;YACnD,OAAO;QACT;QACA,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS;IAC1C;IAEA,MAAc,aACZgB,eAA4C,EACd;QAC9B,MAAMC,oBAAoBnB,oBAAoBA,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO;QAC1E,MAAMoB,QAAQD,kBAAkB,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO;QAE1E,OAAO,MAAMtB,KAAKA,CAAC;YACjB,QAAQ;YACR,KAAK,GAAGwB,QAAQ,GAAG,CAAC,eAAe,CAAC,wCAAwC,CAAC;YAC7E,SAAS;gBACP,eAAe,CAAC,OAAO,EAAED,OAAO;gBAChC,gBAAgB;YAClB;YACA,MAAMF;YACN,SAAS;QACX;IACF;IAhGA,YACSI,MAAsB,EACtBC,cAA6B,EAC7BC,kBAA+C,EAC/CC,oBAA4B,CACnC;aAJOH,SAAAA;aACAC,iBAAAA;aACAC,qBAAAA;aACAC,uBAAAA;IACN;AA4FL"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { FlowAiAgentRouter } from '../content-fields/flow-ai-agent-router';
|
|
2
|
-
import { FlowAiAgent, type FlowContent } from '../content-fields/index';
|
|
3
|
-
export { HubtypeAssistantContent } from './hubtype-assistant-content';
|
|
1
|
+
import { FlowAiAgentRouter } from '../content-fields/flow-ai-agent-router.js';
|
|
2
|
+
import { FlowAiAgent, type FlowContent } from '../content-fields/index.js';
|
|
3
|
+
export { HubtypeAssistantContent } from './hubtype-assistant-content.js';
|
|
4
4
|
type AiAgentContentAndContentsBeforeAiAgent = {
|
|
5
5
|
aiAgentWorkerContent: FlowAiAgent;
|
|
6
6
|
contentsBeforeAiAgentWorker: FlowContent[];
|
|
@@ -1,20 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { FlowAiAgentRouter } from "../content-fields/flow-ai-agent-router.js";
|
|
2
|
+
import { FlowAiAgent } from "../content-fields/index.js";
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
9
10
|
function splitAiAgentContents(contents) {
|
|
10
|
-
const aiAgentRouterIndex = contents.findIndex(content
|
|
11
|
+
const aiAgentRouterIndex = contents.findIndex((content)=>content instanceof FlowAiAgentRouter);
|
|
11
12
|
if (aiAgentRouterIndex >= 0) {
|
|
12
13
|
return {
|
|
13
14
|
aiAgentRouterContent: contents[aiAgentRouterIndex],
|
|
14
|
-
contentsBeforeAiAgentRouter: contents.slice(0, aiAgentRouterIndex)
|
|
15
|
+
contentsBeforeAiAgentRouter: contents.slice(0, aiAgentRouterIndex)
|
|
15
16
|
};
|
|
16
17
|
}
|
|
17
|
-
const aiAgentIndex = contents.findIndex(content
|
|
18
|
+
const aiAgentIndex = contents.findIndex((content)=>content instanceof FlowAiAgent);
|
|
18
19
|
if (aiAgentIndex < 0) {
|
|
19
20
|
return undefined;
|
|
20
21
|
}
|
|
@@ -22,7 +23,11 @@ function splitAiAgentContents(contents) {
|
|
|
22
23
|
const contentsBeforeAiAgentWorker = contents.slice(0, aiAgentIndex);
|
|
23
24
|
return {
|
|
24
25
|
aiAgentWorkerContent,
|
|
25
|
-
contentsBeforeAiAgentWorker
|
|
26
|
+
contentsBeforeAiAgentWorker
|
|
26
27
|
};
|
|
27
28
|
}
|
|
29
|
+
|
|
30
|
+
export { splitAiAgentContents };
|
|
31
|
+
export { HubtypeAssistantContent } from "./hubtype-assistant-content.js";
|
|
32
|
+
|
|
28
33
|
//# sourceMappingURL=ai-agent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-agent.js","
|
|
1
|
+
{"version":3,"file":"utils/ai-agent.js","sources":["../../../src/utils/ai-agent.ts"],"sourcesContent":["import { FlowAiAgentRouter } from '../content-fields/flow-ai-agent-router'\nimport { FlowAiAgent, type FlowContent } from '../content-fields/index'\n\nexport { HubtypeAssistantContent } from './hubtype-assistant-content'\n\ntype AiAgentContentAndContentsBeforeAiAgent =\n | {\n aiAgentWorkerContent: FlowAiAgent\n contentsBeforeAiAgentWorker: FlowContent[]\n }\n | {\n aiAgentRouterContent: FlowAiAgentRouter\n contentsBeforeAiAgentRouter: FlowContent[]\n }\n\nexport function splitAiAgentContents(\n contents: FlowContent[]\n): AiAgentContentAndContentsBeforeAiAgent | undefined {\n const aiAgentRouterIndex = contents.findIndex(\n content => content instanceof FlowAiAgentRouter\n )\n if (aiAgentRouterIndex >= 0) {\n return {\n aiAgentRouterContent: contents[aiAgentRouterIndex] as FlowAiAgentRouter,\n contentsBeforeAiAgentRouter: contents.slice(0, aiAgentRouterIndex),\n }\n }\n\n const aiAgentIndex = contents.findIndex(\n content => content instanceof FlowAiAgent\n )\n if (aiAgentIndex < 0) {\n return undefined\n }\n\n const aiAgentWorkerContent = contents[aiAgentIndex] as FlowAiAgent\n const contentsBeforeAiAgentWorker = contents.slice(0, aiAgentIndex)\n\n return {\n aiAgentWorkerContent,\n contentsBeforeAiAgentWorker,\n }\n}\n"],"names":["FlowAiAgentRouter","FlowAiAgent","HubtypeAssistantContent","splitAiAgentContents","contents","aiAgentRouterIndex","content","aiAgentIndex","undefined","aiAgentWorkerContent","contentsBeforeAiAgentWorker"],"mappings":";;;;;;AAA0E;AACH;AAEF;AAY9D,SAASG,oBAAoBA,CAClCC,QAAuB;IAEvB,MAAMC,qBAAqBD,SAAS,SAAS,CAC3CE,CAAAA,UAAWA,mBAAmBN,iBAAiBA;IAEjD,IAAIK,sBAAsB,GAAG;QAC3B,OAAO;YACL,sBAAsBD,QAAQ,CAACC,mBAAmB;YAClD,6BAA6BD,SAAS,KAAK,CAAC,GAAGC;QACjD;IACF;IAEA,MAAME,eAAeH,SAAS,SAAS,CACrCE,CAAAA,UAAWA,mBAAmBL,WAAWA;IAE3C,IAAIM,eAAe,GAAG;QACpB,OAAOC;IACT;IAEA,MAAMC,uBAAuBL,QAAQ,CAACG,aAAa;IACnD,MAAMG,8BAA8BN,SAAS,KAAK,CAAC,GAAGG;IAEtD,OAAO;QACLE;QACAC;IACF;AACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { ProcessEnvNodeEnvs } from "../types.js";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
5
|
function getAccessTokenFromSession(session) {
|
|
6
6
|
if (!session._access_token) {
|
|
7
7
|
throw new Error('No access token found in session');
|
|
@@ -9,13 +9,16 @@ function getAccessTokenFromSession(session) {
|
|
|
9
9
|
return session._access_token;
|
|
10
10
|
}
|
|
11
11
|
function resolveGetAccessToken(getAccessToken) {
|
|
12
|
-
switch
|
|
13
|
-
case
|
|
12
|
+
switch(process.env.NODE_ENV){
|
|
13
|
+
case ProcessEnvNodeEnvs.PRODUCTION:
|
|
14
14
|
return getAccessTokenFromSession;
|
|
15
|
-
case
|
|
15
|
+
case ProcessEnvNodeEnvs.DEVELOPMENT:
|
|
16
16
|
return getAccessToken;
|
|
17
17
|
default:
|
|
18
18
|
throw new Error('No method defined for getting access token');
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
|
+
|
|
22
|
+
export { resolveGetAccessToken };
|
|
23
|
+
|
|
21
24
|
//# sourceMappingURL=authentication.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authentication.js","
|
|
1
|
+
{"version":3,"file":"utils/authentication.js","sources":["../../../src/utils/authentication.ts"],"sourcesContent":["import type { Session } from '@botonic/core'\n\nimport { ProcessEnvNodeEnvs } from '../types'\n\nfunction getAccessTokenFromSession(session: Session): string {\n if (!session._access_token) {\n throw new Error('No access token found in session')\n }\n return session._access_token\n}\n\nexport function resolveGetAccessToken(\n getAccessToken: (session: Session) => string\n): (session: Session) => string {\n switch (process.env.NODE_ENV) {\n case ProcessEnvNodeEnvs.PRODUCTION:\n return getAccessTokenFromSession\n case ProcessEnvNodeEnvs.DEVELOPMENT:\n return getAccessToken\n default:\n throw new Error('No method defined for getting access token')\n }\n}\n"],"names":["ProcessEnvNodeEnvs","getAccessTokenFromSession","session","Error","resolveGetAccessToken","getAccessToken","process"],"mappings":";;;AAE6C;AAE7C,SAASC,yBAAyBA,CAACC,OAAgB;IACjD,IAAI,CAACA,QAAQ,aAAa,EAAE;QAC1B,MAAM,IAAIC,MAAM;IAClB;IACA,OAAOD,QAAQ,aAAa;AAC9B;AAEO,SAASE,qBAAqBA,CACnCC,cAA4C;IAE5C,OAAQC,oBAAoB;QAC1B,KAAKN,6BAA6B;YAChC,OAAOC,yBAAyBA;QAClC,KAAKD,8BAA8B;YACjC,OAAOK;QACT;YACE,MAAM,IAAIF,MAAM;IACpB;AACF"}
|
|
@@ -1,16 +1,6 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FlowLocale = void 0;
|
|
4
1
|
class FlowLocale {
|
|
5
|
-
constructor(botContext, flowLocales, defaultLocaleCode) {
|
|
6
|
-
this.botContext = botContext;
|
|
7
|
-
this.flowLocales = flowLocales;
|
|
8
|
-
this.defaultLocaleCode = defaultLocaleCode;
|
|
9
|
-
}
|
|
10
2
|
resolve() {
|
|
11
|
-
const priorityLocale = this.isLanguageDetectionEnabled()
|
|
12
|
-
? this.getPriorityLocale()
|
|
13
|
-
: this.botContext.getSystemLocale();
|
|
3
|
+
const priorityLocale = this.isLanguageDetectionEnabled() ? this.getPriorityLocale() : this.botContext.getSystemLocale();
|
|
14
4
|
if (priorityLocale) {
|
|
15
5
|
const exactMatch = this.matchExactLocale(priorityLocale);
|
|
16
6
|
if (exactMatch) {
|
|
@@ -27,12 +17,11 @@ class FlowLocale {
|
|
|
27
17
|
return !!this.botContext.settings?.LANGUAGE_DETECTION_ENABLED;
|
|
28
18
|
}
|
|
29
19
|
/**
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
getPriorityLocale() {
|
|
20
|
+
* Rules:
|
|
21
|
+
* - If user and system languages differ, user locale takes priority.
|
|
22
|
+
* - If both share the same language, the more specific locale wins.
|
|
23
|
+
* - If both have the same specificity, user locale wins.
|
|
24
|
+
*/ getPriorityLocale() {
|
|
36
25
|
const userLocale = this.botContext.getUserLocale();
|
|
37
26
|
const systemLocale = this.botContext.getSystemLocale();
|
|
38
27
|
if (!userLocale || !systemLocale) {
|
|
@@ -74,6 +63,13 @@ class FlowLocale {
|
|
|
74
63
|
isSpecificLocale(locale) {
|
|
75
64
|
return locale.includes('-');
|
|
76
65
|
}
|
|
66
|
+
constructor(botContext, flowLocales, defaultLocaleCode){
|
|
67
|
+
this.botContext = botContext;
|
|
68
|
+
this.flowLocales = flowLocales;
|
|
69
|
+
this.defaultLocaleCode = defaultLocaleCode;
|
|
70
|
+
}
|
|
77
71
|
}
|
|
78
|
-
|
|
72
|
+
|
|
73
|
+
export { FlowLocale };
|
|
74
|
+
|
|
79
75
|
//# sourceMappingURL=flow-locale.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow-locale.js","
|
|
1
|
+
{"version":3,"file":"utils/flow-locale.js","sources":["../../../src/utils/flow-locale.ts"],"sourcesContent":["import type { BotContext } from '@botonic/core'\n\nexport class FlowLocale {\n constructor(\n private readonly botContext: BotContext,\n private readonly flowLocales: string[],\n private readonly defaultLocaleCode: string\n ) {}\n\n resolve(): string {\n const priorityLocale = this.isLanguageDetectionEnabled()\n ? this.getPriorityLocale()\n : this.botContext.getSystemLocale()\n\n if (priorityLocale) {\n const exactMatch = this.matchExactLocale(priorityLocale)\n if (exactMatch) {\n return this.applyLocale(exactMatch)\n }\n\n const languageMatch = this.matchLanguage(priorityLocale)\n if (languageMatch) {\n return this.applyLocale(languageMatch)\n }\n }\n\n return this.applyLocale(this.getDefaultLocale())\n }\n\n private isLanguageDetectionEnabled(): boolean {\n return !!this.botContext.settings?.LANGUAGE_DETECTION_ENABLED\n }\n\n /**\n * Rules:\n * - If user and system languages differ, user locale takes priority.\n * - If both share the same language, the more specific locale wins.\n * - If both have the same specificity, user locale wins.\n */\n private getPriorityLocale(): string | undefined {\n const userLocale = this.botContext.getUserLocale()\n const systemLocale = this.botContext.getSystemLocale()\n\n if (!userLocale || !systemLocale) {\n return undefined\n }\n\n const userLanguage = this.getLanguage(userLocale)\n const systemLanguage = this.getLanguage(systemLocale)\n\n if (userLanguage !== systemLanguage) {\n return userLocale\n }\n const userIsSpecific = this.isSpecificLocale(userLocale)\n const systemIsSpecific = this.isSpecificLocale(systemLocale)\n\n if (userIsSpecific && !systemIsSpecific) {\n return userLocale\n }\n if (!userIsSpecific && systemIsSpecific) {\n return systemLocale\n }\n\n return userLocale\n }\n\n private matchExactLocale(locale: string): string | undefined {\n return this.flowLocales.includes(locale) ? locale : undefined\n }\n\n private matchLanguage(locale: string): string | undefined {\n const language = this.getLanguage(locale)\n return this.flowLocales.includes(language) ? language : undefined\n }\n\n private getDefaultLocale(): string {\n return this.defaultLocaleCode || 'en'\n }\n\n private applyLocale(locale: string): string {\n this.botContext.setSystemLocale(locale)\n this.botContext.session.user.system_locale_updated = true\n return locale\n }\n\n private getLanguage(locale: string): string {\n return locale.split('-')[0]\n }\n\n private isSpecificLocale(locale: string): boolean {\n return locale.includes('-')\n }\n}\n"],"names":["FlowLocale","priorityLocale","exactMatch","languageMatch","userLocale","systemLocale","undefined","userLanguage","systemLanguage","userIsSpecific","systemIsSpecific","locale","language","botContext","flowLocales","defaultLocaleCode"],"mappings":"AAEO,MAAMA,UAAUA;IAOrB,UAAkB;QAChB,MAAMC,iBAAiB,IAAI,CAAC,0BAA0B,KAClD,IAAI,CAAC,iBAAiB,KACtB,IAAI,CAAC,UAAU,CAAC,eAAe;QAEnC,IAAIA,gBAAgB;YAClB,MAAMC,aAAa,IAAI,CAAC,gBAAgB,CAACD;YACzC,IAAIC,YAAY;gBACd,OAAO,IAAI,CAAC,WAAW,CAACA;YAC1B;YAEA,MAAMC,gBAAgB,IAAI,CAAC,aAAa,CAACF;YACzC,IAAIE,eAAe;gBACjB,OAAO,IAAI,CAAC,WAAW,CAACA;YAC1B;QACF;QAEA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB;IAC/C;IAEQ,6BAAsC;QAC5C,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;IACrC;IAEA;;;;;GAKC,GACO,oBAAwC;QAC9C,MAAMC,aAAa,IAAI,CAAC,UAAU,CAAC,aAAa;QAChD,MAAMC,eAAe,IAAI,CAAC,UAAU,CAAC,eAAe;QAEpD,IAAI,CAACD,cAAc,CAACC,cAAc;YAChC,OAAOC;QACT;QAEA,MAAMC,eAAe,IAAI,CAAC,WAAW,CAACH;QACtC,MAAMI,iBAAiB,IAAI,CAAC,WAAW,CAACH;QAExC,IAAIE,iBAAiBC,gBAAgB;YACnC,OAAOJ;QACT;QACA,MAAMK,iBAAiB,IAAI,CAAC,gBAAgB,CAACL;QAC7C,MAAMM,mBAAmB,IAAI,CAAC,gBAAgB,CAACL;QAE/C,IAAII,kBAAkB,CAACC,kBAAkB;YACvC,OAAON;QACT;QACA,IAAI,CAACK,kBAAkBC,kBAAkB;YACvC,OAAOL;QACT;QAEA,OAAOD;IACT;IAEQ,iBAAiBO,MAAc,EAAsB;QAC3D,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAACA,UAAUA,SAASL;IACtD;IAEQ,cAAcK,MAAc,EAAsB;QACxD,MAAMC,WAAW,IAAI,CAAC,WAAW,CAACD;QAClC,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAACC,YAAYA,WAAWN;IAC1D;IAEQ,mBAA2B;QACjC,OAAO,IAAI,CAAC,iBAAiB,IAAI;IACnC;IAEQ,YAAYK,MAAc,EAAU;QAC1C,IAAI,CAAC,UAAU,CAAC,eAAe,CAACA;QAChC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,GAAG;QACrD,OAAOA;IACT;IAEQ,YAAYA,MAAc,EAAU;QAC1C,OAAOA,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE;IAC7B;IAEQ,iBAAiBA,MAAc,EAAW;QAChD,OAAOA,OAAO,QAAQ,CAAC;IACzB;IAxFA,YACmBE,UAAsB,EACtBC,WAAqB,EACrBC,iBAAyB,CAC1C;aAHiBF,aAAAA;aACAC,cAAAA;aACAC,oBAAAA;IAChB;AAqFL"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getFlowBuilderPlugin = getFlowBuilderPlugin;
|
|
4
1
|
const FLOW_BUILDER_PLUGIN_NAME = 'BotonicPluginFlowBuilder';
|
|
5
2
|
function getFlowBuilderPlugin(plugins) {
|
|
6
3
|
const ERROR_MESSAGE = `You must include '@botonic/plugin-flow-builder' in your plugins file.`;
|
|
7
4
|
if (Object.values(plugins).length === 0) {
|
|
8
5
|
throw new Error(ERROR_MESSAGE);
|
|
9
6
|
}
|
|
10
|
-
const flowBuilderPlugin = Object.values(plugins).find(plugin
|
|
7
|
+
const flowBuilderPlugin = Object.values(plugins).find((plugin)=>plugin.constructor.name === FLOW_BUILDER_PLUGIN_NAME);
|
|
11
8
|
if (!flowBuilderPlugin) {
|
|
12
9
|
throw new Error(ERROR_MESSAGE);
|
|
13
10
|
}
|
|
14
11
|
return flowBuilderPlugin;
|
|
15
12
|
}
|
|
13
|
+
|
|
14
|
+
export { getFlowBuilderPlugin };
|
|
15
|
+
|
|
16
16
|
//# sourceMappingURL=get-flow-builder-plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-flow-builder-plugin.js","
|
|
1
|
+
{"version":3,"file":"utils/get-flow-builder-plugin.js","sources":["../../../src/utils/get-flow-builder-plugin.ts"],"sourcesContent":["import type { ResolvedPlugins } from '@botonic/core'\n\nimport type BotonicPluginFlowBuilder from '../index'\n\nconst FLOW_BUILDER_PLUGIN_NAME = 'BotonicPluginFlowBuilder'\n\nexport function getFlowBuilderPlugin(\n plugins: ResolvedPlugins\n): BotonicPluginFlowBuilder {\n const ERROR_MESSAGE = `You must include '@botonic/plugin-flow-builder' in your plugins file.`\n\n if (Object.values(plugins).length === 0) {\n throw new Error(ERROR_MESSAGE)\n }\n\n const flowBuilderPlugin = Object.values(plugins).find(\n plugin => plugin.constructor.name === FLOW_BUILDER_PLUGIN_NAME\n ) as unknown as BotonicPluginFlowBuilder\n\n if (!flowBuilderPlugin) {\n throw new Error(ERROR_MESSAGE)\n }\n\n return flowBuilderPlugin\n}\n"],"names":["FLOW_BUILDER_PLUGIN_NAME","getFlowBuilderPlugin","plugins","ERROR_MESSAGE","Object","Error","flowBuilderPlugin","plugin"],"mappings":"AAIA,MAAMA,wBAAwBA,GAAG;AAE1B,SAASC,oBAAoBA,CAClCC,OAAwB;IAExB,MAAMC,gBAAgB,CAAC,qEAAqE,CAAC;IAE7F,IAAIC,OAAO,MAAM,CAACF,SAAS,MAAM,KAAK,GAAG;QACvC,MAAM,IAAIG,MAAMF;IAClB;IAEA,MAAMG,oBAAoBF,OAAO,MAAM,CAACF,SAAS,IAAI,CACnDK,CAAAA,SAAUA,OAAO,WAAW,CAAC,IAAI,KAAKP,wBAAwBA;IAGhE,IAAI,CAACM,mBAAmB;QACtB,MAAM,IAAID,MAAMF;IAClB;IAEA,OAAOG;AACT"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FlowContent } from '../content-fields';
|
|
1
|
+
import type { FlowContent } from '../content-fields/index.js';
|
|
2
2
|
export declare class HubtypeAssistantContent {
|
|
3
3
|
static adapt(content: FlowContent): string;
|
|
4
4
|
private static quickReplyLabel;
|
|
@@ -9,5 +9,4 @@ export declare class HubtypeAssistantContent {
|
|
|
9
9
|
private static formatWhatsappButtonListContent;
|
|
10
10
|
private static formatWhatsappCtaContent;
|
|
11
11
|
private static formatWhatsappTemplateContent;
|
|
12
|
-
private static formatRequestContactInfoContent;
|
|
13
12
|
}
|
|
@@ -1,43 +1,55 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
1
|
+
import { WhatsappCTAUrlHeaderType } from "@botonic/react";
|
|
2
|
+
import { FlowCarousel } from "../content-fields/flow-carousel.js";
|
|
3
|
+
import { FlowImage } from "../content-fields/flow-image.js";
|
|
4
|
+
import { FlowText } from "../content-fields/flow-text.js";
|
|
5
|
+
import { FlowVideo } from "../content-fields/flow-video.js";
|
|
6
|
+
import { FlowWhatsappCtaUrlButtonNode } from "../content-fields/flow-whatsapp-cta-url-button.js";
|
|
7
|
+
import { FlowWhatsappTemplate } from "../content-fields/flow-whatsapp-template.js";
|
|
8
|
+
import { HtButtonStyle } from "../content-fields/hubtype-fields/index.js";
|
|
9
|
+
import { FlowWhatsappButtonList } from "../content-fields/whatsapp-button-list/flow-whatsapp-button-list.js";
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
14
29
|
// biome-ignore lint/complexity/noStaticOnlyClass: namespace-like adapter with private static helpers
|
|
15
30
|
class HubtypeAssistantContent {
|
|
16
31
|
static adapt(content) {
|
|
17
|
-
if (content instanceof
|
|
32
|
+
if (content instanceof FlowText) {
|
|
18
33
|
return HubtypeAssistantContent.formatFlowTextContent(content);
|
|
19
34
|
}
|
|
20
|
-
if (content instanceof
|
|
35
|
+
if (content instanceof FlowCarousel) {
|
|
21
36
|
return HubtypeAssistantContent.formatCarouselContent(content);
|
|
22
37
|
}
|
|
23
|
-
if (content instanceof
|
|
38
|
+
if (content instanceof FlowImage) {
|
|
24
39
|
return content.src ? `[Image]\n${content.src}` : '[Image]';
|
|
25
40
|
}
|
|
26
|
-
if (content instanceof
|
|
41
|
+
if (content instanceof FlowVideo) {
|
|
27
42
|
return content.src ? `[Video]\n${content.src}` : '[Video]';
|
|
28
43
|
}
|
|
29
|
-
if (content instanceof
|
|
44
|
+
if (content instanceof FlowWhatsappButtonList) {
|
|
30
45
|
return HubtypeAssistantContent.formatWhatsappButtonListContent(content);
|
|
31
46
|
}
|
|
32
|
-
if (content instanceof
|
|
47
|
+
if (content instanceof FlowWhatsappCtaUrlButtonNode) {
|
|
33
48
|
return HubtypeAssistantContent.formatWhatsappCtaContent(content);
|
|
34
49
|
}
|
|
35
|
-
if (content instanceof
|
|
50
|
+
if (content instanceof FlowWhatsappTemplate) {
|
|
36
51
|
return HubtypeAssistantContent.formatWhatsappTemplateContent(content);
|
|
37
52
|
}
|
|
38
|
-
if (content instanceof flow_whatsapp_request_contact_info_1.FlowWhatsappRequestContactInfoNode) {
|
|
39
|
-
return HubtypeAssistantContent.formatRequestContactInfoContent(content);
|
|
40
|
-
}
|
|
41
53
|
return '';
|
|
42
54
|
}
|
|
43
55
|
static quickReplyLabel(button) {
|
|
@@ -62,15 +74,16 @@ class HubtypeAssistantContent {
|
|
|
62
74
|
if (buttons.length === 0) {
|
|
63
75
|
return text.text;
|
|
64
76
|
}
|
|
65
|
-
const isQuickReply = text.buttonStyle ===
|
|
77
|
+
const isQuickReply = text.buttonStyle === HtButtonStyle.QUICK_REPLY;
|
|
66
78
|
const blockTitle = isQuickReply ? 'Quick replies:' : 'Buttons:';
|
|
67
|
-
const lines = buttons.map((button, i)
|
|
68
|
-
const label = isQuickReply
|
|
69
|
-
? HubtypeAssistantContent.quickReplyLabel(button)
|
|
70
|
-
: HubtypeAssistantContent.persistentButtonLabel(button);
|
|
79
|
+
const lines = buttons.map((button, i)=>{
|
|
80
|
+
const label = isQuickReply ? HubtypeAssistantContent.quickReplyLabel(button) : HubtypeAssistantContent.persistentButtonLabel(button);
|
|
71
81
|
return ` [${i + 1}] ${label}`;
|
|
72
82
|
});
|
|
73
|
-
const block = [
|
|
83
|
+
const block = [
|
|
84
|
+
blockTitle,
|
|
85
|
+
...lines
|
|
86
|
+
].join('\n');
|
|
74
87
|
if (!body) {
|
|
75
88
|
return block;
|
|
76
89
|
}
|
|
@@ -86,14 +99,12 @@ class HubtypeAssistantContent {
|
|
|
86
99
|
let header;
|
|
87
100
|
if (!mainText) {
|
|
88
101
|
header = `Carousel displayed with ${n} items:`;
|
|
89
|
-
}
|
|
90
|
-
else if (mainText.endsWith(':')) {
|
|
102
|
+
} else if (mainText.endsWith(':')) {
|
|
91
103
|
header = mainText;
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
104
|
+
} else {
|
|
94
105
|
header = `${mainText}\nCarousel with ${n} items:`;
|
|
95
106
|
}
|
|
96
|
-
const itemLines = elements.map((element, index)
|
|
107
|
+
const itemLines = elements.map((element, index)=>{
|
|
97
108
|
const title = element.title?.trim() || 'Item';
|
|
98
109
|
const subtitle = element.subtitle?.trim();
|
|
99
110
|
const subtitlePart = subtitle ? ` - ${subtitle}` : '';
|
|
@@ -104,11 +115,14 @@ class HubtypeAssistantContent {
|
|
|
104
115
|
const btnPart = btnLabels.length > 0 ? ` [${btnLabels.join(', ')}]` : '';
|
|
105
116
|
return ` ${index + 1}. "${title}"${subtitlePart}${btnPart}`;
|
|
106
117
|
});
|
|
107
|
-
return [
|
|
118
|
+
return [
|
|
119
|
+
header,
|
|
120
|
+
...itemLines
|
|
121
|
+
].join('\n');
|
|
108
122
|
}
|
|
109
123
|
static formatWhatsappButtonListContent(list) {
|
|
110
124
|
const body = list.text?.trim() ?? '';
|
|
111
|
-
const hasSections = list.sections.some(s
|
|
125
|
+
const hasSections = list.sections.some((s)=>s.rows.length > 0);
|
|
112
126
|
if (!body && !hasSections) {
|
|
113
127
|
return '[WhatsApp Button List]';
|
|
114
128
|
}
|
|
@@ -117,8 +131,8 @@ class HubtypeAssistantContent {
|
|
|
117
131
|
parts.push(body);
|
|
118
132
|
}
|
|
119
133
|
if (hasSections) {
|
|
120
|
-
const sectionBlocks = list.sections.map(section
|
|
121
|
-
const rowLines = section.rows.map(row
|
|
134
|
+
const sectionBlocks = list.sections.map((section)=>{
|
|
135
|
+
const rowLines = section.rows.map((row)=>{
|
|
122
136
|
const rowTitle = row.title?.trim() ?? '';
|
|
123
137
|
const rowDescription = row.description?.trim() ?? '';
|
|
124
138
|
if (!rowTitle && !rowDescription) {
|
|
@@ -144,18 +158,12 @@ class HubtypeAssistantContent {
|
|
|
144
158
|
return parts.join('\n\n');
|
|
145
159
|
}
|
|
146
160
|
static formatWhatsappCtaContent(cta) {
|
|
147
|
-
const hasStructuredData =
|
|
148
|
-
!!cta.header?.trim()) ||
|
|
149
|
-
cta.text?.trim() ||
|
|
150
|
-
cta.footer?.trim() ||
|
|
151
|
-
cta.displayText?.trim() ||
|
|
152
|
-
cta.url;
|
|
161
|
+
const hasStructuredData = cta.headerType === WhatsappCTAUrlHeaderType.Text && !!cta.header?.trim() || cta.text?.trim() || cta.footer?.trim() || cta.displayText?.trim() || cta.url;
|
|
153
162
|
if (!hasStructuredData) {
|
|
154
163
|
return cta.text?.trim() || '[WhatsApp CTA Button]';
|
|
155
164
|
}
|
|
156
165
|
const lines = [];
|
|
157
|
-
if (cta.headerType ===
|
|
158
|
-
cta.header?.trim()) {
|
|
166
|
+
if (cta.headerType === WhatsappCTAUrlHeaderType.Text && cta.header?.trim()) {
|
|
159
167
|
lines.push(cta.header.trim());
|
|
160
168
|
}
|
|
161
169
|
if (cta.text?.trim()) {
|
|
@@ -172,13 +180,8 @@ class HubtypeAssistantContent {
|
|
|
172
180
|
const { name, language } = template.htWhatsappTemplate;
|
|
173
181
|
return `WhatsApp Template: ${name} (${language})`;
|
|
174
182
|
}
|
|
175
|
-
static formatRequestContactInfoContent(requestContactInfo) {
|
|
176
|
-
const body = requestContactInfo.text?.trim() ?? '';
|
|
177
|
-
if (!body) {
|
|
178
|
-
return '[WhatsApp Request Contact Info]';
|
|
179
|
-
}
|
|
180
|
-
return requestContactInfo.text;
|
|
181
|
-
}
|
|
182
183
|
}
|
|
183
|
-
|
|
184
|
+
|
|
185
|
+
export { HubtypeAssistantContent };
|
|
186
|
+
|
|
184
187
|
//# sourceMappingURL=hubtype-assistant-content.js.map
|