@botonic/plugin-flow-builder 0.58.0-alpha-new-stack.0 → 0.58.0-alpha.1
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.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 +17 -0
- package/lib/cjs/content-fields/flow-contact-reasons-conditional.js +88 -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-update-variables.d.ts +15 -0
- package/lib/cjs/content-fields/flow-update-variables.js +137 -0
- package/lib/cjs/content-fields/flow-update-variables.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 +19 -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 +34 -0
- package/lib/cjs/content-fields/hubtype-fields/node-types.js +41 -0
- package/lib/cjs/content-fields/hubtype-fields/node-types.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/nodes.d.ts +29 -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/update-variables.d.ts +9 -0
- package/lib/cjs/content-fields/hubtype-fields/update-variables.js +3 -0
- package/lib/cjs/content-fields/hubtype-fields/update-variables.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 +28 -0
- package/lib/cjs/content-fields/index.js +58 -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 +75 -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/contact-info-fields-api.d.ts +7 -0
- package/lib/cjs/services/contact-info-fields-api.js +28 -0
- package/lib/cjs/services/contact-info-fields-api.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 +17 -0
- package/lib/esm/content-fields/flow-contact-reasons-conditional.js +88 -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-update-variables.d.ts +15 -0
- package/lib/esm/content-fields/flow-update-variables.js +137 -0
- package/lib/esm/content-fields/flow-update-variables.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 +19 -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 +34 -0
- package/lib/esm/content-fields/hubtype-fields/node-types.js +41 -0
- package/lib/esm/content-fields/hubtype-fields/node-types.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/nodes.d.ts +29 -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/update-variables.d.ts +9 -0
- package/lib/esm/content-fields/hubtype-fields/update-variables.js +3 -0
- package/lib/esm/content-fields/hubtype-fields/update-variables.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 +28 -0
- package/lib/esm/content-fields/index.js +58 -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 +75 -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/contact-info-fields-api.d.ts +7 -0
- package/lib/esm/services/contact-info-fields-api.js +28 -0
- package/lib/esm/services/contact-info-fields-api.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 +9 -11
- package/src/content-fields/flow-contact-reasons-conditional.tsx +34 -5
- package/src/content-fields/flow-update-variables.tsx +182 -0
- package/src/content-fields/hubtype-fields/contact-reasons-conditional.ts +4 -1
- package/src/content-fields/hubtype-fields/node-types.ts +1 -0
- package/src/content-fields/hubtype-fields/nodes.ts +2 -0
- package/src/content-fields/hubtype-fields/update-variables.ts +10 -0
- package/src/content-fields/index.ts +3 -0
- package/src/flow-factory.ts +7 -0
- package/src/services/contact-info-fields-api.ts +36 -0
- package/lib/action/ai-agent-from-user-input.d.ts +0 -3
- package/lib/action/ai-agent-from-user-input.js +0 -43
- 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 -110
- 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 -59
- package/lib/action/get-contents.js.map +0 -1
- package/lib/action/index.d.ts +0 -25
- package/lib/action/index.js +0 -133
- 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 -45
- package/lib/api.js +0 -240
- package/lib/api.js.map +0 -1
- package/lib/bot-context-manager.d.ts +0 -17
- package/lib/bot-context-manager.js +0 -101
- package/lib/bot-context-manager.js.map +0 -1
- package/lib/constants.js +0 -18
- package/lib/constants.js.map +0 -1
- package/lib/content-fields/contact-reasons-conditional-matcher.d.ts +0 -4
- package/lib/content-fields/contact-reasons-conditional-matcher.js +0 -10
- package/lib/content-fields/contact-reasons-conditional-matcher.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 -137
- 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 -76
- 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-contact-reasons-conditional.d.ts +0 -14
- package/lib/content-fields/flow-contact-reasons-conditional.js +0 -68
- package/lib/content-fields/flow-contact-reasons-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-do-nothing.d.ts +0 -9
- package/lib/content-fields/flow-do-nothing.js +0 -33
- package/lib/content-fields/flow-do-nothing.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 -23
- package/lib/content-fields/flow-handoff.js +0 -117
- 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 -62
- 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/contact-reasons-conditional.d.ts +0 -16
- package/lib/content-fields/hubtype-fields/contact-reasons-conditional.js +0 -4
- package/lib/content-fields/hubtype-fields/contact-reasons-conditional.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/do-nothing.d.ts +0 -6
- package/lib/content-fields/hubtype-fields/do-nothing.js +0 -4
- package/lib/content-fields/hubtype-fields/do-nothing.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 -21
- package/lib/content-fields/hubtype-fields/handoff.js +0 -10
- 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 -28
- package/lib/content-fields/hubtype-fields/index.js +0 -59
- 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 -33
- package/lib/content-fields/hubtype-fields/node-types.js +0 -40
- package/lib/content-fields/hubtype-fields/node-types.js.map +0 -1
- package/lib/content-fields/hubtype-fields/nodes.d.ts +0 -28
- 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 -10
- 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 -27
- package/lib/content-fields/index.js +0 -79
- 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 -79
- 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 -42
- package/lib/index.js +0 -157
- 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/{constants.d.ts → cjs/constants.d.ts} +0 -0
- /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
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useWebviewContents = useWebviewContents;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const axios_1 = tslib_1.__importDefault(require("axios"));
|
|
6
|
+
const react_1 = require("react");
|
|
7
|
+
const constants_1 = require("../constants");
|
|
8
|
+
const types_1 = require("../types");
|
|
9
|
+
const types_2 = require("./types");
|
|
10
|
+
function useWebviewContents({ apiUrl = constants_1.FLOW_BUILDER_API_URL_PROD, version = types_1.FlowBuilderJSONVersion.LATEST, botId, webviewId, providerId, locale, mapContents, }) {
|
|
11
|
+
const [textContents, setTextContents] = (0, react_1.useState)();
|
|
12
|
+
const [imageContents, setImageContents] = (0, react_1.useState)();
|
|
13
|
+
const [contents, setContents] = (0, react_1.useState)({});
|
|
14
|
+
const [currentLocale, setCurrentLocale] = (0, react_1.useState)(locale);
|
|
15
|
+
const [error, setError] = (0, react_1.useState)(false);
|
|
16
|
+
const updateCurrentLocale = (textContents) => {
|
|
17
|
+
if (!textContents || textContents.length === 0) {
|
|
18
|
+
console.log('There is no text contents to check the locale');
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const locales = textContents[0].content.text.map(text => text.locale);
|
|
22
|
+
const language = currentLocale.split('-')[0];
|
|
23
|
+
if (locales.includes(currentLocale)) {
|
|
24
|
+
setCurrentLocale(currentLocale);
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (locales.includes(language)) {
|
|
28
|
+
setCurrentLocale(language);
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
console.error(`locale: ${currentLocale} cannot be resolved with: ${locales.join(', ')}`);
|
|
32
|
+
};
|
|
33
|
+
const getTextContent = (contentID) => {
|
|
34
|
+
return (textContents
|
|
35
|
+
?.find(textContent => textContent.code === contentID)
|
|
36
|
+
?.content.text.find(text => text.locale === currentLocale)?.message ||
|
|
37
|
+
'');
|
|
38
|
+
};
|
|
39
|
+
const getImageSrc = (contentID) => {
|
|
40
|
+
return (imageContents
|
|
41
|
+
?.find(imageContent => imageContent.code === contentID)
|
|
42
|
+
?.content.image.find(image => image.locale === currentLocale)?.file ||
|
|
43
|
+
'');
|
|
44
|
+
};
|
|
45
|
+
(0, react_1.useEffect)(() => {
|
|
46
|
+
if (textContents || imageContents) {
|
|
47
|
+
const contentsObject = {};
|
|
48
|
+
for (const [key, value] of Object.entries(mapContents)) {
|
|
49
|
+
contentsObject[key] = getTextContent(value) || getImageSrc(value);
|
|
50
|
+
}
|
|
51
|
+
setContents(contentsObject);
|
|
52
|
+
}
|
|
53
|
+
}, [textContents, imageContents, currentLocale]);
|
|
54
|
+
(0, react_1.useEffect)(() => {
|
|
55
|
+
const getResponseContents = async () => {
|
|
56
|
+
const url = `${apiUrl}/v1/bot_flows/${botId}/versions/${version}/webviews/${webviewId}/?provider_id=${providerId}`;
|
|
57
|
+
try {
|
|
58
|
+
const response = await axios_1.default.get(url);
|
|
59
|
+
const textResponseContents = response.data.filter(webviewContent => webviewContent.type === types_2.WebviewContentType.TEXT);
|
|
60
|
+
setTextContents(textResponseContents);
|
|
61
|
+
const imageResponseContents = response.data.filter(webviewContent => webviewContent.type === types_2.WebviewContentType.IMAGE);
|
|
62
|
+
setImageContents(imageResponseContents);
|
|
63
|
+
updateCurrentLocale(textResponseContents);
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
console.error('Error fetching webview contents:', error);
|
|
67
|
+
setError(true);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
getResponseContents();
|
|
71
|
+
}, []);
|
|
72
|
+
return {
|
|
73
|
+
isLoading: Object.keys(contents).length === 0,
|
|
74
|
+
error,
|
|
75
|
+
webviewContentsContext: {
|
|
76
|
+
getTextContent,
|
|
77
|
+
getImageSrc,
|
|
78
|
+
setCurrentLocale,
|
|
79
|
+
contents,
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=use-webview-contents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-webview-contents.js","sourceRoot":"","sources":["../../../src/webview/use-webview-contents.ts"],"names":[],"mappings":";;AAeA,gDAwGC;;AAvHD,0DAAyB;AACzB,iCAA2C;AAE3C,4CAAwD;AACxD,oCAAiD;AACjD,mCAQgB;AAEhB,SAAgB,kBAAkB,CAA4B,EAC5D,MAAM,GAAG,qCAAyB,EAClC,OAAO,GAAG,8BAAsB,CAAC,MAAM,EACvC,KAAK,EACL,SAAS,EACT,UAAU,EACV,MAAM,EACN,WAAW,GACgB;IAC3B,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,GAAwB,CAAA;IACxE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,gBAAQ,GAAyB,CAAA;IAC3E,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EACtC,EAA6B,CAC9B,CAAA;IACD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,gBAAQ,EAAC,MAAM,CAAC,CAAA;IAC1D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IAEzC,MAAM,mBAAmB,GAAG,CAAC,YAAmC,EAAE,EAAE;QAClE,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAA;YAC5D,OAAM;QACR,CAAC;QAED,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACrE,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAE5C,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YACpC,gBAAgB,CAAC,aAAa,CAAC,CAAA;YAC/B,OAAM;QACR,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,gBAAgB,CAAC,QAAQ,CAAC,CAAA;YAC1B,OAAM;QACR,CAAC;QAED,OAAO,CAAC,KAAK,CACX,WAAW,aAAa,6BAA6B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC1E,CAAA;IACH,CAAC,CAAA;IAED,MAAM,cAAc,GAAG,CAAC,SAAiB,EAAU,EAAE;QACnD,OAAO,CACL,YAAY;YACV,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS,CAAC;YACrD,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,EAAE,OAAO;YACrE,EAAE,CACH,CAAA;IACH,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,CAAC,SAAiB,EAAU,EAAE;QAChD,OAAO,CACL,aAAa;YACX,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,KAAK,SAAS,CAAC;YACvD,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,aAAa,CAAC,EAAE,IAAI;YACrE,EAAE,CACH,CAAA;IACH,CAAC,CAAA;IAED,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,YAAY,IAAI,aAAa,EAAE,CAAC;YAClC,MAAM,cAAc,GAAG,EAAE,CAAA;YACzB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAS,WAAW,CAAC,EAAE,CAAC;gBAC/D,cAAc,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,CAAA;YACnE,CAAC;YACD,WAAW,CAAC,cAAyC,CAAC,CAAA;QACxD,CAAC;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAA;IAEhD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,mBAAmB,GAAG,KAAK,IAAI,EAAE;YACrC,MAAM,GAAG,GAAG,GAAG,MAAM,iBAAiB,KAAK,aAAa,OAAO,aAAa,SAAS,iBAAiB,UAAU,EAAE,CAAA;YAClH,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAA0B,GAAG,CAAC,CAAA;gBAE9D,MAAM,oBAAoB,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAC/C,cAAc,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,KAAK,0BAAkB,CAAC,IAAI,CAC1C,CAAA;gBACzB,eAAe,CAAC,oBAAoB,CAAC,CAAA;gBAErC,MAAM,qBAAqB,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAChD,cAAc,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,KAAK,0BAAkB,CAAC,KAAK,CAC1C,CAAA;gBAC1B,gBAAgB,CAAC,qBAAqB,CAAC,CAAA;gBAEvC,mBAAmB,CAAC,oBAAoB,CAAC,CAAA;YAC3C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAA;gBACxD,QAAQ,CAAC,IAAI,CAAC,CAAA;YAChB,CAAC;QACH,CAAC,CAAA;QACD,mBAAmB,EAAE,CAAA;IACvB,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO;QACL,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC;QAC7C,KAAK;QACL,sBAAsB,EAAE;YACtB,cAAc;YACd,WAAW;YACX,gBAAgB;YAChB,QAAQ;SACT;KACF,CAAA;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,22 +1,21 @@
|
|
|
1
1
|
{
|
|
2
|
-
"type": "module",
|
|
3
2
|
"name": "@botonic/plugin-flow-builder",
|
|
4
|
-
"version": "0.58.0-alpha
|
|
5
|
-
"main": "./lib/index.js",
|
|
6
|
-
"module": "./lib/index.js",
|
|
3
|
+
"version": "0.58.0-alpha.1",
|
|
4
|
+
"main": "./lib/cjs/index.js",
|
|
5
|
+
"module": "./lib/esm/index.js",
|
|
7
6
|
"description": "Use Flow Builder to show your contents",
|
|
8
7
|
"scripts": {
|
|
9
|
-
"build": "
|
|
10
|
-
"build:watch": "
|
|
11
|
-
"test": "
|
|
8
|
+
"build": "rm -rf lib && ../../node_modules/.bin/tsc -p tsconfig.json && ../../node_modules/.bin/tsc -p tsconfig.esm.json",
|
|
9
|
+
"build:watch": "npm run build -- --watch",
|
|
10
|
+
"test": "../../node_modules/.bin/jest --coverage",
|
|
12
11
|
"cloc": "../../scripts/qa/cloc-package.sh .",
|
|
13
|
-
"prepublishOnly": "
|
|
12
|
+
"prepublishOnly": "rm -rf lib && npm i && npm run build",
|
|
14
13
|
"lint": "biome check --write src/ tests/",
|
|
15
14
|
"lint:check": "biome check src/ tests/",
|
|
16
15
|
"format": "biome format --write src/ tests/"
|
|
17
16
|
},
|
|
18
17
|
"dependencies": {
|
|
19
|
-
"@botonic/react": "0.58.0-alpha
|
|
18
|
+
"@botonic/react": "0.58.0-alpha.1",
|
|
20
19
|
"axios": "^1.18.1",
|
|
21
20
|
"uuid": "^10.0.0"
|
|
22
21
|
},
|
|
@@ -47,6 +46,5 @@
|
|
|
47
46
|
],
|
|
48
47
|
"devDependencies": {
|
|
49
48
|
"@types/uuid": "^10.0.0"
|
|
50
|
-
}
|
|
51
|
-
"types": "./lib/index.d.ts"
|
|
49
|
+
}
|
|
52
50
|
}
|
|
@@ -16,10 +16,19 @@ import type {
|
|
|
16
16
|
HtContactReasonsNode,
|
|
17
17
|
} from './hubtype-fields/contact-reasons-conditional'
|
|
18
18
|
|
|
19
|
+
enum ConditionalResult {
|
|
20
|
+
AnyContactReason = 'any_contact_reason',
|
|
21
|
+
NoContactReason = 'no_contact_reason',
|
|
22
|
+
Default = 'default',
|
|
23
|
+
}
|
|
24
|
+
|
|
19
25
|
export class FlowContactReasonsConditional extends ContentFieldsBase {
|
|
20
26
|
public contactReasons: HtContactReasonBranch[] = []
|
|
21
27
|
public conditionalResult: string = ''
|
|
22
|
-
public defaultTarget
|
|
28
|
+
public defaultTarget?: HtNodeLink
|
|
29
|
+
public splitDefault = false
|
|
30
|
+
public anyContactReasonTarget?: HtNodeLink
|
|
31
|
+
public noContactReasonTarget?: HtNodeLink
|
|
23
32
|
|
|
24
33
|
static fromHubtypeCMS(
|
|
25
34
|
component: HtContactReasonsNode,
|
|
@@ -32,6 +41,12 @@ export class FlowContactReasonsConditional extends ContentFieldsBase {
|
|
|
32
41
|
component.content.contact_reasons
|
|
33
42
|
newContactReasonsConditional.defaultTarget =
|
|
34
43
|
component.content.default_target
|
|
44
|
+
newContactReasonsConditional.splitDefault =
|
|
45
|
+
component.content.split_default ?? false
|
|
46
|
+
newContactReasonsConditional.anyContactReasonTarget =
|
|
47
|
+
component.content.any_contact_reason_target
|
|
48
|
+
newContactReasonsConditional.noContactReasonTarget =
|
|
49
|
+
component.content.no_contact_reason_target
|
|
35
50
|
newContactReasonsConditional.setFollowUp(botContext)
|
|
36
51
|
return newContactReasonsConditional
|
|
37
52
|
}
|
|
@@ -40,7 +55,7 @@ export class FlowContactReasonsConditional extends ContentFieldsBase {
|
|
|
40
55
|
const sessionContactReasons =
|
|
41
56
|
botContext.session._hubtype_case_contact_reasons
|
|
42
57
|
|
|
43
|
-
const matchingBranch = sessionContactReasons
|
|
58
|
+
const matchingBranch = sessionContactReasons?.length
|
|
44
59
|
? findMatchingContactReasonBranch(
|
|
45
60
|
sessionContactReasons,
|
|
46
61
|
this.contactReasons
|
|
@@ -50,10 +65,24 @@ export class FlowContactReasonsConditional extends ContentFieldsBase {
|
|
|
50
65
|
if (matchingBranch) {
|
|
51
66
|
this.conditionalResult = matchingBranch.name
|
|
52
67
|
this.followUp = matchingBranch.target
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
68
|
+
return
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
if (this.splitDefault) {
|
|
72
|
+
const hasSessionContactReasons = (sessionContactReasons?.length ?? 0) > 0
|
|
73
|
+
if (hasSessionContactReasons) {
|
|
74
|
+
this.conditionalResult = ConditionalResult.AnyContactReason
|
|
75
|
+
this.followUp = this.anyContactReasonTarget
|
|
76
|
+
return
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
this.conditionalResult = ConditionalResult.NoContactReason
|
|
80
|
+
this.followUp = this.noContactReasonTarget
|
|
81
|
+
return
|
|
56
82
|
}
|
|
83
|
+
|
|
84
|
+
this.conditionalResult = ConditionalResult.Default
|
|
85
|
+
this.followUp = this.defaultTarget
|
|
57
86
|
}
|
|
58
87
|
|
|
59
88
|
async trackFlow(botContext: BotContext): Promise<void> {
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import {
|
|
2
|
+
type BotContext,
|
|
3
|
+
EventAction,
|
|
4
|
+
type EventUpdateVariables,
|
|
5
|
+
type Session,
|
|
6
|
+
} from '@botonic/core'
|
|
7
|
+
|
|
8
|
+
import { FLOW_BUILDER_API_URL_PROD } from '../constants'
|
|
9
|
+
import { ContactInfoFieldsClient } from '../services/contact-info-fields-api'
|
|
10
|
+
import {
|
|
11
|
+
getCommonFlowContentEventArgsForContentId,
|
|
12
|
+
trackEvent,
|
|
13
|
+
} from '../tracking'
|
|
14
|
+
import { getFlowBuilderPlugin } from '../utils/get-flow-builder-plugin'
|
|
15
|
+
import { ContentFieldsBase } from './content-fields-base'
|
|
16
|
+
import type { HtUpdateVariablesNode } from './hubtype-fields/update-variables'
|
|
17
|
+
|
|
18
|
+
const SESSION_CONTACT_INFO_PREFIX = 'session.user.contact_info.'
|
|
19
|
+
|
|
20
|
+
export class FlowUpdateVariables extends ContentFieldsBase {
|
|
21
|
+
public setVariables: Record<string, string | number | boolean> = {}
|
|
22
|
+
public unsetVariables: string[] = []
|
|
23
|
+
|
|
24
|
+
static async fromHubtypeCMS(
|
|
25
|
+
cmsUpdateVariables: HtUpdateVariablesNode,
|
|
26
|
+
botContext: BotContext
|
|
27
|
+
): Promise<FlowUpdateVariables> {
|
|
28
|
+
const newUpdateVariables = new FlowUpdateVariables(cmsUpdateVariables.id)
|
|
29
|
+
newUpdateVariables.setVariables = cmsUpdateVariables.content.set_variables
|
|
30
|
+
newUpdateVariables.unsetVariables =
|
|
31
|
+
cmsUpdateVariables.content.unset_variables
|
|
32
|
+
await newUpdateVariables.applyVariablesAndSyncContactInfo(botContext)
|
|
33
|
+
return newUpdateVariables
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
private async applyVariablesAndSyncContactInfo(
|
|
37
|
+
botContext: BotContext
|
|
38
|
+
): Promise<void> {
|
|
39
|
+
const contactInfoUpdates: {
|
|
40
|
+
fieldName: string
|
|
41
|
+
value: string | number | boolean | undefined
|
|
42
|
+
}[] = []
|
|
43
|
+
|
|
44
|
+
for (const [keyPath, value] of Object.entries(this.setVariables)) {
|
|
45
|
+
const fieldName = this.getContactInfoFieldName(keyPath)
|
|
46
|
+
if (fieldName) {
|
|
47
|
+
this.updateSessionContactInfoField(botContext, fieldName, value)
|
|
48
|
+
contactInfoUpdates.push({ fieldName, value })
|
|
49
|
+
} else {
|
|
50
|
+
this.setSessionValueFromKeyPath(botContext, keyPath, value)
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
for (const keyPath of this.unsetVariables) {
|
|
55
|
+
const fieldName = this.getContactInfoFieldName(keyPath)
|
|
56
|
+
if (fieldName) {
|
|
57
|
+
this.updateSessionContactInfoField(botContext, fieldName, undefined)
|
|
58
|
+
contactInfoUpdates.push({ fieldName, value: undefined })
|
|
59
|
+
} else {
|
|
60
|
+
this.setSessionValueFromKeyPath(botContext, keyPath, undefined)
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if (contactInfoUpdates.length === 0) {
|
|
65
|
+
return
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const hubtypeApiUrl =
|
|
69
|
+
botContext.session._hubtype_api || FLOW_BUILDER_API_URL_PROD
|
|
70
|
+
const flowBuilderPlugin = getFlowBuilderPlugin(botContext.plugins)
|
|
71
|
+
const accessToken = flowBuilderPlugin.getAccessToken(botContext.session)
|
|
72
|
+
const chatId = botContext.session.user.id
|
|
73
|
+
|
|
74
|
+
const contactInfoFieldsClient = new ContactInfoFieldsClient(
|
|
75
|
+
hubtypeApiUrl,
|
|
76
|
+
accessToken
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
await Promise.all(
|
|
80
|
+
contactInfoUpdates.map(({ fieldName, value }) => {
|
|
81
|
+
if (value === undefined) {
|
|
82
|
+
return contactInfoFieldsClient.delete(chatId, fieldName)
|
|
83
|
+
}
|
|
84
|
+
return contactInfoFieldsClient.update(chatId, fieldName, value)
|
|
85
|
+
})
|
|
86
|
+
)
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
private setSessionValueFromKeyPath(
|
|
90
|
+
botContext: BotContext,
|
|
91
|
+
keyPath: string,
|
|
92
|
+
value: string | number | boolean | undefined
|
|
93
|
+
): void {
|
|
94
|
+
const keys = keyPath.split('.')
|
|
95
|
+
if (keys.shift() !== 'session') {
|
|
96
|
+
return
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
const lastKey = keys.pop()
|
|
100
|
+
if (!lastKey) {
|
|
101
|
+
return
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
let current: Session = botContext.session
|
|
105
|
+
for (const key of keys) {
|
|
106
|
+
if (current[key] === undefined || current[key] === null) {
|
|
107
|
+
current[key] = {}
|
|
108
|
+
}
|
|
109
|
+
current = current[key]
|
|
110
|
+
}
|
|
111
|
+
current[lastKey] = value
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
private getContactInfoFieldName(keyPath: string): string | undefined {
|
|
115
|
+
if (!keyPath.startsWith(SESSION_CONTACT_INFO_PREFIX)) {
|
|
116
|
+
return undefined
|
|
117
|
+
}
|
|
118
|
+
const fieldName = keyPath.slice(SESSION_CONTACT_INFO_PREFIX.length)
|
|
119
|
+
return fieldName || undefined
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
private updateSessionContactInfoField(
|
|
123
|
+
botContext: BotContext,
|
|
124
|
+
fieldName: string,
|
|
125
|
+
value: string | number | boolean | undefined
|
|
126
|
+
): void {
|
|
127
|
+
if (!botContext.session.user.contact_info) {
|
|
128
|
+
botContext.session.user.contact_info = []
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
const contactInfo = botContext.session.user.contact_info
|
|
132
|
+
const index = contactInfo.findIndex(field => field.name === fieldName)
|
|
133
|
+
|
|
134
|
+
if (value === undefined) {
|
|
135
|
+
if (index >= 0) {
|
|
136
|
+
contactInfo.splice(index, 1)
|
|
137
|
+
}
|
|
138
|
+
return
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
const stringValue = String(value)
|
|
142
|
+
const valueType = typeof value
|
|
143
|
+
|
|
144
|
+
if (index >= 0) {
|
|
145
|
+
contactInfo[index].value = stringValue
|
|
146
|
+
contactInfo[index].type = valueType
|
|
147
|
+
return
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
contactInfo.push({
|
|
151
|
+
name: fieldName,
|
|
152
|
+
type: valueType,
|
|
153
|
+
value: stringValue,
|
|
154
|
+
})
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
async trackFlow(botContext: BotContext): Promise<void> {
|
|
158
|
+
const { flowThreadId, flowId, flowName, flowNodeId, flowNodeContentId } =
|
|
159
|
+
getCommonFlowContentEventArgsForContentId(botContext, this.id)
|
|
160
|
+
const eventUpdateVariables: EventUpdateVariables = {
|
|
161
|
+
action: EventAction.UpdateVariables,
|
|
162
|
+
flowThreadId,
|
|
163
|
+
flowId,
|
|
164
|
+
flowName,
|
|
165
|
+
flowNodeId,
|
|
166
|
+
flowNodeContentId,
|
|
167
|
+
flowNodeIsMeaningful: false,
|
|
168
|
+
setVariables: this.setVariables,
|
|
169
|
+
unsetVariables: this.unsetVariables,
|
|
170
|
+
}
|
|
171
|
+
const { action, ...eventArgs } = eventUpdateVariables
|
|
172
|
+
await trackEvent(botContext, action, eventArgs)
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
async processContent(botContext: BotContext): Promise<void> {
|
|
176
|
+
await this.trackFlow(botContext)
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
toBotonic() {
|
|
180
|
+
return <></>
|
|
181
|
+
}
|
|
182
|
+
}
|
|
@@ -13,6 +13,9 @@ export interface HtContactReasonsNode extends HtBaseNode {
|
|
|
13
13
|
type: HtNodeWithContentType.CONTACT_REASONS_CONDITION
|
|
14
14
|
content: {
|
|
15
15
|
contact_reasons: HtContactReasonBranch[]
|
|
16
|
-
|
|
16
|
+
split_default?: boolean
|
|
17
|
+
default_target?: HtNodeLink
|
|
18
|
+
any_contact_reason_target?: HtNodeLink
|
|
19
|
+
no_contact_reason_target?: HtNodeLink
|
|
17
20
|
}
|
|
18
21
|
}
|
|
@@ -20,6 +20,7 @@ import type { HtPayloadNode } from './payload'
|
|
|
20
20
|
import type { HtRatingNode } from './rating'
|
|
21
21
|
import type { HtSmartIntentNode } from './smart-intent'
|
|
22
22
|
import type { HtTextNode } from './text'
|
|
23
|
+
import type { HtUpdateVariablesNode } from './update-variables'
|
|
23
24
|
import type { HtUrlNode } from './url'
|
|
24
25
|
import type { HtVideoNode } from './video'
|
|
25
26
|
import type { HtWebviewNode } from './webview'
|
|
@@ -52,6 +53,7 @@ export type HtNodeWithContent =
|
|
|
52
53
|
| HtCustomConditionalV2Node
|
|
53
54
|
| HtDoNothingNode
|
|
54
55
|
| HtContactReasonsNode
|
|
56
|
+
| HtUpdateVariablesNode
|
|
55
57
|
// | HtChannelConditionalNode
|
|
56
58
|
// | HtCountryConditionalNode
|
|
57
59
|
// | HtCustomConditionalNode
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { HtBaseNode } from './common'
|
|
2
|
+
import type { HtNodeWithContentType } from './node-types'
|
|
3
|
+
|
|
4
|
+
export interface HtUpdateVariablesNode extends HtBaseNode {
|
|
5
|
+
type: HtNodeWithContentType.UPDATE_VARIABLES
|
|
6
|
+
content: {
|
|
7
|
+
set_variables: Record<string, string | number | boolean>
|
|
8
|
+
unset_variables: string[]
|
|
9
|
+
}
|
|
10
|
+
}
|
|
@@ -15,6 +15,7 @@ import { FlowImage } from './flow-image'
|
|
|
15
15
|
import { FlowQueueStatusConditional } from './flow-queue-status-conditional'
|
|
16
16
|
import { FlowRating } from './flow-rating'
|
|
17
17
|
import { FlowText } from './flow-text'
|
|
18
|
+
import { FlowUpdateVariables } from './flow-update-variables'
|
|
18
19
|
import { FlowVideo } from './flow-video'
|
|
19
20
|
import { FlowWhatsappCtaUrlButtonNode } from './flow-whatsapp-cta-url-button'
|
|
20
21
|
import { FlowWhatsappRequestContactInfoNode } from './flow-whatsapp-request-contact-info'
|
|
@@ -46,6 +47,7 @@ export {
|
|
|
46
47
|
FlowQueueStatusConditional,
|
|
47
48
|
FlowRating,
|
|
48
49
|
FlowText,
|
|
50
|
+
FlowUpdateVariables,
|
|
49
51
|
FlowVideo,
|
|
50
52
|
FlowWhatsappButtonList,
|
|
51
53
|
FlowWhatsappButtonListRow,
|
|
@@ -77,4 +79,5 @@ export type FlowContent =
|
|
|
77
79
|
| FlowAiAgentRouter
|
|
78
80
|
| FlowCustomConditionalV2
|
|
79
81
|
| FlowDoNothing
|
|
82
|
+
| FlowUpdateVariables
|
|
80
83
|
| FlowContactReasonsConditional
|
package/src/flow-factory.ts
CHANGED
|
@@ -19,6 +19,7 @@ import {
|
|
|
19
19
|
FlowQueueStatusConditional,
|
|
20
20
|
FlowRating,
|
|
21
21
|
FlowText,
|
|
22
|
+
FlowUpdateVariables,
|
|
22
23
|
FlowVideo,
|
|
23
24
|
FlowWhatsappButtonList,
|
|
24
25
|
FlowWhatsappCtaUrlButtonNode,
|
|
@@ -123,6 +124,12 @@ export class FlowFactory {
|
|
|
123
124
|
case HtNodeWithContentType.DO_NOTHING:
|
|
124
125
|
return FlowDoNothing.fromHubtypeCMS(hubtypeContent)
|
|
125
126
|
|
|
127
|
+
case HtNodeWithContentType.UPDATE_VARIABLES:
|
|
128
|
+
return FlowUpdateVariables.fromHubtypeCMS(
|
|
129
|
+
hubtypeContent,
|
|
130
|
+
this.botContext
|
|
131
|
+
)
|
|
132
|
+
|
|
126
133
|
case HtNodeWithContentType.CONTACT_REASONS_CONDITION:
|
|
127
134
|
return FlowContactReasonsConditional.fromHubtypeCMS(
|
|
128
135
|
hubtypeContent,
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import axios from 'axios'
|
|
2
|
+
|
|
3
|
+
export class ContactInfoFieldsClient {
|
|
4
|
+
constructor(
|
|
5
|
+
private readonly hubtypeApiUrl: string,
|
|
6
|
+
private readonly accessToken: string
|
|
7
|
+
) {}
|
|
8
|
+
|
|
9
|
+
async update(
|
|
10
|
+
chatId: string,
|
|
11
|
+
fieldName: string,
|
|
12
|
+
value: string | number | boolean
|
|
13
|
+
): Promise<void> {
|
|
14
|
+
await axios.put(
|
|
15
|
+
`${this.hubtypeApiUrl}/external/v1/chats/${chatId}/contact_info_fields/${encodeURIComponent(fieldName)}/`,
|
|
16
|
+
{ value },
|
|
17
|
+
{
|
|
18
|
+
headers: {
|
|
19
|
+
'Content-Type': 'application/json',
|
|
20
|
+
Authorization: `Bearer ${this.accessToken}`,
|
|
21
|
+
},
|
|
22
|
+
}
|
|
23
|
+
)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
async delete(chatId: string, fieldName: string): Promise<void> {
|
|
27
|
+
await axios.delete(
|
|
28
|
+
`${this.hubtypeApiUrl}/external/v1/chats/${chatId}/contact_info_fields/${encodeURIComponent(fieldName)}/`,
|
|
29
|
+
{
|
|
30
|
+
headers: {
|
|
31
|
+
Authorization: `Bearer ${this.accessToken}`,
|
|
32
|
+
},
|
|
33
|
+
}
|
|
34
|
+
)
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { NluType } from "@botonic/core";
|
|
2
|
-
import { splitAiAgentContents } from "../utils/ai-agent.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
async function getContentsByAiAgentFromUserInput({ cmsApi, flowBuilderPlugin, request }) {
|
|
9
|
-
const startNodeAiAgentFlow = cmsApi.getStartNodeAiAgentFlow();
|
|
10
|
-
const isAiAgentEnabled = cmsApi.isAiAgentEnabled();
|
|
11
|
-
if (!startNodeAiAgentFlow || !isAiAgentEnabled) {
|
|
12
|
-
return [];
|
|
13
|
-
}
|
|
14
|
-
const contents = await flowBuilderPlugin.getContentsByNode(startNodeAiAgentFlow);
|
|
15
|
-
const splitContents = splitAiAgentContents(contents);
|
|
16
|
-
if (!splitContents) {
|
|
17
|
-
return [];
|
|
18
|
-
}
|
|
19
|
-
if ('aiAgentRouterContent' in splitContents) {
|
|
20
|
-
const { aiAgentRouterContent, contentsBeforeAiAgentRouter } = splitContents;
|
|
21
|
-
const aiAgentResponse = await aiAgentRouterContent.resolveAIAgentResponse(request, contentsBeforeAiAgentRouter);
|
|
22
|
-
if (!aiAgentResponse || aiAgentResponse.exit) {
|
|
23
|
-
return [];
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
if ('aiAgentWorkerContent' in splitContents) {
|
|
27
|
-
const { aiAgentWorkerContent, contentsBeforeAiAgentWorker } = splitContents;
|
|
28
|
-
const aiAgentResponse = await aiAgentWorkerContent.resolveAIAgentResponse(request, contentsBeforeAiAgentWorker);
|
|
29
|
-
if (!aiAgentResponse || aiAgentResponse.exit) {
|
|
30
|
-
return [];
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
request.input.nluResolution = {
|
|
34
|
-
type: NluType.AiAgent,
|
|
35
|
-
matchedValue: 'ai-agent-from-user-input',
|
|
36
|
-
payload: undefined
|
|
37
|
-
};
|
|
38
|
-
return contents;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export { getContentsByAiAgentFromUserInput };
|
|
42
|
-
|
|
43
|
-
//# 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 { NluType } from '@botonic/core'\nimport 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 request.input.nluResolution = {\n type: NluType.AiAgent,\n matchedValue: 'ai-agent-from-user-input',\n payload: undefined,\n }\n\n return contents\n}\n"],"names":["NluType","splitAiAgentContents","getContentsByAiAgentFromUserInput","cmsApi","flowBuilderPlugin","request","startNodeAiAgentFlow","isAiAgentEnabled","contents","splitContents","aiAgentRouterContent","contentsBeforeAiAgentRouter","aiAgentResponse","aiAgentWorkerContent","contentsBeforeAiAgentWorker","undefined"],"mappings":";;;;;AAAuC;AAEiB;AAGjD,eAAeE,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;IAEAP,QAAQ,KAAK,CAAC,aAAa,GAAG;QAC5B,MAAML,eAAe;QACrB,cAAc;QACd,SAASe;IACX;IAEA,OAAOP;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"}
|