🚸 (share) Use custom domain host when possible in embed instruction
Closes #464
This commit is contained in:
@@ -2,6 +2,7 @@ import { CodeEditor } from '@/components/inputs/CodeEditor'
|
||||
import { TextLink } from '@/components/TextLink'
|
||||
import { useEditor } from '@/features/editor/providers/EditorProvider'
|
||||
import { useTypebot } from '@/features/editor/providers/TypebotProvider'
|
||||
import { parseApiHost } from '@/features/publish/components/embeds/snippetParsers'
|
||||
import {
|
||||
Code,
|
||||
ListItem,
|
||||
@@ -10,7 +11,6 @@ import {
|
||||
StackProps,
|
||||
Text,
|
||||
} from '@chakra-ui/react'
|
||||
import { env, getViewerUrl } from '@typebot.io/lib'
|
||||
|
||||
export const ApiPreviewInstructions = (props: StackProps) => {
|
||||
const { typebot } = useTypebot()
|
||||
@@ -60,9 +60,9 @@ export const ApiPreviewInstructions = (props: StackProps) => {
|
||||
<CodeEditor
|
||||
isReadOnly
|
||||
lang={'shell'}
|
||||
value={`${
|
||||
env('VIEWER_INTERNAL_URL') ?? getViewerUrl()
|
||||
}/api/v1/sendMessage`}
|
||||
value={`${parseApiHost(
|
||||
typebot?.customDomain
|
||||
)}/api/v1/sendMessage`}
|
||||
/>
|
||||
<Text>with the following JSON body:</Text>
|
||||
<CodeEditor isReadOnly lang={'json'} value={startParamsBody} />
|
||||
@@ -80,9 +80,9 @@ export const ApiPreviewInstructions = (props: StackProps) => {
|
||||
<CodeEditor
|
||||
isReadOnly
|
||||
lang={'shell'}
|
||||
value={`${
|
||||
env('VIEWER_INTERNAL_URL') ?? getViewerUrl()
|
||||
}/api/v1/sendMessage`}
|
||||
value={`${parseApiHost(
|
||||
typebot?.customDomain
|
||||
)}/api/v1/sendMessage`}
|
||||
/>
|
||||
<Text>With the following JSON body:</Text>
|
||||
<CodeEditor isReadOnly lang={'json'} value={replyBody} />
|
||||
|
||||
@@ -16,8 +16,9 @@ import {
|
||||
Text,
|
||||
Stack,
|
||||
} from '@chakra-ui/react'
|
||||
import { env, getViewerUrl } from '@typebot.io/lib'
|
||||
import { ModalProps } from '../EmbedButton'
|
||||
import { parseApiHost } from '../snippetParsers/shared'
|
||||
import { useTypebot } from '@/features/editor/providers/TypebotProvider'
|
||||
|
||||
export const ApiModal = ({
|
||||
isPublished,
|
||||
@@ -25,6 +26,7 @@ export const ApiModal = ({
|
||||
isOpen,
|
||||
onClose,
|
||||
}: ModalProps): JSX.Element => {
|
||||
const { typebot } = useTypebot()
|
||||
const startParamsBody = `{
|
||||
"startParams": {
|
||||
"typebot": "${publicId}",
|
||||
@@ -57,9 +59,9 @@ export const ApiModal = ({
|
||||
<CodeEditor
|
||||
isReadOnly
|
||||
lang={'shell'}
|
||||
value={`${
|
||||
env('VIEWER_INTERNAL_URL') ?? getViewerUrl()
|
||||
}/api/v1/sendMessage`}
|
||||
value={`${parseApiHost(
|
||||
typebot?.customDomain
|
||||
)}/api/v1/sendMessage`}
|
||||
/>
|
||||
<Text>with the following JSON body:</Text>
|
||||
<CodeEditor isReadOnly lang={'json'} value={startParamsBody} />
|
||||
@@ -77,9 +79,9 @@ export const ApiModal = ({
|
||||
<CodeEditor
|
||||
isReadOnly
|
||||
lang={'shell'}
|
||||
value={`${
|
||||
env('VIEWER_INTERNAL_URL') ?? getViewerUrl()
|
||||
}/api/v1/sendMessage`}
|
||||
value={`${parseApiHost(
|
||||
typebot?.customDomain
|
||||
)}/api/v1/sendMessage`}
|
||||
/>
|
||||
<Text>With the following JSON body:</Text>
|
||||
<CodeEditor isReadOnly lang={'json'} value={replyBody} />
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
import prettier from 'prettier/standalone'
|
||||
import parserHtml from 'prettier/parser-html'
|
||||
import { parseInitBubbleCode, typebotImportCode } from '../../snippetParsers'
|
||||
import {
|
||||
parseApiHost,
|
||||
parseInitBubbleCode,
|
||||
typebotImportCode,
|
||||
} from '../../snippetParsers'
|
||||
import { useTypebot } from '@/features/editor/providers/TypebotProvider'
|
||||
import { CodeEditor } from '@/components/inputs/CodeEditor'
|
||||
import { BubbleProps } from '@typebot.io/js'
|
||||
import { env, getViewerUrl } from '@typebot.io/lib'
|
||||
import { isCloudProdInstance } from '@/helpers/isCloudProdInstance'
|
||||
|
||||
type Props = Pick<BubbleProps, 'theme' | 'previewMessage'>
|
||||
|
||||
@@ -17,9 +19,7 @@ export const JavascriptBubbleSnippet = ({ theme, previewMessage }: Props) => {
|
||||
|
||||
${parseInitBubbleCode({
|
||||
typebot: typebot?.publicId ?? '',
|
||||
apiHost: isCloudProdInstance
|
||||
? undefined
|
||||
: env('VIEWER_INTERNAL_URL') ?? getViewerUrl(),
|
||||
apiHost: parseApiHost(typebot?.customDomain),
|
||||
theme: {
|
||||
...theme,
|
||||
chatWindow: {
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
import { useTypebot } from '@/features/editor/providers/TypebotProvider'
|
||||
import parserHtml from 'prettier/parser-html'
|
||||
import prettier from 'prettier/standalone'
|
||||
import { parseInitPopupCode, typebotImportCode } from '../../snippetParsers'
|
||||
import {
|
||||
parseApiHost,
|
||||
parseInitPopupCode,
|
||||
typebotImportCode,
|
||||
} from '../../snippetParsers'
|
||||
import { CodeEditor } from '@/components/inputs/CodeEditor'
|
||||
import { PopupProps } from '@typebot.io/js'
|
||||
import { env, getViewerUrl } from '@typebot.io/lib'
|
||||
import { isCloudProdInstance } from '@/helpers/isCloudProdInstance'
|
||||
|
||||
type Props = Pick<PopupProps, 'autoShowDelay'>
|
||||
|
||||
@@ -14,9 +16,7 @@ export const JavascriptPopupSnippet = ({ autoShowDelay }: Props) => {
|
||||
const snippet = prettier.format(
|
||||
createSnippet({
|
||||
typebot: typebot?.publicId ?? '',
|
||||
apiHost: isCloudProdInstance
|
||||
? undefined
|
||||
: env('VIEWER_INTERNAL_URL') ?? getViewerUrl(),
|
||||
apiHost: parseApiHost(typebot?.customDomain),
|
||||
autoShowDelay,
|
||||
}),
|
||||
{
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
import parserHtml from 'prettier/parser-html'
|
||||
import prettier from 'prettier/standalone'
|
||||
import { parseInitStandardCode, typebotImportCode } from '../../snippetParsers'
|
||||
import {
|
||||
parseApiHost,
|
||||
parseInitStandardCode,
|
||||
typebotImportCode,
|
||||
} from '../../snippetParsers'
|
||||
import { useTypebot } from '@/features/editor/providers/TypebotProvider'
|
||||
import { CodeEditor } from '@/components/inputs/CodeEditor'
|
||||
import { env, getViewerUrl } from '@typebot.io/lib'
|
||||
import { isCloudProdInstance } from '@/helpers/isCloudProdInstance'
|
||||
|
||||
type Props = {
|
||||
widthLabel?: string
|
||||
@@ -18,7 +20,7 @@ export const JavascriptStandardSnippet = ({
|
||||
const { typebot } = useTypebot()
|
||||
|
||||
const snippet = prettier.format(
|
||||
`${parseStandardHeadCode(typebot?.publicId)}
|
||||
`${parseStandardHeadCode(typebot?.publicId, typebot?.customDomain)}
|
||||
${parseStandardElementCode(widthLabel, heightLabel)}`,
|
||||
{
|
||||
parser: 'html',
|
||||
@@ -29,15 +31,16 @@ export const JavascriptStandardSnippet = ({
|
||||
return <CodeEditor value={snippet} lang="html" isReadOnly />
|
||||
}
|
||||
|
||||
export const parseStandardHeadCode = (publicId?: string | null) =>
|
||||
export const parseStandardHeadCode = (
|
||||
publicId?: string | null,
|
||||
customDomain?: string | null
|
||||
) =>
|
||||
prettier.format(
|
||||
`<script type="module">${typebotImportCode};
|
||||
|
||||
${parseInitStandardCode({
|
||||
typebot: publicId ?? '',
|
||||
apiHost: isCloudProdInstance
|
||||
? undefined
|
||||
: env('VIEWER_INTERNAL_URL') ?? getViewerUrl(),
|
||||
apiHost: parseApiHost(customDomain),
|
||||
})}</script>`,
|
||||
{ parser: 'html', plugins: [parserHtml] }
|
||||
)
|
||||
|
||||
@@ -4,14 +4,13 @@ import { Stack, Text } from '@chakra-ui/react'
|
||||
import { BubbleProps } from '@typebot.io/js'
|
||||
import { Typebot } from '@typebot.io/schemas'
|
||||
import { useState } from 'react'
|
||||
import { env, getViewerUrl } from '@typebot.io/lib'
|
||||
import { BubbleSettings } from '../../../settings/BubbleSettings/BubbleSettings'
|
||||
import {
|
||||
parseInlineScript,
|
||||
parseInitBubbleCode,
|
||||
typebotImportCode,
|
||||
parseApiHost,
|
||||
} from '../../../snippetParsers'
|
||||
import { isCloudProdInstance } from '@/helpers/isCloudProdInstance'
|
||||
|
||||
export const parseDefaultBubbleTheme = (typebot?: Typebot) => ({
|
||||
button: {
|
||||
@@ -37,9 +36,7 @@ export const ScriptBubbleInstructions = () => {
|
||||
|
||||
${parseInitBubbleCode({
|
||||
typebot: typebot?.publicId ?? '',
|
||||
apiHost: isCloudProdInstance
|
||||
? undefined
|
||||
: env('VIEWER_INTERNAL_URL') ?? getViewerUrl(),
|
||||
apiHost: parseApiHost(typebot?.customDomain),
|
||||
theme,
|
||||
previewMessage,
|
||||
})}`
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
import { CodeEditor } from '@/components/inputs/CodeEditor'
|
||||
import { useTypebot } from '@/features/editor/providers/TypebotProvider'
|
||||
import { isCloudProdInstance } from '@/helpers/isCloudProdInstance'
|
||||
import { Stack, Text } from '@chakra-ui/react'
|
||||
import { useState } from 'react'
|
||||
import { env, getViewerUrl } from '@typebot.io/lib'
|
||||
import { PopupSettings } from '../../../settings/PopupSettings'
|
||||
import { parseInitPopupCode } from '../../../snippetParsers'
|
||||
import {
|
||||
parseApiHost,
|
||||
parseInlineScript,
|
||||
typebotImportCode,
|
||||
} from '../../../snippetParsers/shared'
|
||||
@@ -20,9 +19,7 @@ export const ScriptPopupInstructions = () => {
|
||||
|
||||
${parseInitPopupCode({
|
||||
typebot: typebot?.publicId ?? '',
|
||||
apiHost: isCloudProdInstance
|
||||
? undefined
|
||||
: env('VIEWER_INTERNAL_URL') ?? getViewerUrl(),
|
||||
apiHost: parseApiHost(typebot?.customDomain),
|
||||
autoShowDelay: inputValue,
|
||||
})}`
|
||||
)
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
import { CodeEditor } from '@/components/inputs/CodeEditor'
|
||||
import { useTypebot } from '@/features/editor/providers/TypebotProvider'
|
||||
import { isCloudProdInstance } from '@/helpers/isCloudProdInstance'
|
||||
import { Stack, Code, Text } from '@chakra-ui/react'
|
||||
import { useState } from 'react'
|
||||
import { env, getViewerUrl } from '@typebot.io/lib'
|
||||
import { StandardSettings } from '../../../settings/StandardSettings'
|
||||
import { parseInitStandardCode } from '../../../snippetParsers/standard'
|
||||
import { parseStandardElementCode } from '../../Javascript/JavascriptStandardSnippet'
|
||||
import {
|
||||
parseApiHost,
|
||||
parseInlineScript,
|
||||
typebotImportCode,
|
||||
} from '../../../snippetParsers/shared'
|
||||
@@ -31,9 +30,7 @@ export const ScriptStandardInstructions = () => {
|
||||
|
||||
${parseInitStandardCode({
|
||||
typebot: typebot?.publicId ?? '',
|
||||
apiHost: isCloudProdInstance
|
||||
? undefined
|
||||
: env('VIEWER_INTERNAL_URL') ?? getViewerUrl(),
|
||||
apiHost: parseApiHost(typebot?.customDomain),
|
||||
})}`)
|
||||
|
||||
return (
|
||||
|
||||
@@ -12,10 +12,8 @@ import {
|
||||
import { BubbleProps } from '@typebot.io/js'
|
||||
import { useState } from 'react'
|
||||
import { BubbleSettings } from '../../../settings/BubbleSettings/BubbleSettings'
|
||||
import { parseInitBubbleCode } from '../../../snippetParsers'
|
||||
import { parseApiHost, parseInitBubbleCode } from '../../../snippetParsers'
|
||||
import { parseDefaultBubbleTheme } from '../../Javascript/instructions/JavascriptBubbleInstructions'
|
||||
import { isCloudProdInstance } from '@/helpers/isCloudProdInstance'
|
||||
import { env, getViewerUrl } from '@typebot.io/lib'
|
||||
|
||||
type Props = {
|
||||
publicId: string
|
||||
@@ -31,9 +29,7 @@ export const WordpressBubbleInstructions = ({ publicId }: Props) => {
|
||||
|
||||
const initCode = parseInitBubbleCode({
|
||||
typebot: publicId,
|
||||
apiHost: isCloudProdInstance
|
||||
? undefined
|
||||
: env('VIEWER_INTERNAL_URL') ?? getViewerUrl(),
|
||||
apiHost: parseApiHost(typebot?.customDomain),
|
||||
theme: {
|
||||
...theme,
|
||||
chatWindow: {
|
||||
|
||||
@@ -11,20 +11,21 @@ import {
|
||||
import { useState } from 'react'
|
||||
import { PopupSettings } from '../../../settings/PopupSettings'
|
||||
import { parseInitPopupCode } from '../../../snippetParsers/popup'
|
||||
import { isCloudProdInstance } from '@/helpers/isCloudProdInstance'
|
||||
import { env, getViewerUrl } from '@typebot.io/lib'
|
||||
import { parseApiHost } from '../../../snippetParsers'
|
||||
|
||||
type Props = {
|
||||
publicId: string
|
||||
customDomain?: string
|
||||
}
|
||||
export const WordpressPopupInstructions = ({ publicId }: Props) => {
|
||||
export const WordpressPopupInstructions = ({
|
||||
publicId,
|
||||
customDomain,
|
||||
}: Props) => {
|
||||
const [autoShowDelay, setAutoShowDelay] = useState<number>()
|
||||
|
||||
const initCode = parseInitPopupCode({
|
||||
typebot: publicId,
|
||||
apiHost: isCloudProdInstance
|
||||
? undefined
|
||||
: env('VIEWER_INTERNAL_URL') ?? getViewerUrl(),
|
||||
apiHost: parseApiHost(customDomain),
|
||||
autoShowDelay,
|
||||
})
|
||||
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
import { BotProps } from '@typebot.io/js'
|
||||
import parserBabel from 'prettier/parser-babel'
|
||||
import prettier from 'prettier/standalone'
|
||||
import { isDefined } from '@typebot.io/lib'
|
||||
import { env, getViewerUrl, isDefined } from '@typebot.io/lib'
|
||||
import { Typebot } from '@typebot.io/schemas'
|
||||
import { isCloudProdInstance } from '@/helpers/isCloudProdInstance'
|
||||
import packageJson from '../../../../../../../../packages/embeds/js/package.json'
|
||||
|
||||
export const parseStringParam = (fieldName: string, fieldValue?: string) =>
|
||||
fieldValue ? `${fieldName}: "${fieldValue}",` : ``
|
||||
@@ -31,7 +34,9 @@ export const parseReactBotProps = ({ typebot, apiHost }: BotProps) => {
|
||||
return `${typebotLine} ${apiHostLine}`
|
||||
}
|
||||
|
||||
export const typebotImportCode = `import Typebot from 'https://cdn.jsdelivr.net/npm/@typebot.io/js@0.0/dist/web.js'`
|
||||
export const typebotImportCode = isCloudProdInstance
|
||||
? `import Typebot from 'https://cdn.jsdelivr.net/npm/@typebot.io/js@0.0/dist/web.js'`
|
||||
: `import Typebot from 'https://cdn.jsdelivr.net/npm/@typebot.io/js@${packageJson.version}/dist/web.js'`
|
||||
|
||||
export const parseInlineScript = (script: string) =>
|
||||
prettier.format(
|
||||
@@ -41,3 +46,12 @@ export const parseInlineScript = (script: string) =>
|
||||
document.body.append(typebotInitScript);`,
|
||||
{ parser: 'babel', plugins: [parserBabel] }
|
||||
)
|
||||
|
||||
export const parseApiHost = (
|
||||
customDomain: Typebot['customDomain'] | undefined
|
||||
) => {
|
||||
if (customDomain) return new URL(`https://${customDomain}`).origin
|
||||
return isCloudProdInstance
|
||||
? undefined
|
||||
: env('VIEWER_INTERNAL_URL') ?? getViewerUrl()
|
||||
}
|
||||
|
||||
@@ -1614,6 +1614,9 @@
|
||||
},
|
||||
"isCode": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"isExecutedOnClient": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
|
||||
@@ -1275,6 +1275,9 @@
|
||||
},
|
||||
"isCode": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"isExecutedOnClient": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
@@ -3820,92 +3823,171 @@
|
||||
{
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"scriptToExecute": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"content": {
|
||||
"type": "string"
|
||||
},
|
||||
"args": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string"
|
||||
},
|
||||
"value": {
|
||||
"anyOf": [
|
||||
{
|
||||
"scriptToExecute": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"content": {
|
||||
"type": "string"
|
||||
},
|
||||
"args": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string"
|
||||
},
|
||||
"value": {
|
||||
"anyOf": [
|
||||
{
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "number"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "number"
|
||||
"type": "boolean"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "boolean"
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"nullable": true
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"nullable": true
|
||||
}
|
||||
],
|
||||
"nullable": true
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"id"
|
||||
],
|
||||
"nullable": true
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"id"
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"content",
|
||||
"args"
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"content",
|
||||
"args"
|
||||
"scriptToExecute"
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"redirect": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"url": {
|
||||
"type": "string"
|
||||
},
|
||||
"isNewTab": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"isNewTab"
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"redirect"
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"scriptToExecute"
|
||||
],
|
||||
"additionalProperties": false
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"redirect": {
|
||||
"chatwoot": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"url": {
|
||||
"type": "string"
|
||||
},
|
||||
"isNewTab": {
|
||||
"type": "boolean"
|
||||
"scriptToExecute": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"content": {
|
||||
"type": "string"
|
||||
},
|
||||
"args": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string"
|
||||
},
|
||||
"value": {
|
||||
"anyOf": [
|
||||
{
|
||||
"anyOf": [
|
||||
{
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "number"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "boolean"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"nullable": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"nullable": true
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"id"
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"content",
|
||||
"args"
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"isNewTab"
|
||||
"scriptToExecute"
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"redirect"
|
||||
"chatwoot"
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
||||
@@ -3914,75 +3996,30 @@
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"chatwoot": {
|
||||
"googleAnalytics": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"scriptToExecute": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"content": {
|
||||
"type": "string"
|
||||
},
|
||||
"args": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string"
|
||||
},
|
||||
"value": {
|
||||
"anyOf": [
|
||||
{
|
||||
"anyOf": [
|
||||
{
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "number"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "boolean"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"nullable": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"nullable": true
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"id"
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"content",
|
||||
"args"
|
||||
],
|
||||
"additionalProperties": false
|
||||
"trackingId": {
|
||||
"type": "string"
|
||||
},
|
||||
"category": {
|
||||
"type": "string"
|
||||
},
|
||||
"action": {
|
||||
"type": "string"
|
||||
},
|
||||
"label": {
|
||||
"type": "string"
|
||||
},
|
||||
"value": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"scriptToExecute"
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"chatwoot"
|
||||
"googleAnalytics"
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
||||
@@ -3991,30 +4028,21 @@
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"googleAnalytics": {
|
||||
"wait": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"trackingId": {
|
||||
"type": "string"
|
||||
},
|
||||
"category": {
|
||||
"type": "string"
|
||||
},
|
||||
"action": {
|
||||
"type": "string"
|
||||
},
|
||||
"label": {
|
||||
"type": "string"
|
||||
},
|
||||
"value": {
|
||||
"secondsToWaitFor": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"secondsToWaitFor"
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"googleAnalytics"
|
||||
"wait"
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
||||
@@ -4023,21 +4051,75 @@
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"wait": {
|
||||
"setVariable": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"secondsToWaitFor": {
|
||||
"type": "number"
|
||||
"scriptToExecute": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"content": {
|
||||
"type": "string"
|
||||
},
|
||||
"args": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string"
|
||||
},
|
||||
"value": {
|
||||
"anyOf": [
|
||||
{
|
||||
"anyOf": [
|
||||
{
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "number"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "boolean"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"nullable": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"nullable": true
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"id"
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"content",
|
||||
"args"
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"secondsToWaitFor"
|
||||
"scriptToExecute"
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"wait"
|
||||
"setVariable"
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@typebot.io/js",
|
||||
"version": "0.0.36",
|
||||
"version": "0.0.37",
|
||||
"description": "Javascript library to display typebots on your website",
|
||||
"type": "module",
|
||||
"main": "dist/index.js",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@typebot.io/react",
|
||||
"version": "0.0.36",
|
||||
"version": "0.0.37",
|
||||
"description": "React library to display typebots on your website",
|
||||
"main": "dist/index.js",
|
||||
"types": "dist/index.d.ts",
|
||||
|
||||
Reference in New Issue
Block a user