@botonic/plugin-flow-builder 0.57.0-rslib-esm.2 → 0.57.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/lib/cjs/action/ai-agent-from-user-input.d.ts +3 -0
- package/lib/cjs/action/ai-agent-from-user-input.js +38 -0
- package/lib/cjs/action/ai-agent-from-user-input.js.map +1 -0
- package/lib/cjs/action/context.d.ts +11 -0
- package/lib/cjs/action/context.js +17 -0
- package/lib/cjs/action/context.js.map +1 -0
- package/lib/cjs/action/fallback.d.ts +3 -0
- package/lib/cjs/action/fallback.js +36 -0
- package/lib/cjs/action/fallback.js.map +1 -0
- package/lib/cjs/action/first-interaction.d.ts +3 -0
- package/lib/cjs/action/first-interaction.js +93 -0
- package/lib/cjs/action/first-interaction.js.map +1 -0
- package/lib/cjs/action/get-contents.d.ts +3 -0
- package/lib/cjs/action/get-contents.js +44 -0
- package/lib/cjs/action/get-contents.js.map +1 -0
- package/lib/cjs/action/index.d.ts +25 -0
- package/lib/cjs/action/index.js +95 -0
- package/lib/cjs/action/index.js.map +1 -0
- package/lib/cjs/action/payload.d.ts +3 -0
- package/lib/cjs/action/payload.js +74 -0
- package/lib/cjs/action/payload.js.map +1 -0
- package/lib/cjs/api.d.ts +45 -0
- package/lib/cjs/api.js +227 -0
- package/lib/cjs/api.js.map +1 -0
- package/lib/cjs/bot-context-manager.d.ts +17 -0
- package/lib/cjs/bot-context-manager.js +93 -0
- package/lib/cjs/bot-context-manager.js.map +1 -0
- package/lib/cjs/constants.d.ts +14 -0
- package/lib/cjs/constants.js +20 -0
- package/lib/cjs/constants.js.map +1 -0
- package/lib/cjs/content-fields/contact-reasons-conditional-matcher.d.ts +4 -0
- package/lib/cjs/content-fields/contact-reasons-conditional-matcher.js +12 -0
- package/lib/cjs/content-fields/contact-reasons-conditional-matcher.js.map +1 -0
- package/lib/cjs/content-fields/content-fields-base.d.ts +20 -0
- package/lib/cjs/content-fields/content-fields-base.js +74 -0
- package/lib/cjs/content-fields/content-fields-base.js.map +1 -0
- package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-evaluators.d.ts +15 -0
- package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-evaluators.js +71 -0
- package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-evaluators.js.map +1 -0
- package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-resolver.d.ts +9 -0
- package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-resolver.js +58 -0
- package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-resolver.js.map +1 -0
- package/lib/cjs/content-fields/custom-conditional/flow-custom-condition-v2.d.ts +17 -0
- package/lib/cjs/content-fields/custom-conditional/flow-custom-condition-v2.js +79 -0
- package/lib/cjs/content-fields/custom-conditional/flow-custom-condition-v2.js.map +1 -0
- package/lib/cjs/content-fields/flow-ai-agent-base.d.ts +25 -0
- package/lib/cjs/content-fields/flow-ai-agent-base.js +97 -0
- package/lib/cjs/content-fields/flow-ai-agent-base.js.map +1 -0
- package/lib/cjs/content-fields/flow-ai-agent-router.d.ts +21 -0
- package/lib/cjs/content-fields/flow-ai-agent-router.js +126 -0
- package/lib/cjs/content-fields/flow-ai-agent-router.js.map +1 -0
- package/lib/cjs/content-fields/flow-ai-agent.d.ts +17 -0
- package/lib/cjs/content-fields/flow-ai-agent.js +65 -0
- package/lib/cjs/content-fields/flow-ai-agent.js.map +1 -0
- package/lib/cjs/content-fields/flow-bot-action.d.ts +14 -0
- package/lib/cjs/content-fields/flow-bot-action.js +45 -0
- package/lib/cjs/content-fields/flow-bot-action.js.map +1 -0
- package/lib/cjs/content-fields/flow-button.d.ts +31 -0
- package/lib/cjs/content-fields/flow-button.js +86 -0
- package/lib/cjs/content-fields/flow-button.js.map +1 -0
- package/lib/cjs/content-fields/flow-capture-user-input.d.ts +14 -0
- package/lib/cjs/content-fields/flow-capture-user-input.js +45 -0
- package/lib/cjs/content-fields/flow-capture-user-input.js.map +1 -0
- package/lib/cjs/content-fields/flow-carousel.d.ts +22 -0
- package/lib/cjs/content-fields/flow-carousel.js +152 -0
- package/lib/cjs/content-fields/flow-carousel.js.map +1 -0
- package/lib/cjs/content-fields/flow-channel-conditional.d.ts +14 -0
- package/lib/cjs/content-fields/flow-channel-conditional.js +57 -0
- package/lib/cjs/content-fields/flow-channel-conditional.js.map +1 -0
- package/lib/cjs/content-fields/flow-contact-reasons-conditional.d.ts +14 -0
- package/lib/cjs/content-fields/flow-contact-reasons-conditional.js +65 -0
- package/lib/cjs/content-fields/flow-contact-reasons-conditional.js.map +1 -0
- package/lib/cjs/content-fields/flow-country-conditional.d.ts +13 -0
- package/lib/cjs/content-fields/flow-country-conditional.js +59 -0
- package/lib/cjs/content-fields/flow-country-conditional.js.map +1 -0
- package/lib/cjs/content-fields/flow-custom-conditional.d.ts +17 -0
- package/lib/cjs/content-fields/flow-custom-conditional.js +89 -0
- package/lib/cjs/content-fields/flow-custom-conditional.js.map +1 -0
- package/lib/cjs/content-fields/flow-do-nothing.d.ts +9 -0
- package/lib/cjs/content-fields/flow-do-nothing.js +27 -0
- package/lib/cjs/content-fields/flow-do-nothing.js.map +1 -0
- package/lib/cjs/content-fields/flow-element.d.ts +22 -0
- package/lib/cjs/content-fields/flow-element.js +50 -0
- package/lib/cjs/content-fields/flow-element.js.map +1 -0
- package/lib/cjs/content-fields/flow-go-to-flow.d.ts +13 -0
- package/lib/cjs/content-fields/flow-go-to-flow.js +51 -0
- package/lib/cjs/content-fields/flow-go-to-flow.js.map +1 -0
- package/lib/cjs/content-fields/flow-handoff.d.ts +23 -0
- package/lib/cjs/content-fields/flow-handoff.js +104 -0
- package/lib/cjs/content-fields/flow-handoff.js.map +1 -0
- package/lib/cjs/content-fields/flow-image.d.ts +10 -0
- package/lib/cjs/content-fields/flow-image.js +33 -0
- package/lib/cjs/content-fields/flow-image.js.map +1 -0
- package/lib/cjs/content-fields/flow-queue-status-conditional.d.ts +30 -0
- package/lib/cjs/content-fields/flow-queue-status-conditional.js +95 -0
- package/lib/cjs/content-fields/flow-queue-status-conditional.js.map +1 -0
- package/lib/cjs/content-fields/flow-rating.d.ts +15 -0
- package/lib/cjs/content-fields/flow-rating.js +66 -0
- package/lib/cjs/content-fields/flow-rating.js.map +1 -0
- package/lib/cjs/content-fields/flow-text.d.ts +15 -0
- package/lib/cjs/content-fields/flow-text.js +60 -0
- package/lib/cjs/content-fields/flow-text.js.map +1 -0
- package/lib/cjs/content-fields/flow-video.d.ts +10 -0
- package/lib/cjs/content-fields/flow-video.js +33 -0
- package/lib/cjs/content-fields/flow-video.js.map +1 -0
- package/lib/cjs/content-fields/flow-webview.d.ts +16 -0
- package/lib/cjs/content-fields/flow-webview.js +78 -0
- package/lib/cjs/content-fields/flow-webview.js.map +1 -0
- package/lib/cjs/content-fields/flow-whatsapp-cta-url-button.d.ts +21 -0
- package/lib/cjs/content-fields/flow-whatsapp-cta-url-button.js +92 -0
- package/lib/cjs/content-fields/flow-whatsapp-cta-url-button.js.map +1 -0
- package/lib/cjs/content-fields/flow-whatsapp-request-contact-info.d.ts +11 -0
- package/lib/cjs/content-fields/flow-whatsapp-request-contact-info.js +46 -0
- package/lib/cjs/content-fields/flow-whatsapp-request-contact-info.js.map +1 -0
- package/lib/cjs/content-fields/flow-whatsapp-template.d.ts +37 -0
- package/lib/cjs/content-fields/flow-whatsapp-template.js +264 -0
- package/lib/cjs/content-fields/flow-whatsapp-template.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/ai-agent-router.d.ts +21 -0
- package/lib/cjs/content-fields/hubtype-fields/ai-agent-router.js +3 -0
- package/lib/cjs/content-fields/hubtype-fields/ai-agent-router.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/ai-agent.d.ts +25 -0
- package/lib/cjs/content-fields/hubtype-fields/ai-agent.js +3 -0
- package/lib/cjs/content-fields/hubtype-fields/ai-agent.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/bot-action.d.ts +10 -0
- package/lib/cjs/content-fields/hubtype-fields/bot-action.js +3 -0
- package/lib/cjs/content-fields/hubtype-fields/bot-action.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/button.d.ts +8 -0
- package/lib/cjs/content-fields/hubtype-fields/button.js +3 -0
- package/lib/cjs/content-fields/hubtype-fields/button.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/capture-user-input.d.ts +19 -0
- package/lib/cjs/content-fields/hubtype-fields/capture-user-input.js +12 -0
- package/lib/cjs/content-fields/hubtype-fields/capture-user-input.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/carousel.d.ts +17 -0
- package/lib/cjs/content-fields/hubtype-fields/carousel.js +3 -0
- package/lib/cjs/content-fields/hubtype-fields/carousel.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/channel-conditional.d.ts +10 -0
- package/lib/cjs/content-fields/hubtype-fields/channel-conditional.js +3 -0
- package/lib/cjs/content-fields/hubtype-fields/channel-conditional.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/common.d.ts +83 -0
- package/lib/cjs/content-fields/hubtype-fields/common.js +3 -0
- package/lib/cjs/content-fields/hubtype-fields/common.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/contact-reasons-conditional.d.ts +16 -0
- package/lib/cjs/content-fields/hubtype-fields/contact-reasons-conditional.js +3 -0
- package/lib/cjs/content-fields/hubtype-fields/contact-reasons-conditional.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/country-conditional.d.ts +10 -0
- package/lib/cjs/content-fields/hubtype-fields/country-conditional.js +3 -0
- package/lib/cjs/content-fields/hubtype-fields/country-conditional.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/custom-conditional-v2.d.ts +56 -0
- package/lib/cjs/content-fields/hubtype-fields/custom-conditional-v2.js +36 -0
- package/lib/cjs/content-fields/hubtype-fields/custom-conditional-v2.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/custom-conditional.d.ts +11 -0
- package/lib/cjs/content-fields/hubtype-fields/custom-conditional.js +3 -0
- package/lib/cjs/content-fields/hubtype-fields/custom-conditional.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/do-nothing.d.ts +6 -0
- package/lib/cjs/content-fields/hubtype-fields/do-nothing.js +3 -0
- package/lib/cjs/content-fields/hubtype-fields/do-nothing.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/fallback.d.ts +9 -0
- package/lib/cjs/content-fields/hubtype-fields/fallback.js +3 -0
- package/lib/cjs/content-fields/hubtype-fields/fallback.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/function.d.ts +30 -0
- package/lib/cjs/content-fields/hubtype-fields/function.js +11 -0
- package/lib/cjs/content-fields/hubtype-fields/function.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/go-to-flow.d.ts +9 -0
- package/lib/cjs/content-fields/hubtype-fields/go-to-flow.js +3 -0
- package/lib/cjs/content-fields/hubtype-fields/go-to-flow.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/handoff.d.ts +21 -0
- package/lib/cjs/content-fields/hubtype-fields/handoff.js +10 -0
- package/lib/cjs/content-fields/hubtype-fields/handoff.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/image.d.ts +8 -0
- package/lib/cjs/content-fields/hubtype-fields/image.js +3 -0
- package/lib/cjs/content-fields/hubtype-fields/image.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/index.d.ts +28 -0
- package/lib/cjs/content-fields/hubtype-fields/index.js +32 -0
- package/lib/cjs/content-fields/hubtype-fields/index.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/keyword.d.ts +9 -0
- package/lib/cjs/content-fields/hubtype-fields/keyword.js +3 -0
- package/lib/cjs/content-fields/hubtype-fields/keyword.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/node-types.d.ts +33 -0
- package/lib/cjs/content-fields/hubtype-fields/node-types.js +40 -0
- package/lib/cjs/content-fields/hubtype-fields/node-types.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/nodes.d.ts +28 -0
- package/lib/cjs/content-fields/hubtype-fields/nodes.js +3 -0
- package/lib/cjs/content-fields/hubtype-fields/nodes.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/payload.d.ts +8 -0
- package/lib/cjs/content-fields/hubtype-fields/payload.js +3 -0
- package/lib/cjs/content-fields/hubtype-fields/payload.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/queue-status-conditional.d.ts +25 -0
- package/lib/cjs/content-fields/hubtype-fields/queue-status-conditional.js +3 -0
- package/lib/cjs/content-fields/hubtype-fields/queue-status-conditional.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/rating.d.ts +23 -0
- package/lib/cjs/content-fields/hubtype-fields/rating.js +9 -0
- package/lib/cjs/content-fields/hubtype-fields/rating.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/smart-intent.d.ts +12 -0
- package/lib/cjs/content-fields/hubtype-fields/smart-intent.js +3 -0
- package/lib/cjs/content-fields/hubtype-fields/smart-intent.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/text.d.ts +11 -0
- package/lib/cjs/content-fields/hubtype-fields/text.js +3 -0
- package/lib/cjs/content-fields/hubtype-fields/text.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/url.d.ts +8 -0
- package/lib/cjs/content-fields/hubtype-fields/url.js +3 -0
- package/lib/cjs/content-fields/hubtype-fields/url.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/video.d.ts +8 -0
- package/lib/cjs/content-fields/hubtype-fields/video.js +3 -0
- package/lib/cjs/content-fields/hubtype-fields/video.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/webview.d.ts +17 -0
- package/lib/cjs/content-fields/hubtype-fields/webview.js +3 -0
- package/lib/cjs/content-fields/hubtype-fields/webview.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-button-list.d.ts +21 -0
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-button-list.js +3 -0
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-button-list.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-cta-url-button.d.ts +17 -0
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-cta-url-button.js +3 -0
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-cta-url-button.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-request-contact-info.d.ts +10 -0
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-request-contact-info.js +3 -0
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-request-contact-info.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-template.d.ts +96 -0
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-template.js +9 -0
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-template.js.map +1 -0
- package/lib/cjs/content-fields/index.d.ts +27 -0
- package/lib/cjs/content-fields/index.js +56 -0
- package/lib/cjs/content-fields/index.js.map +1 -0
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.d.ts +14 -0
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js +41 -0
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js.map +1 -0
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.d.ts +13 -0
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js +36 -0
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js.map +1 -0
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list.d.ts +14 -0
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js +46 -0
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js.map +1 -0
- package/lib/cjs/content-fields/whatsapp-button-list/index.d.ts +3 -0
- package/lib/cjs/content-fields/whatsapp-button-list/index.js +10 -0
- package/lib/cjs/content-fields/whatsapp-button-list/index.js.map +1 -0
- package/lib/cjs/filters/index.d.ts +12 -0
- package/lib/cjs/filters/index.js +17 -0
- package/lib/cjs/filters/index.js.map +1 -0
- package/lib/cjs/flow-factory.d.ts +12 -0
- package/lib/cjs/flow-factory.js +73 -0
- package/lib/cjs/flow-factory.js.map +1 -0
- package/lib/cjs/functions/index.d.ts +11 -0
- package/lib/cjs/functions/index.js +49 -0
- package/lib/cjs/functions/index.js.map +1 -0
- package/lib/cjs/index.d.ts +42 -0
- package/lib/cjs/index.js +142 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/cjs/services/hubtype-queues-api.js +26 -0
- package/lib/cjs/services/hubtype-queues-api.js.map +1 -0
- package/lib/cjs/structured-output/flow-builder-content.js +15 -0
- package/lib/cjs/structured-output/flow-builder-content.js.map +1 -0
- package/lib/cjs/tracking.d.ts +16 -0
- package/lib/cjs/tracking.js +71 -0
- package/lib/cjs/tracking.js.map +1 -0
- package/lib/cjs/types.d.ts +62 -0
- package/lib/cjs/types.js +14 -0
- package/lib/cjs/types.js.map +1 -0
- package/lib/cjs/user-input/capture-user-input-api.d.ts +21 -0
- package/lib/cjs/user-input/capture-user-input-api.js +88 -0
- package/lib/cjs/user-input/capture-user-input-api.js.map +1 -0
- package/lib/cjs/user-input/index.d.ts +4 -0
- package/lib/cjs/user-input/index.js +37 -0
- package/lib/cjs/user-input/index.js.map +1 -0
- package/lib/cjs/user-input/keyword.d.ts +27 -0
- package/lib/cjs/user-input/keyword.js +84 -0
- package/lib/cjs/user-input/keyword.js.map +1 -0
- package/lib/cjs/user-input/smart-intent.d.ts +24 -0
- package/lib/cjs/user-input/smart-intent.js +89 -0
- package/lib/cjs/user-input/smart-intent.js.map +1 -0
- package/lib/cjs/utils/ai-agent.d.ts +11 -0
- package/lib/cjs/utils/ai-agent.js +28 -0
- package/lib/cjs/utils/ai-agent.js.map +1 -0
- package/lib/cjs/utils/authentication.js +21 -0
- package/lib/cjs/utils/authentication.js.map +1 -0
- package/lib/cjs/utils/flow-locale.js +79 -0
- package/lib/cjs/utils/flow-locale.js.map +1 -0
- package/lib/cjs/utils/get-flow-builder-plugin.d.ts +3 -0
- package/lib/cjs/utils/get-flow-builder-plugin.js +16 -0
- package/lib/cjs/utils/get-flow-builder-plugin.js.map +1 -0
- package/lib/cjs/utils/hubtype-assistant-content.d.ts +13 -0
- package/lib/cjs/utils/hubtype-assistant-content.js +184 -0
- package/lib/cjs/utils/hubtype-assistant-content.js.map +1 -0
- package/lib/cjs/utils/input.js +35 -0
- package/lib/cjs/utils/input.js.map +1 -0
- package/lib/cjs/webview/contents-context.d.ts +2 -0
- package/lib/cjs/webview/contents-context.js +12 -0
- package/lib/cjs/webview/contents-context.js.map +1 -0
- package/lib/cjs/webview/index.d.ts +3 -0
- package/lib/cjs/webview/index.js +10 -0
- package/lib/cjs/webview/index.js.map +1 -0
- package/lib/cjs/webview/types.d.ts +47 -0
- package/lib/cjs/webview/types.js +9 -0
- package/lib/cjs/webview/types.js.map +1 -0
- package/lib/cjs/webview/use-webview-contents.d.ts +2 -0
- package/lib/cjs/webview/use-webview-contents.js +83 -0
- package/lib/cjs/webview/use-webview-contents.js.map +1 -0
- package/lib/esm/action/ai-agent-from-user-input.d.ts +3 -0
- package/lib/esm/action/ai-agent-from-user-input.js +38 -0
- package/lib/esm/action/ai-agent-from-user-input.js.map +1 -0
- package/lib/esm/action/context.d.ts +11 -0
- package/lib/esm/action/context.js +17 -0
- package/lib/esm/action/context.js.map +1 -0
- package/lib/esm/action/fallback.d.ts +3 -0
- package/lib/esm/action/fallback.js +36 -0
- package/lib/esm/action/fallback.js.map +1 -0
- package/lib/esm/action/first-interaction.d.ts +3 -0
- package/lib/esm/action/first-interaction.js +93 -0
- package/lib/esm/action/first-interaction.js.map +1 -0
- package/lib/esm/action/get-contents.d.ts +3 -0
- package/lib/esm/action/get-contents.js +44 -0
- package/lib/esm/action/get-contents.js.map +1 -0
- package/lib/esm/action/index.d.ts +25 -0
- package/lib/esm/action/index.js +95 -0
- package/lib/esm/action/index.js.map +1 -0
- package/lib/esm/action/payload.d.ts +3 -0
- package/lib/esm/action/payload.js +74 -0
- package/lib/esm/action/payload.js.map +1 -0
- package/lib/esm/api.d.ts +45 -0
- package/lib/esm/api.js +227 -0
- package/lib/esm/api.js.map +1 -0
- package/lib/esm/bot-context-manager.d.ts +17 -0
- package/lib/esm/bot-context-manager.js +93 -0
- package/lib/esm/bot-context-manager.js.map +1 -0
- package/lib/esm/constants.d.ts +14 -0
- package/lib/esm/constants.js +20 -0
- package/lib/esm/constants.js.map +1 -0
- package/lib/esm/content-fields/contact-reasons-conditional-matcher.d.ts +4 -0
- package/lib/esm/content-fields/contact-reasons-conditional-matcher.js +12 -0
- package/lib/esm/content-fields/contact-reasons-conditional-matcher.js.map +1 -0
- package/lib/esm/content-fields/content-fields-base.d.ts +20 -0
- package/lib/esm/content-fields/content-fields-base.js +74 -0
- package/lib/esm/content-fields/content-fields-base.js.map +1 -0
- package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-evaluators.d.ts +15 -0
- package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-evaluators.js +71 -0
- package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-evaluators.js.map +1 -0
- package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-resolver.d.ts +9 -0
- package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-resolver.js +58 -0
- package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-resolver.js.map +1 -0
- package/lib/esm/content-fields/custom-conditional/flow-custom-condition-v2.d.ts +17 -0
- package/lib/esm/content-fields/custom-conditional/flow-custom-condition-v2.js +79 -0
- package/lib/esm/content-fields/custom-conditional/flow-custom-condition-v2.js.map +1 -0
- package/lib/esm/content-fields/flow-ai-agent-base.d.ts +25 -0
- package/lib/esm/content-fields/flow-ai-agent-base.js +97 -0
- package/lib/esm/content-fields/flow-ai-agent-base.js.map +1 -0
- package/lib/esm/content-fields/flow-ai-agent-router.d.ts +21 -0
- package/lib/esm/content-fields/flow-ai-agent-router.js +126 -0
- package/lib/esm/content-fields/flow-ai-agent-router.js.map +1 -0
- package/lib/esm/content-fields/flow-ai-agent.d.ts +17 -0
- package/lib/esm/content-fields/flow-ai-agent.js +65 -0
- package/lib/esm/content-fields/flow-ai-agent.js.map +1 -0
- package/lib/esm/content-fields/flow-bot-action.d.ts +14 -0
- package/lib/esm/content-fields/flow-bot-action.js +45 -0
- package/lib/esm/content-fields/flow-bot-action.js.map +1 -0
- package/lib/esm/content-fields/flow-button.d.ts +31 -0
- package/lib/esm/content-fields/flow-button.js +86 -0
- package/lib/esm/content-fields/flow-button.js.map +1 -0
- package/lib/esm/content-fields/flow-capture-user-input.d.ts +14 -0
- package/lib/esm/content-fields/flow-capture-user-input.js +45 -0
- package/lib/esm/content-fields/flow-capture-user-input.js.map +1 -0
- package/lib/esm/content-fields/flow-carousel.d.ts +22 -0
- package/lib/esm/content-fields/flow-carousel.js +152 -0
- package/lib/esm/content-fields/flow-carousel.js.map +1 -0
- package/lib/esm/content-fields/flow-channel-conditional.d.ts +14 -0
- package/lib/esm/content-fields/flow-channel-conditional.js +57 -0
- package/lib/esm/content-fields/flow-channel-conditional.js.map +1 -0
- package/lib/esm/content-fields/flow-contact-reasons-conditional.d.ts +14 -0
- package/lib/esm/content-fields/flow-contact-reasons-conditional.js +65 -0
- package/lib/esm/content-fields/flow-contact-reasons-conditional.js.map +1 -0
- package/lib/esm/content-fields/flow-country-conditional.d.ts +13 -0
- package/lib/esm/content-fields/flow-country-conditional.js +59 -0
- package/lib/esm/content-fields/flow-country-conditional.js.map +1 -0
- package/lib/esm/content-fields/flow-custom-conditional.d.ts +17 -0
- package/lib/esm/content-fields/flow-custom-conditional.js +89 -0
- package/lib/esm/content-fields/flow-custom-conditional.js.map +1 -0
- package/lib/esm/content-fields/flow-do-nothing.d.ts +9 -0
- package/lib/esm/content-fields/flow-do-nothing.js +27 -0
- package/lib/esm/content-fields/flow-do-nothing.js.map +1 -0
- package/lib/esm/content-fields/flow-element.d.ts +22 -0
- package/lib/esm/content-fields/flow-element.js +50 -0
- package/lib/esm/content-fields/flow-element.js.map +1 -0
- package/lib/esm/content-fields/flow-go-to-flow.d.ts +13 -0
- package/lib/esm/content-fields/flow-go-to-flow.js +51 -0
- package/lib/esm/content-fields/flow-go-to-flow.js.map +1 -0
- package/lib/esm/content-fields/flow-handoff.d.ts +23 -0
- package/lib/esm/content-fields/flow-handoff.js +104 -0
- package/lib/esm/content-fields/flow-handoff.js.map +1 -0
- package/lib/esm/content-fields/flow-image.d.ts +10 -0
- package/lib/esm/content-fields/flow-image.js +33 -0
- package/lib/esm/content-fields/flow-image.js.map +1 -0
- package/lib/esm/content-fields/flow-queue-status-conditional.d.ts +30 -0
- package/lib/esm/content-fields/flow-queue-status-conditional.js +95 -0
- package/lib/esm/content-fields/flow-queue-status-conditional.js.map +1 -0
- package/lib/esm/content-fields/flow-rating.d.ts +15 -0
- package/lib/esm/content-fields/flow-rating.js +66 -0
- package/lib/esm/content-fields/flow-rating.js.map +1 -0
- package/lib/esm/content-fields/flow-text.d.ts +15 -0
- package/lib/esm/content-fields/flow-text.js +60 -0
- package/lib/esm/content-fields/flow-text.js.map +1 -0
- package/lib/esm/content-fields/flow-video.d.ts +10 -0
- package/lib/esm/content-fields/flow-video.js +33 -0
- package/lib/esm/content-fields/flow-video.js.map +1 -0
- package/lib/esm/content-fields/flow-webview.d.ts +16 -0
- package/lib/esm/content-fields/flow-webview.js +78 -0
- package/lib/esm/content-fields/flow-webview.js.map +1 -0
- package/lib/esm/content-fields/flow-whatsapp-cta-url-button.d.ts +21 -0
- package/lib/esm/content-fields/flow-whatsapp-cta-url-button.js +92 -0
- package/lib/esm/content-fields/flow-whatsapp-cta-url-button.js.map +1 -0
- package/lib/esm/content-fields/flow-whatsapp-request-contact-info.d.ts +11 -0
- package/lib/esm/content-fields/flow-whatsapp-request-contact-info.js +46 -0
- package/lib/esm/content-fields/flow-whatsapp-request-contact-info.js.map +1 -0
- package/lib/esm/content-fields/flow-whatsapp-template.d.ts +37 -0
- package/lib/esm/content-fields/flow-whatsapp-template.js +264 -0
- package/lib/esm/content-fields/flow-whatsapp-template.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/ai-agent-router.d.ts +21 -0
- package/lib/esm/content-fields/hubtype-fields/ai-agent-router.js +3 -0
- package/lib/esm/content-fields/hubtype-fields/ai-agent-router.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/ai-agent.d.ts +25 -0
- package/lib/esm/content-fields/hubtype-fields/ai-agent.js +3 -0
- package/lib/esm/content-fields/hubtype-fields/ai-agent.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/bot-action.d.ts +10 -0
- package/lib/esm/content-fields/hubtype-fields/bot-action.js +3 -0
- package/lib/esm/content-fields/hubtype-fields/bot-action.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/button.d.ts +8 -0
- package/lib/esm/content-fields/hubtype-fields/button.js +3 -0
- package/lib/esm/content-fields/hubtype-fields/button.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/capture-user-input.d.ts +19 -0
- package/lib/esm/content-fields/hubtype-fields/capture-user-input.js +12 -0
- package/lib/esm/content-fields/hubtype-fields/capture-user-input.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/carousel.d.ts +17 -0
- package/lib/esm/content-fields/hubtype-fields/carousel.js +3 -0
- package/lib/esm/content-fields/hubtype-fields/carousel.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/channel-conditional.d.ts +10 -0
- package/lib/esm/content-fields/hubtype-fields/channel-conditional.js +3 -0
- package/lib/esm/content-fields/hubtype-fields/channel-conditional.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/common.d.ts +83 -0
- package/lib/esm/content-fields/hubtype-fields/common.js +3 -0
- package/lib/esm/content-fields/hubtype-fields/common.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/contact-reasons-conditional.d.ts +16 -0
- package/lib/esm/content-fields/hubtype-fields/contact-reasons-conditional.js +3 -0
- package/lib/esm/content-fields/hubtype-fields/contact-reasons-conditional.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/country-conditional.d.ts +10 -0
- package/lib/esm/content-fields/hubtype-fields/country-conditional.js +3 -0
- package/lib/esm/content-fields/hubtype-fields/country-conditional.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/custom-conditional-v2.d.ts +56 -0
- package/lib/esm/content-fields/hubtype-fields/custom-conditional-v2.js +36 -0
- package/lib/esm/content-fields/hubtype-fields/custom-conditional-v2.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/custom-conditional.d.ts +11 -0
- package/lib/esm/content-fields/hubtype-fields/custom-conditional.js +3 -0
- package/lib/esm/content-fields/hubtype-fields/custom-conditional.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/do-nothing.d.ts +6 -0
- package/lib/esm/content-fields/hubtype-fields/do-nothing.js +3 -0
- package/lib/esm/content-fields/hubtype-fields/do-nothing.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/fallback.d.ts +9 -0
- package/lib/esm/content-fields/hubtype-fields/fallback.js +3 -0
- package/lib/esm/content-fields/hubtype-fields/fallback.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/function.d.ts +30 -0
- package/lib/esm/content-fields/hubtype-fields/function.js +11 -0
- package/lib/esm/content-fields/hubtype-fields/function.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/go-to-flow.d.ts +9 -0
- package/lib/esm/content-fields/hubtype-fields/go-to-flow.js +3 -0
- package/lib/esm/content-fields/hubtype-fields/go-to-flow.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/handoff.d.ts +21 -0
- package/lib/esm/content-fields/hubtype-fields/handoff.js +10 -0
- package/lib/esm/content-fields/hubtype-fields/handoff.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/image.d.ts +8 -0
- package/lib/esm/content-fields/hubtype-fields/image.js +3 -0
- package/lib/esm/content-fields/hubtype-fields/image.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/index.d.ts +28 -0
- package/lib/esm/content-fields/hubtype-fields/index.js +32 -0
- package/lib/esm/content-fields/hubtype-fields/index.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/keyword.d.ts +9 -0
- package/lib/esm/content-fields/hubtype-fields/keyword.js +3 -0
- package/lib/esm/content-fields/hubtype-fields/keyword.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/node-types.d.ts +33 -0
- package/lib/esm/content-fields/hubtype-fields/node-types.js +40 -0
- package/lib/esm/content-fields/hubtype-fields/node-types.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/nodes.d.ts +28 -0
- package/lib/esm/content-fields/hubtype-fields/nodes.js +3 -0
- package/lib/esm/content-fields/hubtype-fields/nodes.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/payload.d.ts +8 -0
- package/lib/esm/content-fields/hubtype-fields/payload.js +3 -0
- package/lib/esm/content-fields/hubtype-fields/payload.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/queue-status-conditional.d.ts +25 -0
- package/lib/esm/content-fields/hubtype-fields/queue-status-conditional.js +3 -0
- package/lib/esm/content-fields/hubtype-fields/queue-status-conditional.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/rating.d.ts +23 -0
- package/lib/esm/content-fields/hubtype-fields/rating.js +9 -0
- package/lib/esm/content-fields/hubtype-fields/rating.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/smart-intent.d.ts +12 -0
- package/lib/esm/content-fields/hubtype-fields/smart-intent.js +3 -0
- package/lib/esm/content-fields/hubtype-fields/smart-intent.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/text.d.ts +11 -0
- package/lib/esm/content-fields/hubtype-fields/text.js +3 -0
- package/lib/esm/content-fields/hubtype-fields/text.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/url.d.ts +8 -0
- package/lib/esm/content-fields/hubtype-fields/url.js +3 -0
- package/lib/esm/content-fields/hubtype-fields/url.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/video.d.ts +8 -0
- package/lib/esm/content-fields/hubtype-fields/video.js +3 -0
- package/lib/esm/content-fields/hubtype-fields/video.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/webview.d.ts +17 -0
- package/lib/esm/content-fields/hubtype-fields/webview.js +3 -0
- package/lib/esm/content-fields/hubtype-fields/webview.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/whatsapp-button-list.d.ts +21 -0
- package/lib/esm/content-fields/hubtype-fields/whatsapp-button-list.js +3 -0
- package/lib/esm/content-fields/hubtype-fields/whatsapp-button-list.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/whatsapp-cta-url-button.d.ts +17 -0
- package/lib/esm/content-fields/hubtype-fields/whatsapp-cta-url-button.js +3 -0
- package/lib/esm/content-fields/hubtype-fields/whatsapp-cta-url-button.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/whatsapp-request-contact-info.d.ts +10 -0
- package/lib/esm/content-fields/hubtype-fields/whatsapp-request-contact-info.js +3 -0
- package/lib/esm/content-fields/hubtype-fields/whatsapp-request-contact-info.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/whatsapp-template.d.ts +96 -0
- package/lib/esm/content-fields/hubtype-fields/whatsapp-template.js +9 -0
- package/lib/esm/content-fields/hubtype-fields/whatsapp-template.js.map +1 -0
- package/lib/esm/content-fields/index.d.ts +27 -0
- package/lib/esm/content-fields/index.js +56 -0
- package/lib/esm/content-fields/index.js.map +1 -0
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.d.ts +14 -0
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js +41 -0
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js.map +1 -0
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.d.ts +13 -0
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js +36 -0
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js.map +1 -0
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list.d.ts +14 -0
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js +46 -0
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js.map +1 -0
- package/lib/esm/content-fields/whatsapp-button-list/index.d.ts +3 -0
- package/lib/esm/content-fields/whatsapp-button-list/index.js +10 -0
- package/lib/esm/content-fields/whatsapp-button-list/index.js.map +1 -0
- package/lib/esm/filters/index.d.ts +12 -0
- package/lib/esm/filters/index.js +17 -0
- package/lib/esm/filters/index.js.map +1 -0
- package/lib/esm/flow-factory.d.ts +12 -0
- package/lib/esm/flow-factory.js +73 -0
- package/lib/esm/flow-factory.js.map +1 -0
- package/lib/esm/functions/index.d.ts +11 -0
- package/lib/esm/functions/index.js +49 -0
- package/lib/esm/functions/index.js.map +1 -0
- package/lib/esm/index.d.ts +42 -0
- package/lib/esm/index.js +142 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/services/hubtype-queues-api.d.ts +14 -0
- package/lib/esm/services/hubtype-queues-api.js +26 -0
- package/lib/esm/services/hubtype-queues-api.js.map +1 -0
- package/lib/esm/structured-output/flow-builder-content.d.ts +13 -0
- package/lib/esm/structured-output/flow-builder-content.js +15 -0
- package/lib/esm/structured-output/flow-builder-content.js.map +1 -0
- package/lib/esm/tracking.d.ts +16 -0
- package/lib/esm/tracking.js +71 -0
- package/lib/esm/tracking.js.map +1 -0
- package/lib/esm/types.d.ts +62 -0
- package/lib/esm/types.js +14 -0
- package/lib/esm/types.js.map +1 -0
- package/lib/esm/user-input/capture-user-input-api.d.ts +21 -0
- package/lib/esm/user-input/capture-user-input-api.js +88 -0
- package/lib/esm/user-input/capture-user-input-api.js.map +1 -0
- package/lib/esm/user-input/index.d.ts +4 -0
- package/lib/esm/user-input/index.js +37 -0
- package/lib/esm/user-input/index.js.map +1 -0
- package/lib/esm/user-input/keyword.d.ts +27 -0
- package/lib/esm/user-input/keyword.js +84 -0
- package/lib/esm/user-input/keyword.js.map +1 -0
- package/lib/esm/user-input/smart-intent.d.ts +24 -0
- package/lib/esm/user-input/smart-intent.js +89 -0
- package/lib/esm/user-input/smart-intent.js.map +1 -0
- package/lib/esm/utils/ai-agent.d.ts +11 -0
- package/lib/esm/utils/ai-agent.js +28 -0
- package/lib/esm/utils/ai-agent.js.map +1 -0
- package/lib/esm/utils/authentication.d.ts +2 -0
- package/lib/esm/utils/authentication.js +21 -0
- package/lib/esm/utils/authentication.js.map +1 -0
- package/lib/esm/utils/flow-locale.d.ts +22 -0
- package/lib/esm/utils/flow-locale.js +79 -0
- package/lib/esm/utils/flow-locale.js.map +1 -0
- package/lib/esm/utils/get-flow-builder-plugin.d.ts +3 -0
- package/lib/esm/utils/get-flow-builder-plugin.js +16 -0
- package/lib/esm/utils/get-flow-builder-plugin.js.map +1 -0
- package/lib/esm/utils/hubtype-assistant-content.d.ts +13 -0
- package/lib/esm/utils/hubtype-assistant-content.js +184 -0
- package/lib/esm/utils/hubtype-assistant-content.js.map +1 -0
- package/lib/esm/utils/input.d.ts +6 -0
- package/lib/esm/utils/input.js +35 -0
- package/lib/esm/utils/input.js.map +1 -0
- package/lib/esm/webview/contents-context.d.ts +2 -0
- package/lib/esm/webview/contents-context.js +12 -0
- package/lib/esm/webview/contents-context.js.map +1 -0
- package/lib/esm/webview/index.d.ts +3 -0
- package/lib/esm/webview/index.js +10 -0
- package/lib/esm/webview/index.js.map +1 -0
- package/lib/esm/webview/types.d.ts +47 -0
- package/lib/esm/webview/types.js +9 -0
- package/lib/esm/webview/types.js.map +1 -0
- package/lib/esm/webview/use-webview-contents.d.ts +2 -0
- package/lib/esm/webview/use-webview-contents.js +83 -0
- package/lib/esm/webview/use-webview-contents.js.map +1 -0
- package/package.json +10 -12
- package/src/action/ai-agent-from-user-input.ts +7 -0
- package/src/action/first-interaction.ts +6 -0
- package/src/action/get-contents.ts +17 -2
- package/src/action/index.tsx +7 -0
- package/src/api.ts +52 -15
- package/src/bot-context-manager.ts +153 -0
- package/src/constants.ts +2 -1
- package/src/content-fields/contact-reasons-conditional-matcher.ts +24 -0
- package/src/content-fields/flow-ai-agent-base.tsx +1 -1
- package/src/content-fields/flow-ai-agent-router.tsx +1 -0
- package/src/content-fields/flow-ai-agent.tsx +1 -0
- package/src/content-fields/flow-contact-reasons-conditional.tsx +90 -0
- package/src/content-fields/flow-do-nothing.tsx +29 -0
- package/src/content-fields/flow-handoff.tsx +54 -7
- package/src/content-fields/flow-whatsapp-request-contact-info.tsx +2 -0
- package/src/content-fields/hubtype-fields/contact-reasons-conditional.ts +18 -0
- package/src/content-fields/hubtype-fields/do-nothing.ts +7 -0
- package/src/content-fields/hubtype-fields/handoff.ts +17 -1
- package/src/content-fields/hubtype-fields/index.ts +1 -0
- package/src/content-fields/hubtype-fields/node-types.ts +2 -0
- package/src/content-fields/hubtype-fields/nodes.ts +4 -0
- package/src/content-fields/hubtype-fields/whatsapp-request-contact-info.ts +2 -0
- package/src/content-fields/index.ts +6 -0
- package/src/flow-factory.ts +11 -0
- package/src/index.ts +26 -88
- package/src/types.ts +1 -2
- package/lib/action/ai-agent-from-user-input.d.ts +0 -3
- package/lib/action/ai-agent-from-user-input.js +0 -35
- package/lib/action/ai-agent-from-user-input.js.map +0 -1
- package/lib/action/context.d.ts +0 -11
- package/lib/action/context.js +0 -20
- package/lib/action/context.js.map +0 -1
- package/lib/action/fallback.d.ts +0 -3
- package/lib/action/fallback.js +0 -41
- package/lib/action/fallback.js.map +0 -1
- package/lib/action/first-interaction.d.ts +0 -3
- package/lib/action/first-interaction.js +0 -100
- package/lib/action/first-interaction.js.map +0 -1
- package/lib/action/get-contents.d.ts +0 -3
- package/lib/action/get-contents.js +0 -56
- package/lib/action/get-contents.js.map +0 -1
- package/lib/action/index.d.ts +0 -25
- package/lib/action/index.js +0 -126
- package/lib/action/index.js.map +0 -1
- package/lib/action/payload.d.ts +0 -3
- package/lib/action/payload.js +0 -78
- package/lib/action/payload.js.map +0 -1
- package/lib/api.d.ts +0 -40
- package/lib/api.js +0 -216
- package/lib/api.js.map +0 -1
- package/lib/constants.d.ts +0 -13
- package/lib/constants.js +0 -17
- package/lib/constants.js.map +0 -1
- package/lib/content-fields/content-fields-base.d.ts +0 -20
- package/lib/content-fields/content-fields-base.js +0 -78
- package/lib/content-fields/content-fields-base.js.map +0 -1
- package/lib/content-fields/custom-conditional/custom-conditional-v2-evaluators.d.ts +0 -15
- package/lib/content-fields/custom-conditional/custom-conditional-v2-evaluators.js +0 -73
- package/lib/content-fields/custom-conditional/custom-conditional-v2-evaluators.js.map +0 -1
- package/lib/content-fields/custom-conditional/custom-conditional-v2-resolver.d.ts +0 -9
- package/lib/content-fields/custom-conditional/custom-conditional-v2-resolver.js +0 -58
- package/lib/content-fields/custom-conditional/custom-conditional-v2-resolver.js.map +0 -1
- package/lib/content-fields/custom-conditional/flow-custom-condition-v2.d.ts +0 -17
- package/lib/content-fields/custom-conditional/flow-custom-condition-v2.js +0 -94
- package/lib/content-fields/custom-conditional/flow-custom-condition-v2.js.map +0 -1
- package/lib/content-fields/flow-ai-agent-base.d.ts +0 -25
- package/lib/content-fields/flow-ai-agent-base.js +0 -106
- package/lib/content-fields/flow-ai-agent-base.js.map +0 -1
- package/lib/content-fields/flow-ai-agent-router.d.ts +0 -21
- package/lib/content-fields/flow-ai-agent-router.js +0 -136
- package/lib/content-fields/flow-ai-agent-router.js.map +0 -1
- package/lib/content-fields/flow-ai-agent.d.ts +0 -17
- package/lib/content-fields/flow-ai-agent.js +0 -75
- package/lib/content-fields/flow-ai-agent.js.map +0 -1
- package/lib/content-fields/flow-bot-action.d.ts +0 -14
- package/lib/content-fields/flow-bot-action.js +0 -53
- package/lib/content-fields/flow-bot-action.js.map +0 -1
- package/lib/content-fields/flow-button.d.ts +0 -31
- package/lib/content-fields/flow-button.js +0 -105
- package/lib/content-fields/flow-button.js.map +0 -1
- package/lib/content-fields/flow-capture-user-input.d.ts +0 -14
- package/lib/content-fields/flow-capture-user-input.js +0 -46
- package/lib/content-fields/flow-capture-user-input.js.map +0 -1
- package/lib/content-fields/flow-carousel.d.ts +0 -22
- package/lib/content-fields/flow-carousel.js +0 -193
- package/lib/content-fields/flow-carousel.js.map +0 -1
- package/lib/content-fields/flow-channel-conditional.d.ts +0 -14
- package/lib/content-fields/flow-channel-conditional.js +0 -61
- package/lib/content-fields/flow-channel-conditional.js.map +0 -1
- package/lib/content-fields/flow-country-conditional.d.ts +0 -13
- package/lib/content-fields/flow-country-conditional.js +0 -64
- package/lib/content-fields/flow-country-conditional.js.map +0 -1
- package/lib/content-fields/flow-custom-conditional.d.ts +0 -17
- package/lib/content-fields/flow-custom-conditional.js +0 -87
- package/lib/content-fields/flow-custom-conditional.js.map +0 -1
- package/lib/content-fields/flow-element.d.ts +0 -22
- package/lib/content-fields/flow-element.js +0 -67
- package/lib/content-fields/flow-element.js.map +0 -1
- package/lib/content-fields/flow-go-to-flow.d.ts +0 -13
- package/lib/content-fields/flow-go-to-flow.js +0 -56
- package/lib/content-fields/flow-go-to-flow.js.map +0 -1
- package/lib/content-fields/flow-handoff.d.ts +0 -17
- package/lib/content-fields/flow-handoff.js +0 -79
- package/lib/content-fields/flow-handoff.js.map +0 -1
- package/lib/content-fields/flow-image.d.ts +0 -10
- package/lib/content-fields/flow-image.js +0 -42
- package/lib/content-fields/flow-image.js.map +0 -1
- package/lib/content-fields/flow-queue-status-conditional.d.ts +0 -30
- package/lib/content-fields/flow-queue-status-conditional.js +0 -100
- package/lib/content-fields/flow-queue-status-conditional.js.map +0 -1
- package/lib/content-fields/flow-rating.d.ts +0 -15
- package/lib/content-fields/flow-rating.js +0 -88
- package/lib/content-fields/flow-rating.js.map +0 -1
- package/lib/content-fields/flow-text.d.ts +0 -15
- package/lib/content-fields/flow-text.js +0 -82
- package/lib/content-fields/flow-text.js.map +0 -1
- package/lib/content-fields/flow-video.d.ts +0 -10
- package/lib/content-fields/flow-video.js +0 -42
- package/lib/content-fields/flow-video.js.map +0 -1
- package/lib/content-fields/flow-webview.d.ts +0 -16
- package/lib/content-fields/flow-webview.js +0 -81
- package/lib/content-fields/flow-webview.js.map +0 -1
- package/lib/content-fields/flow-whatsapp-cta-url-button.d.ts +0 -21
- package/lib/content-fields/flow-whatsapp-cta-url-button.js +0 -131
- package/lib/content-fields/flow-whatsapp-cta-url-button.js.map +0 -1
- package/lib/content-fields/flow-whatsapp-request-contact-info.d.ts +0 -11
- package/lib/content-fields/flow-whatsapp-request-contact-info.js +0 -61
- package/lib/content-fields/flow-whatsapp-request-contact-info.js.map +0 -1
- package/lib/content-fields/flow-whatsapp-template.d.ts +0 -37
- package/lib/content-fields/flow-whatsapp-template.js +0 -281
- package/lib/content-fields/flow-whatsapp-template.js.map +0 -1
- package/lib/content-fields/hubtype-fields/ai-agent-router.d.ts +0 -21
- package/lib/content-fields/hubtype-fields/ai-agent-router.js +0 -4
- package/lib/content-fields/hubtype-fields/ai-agent-router.js.map +0 -1
- package/lib/content-fields/hubtype-fields/ai-agent.d.ts +0 -25
- package/lib/content-fields/hubtype-fields/ai-agent.js +0 -4
- package/lib/content-fields/hubtype-fields/ai-agent.js.map +0 -1
- package/lib/content-fields/hubtype-fields/bot-action.d.ts +0 -10
- package/lib/content-fields/hubtype-fields/bot-action.js +0 -4
- package/lib/content-fields/hubtype-fields/bot-action.js.map +0 -1
- package/lib/content-fields/hubtype-fields/button.d.ts +0 -8
- package/lib/content-fields/hubtype-fields/button.js +0 -4
- package/lib/content-fields/hubtype-fields/button.js.map +0 -1
- package/lib/content-fields/hubtype-fields/capture-user-input.d.ts +0 -19
- package/lib/content-fields/hubtype-fields/capture-user-input.js +0 -12
- package/lib/content-fields/hubtype-fields/capture-user-input.js.map +0 -1
- package/lib/content-fields/hubtype-fields/carousel.d.ts +0 -17
- package/lib/content-fields/hubtype-fields/carousel.js +0 -4
- package/lib/content-fields/hubtype-fields/carousel.js.map +0 -1
- package/lib/content-fields/hubtype-fields/channel-conditional.d.ts +0 -10
- package/lib/content-fields/hubtype-fields/channel-conditional.js +0 -4
- package/lib/content-fields/hubtype-fields/channel-conditional.js.map +0 -1
- package/lib/content-fields/hubtype-fields/common.d.ts +0 -83
- package/lib/content-fields/hubtype-fields/common.js +0 -4
- package/lib/content-fields/hubtype-fields/common.js.map +0 -1
- package/lib/content-fields/hubtype-fields/country-conditional.d.ts +0 -10
- package/lib/content-fields/hubtype-fields/country-conditional.js +0 -4
- package/lib/content-fields/hubtype-fields/country-conditional.js.map +0 -1
- package/lib/content-fields/hubtype-fields/custom-conditional-v2.d.ts +0 -56
- package/lib/content-fields/hubtype-fields/custom-conditional-v2.js +0 -36
- package/lib/content-fields/hubtype-fields/custom-conditional-v2.js.map +0 -1
- package/lib/content-fields/hubtype-fields/custom-conditional.d.ts +0 -11
- package/lib/content-fields/hubtype-fields/custom-conditional.js +0 -4
- package/lib/content-fields/hubtype-fields/custom-conditional.js.map +0 -1
- package/lib/content-fields/hubtype-fields/fallback.d.ts +0 -9
- package/lib/content-fields/hubtype-fields/fallback.js +0 -4
- package/lib/content-fields/hubtype-fields/fallback.js.map +0 -1
- package/lib/content-fields/hubtype-fields/function.d.ts +0 -30
- package/lib/content-fields/hubtype-fields/function.js +0 -11
- package/lib/content-fields/hubtype-fields/function.js.map +0 -1
- package/lib/content-fields/hubtype-fields/go-to-flow.d.ts +0 -9
- package/lib/content-fields/hubtype-fields/go-to-flow.js +0 -4
- package/lib/content-fields/hubtype-fields/go-to-flow.js.map +0 -1
- package/lib/content-fields/hubtype-fields/handoff.d.ts +0 -11
- package/lib/content-fields/hubtype-fields/handoff.js +0 -4
- package/lib/content-fields/hubtype-fields/handoff.js.map +0 -1
- package/lib/content-fields/hubtype-fields/image.d.ts +0 -8
- package/lib/content-fields/hubtype-fields/image.js +0 -4
- package/lib/content-fields/hubtype-fields/image.js.map +0 -1
- package/lib/content-fields/hubtype-fields/index.d.ts +0 -27
- package/lib/content-fields/hubtype-fields/index.js +0 -57
- package/lib/content-fields/hubtype-fields/index.js.map +0 -1
- package/lib/content-fields/hubtype-fields/keyword.d.ts +0 -9
- package/lib/content-fields/hubtype-fields/keyword.js +0 -4
- package/lib/content-fields/hubtype-fields/keyword.js.map +0 -1
- package/lib/content-fields/hubtype-fields/node-types.d.ts +0 -31
- package/lib/content-fields/hubtype-fields/node-types.js +0 -38
- package/lib/content-fields/hubtype-fields/node-types.js.map +0 -1
- package/lib/content-fields/hubtype-fields/nodes.d.ts +0 -26
- package/lib/content-fields/hubtype-fields/nodes.js +0 -4
- package/lib/content-fields/hubtype-fields/nodes.js.map +0 -1
- package/lib/content-fields/hubtype-fields/payload.d.ts +0 -8
- package/lib/content-fields/hubtype-fields/payload.js +0 -4
- package/lib/content-fields/hubtype-fields/payload.js.map +0 -1
- package/lib/content-fields/hubtype-fields/queue-status-conditional.d.ts +0 -25
- package/lib/content-fields/hubtype-fields/queue-status-conditional.js +0 -4
- package/lib/content-fields/hubtype-fields/queue-status-conditional.js.map +0 -1
- package/lib/content-fields/hubtype-fields/rating.d.ts +0 -23
- package/lib/content-fields/hubtype-fields/rating.js +0 -9
- package/lib/content-fields/hubtype-fields/rating.js.map +0 -1
- package/lib/content-fields/hubtype-fields/smart-intent.d.ts +0 -12
- package/lib/content-fields/hubtype-fields/smart-intent.js +0 -4
- package/lib/content-fields/hubtype-fields/smart-intent.js.map +0 -1
- package/lib/content-fields/hubtype-fields/text.d.ts +0 -11
- package/lib/content-fields/hubtype-fields/text.js +0 -4
- package/lib/content-fields/hubtype-fields/text.js.map +0 -1
- package/lib/content-fields/hubtype-fields/url.d.ts +0 -8
- package/lib/content-fields/hubtype-fields/url.js +0 -4
- package/lib/content-fields/hubtype-fields/url.js.map +0 -1
- package/lib/content-fields/hubtype-fields/video.d.ts +0 -8
- package/lib/content-fields/hubtype-fields/video.js +0 -4
- package/lib/content-fields/hubtype-fields/video.js.map +0 -1
- package/lib/content-fields/hubtype-fields/webview.d.ts +0 -17
- package/lib/content-fields/hubtype-fields/webview.js +0 -4
- package/lib/content-fields/hubtype-fields/webview.js.map +0 -1
- package/lib/content-fields/hubtype-fields/whatsapp-button-list.d.ts +0 -21
- package/lib/content-fields/hubtype-fields/whatsapp-button-list.js +0 -4
- package/lib/content-fields/hubtype-fields/whatsapp-button-list.js.map +0 -1
- package/lib/content-fields/hubtype-fields/whatsapp-cta-url-button.d.ts +0 -17
- package/lib/content-fields/hubtype-fields/whatsapp-cta-url-button.js +0 -4
- package/lib/content-fields/hubtype-fields/whatsapp-cta-url-button.js.map +0 -1
- package/lib/content-fields/hubtype-fields/whatsapp-request-contact-info.d.ts +0 -8
- package/lib/content-fields/hubtype-fields/whatsapp-request-contact-info.js +0 -4
- package/lib/content-fields/hubtype-fields/whatsapp-request-contact-info.js.map +0 -1
- package/lib/content-fields/hubtype-fields/whatsapp-template.d.ts +0 -96
- package/lib/content-fields/hubtype-fields/whatsapp-template.js +0 -9
- package/lib/content-fields/hubtype-fields/whatsapp-template.js.map +0 -1
- package/lib/content-fields/index.d.ts +0 -25
- package/lib/content-fields/index.js +0 -73
- package/lib/content-fields/index.js.map +0 -1
- package/lib/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.d.ts +0 -14
- package/lib/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js +0 -43
- package/lib/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js.map +0 -1
- package/lib/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.d.ts +0 -13
- package/lib/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js +0 -41
- package/lib/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js.map +0 -1
- package/lib/content-fields/whatsapp-button-list/flow-whatsapp-button-list.d.ts +0 -14
- package/lib/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js +0 -66
- package/lib/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js.map +0 -1
- package/lib/content-fields/whatsapp-button-list/index.d.ts +0 -3
- package/lib/content-fields/whatsapp-button-list/index.js +0 -12
- package/lib/content-fields/whatsapp-button-list/index.js.map +0 -1
- package/lib/filters/index.d.ts +0 -12
- package/lib/filters/index.js +0 -16
- package/lib/filters/index.js.map +0 -1
- package/lib/flow-factory.d.ts +0 -12
- package/lib/flow-factory.js +0 -75
- package/lib/flow-factory.js.map +0 -1
- package/lib/functions/index.d.ts +0 -11
- package/lib/functions/index.js +0 -55
- package/lib/functions/index.js.map +0 -1
- package/lib/index.d.ts +0 -45
- package/lib/index.js +0 -195
- package/lib/index.js.map +0 -1
- package/lib/services/hubtype-queues-api.js +0 -26
- package/lib/services/hubtype-queues-api.js.map +0 -1
- package/lib/structured-output/flow-builder-content.js +0 -16
- package/lib/structured-output/flow-builder-content.js.map +0 -1
- package/lib/tracking.d.ts +0 -16
- package/lib/tracking.js +0 -77
- package/lib/tracking.js.map +0 -1
- package/lib/types.d.ts +0 -62
- package/lib/types.js +0 -14
- package/lib/types.js.map +0 -1
- package/lib/user-input/capture-user-input-api.d.ts +0 -21
- package/lib/user-input/capture-user-input-api.js +0 -99
- package/lib/user-input/capture-user-input-api.js.map +0 -1
- package/lib/user-input/index.d.ts +0 -4
- package/lib/user-input/index.js +0 -46
- package/lib/user-input/index.js.map +0 -1
- package/lib/user-input/keyword.d.ts +0 -27
- package/lib/user-input/keyword.js +0 -89
- package/lib/user-input/keyword.js.map +0 -1
- package/lib/user-input/smart-intent.d.ts +0 -24
- package/lib/user-input/smart-intent.js +0 -93
- package/lib/user-input/smart-intent.js.map +0 -1
- package/lib/utils/ai-agent.d.ts +0 -11
- package/lib/utils/ai-agent.js +0 -33
- package/lib/utils/ai-agent.js.map +0 -1
- package/lib/utils/authentication.js +0 -24
- package/lib/utils/authentication.js.map +0 -1
- package/lib/utils/flow-locale.js +0 -75
- package/lib/utils/flow-locale.js.map +0 -1
- package/lib/utils/get-flow-builder-plugin.d.ts +0 -3
- package/lib/utils/get-flow-builder-plugin.js +0 -16
- package/lib/utils/get-flow-builder-plugin.js.map +0 -1
- package/lib/utils/hubtype-assistant-content.d.ts +0 -13
- package/lib/utils/hubtype-assistant-content.js +0 -200
- package/lib/utils/hubtype-assistant-content.js.map +0 -1
- package/lib/utils/input.js +0 -37
- package/lib/utils/input.js.map +0 -1
- package/lib/webview/contents-context.d.ts +0 -2
- package/lib/webview/contents-context.js +0 -14
- package/lib/webview/contents-context.js.map +0 -1
- package/lib/webview/index.d.ts +0 -3
- package/lib/webview/index.js +0 -11
- package/lib/webview/index.js.map +0 -1
- package/lib/webview/types.d.ts +0 -47
- package/lib/webview/types.js +0 -9
- package/lib/webview/types.js.map +0 -1
- package/lib/webview/use-webview-contents.d.ts +0 -2
- package/lib/webview/use-webview-contents.js +0 -90
- package/lib/webview/use-webview-contents.js.map +0 -1
- /package/lib/{services → cjs/services}/hubtype-queues-api.d.ts +0 -0
- /package/lib/{structured-output → cjs/structured-output}/flow-builder-content.d.ts +0 -0
- /package/lib/{utils → cjs/utils}/authentication.d.ts +0 -0
- /package/lib/{utils → cjs/utils}/flow-locale.d.ts +0 -0
- /package/lib/{utils → cjs/utils}/input.d.ts +0 -0
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { splitAiAgentContents } from "../utils/ai-agent.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
async function getContentsByAiAgentFromUserInput({ cmsApi, flowBuilderPlugin, request }) {
|
|
6
|
-
const startNodeAiAgentFlow = cmsApi.getStartNodeAiAgentFlow();
|
|
7
|
-
const isAiAgentEnabled = cmsApi.isAiAgentEnabled();
|
|
8
|
-
if (!startNodeAiAgentFlow || !isAiAgentEnabled) {
|
|
9
|
-
return [];
|
|
10
|
-
}
|
|
11
|
-
const contents = await flowBuilderPlugin.getContentsByNode(startNodeAiAgentFlow);
|
|
12
|
-
const splitContents = splitAiAgentContents(contents);
|
|
13
|
-
if (!splitContents) {
|
|
14
|
-
return [];
|
|
15
|
-
}
|
|
16
|
-
if ('aiAgentRouterContent' in splitContents) {
|
|
17
|
-
const { aiAgentRouterContent, contentsBeforeAiAgentRouter } = splitContents;
|
|
18
|
-
const aiAgentResponse = await aiAgentRouterContent.resolveAIAgentResponse(request, contentsBeforeAiAgentRouter);
|
|
19
|
-
if (!aiAgentResponse || aiAgentResponse.exit) {
|
|
20
|
-
return [];
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
if ('aiAgentWorkerContent' in splitContents) {
|
|
24
|
-
const { aiAgentWorkerContent, contentsBeforeAiAgentWorker } = splitContents;
|
|
25
|
-
const aiAgentResponse = await aiAgentWorkerContent.resolveAIAgentResponse(request, contentsBeforeAiAgentWorker);
|
|
26
|
-
if (!aiAgentResponse || aiAgentResponse.exit) {
|
|
27
|
-
return [];
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
return contents;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export { getContentsByAiAgentFromUserInput };
|
|
34
|
-
|
|
35
|
-
//# sourceMappingURL=ai-agent-from-user-input.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"action/ai-agent-from-user-input.js","sources":["../../src/action/ai-agent-from-user-input.ts"],"sourcesContent":["import type { FlowContent } from '../content-fields/index'\nimport { splitAiAgentContents } from '../utils/ai-agent'\nimport type { FlowBuilderContext } from './context'\n\nexport async function getContentsByAiAgentFromUserInput({\n cmsApi,\n flowBuilderPlugin,\n request,\n}: FlowBuilderContext): Promise<FlowContent[]> {\n const startNodeAiAgentFlow = cmsApi.getStartNodeAiAgentFlow()\n const isAiAgentEnabled = cmsApi.isAiAgentEnabled()\n if (!startNodeAiAgentFlow || !isAiAgentEnabled) {\n return []\n }\n\n const contents =\n await flowBuilderPlugin.getContentsByNode(startNodeAiAgentFlow)\n\n const splitContents = splitAiAgentContents(contents)\n\n if (!splitContents) {\n return []\n }\n\n if ('aiAgentRouterContent' in splitContents) {\n const { aiAgentRouterContent, contentsBeforeAiAgentRouter } = splitContents\n const aiAgentResponse = await aiAgentRouterContent.resolveAIAgentResponse(\n request,\n contentsBeforeAiAgentRouter\n )\n\n if (!aiAgentResponse || aiAgentResponse.exit) {\n return []\n }\n }\n\n if ('aiAgentWorkerContent' in splitContents) {\n const { aiAgentWorkerContent, contentsBeforeAiAgentWorker } = splitContents\n const aiAgentResponse = await aiAgentWorkerContent.resolveAIAgentResponse(\n request,\n contentsBeforeAiAgentWorker\n )\n\n if (!aiAgentResponse || aiAgentResponse.exit) {\n return []\n }\n }\n\n return contents\n}\n"],"names":["splitAiAgentContents","getContentsByAiAgentFromUserInput","cmsApi","flowBuilderPlugin","request","startNodeAiAgentFlow","isAiAgentEnabled","contents","splitContents","aiAgentRouterContent","contentsBeforeAiAgentRouter","aiAgentResponse","aiAgentWorkerContent","contentsBeforeAiAgentWorker"],"mappings":";;;AACwD;AAGjD,eAAeC,iCAAiCA,CAAC,EACtDC,MAAM,EACNC,iBAAiB,EACjBC,OAAO,EACY;IACnB,MAAMC,uBAAuBH,OAAO,uBAAuB;IAC3D,MAAMI,mBAAmBJ,OAAO,gBAAgB;IAChD,IAAI,CAACG,wBAAwB,CAACC,kBAAkB;QAC9C,OAAO,EAAE;IACX;IAEA,MAAMC,WACJ,MAAMJ,kBAAkB,iBAAiB,CAACE;IAE5C,MAAMG,gBAAgBR,oBAAoBA,CAACO;IAE3C,IAAI,CAACC,eAAe;QAClB,OAAO,EAAE;IACX;IAEA,IAAI,0BAA0BA,eAAe;QAC3C,MAAM,EAAEC,oBAAoB,EAAEC,2BAA2B,EAAE,GAAGF;QAC9D,MAAMG,kBAAkB,MAAMF,qBAAqB,sBAAsB,CACvEL,SACAM;QAGF,IAAI,CAACC,mBAAmBA,gBAAgB,IAAI,EAAE;YAC5C,OAAO,EAAE;QACX;IACF;IAEA,IAAI,0BAA0BH,eAAe;QAC3C,MAAM,EAAEI,oBAAoB,EAAEC,2BAA2B,EAAE,GAAGL;QAC9D,MAAMG,kBAAkB,MAAMC,qBAAqB,sBAAsB,CACvER,SACAS;QAGF,IAAI,CAACF,mBAAmBA,gBAAgB,IAAI,EAAE;YAC5C,OAAO,EAAE;QACX;IACF;IAEA,OAAOJ;AACT"}
|
package/lib/action/context.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { BotContext } from '@botonic/core';
|
|
2
|
-
import type { FlowBuilderApi } from '../api.js';
|
|
3
|
-
import type BotonicPluginFlowBuilder from '../index.js';
|
|
4
|
-
export interface FlowBuilderContext {
|
|
5
|
-
cmsApi: FlowBuilderApi;
|
|
6
|
-
flowBuilderPlugin: BotonicPluginFlowBuilder;
|
|
7
|
-
request: BotContext;
|
|
8
|
-
resolvedLocale: string;
|
|
9
|
-
contentID?: string;
|
|
10
|
-
}
|
|
11
|
-
export declare function getFlowBuilderActionContext(request: BotContext, contentID?: string): FlowBuilderContext;
|
package/lib/action/context.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { getFlowBuilderPlugin } from "../utils/get-flow-builder-plugin.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
function getFlowBuilderActionContext(request, contentID) {
|
|
6
|
-
const flowBuilderPlugin = getFlowBuilderPlugin(request.plugins);
|
|
7
|
-
const cmsApi = flowBuilderPlugin.cmsApi;
|
|
8
|
-
const resolvedLocale = flowBuilderPlugin.cmsApi.getResolvedLocale();
|
|
9
|
-
return {
|
|
10
|
-
cmsApi,
|
|
11
|
-
flowBuilderPlugin,
|
|
12
|
-
request,
|
|
13
|
-
resolvedLocale,
|
|
14
|
-
contentID
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export { getFlowBuilderActionContext };
|
|
19
|
-
|
|
20
|
-
//# sourceMappingURL=context.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"action/context.js","sources":["../../src/action/context.ts"],"sourcesContent":["import type { BotContext } from '@botonic/core'\n\nimport type { FlowBuilderApi } from '../api'\nimport type BotonicPluginFlowBuilder from '../index'\nimport { getFlowBuilderPlugin } from '../utils/get-flow-builder-plugin'\n\nexport interface FlowBuilderContext {\n cmsApi: FlowBuilderApi\n flowBuilderPlugin: BotonicPluginFlowBuilder\n request: BotContext\n resolvedLocale: string\n contentID?: string\n}\n\nexport function getFlowBuilderActionContext(\n request: BotContext,\n contentID?: string\n): FlowBuilderContext {\n const flowBuilderPlugin = getFlowBuilderPlugin(request.plugins)\n const cmsApi = flowBuilderPlugin.cmsApi\n const resolvedLocale = flowBuilderPlugin.cmsApi.getResolvedLocale()\n return {\n cmsApi,\n flowBuilderPlugin,\n request,\n resolvedLocale,\n contentID,\n }\n}\n"],"names":["getFlowBuilderPlugin","getFlowBuilderActionContext","request","contentID","flowBuilderPlugin","cmsApi","resolvedLocale"],"mappings":";;;AAIuE;AAUhE,SAASC,2BAA2BA,CACzCC,OAAmB,EACnBC,SAAkB;IAElB,MAAMC,oBAAoBJ,oBAAoBA,CAACE,QAAQ,OAAO;IAC9D,MAAMG,SAASD,kBAAkB,MAAM;IACvC,MAAME,iBAAiBF,kBAAkB,MAAM,CAAC,iBAAiB;IACjE,OAAO;QACLC;QACAD;QACAF;QACAI;QACAH;IACF;AACF"}
|
package/lib/action/fallback.d.ts
DELETED
package/lib/action/fallback.js
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { EventAction } from "@botonic/core";
|
|
2
|
-
import { getCommonFlowContentEventArgsForContentId, trackEvent } from "../tracking.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
async function getContentsByFallback({ cmsApi, flowBuilderPlugin, request }) {
|
|
9
|
-
const fallbackNode = await getFallbackNode(cmsApi, request);
|
|
10
|
-
const fallbackContents = await flowBuilderPlugin.getContentsByNode(fallbackNode);
|
|
11
|
-
return fallbackContents;
|
|
12
|
-
}
|
|
13
|
-
async function getFallbackNode(cmsApi, request) {
|
|
14
|
-
if (request.session.user.extra_data?.isFirstFallbackOption === undefined) {
|
|
15
|
-
request.session.user.extra_data = {
|
|
16
|
-
...request.session.user.extra_data,
|
|
17
|
-
isFirstFallbackOption: true
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
const isFirstFallbackOption = !!request.session.user.extra_data.isFirstFallbackOption;
|
|
21
|
-
const fallbackNode = cmsApi.getFallbackNode(isFirstFallbackOption);
|
|
22
|
-
request.session.user.extra_data.isFirstFallbackOption = !isFirstFallbackOption;
|
|
23
|
-
const { flowId, flowName, flowNodeId, flowNodeContentId } = getCommonFlowContentEventArgsForContentId(request, fallbackNode.id);
|
|
24
|
-
const event = {
|
|
25
|
-
action: EventAction.Fallback,
|
|
26
|
-
flowId,
|
|
27
|
-
flowName,
|
|
28
|
-
flowNodeId,
|
|
29
|
-
flowNodeContentId,
|
|
30
|
-
userInput: request.input.data,
|
|
31
|
-
fallbackOut: isFirstFallbackOption ? 1 : 2,
|
|
32
|
-
fallbackMessageId: request.input.message_id
|
|
33
|
-
};
|
|
34
|
-
const { action, ...eventArgs } = event;
|
|
35
|
-
await trackEvent(request, action, eventArgs);
|
|
36
|
-
return fallbackNode;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export { getContentsByFallback };
|
|
40
|
-
|
|
41
|
-
//# sourceMappingURL=fallback.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"action/fallback.js","sources":["../../src/action/fallback.ts"],"sourcesContent":["import { EventAction, type EventFallback } from '@botonic/core'\nimport type { ActionRequest } from '@botonic/react'\n\nimport type { FlowBuilderApi } from '../api'\nimport type { FlowContent } from '../content-fields'\nimport {\n getCommonFlowContentEventArgsForContentId,\n trackEvent,\n} from '../tracking'\nimport type { FlowBuilderContext } from './context'\n\nexport async function getContentsByFallback({\n cmsApi,\n flowBuilderPlugin,\n request,\n}: FlowBuilderContext): Promise<FlowContent[]> {\n const fallbackNode = await getFallbackNode(cmsApi, request)\n const fallbackContents =\n await flowBuilderPlugin.getContentsByNode(fallbackNode)\n\n return fallbackContents\n}\n\nasync function getFallbackNode(cmsApi: FlowBuilderApi, request: ActionRequest) {\n if (request.session.user.extra_data?.isFirstFallbackOption === undefined) {\n request.session.user.extra_data = {\n ...request.session.user.extra_data,\n isFirstFallbackOption: true,\n }\n }\n\n const isFirstFallbackOption =\n !!request.session.user.extra_data.isFirstFallbackOption\n const fallbackNode = cmsApi.getFallbackNode(isFirstFallbackOption)\n request.session.user.extra_data.isFirstFallbackOption = !isFirstFallbackOption\n\n const { flowId, flowName, flowNodeId, flowNodeContentId } =\n getCommonFlowContentEventArgsForContentId(request, fallbackNode.id)\n\n const event: EventFallback = {\n action: EventAction.Fallback,\n flowId,\n flowName,\n flowNodeId,\n flowNodeContentId,\n userInput: request.input.data as string,\n fallbackOut: isFirstFallbackOption ? 1 : 2,\n fallbackMessageId: request.input.message_id,\n }\n const { action, ...eventArgs } = event\n\n await trackEvent(request, action, eventArgs)\n\n return fallbackNode\n}\n"],"names":["EventAction","getCommonFlowContentEventArgsForContentId","trackEvent","getContentsByFallback","cmsApi","flowBuilderPlugin","request","fallbackNode","getFallbackNode","fallbackContents","undefined","isFirstFallbackOption","flowId","flowName","flowNodeId","flowNodeContentId","event","action","eventArgs"],"mappings":";;;;;AAA+D;AAQ3C;AAGb,eAAeG,qBAAqBA,CAAC,EAC1CC,MAAM,EACNC,iBAAiB,EACjBC,OAAO,EACY;IACnB,MAAMC,eAAe,MAAMC,eAAeA,CAACJ,QAAQE;IACnD,MAAMG,mBACJ,MAAMJ,kBAAkB,iBAAiB,CAACE;IAE5C,OAAOE;AACT;AAEA,eAAeD,eAAeA,CAACJ,MAAsB,EAAEE,OAAsB;IAC3E,IAAIA,QAAQ,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,0BAA0BI,WAAW;QACxEJ,QAAQ,OAAO,CAAC,IAAI,CAAC,UAAU,GAAG;YAChC,GAAGA,QAAQ,OAAO,CAAC,IAAI,CAAC,UAAU;YAClC,uBAAuB;QACzB;IACF;IAEA,MAAMK,wBACJ,CAAC,CAACL,QAAQ,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB;IACzD,MAAMC,eAAeH,OAAO,eAAe,CAACO;IAC5CL,QAAQ,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,GAAG,CAACK;IAEzD,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,iBAAiB,EAAE,GACvDd,yCAAyCA,CAACK,SAASC,aAAa,EAAE;IAEpE,MAAMS,QAAuB;QAC3B,QAAQhB,oBAAoB;QAC5BY;QACAC;QACAC;QACAC;QACA,WAAWT,QAAQ,KAAK,CAAC,IAAI;QAC7B,aAAaK,wBAAwB,IAAI;QACzC,mBAAmBL,QAAQ,KAAK,CAAC,UAAU;IAC7C;IACA,MAAM,EAAEW,MAAM,EAAE,GAAGC,WAAW,GAAGF;IAEjC,MAAMd,UAAUA,CAACI,SAASW,QAAQC;IAElC,OAAOX;AACT"}
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import { MAIN_FLOW_NAME } from "../constants.js";
|
|
2
|
-
import { FlowAiAgent, FlowAiAgentRouter, FlowBotAction } from "../content-fields/index.js";
|
|
3
|
-
import { inputHasTextOrTranscript } from "../utils/input.js";
|
|
4
|
-
import { getContentsByAiAgentFromUserInput } from "./ai-agent-from-user-input.js";
|
|
5
|
-
import { getContentsByPayload } from "./payload.js";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
async function getContentsByFirstInteraction(context) {
|
|
18
|
-
const { contentID, flowBuilderPlugin, request } = context;
|
|
19
|
-
/*
|
|
20
|
-
* If the contentID is provided, the firstInteractionContents are obtained even if they are not used
|
|
21
|
-
* because when obtain this firstInteractionContents is when the session.flow_thread_id is updated.
|
|
22
|
-
* This is needed for example when send a WhatsApp campaign is sent,
|
|
23
|
-
* the bot not receives the message because this message is sent directly by the backend
|
|
24
|
-
* we expect the bot to respond only with the contents of the contentID and not with the firstInteractionContents.
|
|
25
|
-
*/ const firstInteractionContents = await flowBuilderPlugin.getStartContents();
|
|
26
|
-
if (contentID) {
|
|
27
|
-
try {
|
|
28
|
-
const contentsByContentID = await flowBuilderPlugin.getContentsByContentID(contentID);
|
|
29
|
-
if (contentsByContentID.length > 0) {
|
|
30
|
-
return contentsByContentID;
|
|
31
|
-
}
|
|
32
|
-
} catch (_error) {
|
|
33
|
-
console.warn(`The contentID ${contentID} is not found. Returning the firstInteractionContents`);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
// Bot actions and AI agents already consume the user input. Matching
|
|
37
|
-
// keywords/intents/KB/AI-agent-from-user-input on top would duplicate replies
|
|
38
|
-
// (e.g. Main start → Go to flow → AI Agents).
|
|
39
|
-
if (startContentsAlreadyHandleUserInput(firstInteractionContents)) {
|
|
40
|
-
return firstInteractionContents;
|
|
41
|
-
}
|
|
42
|
-
if (request.input.nluResolution || inputHasTextOrTranscript(request.input)) {
|
|
43
|
-
const contentsByUserInput = await getContentsByUserInput(context);
|
|
44
|
-
return [
|
|
45
|
-
...firstInteractionContents,
|
|
46
|
-
...contentsByUserInput
|
|
47
|
-
];
|
|
48
|
-
}
|
|
49
|
-
return firstInteractionContents;
|
|
50
|
-
}
|
|
51
|
-
function startContentsAlreadyHandleUserInput(contents) {
|
|
52
|
-
if (contents.at(-1) instanceof FlowBotAction) {
|
|
53
|
-
return true;
|
|
54
|
-
}
|
|
55
|
-
// To avoid duplicated ai agent response, we check if there is an ai agent or ai agent router in the first interaction contents.
|
|
56
|
-
return contents.some((content)=>content instanceof FlowAiAgent || content instanceof FlowAiAgentRouter);
|
|
57
|
-
}
|
|
58
|
-
async function getContentsByUserInput(context) {
|
|
59
|
-
const { cmsApi, flowBuilderPlugin, request, resolvedLocale } = context;
|
|
60
|
-
const payloadByNlu = request.input.nluResolution?.payload;
|
|
61
|
-
if (payloadByNlu) {
|
|
62
|
-
request.input.payload = payloadByNlu;
|
|
63
|
-
const conversationStartId = getConversationStartId(cmsApi);
|
|
64
|
-
if (request.input.payload === conversationStartId) {
|
|
65
|
-
return [];
|
|
66
|
-
}
|
|
67
|
-
const contentsByKeywordsOrIntents = await getContentsByPayload({
|
|
68
|
-
cmsApi,
|
|
69
|
-
flowBuilderPlugin,
|
|
70
|
-
request,
|
|
71
|
-
resolvedLocale
|
|
72
|
-
});
|
|
73
|
-
const hasRepeatedContent = await checkRepeatedContents(flowBuilderPlugin, contentsByKeywordsOrIntents);
|
|
74
|
-
if (hasRepeatedContent) {
|
|
75
|
-
return [];
|
|
76
|
-
}
|
|
77
|
-
if (contentsByKeywordsOrIntents.length > 0) {
|
|
78
|
-
return contentsByKeywordsOrIntents;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
if (!flowBuilderPlugin.disableAIAgentInFirstInteraction) {
|
|
82
|
-
const contentsByAiAgent = await getContentsByAiAgentFromUserInput(context);
|
|
83
|
-
return contentsByAiAgent;
|
|
84
|
-
}
|
|
85
|
-
return [];
|
|
86
|
-
}
|
|
87
|
-
function getConversationStartId(cmsApi) {
|
|
88
|
-
const conversationStartId = cmsApi.flow.flows.find((flow)=>flow.name === MAIN_FLOW_NAME)?.start_node_id;
|
|
89
|
-
return conversationStartId;
|
|
90
|
-
}
|
|
91
|
-
async function checkRepeatedContents(flowBuilderPlugin, contentsByKeywordsOrIntents) {
|
|
92
|
-
const startContents = await flowBuilderPlugin.getStartContents();
|
|
93
|
-
const contentIds = new Set(contentsByKeywordsOrIntents.map((content)=>content.id));
|
|
94
|
-
const hasRepeatedContent = startContents.some((content)=>contentIds.has(content.id));
|
|
95
|
-
return hasRepeatedContent;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
export { getContentsByFirstInteraction };
|
|
99
|
-
|
|
100
|
-
//# sourceMappingURL=first-interaction.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"action/first-interaction.js","sources":["../../src/action/first-interaction.ts"],"sourcesContent":["import type { FlowBuilderApi } from '../api'\nimport { MAIN_FLOW_NAME } from '../constants'\nimport {\n FlowAiAgent,\n FlowAiAgentRouter,\n FlowBotAction,\n type FlowContent,\n} from '../content-fields'\nimport type BotonicPluginFlowBuilder from '../index'\nimport { inputHasTextOrTranscript } from '../utils/input'\nimport { getContentsByAiAgentFromUserInput } from './ai-agent-from-user-input'\nimport type { FlowBuilderContext } from './context'\nimport { getContentsByPayload } from './payload'\n\nexport async function getContentsByFirstInteraction(\n context: FlowBuilderContext\n): Promise<FlowContent[]> {\n const { contentID, flowBuilderPlugin, request } = context\n\n /*\n * If the contentID is provided, the firstInteractionContents are obtained even if they are not used\n * because when obtain this firstInteractionContents is when the session.flow_thread_id is updated.\n * This is needed for example when send a WhatsApp campaign is sent,\n * the bot not receives the message because this message is sent directly by the backend\n * we expect the bot to respond only with the contents of the contentID and not with the firstInteractionContents.\n */\n const firstInteractionContents = await flowBuilderPlugin.getStartContents()\n\n if (contentID) {\n try {\n const contentsByContentID =\n await flowBuilderPlugin.getContentsByContentID(contentID)\n\n if (contentsByContentID.length > 0) {\n return contentsByContentID\n }\n } catch (_error) {\n console.warn(\n `The contentID ${contentID} is not found. Returning the firstInteractionContents`\n )\n }\n }\n\n // Bot actions and AI agents already consume the user input. Matching\n // keywords/intents/KB/AI-agent-from-user-input on top would duplicate replies\n // (e.g. Main start → Go to flow → AI Agents).\n if (startContentsAlreadyHandleUserInput(firstInteractionContents)) {\n return firstInteractionContents\n }\n\n if (request.input.nluResolution || inputHasTextOrTranscript(request.input)) {\n const contentsByUserInput = await getContentsByUserInput(context)\n\n return [...firstInteractionContents, ...contentsByUserInput]\n }\n\n return firstInteractionContents\n}\n\nfunction startContentsAlreadyHandleUserInput(contents: FlowContent[]): boolean {\n if (contents.at(-1) instanceof FlowBotAction) {\n return true\n }\n\n // To avoid duplicated ai agent response, we check if there is an ai agent or ai agent router in the first interaction contents.\n return contents.some(\n content =>\n content instanceof FlowAiAgent || content instanceof FlowAiAgentRouter\n )\n}\n\nasync function getContentsByUserInput(\n context: FlowBuilderContext\n): Promise<FlowContent[]> {\n const { cmsApi, flowBuilderPlugin, request, resolvedLocale } = context\n const payloadByNlu = request.input.nluResolution?.payload\n\n if (payloadByNlu) {\n request.input.payload = payloadByNlu\n const conversationStartId = getConversationStartId(cmsApi)\n\n if (request.input.payload === conversationStartId) {\n return []\n }\n\n const contentsByKeywordsOrIntents = await getContentsByPayload({\n cmsApi,\n flowBuilderPlugin,\n request,\n resolvedLocale,\n })\n\n const hasRepeatedContent = await checkRepeatedContents(\n flowBuilderPlugin,\n contentsByKeywordsOrIntents\n )\n\n if (hasRepeatedContent) {\n return []\n }\n\n if (contentsByKeywordsOrIntents.length > 0) {\n return contentsByKeywordsOrIntents\n }\n }\n\n if (!flowBuilderPlugin.disableAIAgentInFirstInteraction) {\n const contentsByAiAgent = await getContentsByAiAgentFromUserInput(context)\n return contentsByAiAgent\n }\n\n return []\n}\n\nfunction getConversationStartId(cmsApi: FlowBuilderApi) {\n const conversationStartId = cmsApi.flow.flows.find(\n flow => flow.name === MAIN_FLOW_NAME\n )?.start_node_id\n\n return conversationStartId\n}\n\nasync function checkRepeatedContents(\n flowBuilderPlugin: BotonicPluginFlowBuilder,\n contentsByKeywordsOrIntents: FlowContent[]\n) {\n const startContents = await flowBuilderPlugin.getStartContents()\n const contentIds = new Set(\n contentsByKeywordsOrIntents.map(content => content.id)\n )\n const hasRepeatedContent = startContents.some(content =>\n contentIds.has(content.id)\n )\n\n return hasRepeatedContent\n}\n"],"names":["MAIN_FLOW_NAME","FlowAiAgent","FlowAiAgentRouter","FlowBotAction","inputHasTextOrTranscript","getContentsByAiAgentFromUserInput","getContentsByPayload","getContentsByFirstInteraction","context","contentID","flowBuilderPlugin","request","firstInteractionContents","contentsByContentID","_error","console","startContentsAlreadyHandleUserInput","contentsByUserInput","getContentsByUserInput","contents","content","cmsApi","resolvedLocale","payloadByNlu","conversationStartId","getConversationStartId","contentsByKeywordsOrIntents","hasRepeatedContent","checkRepeatedContents","contentsByAiAgent","flow","startContents","contentIds","Set"],"mappings":";;;;;;;;;;;AAC6C;AAMnB;AAE+B;AACqB;AAE9B;AAEzC,eAAeO,6BAA6BA,CACjDC,OAA2B;IAE3B,MAAM,EAAEC,SAAS,EAAEC,iBAAiB,EAAEC,OAAO,EAAE,GAAGH;IAElD;;;;;;GAMC,GACD,MAAMI,2BAA2B,MAAMF,kBAAkB,gBAAgB;IAEzE,IAAID,WAAW;QACb,IAAI;YACF,MAAMI,sBACJ,MAAMH,kBAAkB,sBAAsB,CAACD;YAEjD,IAAII,oBAAoB,MAAM,GAAG,GAAG;gBAClC,OAAOA;YACT;QACF,EAAE,OAAOC,QAAQ;YACfC,QAAQ,IAAI,CACV,CAAC,cAAc,EAAEN,UAAU,qDAAqD,CAAC;QAErF;IACF;IAEA,qEAAqE;IACrE,8EAA8E;IAC9E,8CAA8C;IAC9C,IAAIO,mCAAmCA,CAACJ,2BAA2B;QACjE,OAAOA;IACT;IAEA,IAAID,QAAQ,KAAK,CAAC,aAAa,IAAIP,wBAAwBA,CAACO,QAAQ,KAAK,GAAG;QAC1E,MAAMM,sBAAsB,MAAMC,sBAAsBA,CAACV;QAEzD,OAAO;eAAII;eAA6BK;SAAoB;IAC9D;IAEA,OAAOL;AACT;AAEA,SAASI,mCAAmCA,CAACG,QAAuB;IAClE,IAAIA,SAAS,EAAE,CAAC,CAAC,cAAchB,aAAaA,EAAE;QAC5C,OAAO;IACT;IAEA,gIAAgI;IAChI,OAAOgB,SAAS,IAAI,CAClBC,CAAAA,UACEA,mBAAmBnB,WAAWA,IAAImB,mBAAmBlB,iBAAiBA;AAE5E;AAEA,eAAegB,sBAAsBA,CACnCV,OAA2B;IAE3B,MAAM,EAAEa,MAAM,EAAEX,iBAAiB,EAAEC,OAAO,EAAEW,cAAc,EAAE,GAAGd;IAC/D,MAAMe,eAAeZ,QAAQ,KAAK,CAAC,aAAa,EAAE;IAElD,IAAIY,cAAc;QAChBZ,QAAQ,KAAK,CAAC,OAAO,GAAGY;QACxB,MAAMC,sBAAsBC,sBAAsBA,CAACJ;QAEnD,IAAIV,QAAQ,KAAK,CAAC,OAAO,KAAKa,qBAAqB;YACjD,OAAO,EAAE;QACX;QAEA,MAAME,8BAA8B,MAAMpB,oBAAoBA,CAAC;YAC7De;YACAX;YACAC;YACAW;QACF;QAEA,MAAMK,qBAAqB,MAAMC,qBAAqBA,CACpDlB,mBACAgB;QAGF,IAAIC,oBAAoB;YACtB,OAAO,EAAE;QACX;QAEA,IAAID,4BAA4B,MAAM,GAAG,GAAG;YAC1C,OAAOA;QACT;IACF;IAEA,IAAI,CAAChB,kBAAkB,gCAAgC,EAAE;QACvD,MAAMmB,oBAAoB,MAAMxB,iCAAiCA,CAACG;QAClE,OAAOqB;IACT;IAEA,OAAO,EAAE;AACX;AAEA,SAASJ,sBAAsBA,CAACJ,MAAsB;IACpD,MAAMG,sBAAsBH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAChDS,CAAAA,OAAQA,KAAK,IAAI,KAAK9B,cAAcA,GACnC;IAEH,OAAOwB;AACT;AAEA,eAAeI,qBAAqBA,CAClClB,iBAA2C,EAC3CgB,2BAA0C;IAE1C,MAAMK,gBAAgB,MAAMrB,kBAAkB,gBAAgB;IAC9D,MAAMsB,aAAa,IAAIC,IACrBP,4BAA4B,GAAG,CAACN,CAAAA,UAAWA,QAAQ,EAAE;IAEvD,MAAMO,qBAAqBI,cAAc,IAAI,CAACX,CAAAA,UAC5CY,WAAW,GAAG,CAACZ,QAAQ,EAAE;IAG3B,OAAOO;AACT"}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { INPUT } from "@botonic/core";
|
|
2
|
-
import { EMPTY_PAYLOAD } from "../constants.js";
|
|
3
|
-
import { inputHasTextOrTranscript } from "../utils/input.js";
|
|
4
|
-
import { getContentsByAiAgentFromUserInput } from "./ai-agent-from-user-input.js";
|
|
5
|
-
import { getFlowBuilderActionContext } from "./context.js";
|
|
6
|
-
import { getContentsByFallback } from "./fallback.js";
|
|
7
|
-
import { getContentsByFirstInteraction } from "./first-interaction.js";
|
|
8
|
-
import { getContentsByPayload } from "./payload.js";
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
async function getContents(botContext, contentID) {
|
|
27
|
-
const context = getFlowBuilderActionContext(botContext, contentID);
|
|
28
|
-
if (botContext.session.is_first_interaction) {
|
|
29
|
-
return await getContentsByFirstInteraction(context);
|
|
30
|
-
}
|
|
31
|
-
// TODO: Add needed logic when we can define contents for multi locale queue position message
|
|
32
|
-
if (botContext.input.type === INPUT.EVENT_QUEUE_POSITION_CHANGED) {
|
|
33
|
-
return [];
|
|
34
|
-
}
|
|
35
|
-
if (botContext.input.payload?.startsWith(EMPTY_PAYLOAD)) {
|
|
36
|
-
botContext.input.payload = undefined;
|
|
37
|
-
}
|
|
38
|
-
if (botContext.input.payload || contentID) {
|
|
39
|
-
const contentsByPayload = await getContentsByPayload(context);
|
|
40
|
-
if (contentsByPayload.length > 0) {
|
|
41
|
-
return contentsByPayload;
|
|
42
|
-
}
|
|
43
|
-
return await getContentsByFallback(context);
|
|
44
|
-
}
|
|
45
|
-
if (inputHasTextOrTranscript(botContext.input)) {
|
|
46
|
-
const aiAgentContents = await getContentsByAiAgentFromUserInput(context);
|
|
47
|
-
if (aiAgentContents.length > 0) {
|
|
48
|
-
return aiAgentContents;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
return await getContentsByFallback(context);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export { getContents };
|
|
55
|
-
|
|
56
|
-
//# sourceMappingURL=get-contents.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"action/get-contents.js","sources":["../../src/action/get-contents.ts"],"sourcesContent":["import { type BotContext, INPUT } from '@botonic/core'\nimport { EMPTY_PAYLOAD } from '../constants'\nimport type { FlowContent } from '../content-fields'\nimport { inputHasTextOrTranscript } from '../utils/input'\nimport { getContentsByAiAgentFromUserInput } from './ai-agent-from-user-input'\nimport { getFlowBuilderActionContext } from './context'\nimport { getContentsByFallback } from './fallback'\nimport { getContentsByFirstInteraction } from './first-interaction'\nimport { getContentsByPayload } from './payload'\n\nexport async function getContents(\n botContext: BotContext,\n contentID?: string\n): Promise<FlowContent[]> {\n const context = getFlowBuilderActionContext(botContext, contentID)\n\n if (botContext.session.is_first_interaction) {\n return await getContentsByFirstInteraction(context)\n }\n // TODO: Add needed logic when we can define contents for multi locale queue position message\n if (botContext.input.type === INPUT.EVENT_QUEUE_POSITION_CHANGED) {\n return []\n }\n\n if (botContext.input.payload?.startsWith(EMPTY_PAYLOAD)) {\n botContext.input.payload = undefined\n }\n\n if (botContext.input.payload || contentID) {\n const contentsByPayload = await getContentsByPayload(context)\n if (contentsByPayload.length > 0) {\n return contentsByPayload\n }\n\n return await getContentsByFallback(context)\n }\n\n if (inputHasTextOrTranscript(botContext.input)) {\n const aiAgentContents = await getContentsByAiAgentFromUserInput(context)\n if (aiAgentContents.length > 0) {\n return aiAgentContents\n }\n }\n\n return await getContentsByFallback(context)\n}\n"],"names":["INPUT","EMPTY_PAYLOAD","inputHasTextOrTranscript","getContentsByAiAgentFromUserInput","getFlowBuilderActionContext","getContentsByFallback","getContentsByFirstInteraction","getContentsByPayload","getContents","botContext","contentID","context","undefined","contentsByPayload","aiAgentContents"],"mappings":";;;;;;;;;;;;;;;;;AAAsD;AACV;AAEa;AACqB;AACvB;AACL;AACiB;AACnB;AAEzC,eAAeQ,WAAWA,CAC/BC,UAAsB,EACtBC,SAAkB;IAElB,MAAMC,UAAUP,2BAA2BA,CAACK,YAAYC;IAExD,IAAID,WAAW,OAAO,CAAC,oBAAoB,EAAE;QAC3C,OAAO,MAAMH,6BAA6BA,CAACK;IAC7C;IACA,6FAA6F;IAC7F,IAAIF,WAAW,KAAK,CAAC,IAAI,KAAKT,kCAAkC,EAAE;QAChE,OAAO,EAAE;IACX;IAEA,IAAIS,WAAW,KAAK,CAAC,OAAO,EAAE,WAAWR,aAAaA,GAAG;QACvDQ,WAAW,KAAK,CAAC,OAAO,GAAGG;IAC7B;IAEA,IAAIH,WAAW,KAAK,CAAC,OAAO,IAAIC,WAAW;QACzC,MAAMG,oBAAoB,MAAMN,oBAAoBA,CAACI;QACrD,IAAIE,kBAAkB,MAAM,GAAG,GAAG;YAChC,OAAOA;QACT;QAEA,OAAO,MAAMR,qBAAqBA,CAACM;IACrC;IAEA,IAAIT,wBAAwBA,CAACO,WAAW,KAAK,GAAG;QAC9C,MAAMK,kBAAkB,MAAMX,iCAAiCA,CAACQ;QAChE,IAAIG,gBAAgB,MAAM,GAAG,GAAG;YAC9B,OAAOA;QACT;IACF;IAEA,OAAO,MAAMT,qBAAqBA,CAACM;AACrC"}
|
package/lib/action/index.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { type BotContext } from '@botonic/core';
|
|
2
|
-
import { RequestContext, type WebchatSettingsProps } from '@botonic/react';
|
|
3
|
-
import React from 'react';
|
|
4
|
-
import { type FlowContent } from '../content-fields/index.js';
|
|
5
|
-
export type FlowBuilderActionProps = {
|
|
6
|
-
contents: FlowContent[];
|
|
7
|
-
webchatSettingsParams?: WebchatSettingsProps;
|
|
8
|
-
};
|
|
9
|
-
export declare class FlowBuilderAction extends React.Component<FlowBuilderActionProps> {
|
|
10
|
-
static contextType: React.Context<import("@botonic/react").ActionRequest>;
|
|
11
|
-
context: React.ContextType<typeof RequestContext>;
|
|
12
|
-
static executeConversationStart(botContext: BotContext): Promise<FlowBuilderActionProps>;
|
|
13
|
-
static botonicInit(botContext: BotContext, contentID?: string): Promise<FlowBuilderActionProps>;
|
|
14
|
-
static prepareContentsToRender(botContext: BotContext, contents: FlowContent[]): Promise<FlowContent[]>;
|
|
15
|
-
private static isAiAgentContent;
|
|
16
|
-
private static processAiAgentContent;
|
|
17
|
-
protected getWebchatSettingsParams(botContext: BotContext): {
|
|
18
|
-
shouldSendWebchatSettings: boolean;
|
|
19
|
-
webchatSettingsParams?: WebchatSettingsProps;
|
|
20
|
-
};
|
|
21
|
-
render(): JSX.Element | JSX.Element[];
|
|
22
|
-
}
|
|
23
|
-
export declare class FlowBuilderMultichannelAction extends FlowBuilderAction {
|
|
24
|
-
render(): JSX.Element | JSX.Element[];
|
|
25
|
-
}
|
package/lib/action/index.js
DELETED
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { isDev, isWebchat } from "@botonic/core";
|
|
3
|
-
import { Multichannel, RequestContext, WebchatSettings } from "@botonic/react";
|
|
4
|
-
import react from "react";
|
|
5
|
-
import { FlowAiAgent, FlowAiAgentRouter } from "../content-fields/index.js";
|
|
6
|
-
import { splitAiAgentContents } from "../utils/ai-agent.js";
|
|
7
|
-
import { getFlowBuilderActionContext } from "./context.js";
|
|
8
|
-
import { getContentsByFirstInteraction } from "./first-interaction.js";
|
|
9
|
-
import { getContents } from "./get-contents.js";
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
class FlowBuilderAction extends react.Component {
|
|
30
|
-
static async executeConversationStart(botContext) {
|
|
31
|
-
const context = getFlowBuilderActionContext(botContext);
|
|
32
|
-
const contents = await getContentsByFirstInteraction(context);
|
|
33
|
-
const filteredContents = await FlowBuilderAction.prepareContentsToRender(botContext, contents);
|
|
34
|
-
return {
|
|
35
|
-
contents: filteredContents
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
static async botonicInit(botContext, contentID) {
|
|
39
|
-
const contents = await getContents(botContext, contentID);
|
|
40
|
-
const contentsToRender = await FlowBuilderAction.prepareContentsToRender(botContext, contents);
|
|
41
|
-
return {
|
|
42
|
-
contents: contentsToRender
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
static async prepareContentsToRender(botContext, contents) {
|
|
46
|
-
for (const content of contents){
|
|
47
|
-
if (FlowBuilderAction.isAiAgentContent(content)) {
|
|
48
|
-
await FlowBuilderAction.processAiAgentContent(botContext, contents);
|
|
49
|
-
continue;
|
|
50
|
-
}
|
|
51
|
-
await content.processContent(botContext);
|
|
52
|
-
}
|
|
53
|
-
return contents;
|
|
54
|
-
}
|
|
55
|
-
static isAiAgentContent(content) {
|
|
56
|
-
return content instanceof FlowAiAgent || content instanceof FlowAiAgentRouter;
|
|
57
|
-
}
|
|
58
|
-
// TODO: Refactor this to be more generic and reusable
|
|
59
|
-
static async processAiAgentContent(botContext, contents) {
|
|
60
|
-
const splitContents = splitAiAgentContents(contents);
|
|
61
|
-
if (!splitContents) {
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
if ('aiAgentRouterContent' in splitContents) {
|
|
65
|
-
const { aiAgentRouterContent, contentsBeforeAiAgentRouter } = splitContents;
|
|
66
|
-
await aiAgentRouterContent.processContent(botContext, contentsBeforeAiAgentRouter);
|
|
67
|
-
}
|
|
68
|
-
if ('aiAgentWorkerContent' in splitContents) {
|
|
69
|
-
const { aiAgentWorkerContent, contentsBeforeAiAgentWorker } = splitContents;
|
|
70
|
-
await aiAgentWorkerContent.processContent(botContext, contentsBeforeAiAgentWorker);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
getWebchatSettingsParams(botContext) {
|
|
74
|
-
let { webchatSettingsParams } = this.props;
|
|
75
|
-
if (botContext.session.user.system_locale_updated) {
|
|
76
|
-
webchatSettingsParams = {
|
|
77
|
-
...webchatSettingsParams,
|
|
78
|
-
user: {
|
|
79
|
-
...webchatSettingsParams?.user,
|
|
80
|
-
system_locale: botContext.session.user.system_locale
|
|
81
|
-
}
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
const shouldSendWebchatSettings = (isWebchat(botContext.session) || isDev(botContext.session)) && !!webchatSettingsParams;
|
|
85
|
-
return {
|
|
86
|
-
shouldSendWebchatSettings,
|
|
87
|
-
webchatSettingsParams
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
render() {
|
|
91
|
-
const { contents } = this.props;
|
|
92
|
-
const botContext = this.context;
|
|
93
|
-
const { shouldSendWebchatSettings, webchatSettingsParams } = this.getWebchatSettingsParams(botContext);
|
|
94
|
-
return /*#__PURE__*/ jsxs(Fragment, {
|
|
95
|
-
children: [
|
|
96
|
-
shouldSendWebchatSettings && /*#__PURE__*/ jsx(WebchatSettings, {
|
|
97
|
-
...webchatSettingsParams
|
|
98
|
-
}),
|
|
99
|
-
contents.map((content)=>content.toBotonic(botContext))
|
|
100
|
-
]
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
FlowBuilderAction.contextType = RequestContext;
|
|
105
|
-
class FlowBuilderMultichannelAction extends FlowBuilderAction {
|
|
106
|
-
render() {
|
|
107
|
-
const { contents } = this.props;
|
|
108
|
-
const botContext = this.context;
|
|
109
|
-
const { shouldSendWebchatSettings, webchatSettingsParams } = this.getWebchatSettingsParams(botContext);
|
|
110
|
-
return /*#__PURE__*/ jsxs(Multichannel, {
|
|
111
|
-
text: {
|
|
112
|
-
buttonsAsText: false
|
|
113
|
-
},
|
|
114
|
-
children: [
|
|
115
|
-
shouldSendWebchatSettings && /*#__PURE__*/ jsx(WebchatSettings, {
|
|
116
|
-
...webchatSettingsParams
|
|
117
|
-
}),
|
|
118
|
-
contents.map((content)=>content.toBotonic(botContext))
|
|
119
|
-
]
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
export { FlowBuilderAction, FlowBuilderMultichannelAction };
|
|
125
|
-
|
|
126
|
-
//# sourceMappingURL=index.js.map
|
package/lib/action/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"action/index.js","sources":["../../src/action/index.tsx"],"sourcesContent":["import { type BotContext, isDev, isWebchat } from '@botonic/core'\nimport {\n Multichannel,\n RequestContext,\n WebchatSettings,\n type WebchatSettingsProps,\n} from '@botonic/react'\nimport React from 'react'\n\nimport {\n FlowAiAgent,\n FlowAiAgentRouter,\n type FlowContent,\n} from '../content-fields'\nimport { splitAiAgentContents } from '../utils/ai-agent'\nimport { getFlowBuilderActionContext } from './context'\nimport { getContentsByFirstInteraction } from './first-interaction'\nimport { getContents } from './get-contents'\n\nexport type FlowBuilderActionProps = {\n contents: FlowContent[]\n webchatSettingsParams?: WebchatSettingsProps\n}\n\nexport class FlowBuilderAction extends React.Component<FlowBuilderActionProps> {\n static contextType = RequestContext\n declare context: React.ContextType<typeof RequestContext>\n\n static async executeConversationStart(\n botContext: BotContext\n ): Promise<FlowBuilderActionProps> {\n const context = getFlowBuilderActionContext(botContext)\n const contents = await getContentsByFirstInteraction(context)\n\n const filteredContents = await FlowBuilderAction.prepareContentsToRender(\n botContext,\n contents\n )\n\n return { contents: filteredContents }\n }\n\n static async botonicInit(\n botContext: BotContext,\n contentID?: string\n ): Promise<FlowBuilderActionProps> {\n const contents = await getContents(botContext, contentID)\n\n const contentsToRender = await FlowBuilderAction.prepareContentsToRender(\n botContext,\n contents\n )\n\n return { contents: contentsToRender }\n }\n\n static async prepareContentsToRender(\n botContext: BotContext,\n contents: FlowContent[]\n ) {\n for (const content of contents) {\n if (FlowBuilderAction.isAiAgentContent(content)) {\n await FlowBuilderAction.processAiAgentContent(botContext, contents)\n continue\n }\n\n await content.processContent(botContext)\n }\n\n return contents\n }\n\n private static isAiAgentContent(content: FlowContent): boolean {\n return (\n content instanceof FlowAiAgent || content instanceof FlowAiAgentRouter\n )\n }\n\n // TODO: Refactor this to be more generic and reusable\n private static async processAiAgentContent(\n botContext: BotContext,\n contents: FlowContent[]\n ) {\n const splitContents = splitAiAgentContents(contents)\n if (!splitContents) {\n return\n }\n\n if ('aiAgentRouterContent' in splitContents) {\n const { aiAgentRouterContent, contentsBeforeAiAgentRouter } =\n splitContents\n await aiAgentRouterContent.processContent(\n botContext,\n contentsBeforeAiAgentRouter\n )\n }\n\n if ('aiAgentWorkerContent' in splitContents) {\n const { aiAgentWorkerContent, contentsBeforeAiAgentWorker } =\n splitContents\n await aiAgentWorkerContent.processContent(\n botContext,\n contentsBeforeAiAgentWorker\n )\n }\n }\n\n protected getWebchatSettingsParams(botContext: BotContext): {\n shouldSendWebchatSettings: boolean\n webchatSettingsParams?: WebchatSettingsProps\n } {\n let { webchatSettingsParams } = this.props\n if (botContext.session.user.system_locale_updated) {\n webchatSettingsParams = {\n ...webchatSettingsParams,\n user: {\n ...webchatSettingsParams?.user,\n system_locale: botContext.session.user.system_locale,\n },\n }\n }\n const shouldSendWebchatSettings =\n (isWebchat(botContext.session) || isDev(botContext.session)) &&\n !!webchatSettingsParams\n\n return {\n shouldSendWebchatSettings,\n webchatSettingsParams,\n }\n }\n\n render(): JSX.Element | JSX.Element[] {\n const { contents } = this.props\n const botContext = this.context as BotContext\n const { shouldSendWebchatSettings, webchatSettingsParams } =\n this.getWebchatSettingsParams(botContext)\n\n return (\n <>\n {shouldSendWebchatSettings && (\n <WebchatSettings {...webchatSettingsParams} />\n )}\n {contents.map(content => content.toBotonic(botContext))}\n </>\n )\n }\n}\n\nexport class FlowBuilderMultichannelAction extends FlowBuilderAction {\n render(): JSX.Element | JSX.Element[] {\n const { contents } = this.props\n const botContext = this.context as BotContext\n const { shouldSendWebchatSettings, webchatSettingsParams } =\n this.getWebchatSettingsParams(botContext)\n\n return (\n <Multichannel text={{ buttonsAsText: false }}>\n {shouldSendWebchatSettings && (\n <WebchatSettings {...webchatSettingsParams} />\n )}\n {contents.map(content => content.toBotonic(botContext))}\n </Multichannel>\n )\n }\n}\n"],"names":["isDev","isWebchat","Multichannel","RequestContext","WebchatSettings","React","FlowAiAgent","FlowAiAgentRouter","splitAiAgentContents","getFlowBuilderActionContext","getContentsByFirstInteraction","getContents","FlowBuilderAction","botContext","context","contents","filteredContents","contentID","contentsToRender","content","splitContents","aiAgentRouterContent","contentsBeforeAiAgentRouter","aiAgentWorkerContent","contentsBeforeAiAgentWorker","webchatSettingsParams","shouldSendWebchatSettings","FlowBuilderMultichannelAction"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAiE;AAM1C;AACE;AAMC;AAC8B;AACD;AACY;AACvB;AAOrC,MAAMY,iBAAiBA,SAASP,eAAe;IAIpD,aAAa,yBACXQ,UAAsB,EACW;QACjC,MAAMC,UAAUL,2BAA2BA,CAACI;QAC5C,MAAME,WAAW,MAAML,6BAA6BA,CAACI;QAErD,MAAME,mBAAmB,MAAMJ,iBAAiBA,CAAC,uBAAuB,CACtEC,YACAE;QAGF,OAAO;YAAE,UAAUC;QAAiB;IACtC;IAEA,aAAa,YACXH,UAAsB,EACtBI,SAAkB,EACe;QACjC,MAAMF,WAAW,MAAMJ,WAAWA,CAACE,YAAYI;QAE/C,MAAMC,mBAAmB,MAAMN,iBAAiBA,CAAC,uBAAuB,CACtEC,YACAE;QAGF,OAAO;YAAE,UAAUG;QAAiB;IACtC;IAEA,aAAa,wBACXL,UAAsB,EACtBE,QAAuB,EACvB;QACA,KAAK,MAAMI,WAAWJ,SAAU;YAC9B,IAAIH,iBAAiBA,CAAC,gBAAgB,CAACO,UAAU;gBAC/C,MAAMP,iBAAiBA,CAAC,qBAAqB,CAACC,YAAYE;gBAC1D;YACF;YAEA,MAAMI,QAAQ,cAAc,CAACN;QAC/B;QAEA,OAAOE;IACT;IAEA,OAAe,iBAAiBI,OAAoB,EAAW;QAC7D,OACEA,mBAAmBb,WAAWA,IAAIa,mBAAmBZ,iBAAiBA;IAE1E;IAEA,sDAAsD;IACtD,aAAqB,sBACnBM,UAAsB,EACtBE,QAAuB,EACvB;QACA,MAAMK,gBAAgBZ,oBAAoBA,CAACO;QAC3C,IAAI,CAACK,eAAe;YAClB;QACF;QAEA,IAAI,0BAA0BA,eAAe;YAC3C,MAAM,EAAEC,oBAAoB,EAAEC,2BAA2B,EAAE,GACzDF;YACF,MAAMC,qBAAqB,cAAc,CACvCR,YACAS;QAEJ;QAEA,IAAI,0BAA0BF,eAAe;YAC3C,MAAM,EAAEG,oBAAoB,EAAEC,2BAA2B,EAAE,GACzDJ;YACF,MAAMG,qBAAqB,cAAc,CACvCV,YACAW;QAEJ;IACF;IAEU,yBAAyBX,UAAsB,EAGvD;QACA,IAAI,EAAEY,qBAAqB,EAAE,GAAG,IAAI,CAAC,KAAK;QAC1C,IAAIZ,WAAW,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE;YACjDY,wBAAwB;gBACtB,GAAGA,qBAAqB;gBACxB,MAAM;oBACJ,GAAGA,uBAAuB,IAAI;oBAC9B,eAAeZ,WAAW,OAAO,CAAC,IAAI,CAAC,aAAa;gBACtD;YACF;QACF;QACA,MAAMa,4BACHzB,CAAAA,SAASA,CAACY,WAAW,OAAO,KAAKb,KAAKA,CAACa,WAAW,OAAO,MAC1D,CAAC,CAACY;QAEJ,OAAO;YACLC;YACAD;QACF;IACF;IAEA,SAAsC;QACpC,MAAM,EAAEV,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK;QAC/B,MAAMF,aAAa,IAAI,CAAC,OAAO;QAC/B,MAAM,EAAEa,yBAAyB,EAAED,qBAAqB,EAAE,GACxD,IAAI,CAAC,wBAAwB,CAACZ;QAEhC,qBACE;;gBACGa,2CACC,IAACtB,eAAeA;oBAAE,GAAGqB,qBAAqB;;gBAE3CV,SAAS,GAAG,CAACI,CAAAA,UAAWA,QAAQ,SAAS,CAACN;;;IAGjD;AACF;AA1HaD,iBAAiBA,CACrB,cAAcT,cAAcA;AA2H9B,MAAMwB,6BAA6BA,SAASf,iBAAiBA;IAClE,SAAsC;QACpC,MAAM,EAAEG,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK;QAC/B,MAAMF,aAAa,IAAI,CAAC,OAAO;QAC/B,MAAM,EAAEa,yBAAyB,EAAED,qBAAqB,EAAE,GACxD,IAAI,CAAC,wBAAwB,CAACZ;QAEhC,qBACE,KAACX,YAAYA;YAAC,MAAM;gBAAE,eAAe;YAAM;;gBACxCwB,2CACC,IAACtB,eAAeA;oBAAE,GAAGqB,qBAAqB;;gBAE3CV,SAAS,GAAG,CAACI,CAAAA,UAAWA,QAAQ,SAAS,CAACN;;;IAGjD;AACF"}
|
package/lib/action/payload.d.ts
DELETED
package/lib/action/payload.js
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { EventAction, storeCaseRating } from "@botonic/core";
|
|
2
|
-
import { v7 } from "uuid";
|
|
3
|
-
import { AGENT_RATING_PAYLOAD, PUSH_FLOW_PAYLOAD, SEPARATOR } from "../constants.js";
|
|
4
|
-
import { trackEvent } from "../tracking.js";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
async function getContentsByPayload(context) {
|
|
15
|
-
const { cmsApi, flowBuilderPlugin, request, contentID } = context;
|
|
16
|
-
if (request.input.payload?.startsWith(AGENT_RATING_PAYLOAD)) {
|
|
17
|
-
return await resolveRatingPayload(context);
|
|
18
|
-
}
|
|
19
|
-
if (request.input.payload?.startsWith(PUSH_FLOW_PAYLOAD)) {
|
|
20
|
-
return await resolvePushFlowPayload(context);
|
|
21
|
-
}
|
|
22
|
-
const id = contentID ? cmsApi.getNodeByContentID(contentID)?.id : request.input.payload;
|
|
23
|
-
const targetNode = id ? cmsApi.getNodeById(id) : undefined;
|
|
24
|
-
if (targetNode) {
|
|
25
|
-
return await flowBuilderPlugin.getContentsByNode(targetNode);
|
|
26
|
-
}
|
|
27
|
-
return [];
|
|
28
|
-
}
|
|
29
|
-
async function resolveRatingPayload(context) {
|
|
30
|
-
const { cmsApi, flowBuilderPlugin, request } = context;
|
|
31
|
-
if (!request.input.payload) {
|
|
32
|
-
return [];
|
|
33
|
-
}
|
|
34
|
-
const { target, text, value, possibleOptions, possibleValues } = flowBuilderPlugin.getRatingSubmittedInfo(request.input.payload);
|
|
35
|
-
if (request.session._hubtype_case_id) {
|
|
36
|
-
const event = {
|
|
37
|
-
action: EventAction.FeedbackCase,
|
|
38
|
-
feedbackTargetId: request.session._hubtype_case_id,
|
|
39
|
-
feedbackGroupId: v7().toString(),
|
|
40
|
-
possibleOptions,
|
|
41
|
-
possibleValues,
|
|
42
|
-
option: text,
|
|
43
|
-
value
|
|
44
|
-
};
|
|
45
|
-
await storeCaseRating(request.session, value);
|
|
46
|
-
await trackEvent(request, EventAction.FeedbackCase, event);
|
|
47
|
-
}
|
|
48
|
-
const targetNode = target ? cmsApi.getNodeById(target.id) : undefined;
|
|
49
|
-
if (targetNode) {
|
|
50
|
-
return await flowBuilderPlugin.getContentsByNode(targetNode);
|
|
51
|
-
}
|
|
52
|
-
return [];
|
|
53
|
-
}
|
|
54
|
-
async function resolvePushFlowPayload(context) {
|
|
55
|
-
const { cmsApi, flowBuilderPlugin, request } = context;
|
|
56
|
-
if (!request.input.payload) {
|
|
57
|
-
return [];
|
|
58
|
-
}
|
|
59
|
-
const parts = request.input.payload.split(SEPARATOR);
|
|
60
|
-
const pushFlowId = parts.length > 1 ? parts[1] : '';
|
|
61
|
-
if (!pushFlowId) {
|
|
62
|
-
return [];
|
|
63
|
-
}
|
|
64
|
-
try {
|
|
65
|
-
const pushFlowNode = cmsApi.getNodeByCampaignId(pushFlowId);
|
|
66
|
-
if (!pushFlowNode) {
|
|
67
|
-
return [];
|
|
68
|
-
}
|
|
69
|
-
return await flowBuilderPlugin.getContentsByNode(pushFlowNode);
|
|
70
|
-
} catch {
|
|
71
|
-
// Campaign not found - return empty to trigger fallback
|
|
72
|
-
return [];
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
export { getContentsByPayload };
|
|
77
|
-
|
|
78
|
-
//# sourceMappingURL=payload.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"action/payload.js","sources":["../../src/action/payload.ts"],"sourcesContent":["import { EventAction, type EventFeedback, storeCaseRating } from '@botonic/core'\nimport { v7 as uuid } from 'uuid'\n\nimport {\n AGENT_RATING_PAYLOAD,\n PUSH_FLOW_PAYLOAD,\n SEPARATOR,\n} from '../constants'\nimport type { FlowContent } from '../content-fields'\nimport type { HtNodeWithContent } from '../content-fields/hubtype-fields'\nimport { trackEvent } from '../tracking'\nimport type { FlowBuilderContext } from './context'\n\nexport async function getContentsByPayload(\n context: FlowBuilderContext\n): Promise<FlowContent[]> {\n const { cmsApi, flowBuilderPlugin, request, contentID } = context\n if (request.input.payload?.startsWith(AGENT_RATING_PAYLOAD)) {\n return await resolveRatingPayload(context)\n }\n if (request.input.payload?.startsWith(PUSH_FLOW_PAYLOAD)) {\n return await resolvePushFlowPayload(context)\n }\n\n const id = contentID\n ? cmsApi.getNodeByContentID(contentID)?.id\n : request.input.payload\n const targetNode = id ? cmsApi.getNodeById<HtNodeWithContent>(id) : undefined\n\n if (targetNode) {\n return await flowBuilderPlugin.getContentsByNode(targetNode)\n }\n\n return []\n}\n\nasync function resolveRatingPayload(\n context: FlowBuilderContext\n): Promise<FlowContent[]> {\n const { cmsApi, flowBuilderPlugin, request } = context\n\n if (!request.input.payload) {\n return []\n }\n\n const { target, text, value, possibleOptions, possibleValues } =\n flowBuilderPlugin.getRatingSubmittedInfo(request.input.payload)\n\n if (request.session._hubtype_case_id) {\n const event: EventFeedback = {\n action: EventAction.FeedbackCase,\n feedbackTargetId: request.session._hubtype_case_id,\n feedbackGroupId: uuid().toString(),\n possibleOptions,\n possibleValues,\n option: text,\n value,\n }\n\n await storeCaseRating(request.session, value)\n await trackEvent(request, EventAction.FeedbackCase, event)\n }\n\n const targetNode = target\n ? cmsApi.getNodeById<HtNodeWithContent>(target.id)\n : undefined\n\n if (targetNode) {\n return await flowBuilderPlugin.getContentsByNode(targetNode)\n }\n\n return []\n}\n\nasync function resolvePushFlowPayload(\n context: FlowBuilderContext\n): Promise<FlowContent[]> {\n const { cmsApi, flowBuilderPlugin, request } = context\n\n if (!request.input.payload) {\n return []\n }\n\n const parts = request.input.payload.split(SEPARATOR)\n const pushFlowId = parts.length > 1 ? parts[1] : ''\n\n if (!pushFlowId) {\n return []\n }\n\n try {\n const pushFlowNode =\n cmsApi.getNodeByCampaignId<HtNodeWithContent>(pushFlowId)\n\n if (!pushFlowNode) {\n return []\n }\n\n return await flowBuilderPlugin.getContentsByNode(pushFlowNode)\n } catch {\n // Campaign not found - return empty to trigger fallback\n return []\n }\n}\n"],"names":["EventAction","storeCaseRating","v7","uuid","AGENT_RATING_PAYLOAD","PUSH_FLOW_PAYLOAD","SEPARATOR","trackEvent","getContentsByPayload","context","cmsApi","flowBuilderPlugin","request","contentID","resolveRatingPayload","resolvePushFlowPayload","id","targetNode","undefined","target","text","value","possibleOptions","possibleValues","event","parts","pushFlowId","pushFlowNode"],"mappings":";;;;;;;;;AAAgF;AAC/C;AAMZ;AAGmB;AAGjC,eAAeQ,oBAAoBA,CACxCC,OAA2B;IAE3B,MAAM,EAAEC,MAAM,EAAEC,iBAAiB,EAAEC,OAAO,EAAEC,SAAS,EAAE,GAAGJ;IAC1D,IAAIG,QAAQ,KAAK,CAAC,OAAO,EAAE,WAAWR,oBAAoBA,GAAG;QAC3D,OAAO,MAAMU,oBAAoBA,CAACL;IACpC;IACA,IAAIG,QAAQ,KAAK,CAAC,OAAO,EAAE,WAAWP,iBAAiBA,GAAG;QACxD,OAAO,MAAMU,sBAAsBA,CAACN;IACtC;IAEA,MAAMO,KAAKH,YACPH,OAAO,kBAAkB,CAACG,YAAY,KACtCD,QAAQ,KAAK,CAAC,OAAO;IACzB,MAAMK,aAAaD,KAAKN,OAAO,WAAW,CAAoBM,MAAME;IAEpE,IAAID,YAAY;QACd,OAAO,MAAMN,kBAAkB,iBAAiB,CAACM;IACnD;IAEA,OAAO,EAAE;AACX;AAEA,eAAeH,oBAAoBA,CACjCL,OAA2B;IAE3B,MAAM,EAAEC,MAAM,EAAEC,iBAAiB,EAAEC,OAAO,EAAE,GAAGH;IAE/C,IAAI,CAACG,QAAQ,KAAK,CAAC,OAAO,EAAE;QAC1B,OAAO,EAAE;IACX;IAEA,MAAM,EAAEO,MAAM,EAAEC,IAAI,EAAEC,KAAK,EAAEC,eAAe,EAAEC,cAAc,EAAE,GAC5DZ,kBAAkB,sBAAsB,CAACC,QAAQ,KAAK,CAAC,OAAO;IAEhE,IAAIA,QAAQ,OAAO,CAAC,gBAAgB,EAAE;QACpC,MAAMY,QAAuB;YAC3B,QAAQxB,wBAAwB;YAChC,kBAAkBY,QAAQ,OAAO,CAAC,gBAAgB;YAClD,iBAAiBT,EAAIA,GAAG,QAAQ;YAChCmB;YACAC;YACA,QAAQH;YACRC;QACF;QAEA,MAAMpB,eAAeA,CAACW,QAAQ,OAAO,EAAES;QACvC,MAAMd,UAAUA,CAACK,SAASZ,wBAAwB,EAAEwB;IACtD;IAEA,MAAMP,aAAaE,SACfT,OAAO,WAAW,CAAoBS,OAAO,EAAE,IAC/CD;IAEJ,IAAID,YAAY;QACd,OAAO,MAAMN,kBAAkB,iBAAiB,CAACM;IACnD;IAEA,OAAO,EAAE;AACX;AAEA,eAAeF,sBAAsBA,CACnCN,OAA2B;IAE3B,MAAM,EAAEC,MAAM,EAAEC,iBAAiB,EAAEC,OAAO,EAAE,GAAGH;IAE/C,IAAI,CAACG,QAAQ,KAAK,CAAC,OAAO,EAAE;QAC1B,OAAO,EAAE;IACX;IAEA,MAAMa,QAAQb,QAAQ,KAAK,CAAC,OAAO,CAAC,KAAK,CAACN,SAASA;IACnD,MAAMoB,aAAaD,MAAM,MAAM,GAAG,IAAIA,KAAK,CAAC,EAAE,GAAG;IAEjD,IAAI,CAACC,YAAY;QACf,OAAO,EAAE;IACX;IAEA,IAAI;QACF,MAAMC,eACJjB,OAAO,mBAAmB,CAAoBgB;QAEhD,IAAI,CAACC,cAAc;YACjB,OAAO,EAAE;QACX;QAEA,OAAO,MAAMhB,kBAAkB,iBAAiB,CAACgB;IACnD,EAAE,OAAM;QACN,wDAAwD;QACxD,OAAO,EAAE;IACX;AACF"}
|
package/lib/api.d.ts
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import type { PluginPreRequest } from '@botonic/core';
|
|
2
|
-
import { type HtBotActionNode, type HtCaptureUserInputNode, type HtFlowBuilderData, type HtFlowWebview, type HtKeywordNode, type HtNodeComponent, type HtNodeLink, type HtNodeWithContent, type HtRatingButton, type HtRatingNode, type HtSmartIntentNode } from './content-fields/hubtype-fields/index.js';
|
|
3
|
-
import { type FlowBuilderApiOptions } from './types.js';
|
|
4
|
-
export declare class FlowBuilderApi {
|
|
5
|
-
url: string;
|
|
6
|
-
flowUrl: string;
|
|
7
|
-
flow: HtFlowBuilderData;
|
|
8
|
-
request: PluginPreRequest;
|
|
9
|
-
private constructor();
|
|
10
|
-
static create(options: FlowBuilderApiOptions): Promise<FlowBuilderApi>;
|
|
11
|
-
private getFlow;
|
|
12
|
-
private updateSessionWithUserInfo;
|
|
13
|
-
getNodeByFlowId(id: string): HtNodeWithContent;
|
|
14
|
-
getNodeByCampaignId<T extends HtNodeComponent>(id: string): T;
|
|
15
|
-
getNodeById<T extends HtNodeComponent>(id: string): T;
|
|
16
|
-
getRatingNodeByButtonId(id: string): HtRatingNode;
|
|
17
|
-
getRatingButtonById(ratingNode: HtRatingNode, id: string): HtRatingButton;
|
|
18
|
-
getNodeByContentID(contentID: string): HtNodeComponent;
|
|
19
|
-
getStartNode(): HtNodeWithContent;
|
|
20
|
-
getFallbackNode(alternate: boolean): HtNodeWithContent;
|
|
21
|
-
getSmartIntentNodes(): HtSmartIntentNode[];
|
|
22
|
-
getKeywordNodes(): HtKeywordNode[];
|
|
23
|
-
getPayload(target?: HtNodeLink): string | undefined;
|
|
24
|
-
isBotAction(id: string): boolean;
|
|
25
|
-
private isUUID;
|
|
26
|
-
createPayloadWithParams(botActionNode: HtBotActionNode): string;
|
|
27
|
-
private getFollowUpContentID;
|
|
28
|
-
getFlowName(flowId: string): string;
|
|
29
|
-
getCampaignFlowName(campaignId: string): string;
|
|
30
|
-
getStartNodeAiAgentFlow(): HtNodeWithContent | undefined;
|
|
31
|
-
isAiAgentEnabled(): boolean;
|
|
32
|
-
getWebviewById(id: string): HtFlowWebview | undefined;
|
|
33
|
-
shouldCaptureUserInput(): boolean;
|
|
34
|
-
getCaptureUserInputId(): string | undefined;
|
|
35
|
-
setCaptureUserInputId(id: string): void;
|
|
36
|
-
removeCaptureUserInputId(): void;
|
|
37
|
-
setUserExtraDataVariable(key: string, value: string): void;
|
|
38
|
-
getCaptureUserInputNode(): HtCaptureUserInputNode | undefined;
|
|
39
|
-
getResolvedLocale(): string;
|
|
40
|
-
}
|