From cbc8194f19396ed8f8b3ea05d75223beeab42c3c Mon Sep 17 00:00:00 2001 From: Baptiste Arnaud Date: Wed, 15 Mar 2023 08:35:16 +0100 Subject: [PATCH] :recycle: Re-organize workspace folders --- Dockerfile | 4 +- apps/builder/next.config.js | 10 +- apps/builder/package.json | 17 +- apps/builder/playwright.config.ts | 2 +- .../ImageUploadContent/GiphySearchForm.tsx | 2 +- .../ImageUploadContent/UploadButton.tsx | 2 +- .../src/components/SetVariableLabel.tsx | 2 +- .../components/inputs/AutocompleteInput.tsx | 4 +- .../src/components/inputs/CodeEditor.tsx | 4 +- .../src/components/inputs/NumberInput.tsx | 4 +- apps/builder/src/components/inputs/Select.tsx | 2 +- .../src/components/inputs/TextInput.tsx | 4 +- .../src/components/inputs/Textarea.tsx | 4 +- .../components/inputs/VariableSearchInput.tsx | 4 +- .../src/features/account/UserProvider.tsx | 4 +- .../src/features/account/account.spec.ts | 2 +- .../ApiTokensList/ApiTokensList.tsx | 4 +- .../GraphNavigationRadioGroup.tsx | 2 +- .../UserPreferencesForm.tsx | 2 +- .../features/account/hooks/useApiTokens.ts | 2 +- .../account/queries/createApiTokenQuery.ts | 2 +- .../account/queries/deleteApiTokenQuery.ts | 4 +- .../account/queries/updateUserQuery.ts | 4 +- .../src/features/analytics/analytics.spec.ts | 4 +- .../components/AnalyticsGraphContainer.tsx | 2 +- .../analytics/components/StatsCards.tsx | 4 +- .../api/convertInvitationsToCollaborations.ts | 2 +- .../features/auth/api/getAuthenticatedUser.ts | 2 +- .../auth/api/getNewUserInvitations.ts | 2 +- .../src/features/auth/api/joinWorkspaces.ts | 2 +- .../auth/components/SocialLoginButtons.tsx | 2 +- apps/builder/src/features/auth/constants.ts | 2 +- .../api/procedures/cancelSubscription.ts | 2 +- .../api/procedures/createCheckoutSession.ts | 2 +- .../api/procedures/getBillingPortalUrl.ts | 2 +- .../billing/api/procedures/getSubscription.ts | 4 +- .../billing/api/procedures/listInvoices.ts | 6 +- .../api/procedures/updateSubscription.ts | 8 +- .../api/utils/parseSubscriptionItems.ts | 2 +- .../src/features/billing/billing.spec.ts | 4 +- .../BillingContent/BillingContent.tsx | 2 +- .../CurrentSubscriptionContent.tsx | 4 +- .../UsageContent/UsageContent.tsx | 6 +- .../queries/cancelSubscriptionQuery.ts | 2 +- .../ChangePlanForm/ChangePlanForm.tsx | 6 +- .../ChangePlanForm/ProPlanContent.tsx | 6 +- .../ChangePlanForm/StarterPlanContent.tsx | 6 +- .../features/billing/components/LockTag.tsx | 2 +- .../features/billing/components/PlanTag.tsx | 2 +- .../billing/components/PreCheckoutModal.tsx | 2 +- .../billing/components/UpgradeButton.tsx | 2 +- apps/builder/src/features/billing/utils.ts | 4 +- .../blocks/bubbles/audio/audio.spec.ts | 6 +- .../audio/components/AudioBubbleForm.tsx | 2 +- .../audio/components/AudioBubbleNode.tsx | 4 +- .../embed/components/EmbedBubbleContent.tsx | 2 +- .../embed/components/EmbedUploadContent.tsx | 4 +- .../blocks/bubbles/embed/embed.spec.ts | 6 +- .../image/components/ImageBubbleContent.tsx | 2 +- .../blocks/bubbles/image/image.spec.ts | 6 +- .../components/TextBubbleContent.tsx | 4 +- .../TextBubbleEditor/TextBubbleEditor.tsx | 6 +- .../bubbles/textBubble/textBubble.spec.ts | 6 +- .../blocks/bubbles/textBubble/utils.ts | 2 +- .../video/components/VideoBubbleContent.tsx | 2 +- .../video/components/VideoUploadContent.tsx | 4 +- .../blocks/bubbles/video/video.spec.ts | 6 +- .../blocks/inputs/buttons/buttons.spec.ts | 10 +- .../buttons/components/ButtonsBlockNode.tsx | 2 +- .../components/ButtonsBlockSettings.tsx | 2 +- .../buttons/components/ButtonsItemNode.tsx | 4 +- .../date/components/DateInputSettingsBody.tsx | 2 +- .../features/blocks/inputs/date/date.spec.ts | 6 +- .../components/EmailInputNodeContent.tsx | 2 +- .../components/EmailInputSettingsBody.tsx | 2 +- .../inputs/emailInput/emailInput.spec.ts | 6 +- .../components/FileInputContent.tsx | 2 +- .../components/FileInputSettings.tsx | 2 +- .../inputs/fileUpload/fileUpload.spec.ts | 8 +- .../components/NumberInputSettingsBody.tsx | 2 +- .../number/components/NumberNodeContent.tsx | 2 +- .../blocks/inputs/number/number.spec.ts | 6 +- .../components/PaymentInputContent.tsx | 2 +- .../PaymentSettings/PaymentSettings.tsx | 2 +- .../PaymentSettings/StripeConfigModal.tsx | 4 +- .../blocks/inputs/payment/payment.spec.ts | 6 +- .../phone/components/PhoneNodeContent.tsx | 2 +- .../PhoneNumberSettingsBody.tsx | 2 +- .../blocks/inputs/phone/phone.spec.ts | 6 +- .../rating/components/RatingInputContent.tsx | 2 +- .../rating/components/RatingInputSettings.tsx | 2 +- .../blocks/inputs/rating/rating.spec.ts | 6 +- .../components/TextInputNodeContent.tsx | 2 +- .../components/TextInputSettingsBody.tsx | 2 +- .../blocks/inputs/textInput/textInput.spec.ts | 6 +- .../url/components/UrlInputSettingsBody.tsx | 2 +- .../inputs/url/components/UrlNodeContent.tsx | 2 +- .../features/blocks/inputs/url/url.spec.ts | 6 +- .../integrations/chatwoot/chatwoot.spec.ts | 9 +- .../components/ChatwootBlockNodeLabel.tsx | 2 +- .../components/ChatwootSettingsForm.tsx | 2 +- .../components/GoogleAnalyticsNodeContent.tsx | 2 +- .../components/GoogleAnalyticsSettings.tsx | 2 +- .../googleAnalytics/googleAnalytics.spec.ts | 9 +- .../components/GoogleSheetsNodeContent.tsx | 2 +- .../CellWithValueStack.tsx | 2 +- .../CellWithVariableIdStack.tsx | 2 +- .../GoogleSheetsSettingsBody.tsx | 4 +- .../RowsFilterComparisonItem.tsx | 2 +- .../RowsFilterTableList.tsx | 2 +- .../googleSheets/googleSheets.spec.ts | 2 +- .../queries/createSheetsCredentialQuery.ts | 2 +- .../makeCom/components/MakeComContent.tsx | 4 +- .../makeCom/components/MakeComSettings.tsx | 4 +- .../openai/components/OpenAINodeBody.tsx | 2 +- .../openai/components/OpenAISettings.tsx | 2 +- .../ChatCompletionMessageItem.tsx | 4 +- .../ChatCompletionResponseItem.tsx | 4 +- .../OpenAIChatCompletionSettings.tsx | 2 +- .../blocks/integrations/openai/openai.spec.ts | 6 +- .../components/PabblyConnectContent.tsx | 4 +- .../components/PabblyConnectSettings.tsx | 8 +- .../sendEmail/components/SendEmailContent.tsx | 2 +- .../SendEmailSettings/SendEmailSettings.tsx | 4 +- .../SendEmailSettings/SmtpConfigForm.tsx | 2 +- .../SendEmailSettings/SmtpConfigModal.tsx | 4 +- .../sendEmail/queries/sendEmail.spec.ts | 2 +- .../sendEmail/queries/testSmtpConfigQuery.ts | 4 +- .../procedures/getResultExampleProcedure.ts | 2 +- .../procedures/listWebhookBlocksProcedure.ts | 4 +- .../procedures/subscribeWebhookProcedure.ts | 4 +- .../procedures/unsubscribeWebhookProcedure.ts | 4 +- .../webhook/api/utils/parseResultExample.ts | 6 +- .../components/WebhookAdvancedConfigForm.tsx | 2 +- .../webhook/components/WebhookContent.tsx | 4 +- .../WebhookSettings/KeyValueInputs.tsx | 2 +- .../WebhookSettings/ResponseMappingInputs.tsx | 2 +- .../WebhookSettings/VariableForTestInputs.tsx | 2 +- .../WebhookSettings/WebhookSettings.tsx | 4 +- .../webhook/queries/createWebhookQuery.ts | 4 +- .../webhook/queries/duplicateWebhookQuery.ts | 4 +- .../webhook/queries/executeWebhookQuery.ts | 4 +- .../webhook/queries/updateWebhookQuery.ts | 4 +- .../convertVariablesForTestToVariables.ts | 2 +- .../integrations/webhook/webhook.spec.ts | 6 +- .../zapier/components/ZapierContent.tsx | 4 +- .../zapier/components/ZapierSettings.tsx | 4 +- .../ConditionItemForm/ComparisonItem.tsx | 2 +- .../ConditionItemForm/ConditionItemForm.tsx | 2 +- .../components/ConditionItemNode.tsx | 4 +- .../blocks/logic/condition/condition.spec.ts | 2 +- .../logic/jump/components/JumpNodeBody.tsx | 4 +- .../logic/jump/components/JumpSettings.tsx | 4 +- .../features/blocks/logic/jump/jump.spec.ts | 2 +- .../components/RedirectNodeContent.tsx | 2 +- .../redirect/components/RedirectSettings.tsx | 2 +- .../blocks/logic/redirect/redirect.spec.ts | 2 +- .../script/components/ScriptNodeContent.tsx | 2 +- .../script/components/ScriptSettings.tsx | 2 +- .../blocks/logic/script/script.spec.ts | 2 +- .../components/SetVariableContent.tsx | 4 +- .../components/SetVariableSettings.tsx | 2 +- .../logic/setVariable/setVariable.spec.ts | 2 +- .../api/utils/getLinkedTypebots.ts | 6 +- .../TypebotLinkForm/GroupsDropdown.tsx | 4 +- .../TypebotLinkForm/TypebotLinkForm.tsx | 4 +- .../components/TypebotLinkNode.tsx | 4 +- .../logic/typebotLink/typebotLink.spec.ts | 2 +- .../logic/wait/components/WaitNodeContent.tsx | 2 +- .../logic/wait/components/WaitSettings.tsx | 2 +- .../features/blocks/logic/wait/wait.spec.ts | 2 +- .../collaboration/collaboration.spec.ts | 10 +- .../CollaborationList.tsx | 2 +- .../CollaboratorButton.tsx | 2 +- .../collaboration/hooks/useInvitations.ts | 4 +- .../queries/deleteCollaboratorQuery.ts | 2 +- .../queries/deleteInvitationQuery.ts | 2 +- .../queries/sendInvitationQuery.ts | 4 +- .../queries/updateCollaboratorQuery.ts | 4 +- .../queries/updateInvitationQuery.ts | 4 +- .../src/features/collaboration/types.ts | 2 +- .../credentials/api/createCredentials.ts | 10 +- .../credentials/api/listCredentials.ts | 8 +- .../components/CredentialsDropdown.tsx | 2 +- .../components/CustomDomainModal.tsx | 2 +- .../customDomains/customDomains.spec.ts | 8 +- .../customDomains/hooks/useCustomDomains.ts | 2 +- .../queries/createCustomDomainQuery.ts | 4 +- .../queries/deleteCustomDomainQuery.ts | 4 +- .../features/dashboard/api/parseNewTypebot.ts | 2 +- .../dashboard/components/DashboardHeader.tsx | 2 +- .../dashboard/components/DashboardPage.tsx | 4 +- .../dashboard/components/OnboardingModal.tsx | 4 +- .../src/features/dashboard/dashboard.spec.ts | 2 +- .../dashboard/queries/createTypebotQuery.ts | 4 +- .../dashboard/queries/deleteTypebotQuery.ts | 2 +- .../dashboard/queries/getTypebotQuery.ts | 4 +- .../dashboard/queries/importTypebotQuery.ts | 13 +- apps/builder/src/features/dashboard/types.ts | 2 +- .../components/BlocksSideBar/BlockCard.tsx | 4 +- .../BlocksSideBar/BlockCardOverlay.tsx | 2 +- .../components/BlocksSideBar/BlockIcon.tsx | 2 +- .../components/BlocksSideBar/BlockLabel.tsx | 2 +- .../BlocksSideBar/BlocksSideBar.tsx | 2 +- .../editor/components/BoardMenuButton.tsx | 2 +- .../TypebotHeader/TypebotHeader.tsx | 2 +- .../src/features/editor/editor.spec.ts | 8 +- .../src/features/editor/hooks/useUndo.ts | 2 +- .../TypebotProvider/TypebotProvider.tsx | 4 +- .../TypebotProvider/actions/blocks.ts | 4 +- .../TypebotProvider/actions/edges.ts | 4 +- .../TypebotProvider/actions/groups.ts | 9 +- .../TypebotProvider/actions/items.ts | 4 +- .../TypebotProvider/actions/variables.ts | 2 +- .../editor/queries/updateTypebotQuery.ts | 4 +- .../folders/components/CreateFolderButton.tsx | 2 +- .../folders/components/FolderButton.tsx | 2 +- .../folders/components/FolderContent.tsx | 2 +- .../folders/components/TypebotButton.tsx | 2 +- .../src/features/folders/hooks/useFolder.ts | 2 +- .../src/features/folders/hooks/useFolders.ts | 4 +- .../folders/queries/createFolderQuery.ts | 4 +- .../folders/queries/deleteFolderQuery.ts | 2 +- .../folders/queries/patchTypebotQuery.ts | 4 +- .../folders/queries/updateFolderQuery.ts | 4 +- .../graph/components/Edges/DropOffEdge.tsx | 2 +- .../features/graph/components/Edges/Edge.tsx | 2 +- .../features/graph/components/Edges/Edges.tsx | 2 +- .../components/Endpoints/SourceEndpoint.tsx | 2 +- .../src/features/graph/components/Graph.tsx | 4 +- .../graph/components/GraphElements.tsx | 2 +- .../components/Nodes/BlockNode/BlockNode.tsx | 4 +- .../BlockNodeContent/BlockNodeContent.tsx | 2 +- .../BlockNodeContent/WithVariableContent.tsx | 2 +- .../Nodes/BlockNode/BlockNodeContextMenu.tsx | 2 +- .../Nodes/BlockNode/BlockNodeOverlay.tsx | 2 +- .../Nodes/BlockNode/BlockNodesList.tsx | 4 +- .../BlockNode/MediaBubblePopoverContent.tsx | 2 +- .../SettingsPopoverContent/HelpDocButton.tsx | 2 +- .../SettingsPopoverContent.tsx | 2 +- .../components/Nodes/GroupNode/GroupNode.tsx | 4 +- .../components/Nodes/ItemNode/ItemNode.tsx | 4 +- .../ItemNodeContent/ItemNodeContent.tsx | 2 +- .../Nodes/ItemNode/ItemNodeContextMenu.tsx | 2 +- .../Nodes/ItemNode/ItemNodesList.tsx | 9 +- .../graph/providers/GraphDndProvider.tsx | 2 +- .../graph/providers/GraphProvider.tsx | 2 +- .../providers/GroupsCoordinateProvider.tsx | 2 +- apps/builder/src/features/graph/utils.ts | 4 +- .../components/ApiPreviewInstructions.tsx | 2 +- .../preview/components/WebPreview.tsx | 2 +- .../publish/components/PublishButton.tsx | 4 +- .../features/publish/components/SharePage.tsx | 4 +- .../publish/components/embeds/EmbedModal.tsx | 2 +- .../components/embeds/modals/ApiModal.tsx | 2 +- .../instructions/GtmStandardInstructions.tsx | 2 +- .../modals/IframeModal/IframeSnippet.tsx | 2 +- .../Javascript/JavascriptBubbleSnippet.tsx | 2 +- .../Javascript/JavascriptPopupSnippet.tsx | 2 +- .../Javascript/JavascriptStandardSnippet.tsx | 2 +- .../JavascriptBubbleInstructions.tsx | 2 +- .../components/embeds/modals/NotionModal.tsx | 2 +- .../instructions/ScriptBubbleInstructions.tsx | 4 +- .../instructions/ScriptPopupInstructions.tsx | 2 +- .../ScriptStandardInstructions.tsx | 2 +- .../modals/WordpressModal/WordpressModal.tsx | 2 +- .../WordpressBubbleInstructions.tsx | 2 +- .../WordpressPopupInstructions.tsx | 2 +- .../WordpressStandardInstructions.tsx | 2 +- .../BubbleSettings/BubbleSettings.tsx | 2 +- .../BubbleSettings/PreviewMessageSettings.tsx | 2 +- .../embeds/settings/PopupSettings.tsx | 2 +- .../embeds/snippetParsers/shared.ts | 2 +- .../src/features/publish/publish.spec.ts | 6 +- .../queries/createPublishedTypebotQuery.ts | 4 +- .../queries/deletePublishedTypebotQuery.ts | 2 +- .../queries/isPublicDomainAvailableQuery.ts | 2 +- .../queries/updatePublishedTypebotQuery.ts | 4 +- apps/builder/src/features/publish/utils.ts | 4 +- .../src/features/results/ResultsProvider.tsx | 4 +- .../features/results/api/archiveResults.ts | 4 +- .../api/procedures/deleteResultsProcedure.ts | 2 +- .../api/procedures/getResultLogsProcedure.ts | 2 +- .../api/procedures/getResultsProcedure.ts | 2 +- .../features/results/components/LogsModal.tsx | 4 +- .../results/components/ResultModal.tsx | 2 +- .../ResultsTable/ColumnSettings.tsx | 2 +- .../ResultsTable/ExportAllResultsModal.tsx | 2 +- .../components/ResultsTable/ResultsTable.tsx | 2 +- .../ResultsTable/TableSettingsButton.tsx | 2 +- .../results/components/UsageAlertBanners.tsx | 4 +- .../src/features/results/hooks/useStats.ts | 2 +- .../src/features/results/results.spec.ts | 2 +- apps/builder/src/features/results/utils.tsx | 6 +- .../results/utils/parseColumnsOrder.ts | 2 +- .../components/GeneralSettingsForm.tsx | 6 +- .../settings/components/MetadataForm.tsx | 2 +- .../settings/components/SettingsPage.tsx | 2 +- .../settings/components/SettingsSideMenu.tsx | 2 +- .../components/TypingEmulationForm.tsx | 4 +- .../src/features/settings/settings.spec.ts | 6 +- .../telemetry/api/processTelemetryEvent.ts | 2 +- .../components/CreateNewTypebotButtons.tsx | 2 +- .../ImportTypebotFromFileButton.tsx | 2 +- .../templates/components/TemplatesModal.tsx | 4 +- .../components/ChatSettings/AvatarForm.tsx | 2 +- .../components/ChatSettings/ButtonsTheme.tsx | 2 +- .../ChatSettings/ChatThemeSettings.tsx | 7 +- .../components/ChatSettings/GuestBubbles.tsx | 2 +- .../components/ChatSettings/HostBubbles.tsx | 2 +- .../components/ChatSettings/InputsTheme.tsx | 2 +- .../BackgroundSelector/BackgroundContent.tsx | 2 +- .../BackgroundSelector/BackgroundSelector.tsx | 2 +- .../BackgroundTypeRadioButtons.tsx | 2 +- .../FontSelector/FontSelector.tsx | 2 +- .../GeneralSettings/GeneralSettings.tsx | 2 +- .../theme/components/ThemeSideMenu.tsx | 2 +- apps/builder/src/features/theme/theme.spec.ts | 2 +- .../api/procedures/listTypebotsProcedure.ts | 6 +- .../features/typebot/api/utils/getTypebot.ts | 2 +- .../api/utils/isReadTypebotForbidden.ts | 4 +- .../api/utils/isWriteTypebotForbidden.ts | 10 +- .../api/utils/removeTypebotOldProperties.ts | 2 +- .../variables/components/VariablesButton.tsx | 2 +- .../utils/injectVariableInTextInput.ts | 2 +- .../features/workspace/WorkspaceProvider.tsx | 6 +- .../procedures/createWorkspaceProcedure.ts | 4 +- .../api/procedures/getWorkspaceProcedure.ts | 2 +- .../listInvitationsInWorkspaceProcedure.ts | 5 +- .../listMembersInWorkspaceProcedure.ts | 2 +- .../api/procedures/listWorkspacesProcedure.ts | 2 +- .../procedures/updateWorkspaceProcedure.ts | 2 +- .../components/MembersList/AddMemberForm.tsx | 2 +- .../components/MembersList/MemberItem.tsx | 2 +- .../components/MembersList/MembersList.tsx | 6 +- .../components/WorkspaceDropdown.tsx | 2 +- .../components/WorkspaceSettingsModal.tsx | 2 +- .../features/workspace/hooks/useMembers.ts | 4 +- .../queries/deleteInvitationQuery.ts | 2 +- .../workspace/queries/deleteMemberQuery.ts | 2 +- .../workspace/queries/sendInvitationQuery.ts | 4 +- .../queries/updateInvitationQuery.ts | 4 +- .../workspace/queries/updateMemberQuery.ts | 4 +- apps/builder/src/features/workspace/types.ts | 2 +- .../features/workspace/utils/parseNewName.ts | 2 +- .../utils/parseWorkspaceDefaultPlan.ts | 2 +- .../src/features/workspace/workspaces.spec.ts | 10 +- apps/builder/src/hooks/useLinkedTypebots.ts | 2 +- apps/builder/src/hooks/useTypebotQuery.ts | 4 +- apps/builder/src/lib/googleSheets.ts | 8 +- apps/builder/src/lib/prisma.ts | 2 +- apps/builder/src/pages/_app.tsx | 4 +- .../src/pages/api/auth/[...nextauth].ts | 4 +- apps/builder/src/pages/api/auth/adapter.ts | 13 +- .../pages/api/auth/sendVerificationRequest.ts | 2 +- apps/builder/src/pages/api/credentials.ts | 4 +- .../pages/api/credentials/[credentialsId].ts | 6 +- .../api/credentials/google-sheets/callback.ts | 4 +- apps/builder/src/pages/api/customDomains.ts | 4 +- .../src/pages/api/customDomains/[domain].ts | 6 +- apps/builder/src/pages/api/folders.ts | 8 +- apps/builder/src/pages/api/folders/[id].ts | 4 +- .../api/integrations/email/test-config.ts | 4 +- .../google-sheets/spreadsheets.ts | 6 +- .../google-sheets/spreadsheets/[id]/sheets.ts | 8 +- .../src/pages/api/mock/webhook-easy-config.ts | 2 +- apps/builder/src/pages/api/mock/webhook.ts | 2 +- .../src/pages/api/publicIdAvailable.ts | 2 +- apps/builder/src/pages/api/publicTypebots.ts | 10 +- .../src/pages/api/publicTypebots/[id].ts | 10 +- .../src/pages/api/storage/upload-url.ts | 2 +- .../src/pages/api/stripe/billing-portal.ts | 4 +- .../pages/api/stripe/custom-plan-checkout.ts | 4 +- apps/builder/src/pages/api/stripe/invoices.ts | 4 +- .../src/pages/api/stripe/subscription.ts | 6 +- apps/builder/src/pages/api/stripe/webhook.ts | 6 +- apps/builder/src/pages/api/typebots.ts | 8 +- .../src/pages/api/typebots/[typebotId].ts | 8 +- .../[typebotId]/analytics/answersCount.ts | 4 +- .../typebots/[typebotId]/analytics/stats.ts | 4 +- .../pages/api/typebots/[typebotId]/blocks.ts | 6 +- .../api/typebots/[typebotId]/collaborators.ts | 2 +- .../[typebotId]/collaborators/[userId].ts | 2 +- .../api/typebots/[typebotId]/invitations.ts | 8 +- .../[typebotId]/invitations/[email].ts | 4 +- .../api/typebots/[typebotId]/webhooks.ts | 8 +- .../[typebotId]/webhooks/[webhookId].ts | 6 +- apps/builder/src/pages/api/users/[userId].ts | 4 +- .../pages/api/users/[userId]/api-tokens.ts | 4 +- .../users/[userId]/api-tokens/[tokenId].ts | 2 +- .../workspaces/[workspaceId]/invitations.ts | 14 +- .../[workspaceId]/invitations/[id].ts | 4 +- .../api/workspaces/[workspaceId]/members.ts | 6 +- .../workspaces/[workspaceId]/members/[id].ts | 4 +- .../api/workspaces/[workspaceId]/usage.ts | 2 +- apps/builder/src/pages/feedback.tsx | 4 +- .../src/pages/feedback/[feedbackId].ts | 4 +- .../builder/src/test/utils/databaseActions.ts | 4 +- apps/builder/src/utils/api/dbRules.ts | 12 +- apps/builder/src/utils/helpers.ts | 2 +- apps/builder/tsconfig.json | 2 +- apps/docs/openapi/builder/_spec_.json | 6 + .../Homepage/IntroducingChatApps.tsx | 4 +- .../components/Homepage/RealTimeResults.tsx | 4 +- .../PricingPage/PlanComparisonTables.tsx | 4 +- .../PricingPage/PricingCard/index.tsx | 2 +- .../components/PricingPage/ProPlanCard.tsx | 6 +- .../PricingPage/StarterPlanCard.tsx | 6 +- apps/landing-page/package.json | 12 +- apps/landing-page/pages/pricing.tsx | 2 +- apps/landing-page/tsconfig.json | 2 +- apps/viewer/next.config.js | 16 +- apps/viewer/openapi.tsconfig.json | 2 +- apps/viewer/package.json | 17 +- apps/viewer/playwright.config.ts | 2 +- apps/viewer/src/components/ErrorPage.tsx | 2 +- apps/viewer/src/components/Seo.tsx | 4 +- apps/viewer/src/components/TypebotPageV2.tsx | 9 +- apps/viewer/src/components/TypebotPageV3.tsx | 2 +- .../answers/queries/upsertAnswerQuery.ts | 4 +- .../src/features/auth/api/authenticateUser.ts | 2 +- ...injectVariableValuesInButtonsInputBlock.ts | 4 +- .../inputs/fileUpload/fileUpload.spec.ts | 6 +- .../computePaymentInputRuntimeOptions.ts | 4 +- .../api/utils/executeChatwootBlock.ts | 6 +- .../integrations/chatwoot/chatwoot.spec.ts | 9 +- .../api/utils/executeGoogleAnalyticsBlock.ts | 2 +- .../api/utils/executeGoogleSheetBlock.ts | 6 +- .../googleSheets/api/utils/getRow.ts | 4 +- .../googleSheets/api/utils/helpers.ts | 2 +- .../googleSheets/api/utils/insertRow.ts | 6 +- .../googleSheets/api/utils/updateRow.ts | 6 +- .../openai/createChatCompletionOpenAI.ts | 8 +- .../integrations/openai/executeOpenAIBlock.ts | 4 +- .../api/utils/executeSendEmailBlock.tsx | 10 +- .../integrations/sendEmail/sendEmail.spec.ts | 4 +- .../webhook/api/utils/executeWebhookBlock.ts | 6 +- .../webhook/api/utils/parseSampleResult.ts | 6 +- .../integrations/webhook/webhook.spec.ts | 4 +- .../condition/api/utils/executeCondition.ts | 4 +- .../blocks/logic/jump/executeJumpBlock.ts | 4 +- .../redirect/api/utils/executeRedirect.ts | 4 +- .../blocks/logic/script/executeScript.ts | 2 +- .../api/utils/executeSetVariable.ts | 4 +- .../api/utils/executeTypebotLink.ts | 4 +- .../api/utils/getLinkedTypebots.ts | 2 +- .../api/utils/getLinkedTypebotsChildren.ts | 6 +- .../logic/typebotLink/typebotLink.spec.ts | 2 +- .../logic/wait/api/utils/executeWait.ts | 2 +- .../api/procedures/sendMessageProcedure.ts | 6 +- .../chat/api/utils/addEdgeToTypebot.ts | 2 +- .../chat/api/utils/continueBotFlow.ts | 6 +- .../features/chat/api/utils/executeGroup.ts | 4 +- .../chat/api/utils/executeIntegration.ts | 6 +- .../features/chat/api/utils/executeLogic.ts | 2 +- .../features/chat/api/utils/getNextGroup.ts | 4 +- .../chat/api/utils/getSessionState.ts | 2 +- .../features/chat/api/utils/startBotFlow.ts | 2 +- apps/viewer/src/features/chat/chat.spec.ts | 4 +- apps/viewer/src/features/chat/types.ts | 2 +- apps/viewer/src/features/logs/api/utils.ts | 2 +- .../results/queries/createResultQuery.ts | 4 +- .../results/queries/updateResultQuery.ts | 4 +- .../src/features/results/results.spec.ts | 2 +- .../src/features/settings/settings.spec.ts | 9 +- apps/viewer/src/features/usage/usage.spec.ts | 6 +- .../features/usage/utils/checkChatsUsage.ts | 10 +- .../variables/transformVariablesToList.ts | 4 +- apps/viewer/src/features/variables/utils.ts | 4 +- .../src/features/variables/variables.spec.ts | 2 +- apps/viewer/src/lib/google-sheets.ts | 8 +- apps/viewer/src/lib/prisma.ts | 2 +- apps/viewer/src/pages/[[...publicId]].tsx | 8 +- .../[spreadsheetId]/sheets/[sheetId].ts | 6 +- .../stripe/createPaymentIntent.ts | 8 +- apps/viewer/src/pages/api/mock/fail.ts | 2 +- apps/viewer/src/pages/api/mock/success.ts | 2 +- .../pages/api/publicTypebots/[typebotId].ts | 2 +- apps/viewer/src/pages/api/typebots.ts | 2 +- .../blocks/[blockId]/executeWebhook.ts | 8 +- .../blocks/[blockId]/sampleResult.ts | 4 +- .../steps/[stepId]/executeWebhook.ts | 6 +- .../[blockId]/steps/[stepId]/sampleResult.ts | 4 +- .../steps/[stepId]/subscribeWebhook.ts | 6 +- .../steps/[stepId]/unsubscribeWebhook.ts | 6 +- .../blocks/[blockId]/storage/upload-url.ts | 16 +- .../blocks/[blockId]/subscribeWebhook.ts | 6 +- .../blocks/[blockId]/unsubscribeWebhook.ts | 6 +- .../[typebotId]/integrations/email.tsx | 10 +- .../pages/api/typebots/[typebotId]/results.ts | 4 +- .../[typebotId]/results/[resultId].ts | 4 +- .../[typebotId]/results/[resultId]/answers.ts | 6 +- .../api/typebots/[typebotId]/webhookBlocks.ts | 6 +- .../api/typebots/[typebotId]/webhookSteps.ts | 11 +- apps/viewer/src/pages/api/users/me.ts | 4 +- apps/viewer/src/pages/old/[[...publicId]].tsx | 2 +- apps/viewer/src/test/utils/databaseActions.ts | 8 +- apps/viewer/src/utils/api/dbRules.ts | 9 +- apps/viewer/src/utils/server/context.ts | 2 +- apps/viewer/tsconfig.json | 2 +- entrypoint.sh | 35 - package.json | 4 - .../features/blocks/inputs/payment/index.ts | 1 - .../{ => deprecated}/bot-engine/.eslintrc.js | 0 .../{ => deprecated}/bot-engine/README.md | 0 .../{ => deprecated}/bot-engine/package.json | 12 +- .../bot-engine/postcss.config.js | 0 .../bot-engine/src/assets/importantStyles.css | 0 .../bot-engine/src/assets/phone.css | 0 .../bot-engine/src/assets/style.css | 0 .../ChatGroup/AvatarSideContainer.tsx | 2 - .../ChatGroup/ChatBlock/InputChatBlock.tsx | 4 +- .../ChatBlock/bubbles/GuestBubble.tsx | 0 .../ChatBlock/bubbles/HostBubble.tsx | 2 +- .../src/components/ChatGroup/ChatGroup.tsx | 4 +- .../src/components/ChatGroup/index.tsx | 0 .../src/components/ConversationContainer.tsx | 18 +- .../bot-engine/src/components/LiteBadge.tsx | 2 - .../src/components/PopupBlockedToast.tsx | 0 .../bot-engine/src/components/SendButton.tsx | 0 .../src/components/TypebotViewer.tsx | 31 +- .../src/components/TypingBubble.tsx | 0 .../src/components/avatars/Avatar.tsx | 2 +- .../src/components/avatars/DefaultAvatar.tsx | 0 .../bot-engine/src/components/global.d.ts | 0 .../bot-engine/src/components/icons.tsx | 0 .../src/components/inputs/ShortTextInput.tsx | 0 .../src/components/inputs/Textarea.tsx | 0 .../bubbles/audio/components/AudioBubble.tsx | 2 +- .../blocks/bubbles/audio/components/index.ts | 0 .../features/blocks/bubbles/audio/index.ts | 0 .../bubbles/embed/components/EmbedBubble.tsx | 2 +- .../features/blocks/bubbles/embed/index.ts | 0 .../bubbles/image/components/ImageBubble.tsx | 2 +- .../features/blocks/bubbles/image/index.ts | 0 .../textBubble/components/TextBubble.tsx | 2 +- .../blocks/bubbles/textBubble/index.ts | 0 .../textBubble/utils/computeTypingDuration.ts | 2 +- .../bubbles/video/components/VideoBubble.tsx | 2 +- .../features/blocks/bubbles/video/index.ts | 0 .../inputs/buttons/components/ChoiceForm.tsx | 2 +- .../features/blocks/inputs/buttons/index.ts | 0 .../inputs/date/components/DateForm.tsx | 2 +- .../src/features/blocks/inputs/date/index.ts | 0 .../inputs/date/utils/parseReadableDate.ts | 0 .../inputs/email/components/EmailInput.tsx | 2 +- .../src/features/blocks/inputs/email/index.ts | 0 .../inputs/email/utils/validateEmail.ts | 0 .../fileUpload/components/FileUploadForm.tsx | 4 +- .../blocks/inputs/fileUpload/index.ts | 0 .../inputs/number/components/NumberInput.tsx | 2 +- .../features/blocks/inputs/number/index.ts | 0 .../components/PaymentForm/PaymentForm.tsx | 2 +- .../PaymentForm/StripePaymentForm.tsx | 12 +- .../payment/components/PaymentForm/index.tsx | 0 .../features/blocks/inputs/payment/index.ts | 1 + .../queries/createPaymentIntentQuery.ts | 4 +- .../inputs/phone/components/PhoneInput.tsx | 2 +- .../src/features/blocks/inputs/phone/index.ts | 0 .../inputs/phone/utils/validatePhoneNumber.ts | 0 .../inputs/rating/components/RatingForm.tsx | 4 +- .../features/blocks/inputs/rating/index.ts | 0 .../inputs/textInput/components/TextInput.tsx | 2 +- .../features/blocks/inputs/textInput/index.ts | 0 .../blocks/inputs/url/components/UrlInput.tsx | 2 +- .../src/features/blocks/inputs/url/index.ts | 0 .../blocks/inputs/url/utils/validateUrl.ts | 0 .../blocks/integrations/chatwoot/index.ts | 0 .../chatwoot/utils/executeChatwootBlock.ts | 2 +- .../integrations/googleAnalytics/index.ts | 0 .../utils/executeGoogleAnalyticsBlock.ts | 2 +- .../blocks/integrations/googleSheets/index.ts | 0 .../utils/executeGoogleSheetBlock.ts | 4 +- .../blocks/integrations/sendEmail/index.ts | 0 .../sendEmail/utils/executeSendEmailBlock.ts | 4 +- .../blocks/integrations/webhook/index.ts | 0 .../webhook/utils/executeWebhookBlock.ts | 4 +- .../features/blocks/logic/condition/index.ts | 0 .../logic/condition/utils/executeCondition.ts | 4 +- .../blocks/logic/condition/utils/index.ts | 0 .../features/blocks/logic/redirect/index.ts | 0 .../logic/redirect/utils/executeRedirect.ts | 4 +- .../blocks/logic/script/executeScript.ts | 2 +- .../blocks/logic/setVariable/index.ts | 0 .../setVariable/utils/executeSetVariable.ts | 4 +- .../blocks/logic/typebotLink/index.ts | 0 .../queries/fetchAndInjectTypebotQuery.ts | 4 +- .../typebotLink/utils/executeTypebotLink.ts | 2 +- .../src/features/blocks/logic/wait/index.ts | 0 .../blocks/logic/wait/utils/executeWait.ts | 2 +- .../bot-engine/src/features/theme/index.ts | 0 .../theme/utils/setCssVariablesValue.ts | 2 +- .../src/features/variables/index.ts | 0 .../src/features/variables/utils.ts | 4 +- .../{ => deprecated}/bot-engine/src/index.ts | 0 .../bot-engine}/src/lib/gtag.ts | 2 +- .../bot-engine/src/lib/stripe.ts | 0 .../src/providers/AnswersProvider.tsx | 4 +- .../bot-engine/src/providers/ChatProvider.tsx | 0 .../src/providers/TypebotProvider.tsx | 6 +- .../{ => deprecated}/bot-engine/src/types.ts | 4 +- .../bot-engine/src/utils/chat.ts | 4 +- .../src/utils/executeIntegration.ts | 2 +- .../bot-engine/src/utils/executeLogic.ts | 2 +- .../bot-engine/src/utils/helpers.ts | 2 +- .../bot-engine/src/utils/inputs.ts | 4 +- .../bot-engine/tailwind.config.js | 0 .../{ => deprecated}/bot-engine/tsconfig.json | 2 +- .../bot-engine/tsup.config.js | 0 .../{ => deprecated}/typebot-js/.eslintrc.js | 0 .../{ => deprecated}/typebot-js/.npmignore | 0 .../{ => deprecated}/typebot-js/README.md | 0 .../typebot-js/__mocks__/styleMock.js | 0 .../typebot-js/examples/chatEmbedExample.html | 0 .../examples/containerEmbedExample.html | 0 .../examples/popupEmbedExample.html | 0 .../typebot-js/jest.config.js | 0 .../{ => deprecated}/typebot-js/package.json | 2 +- .../typebot-js/src/commands/close.ts | 0 .../typebot-js/src/commands/hideMessage.ts | 0 .../typebot-js/src/commands/index.ts | 0 .../typebot-js/src/commands/open.ts | 0 .../src/commands/setHiddenVariables.ts | 0 .../typebot-js/src/commands/showMessage.ts | 0 .../typebot-js/src/commands/toggle.ts | 0 .../typebot-js/src/embedTypes/chat/button.ts | 0 .../typebot-js/src/embedTypes/chat/iframe.ts | 0 .../typebot-js/src/embedTypes/chat/index.ts | 0 .../src/embedTypes/chat/proactiveMessage.ts | 2 +- .../typebot-js/src/embedTypes/chat/style.css | 0 .../src/embedTypes/container/index.ts | 0 .../typebot-js/src/embedTypes/popup/index.ts | 0 .../typebot-js/src/embedTypes/popup/style.css | 0 .../typebot-js/src/iframe/index.ts | 0 .../typebot-js/src/iframe/style.css | 0 .../{ => deprecated}/typebot-js/src/index.ts | 0 .../{ => deprecated}/typebot-js/src/types.ts | 0 .../typebot-js/tests/chat/button.spec.ts | 0 .../typebot-js/tests/chat/commands.spec.ts | 0 .../typebot-js/tests/chat/index.spec.ts | 0 .../tests/chat/proactiveMessage.spec.ts | 0 .../typebot-js/tests/container.spec.ts | 0 .../typebot-js/tests/iframe.spec.ts | 0 .../typebot-js/tests/popup.spec.ts | 0 .../{ => deprecated}/typebot-js/tsconfig.json | 2 +- .../typebot-js/tsup.config.js | 0 packages/emails/package.json | 7 +- .../emails/AlmostReachedChatsLimitEmail.tsx | 2 +- .../src/emails/ReachedChatsLimitEmail.tsx | 2 +- packages/emails/src/sendEmail.ts | 2 +- packages/emails/tsconfig.json | 2 +- packages/{ => embeds}/js/.eslintignore | 0 packages/{ => embeds}/js/.eslintrc.cjs | 0 packages/{ => embeds}/js/.gitignore | 0 packages/{ => embeds}/js/.npmignore | 0 packages/{ => embeds}/js/.npmrc | 0 packages/{ => embeds}/js/README.md | 0 packages/{ => embeds}/js/package.json | 6 +- packages/{ => embeds}/js/rollup.config.js | 0 .../{ => embeds}/js/src/assets/immutable.css | 0 packages/{ => embeds}/js/src/assets/index.css | 0 .../{ => embeds}/js/src/components/Bot.tsx | 2 +- .../AvatarSideContainer.tsx | 0 .../ConversationContainer/ChatChunk.tsx | 2 +- .../ConversationContainer.tsx | 4 +- .../ConversationContainer/LoadingChunk.tsx | 2 +- .../PopupBlockedToast.tsx | 0 .../components/ConversationContainer/index.ts | 0 .../js/src/components/ErrorMessage.tsx | 0 .../js/src/components/InputChatBlock.tsx | 6 +- .../js/src/components/LiteBadge.tsx | 0 .../js/src/components/SendButton.tsx | 0 .../js/src/components/TypingBubble.tsx | 0 .../js/src/components/avatars/Avatar.tsx | 2 +- .../src/components/avatars/DefaultAvatar.tsx | 0 .../js/src/components/bubbles/GuestBubble.tsx | 0 .../js/src/components/bubbles/HostBubble.tsx | 4 +- .../src/components/bubbles/LoadingBubble.tsx | 0 .../src/components/icons/ChevronDownIcon.tsx | 0 .../js/src/components/icons/SendIcon.tsx | 0 .../js/src/components/icons/TypebotLogo.tsx | 0 .../js/src/components/icons/index.ts | 0 .../{ => embeds}/js/src/components/index.ts | 0 .../src/components/inputs/ShortTextInput.tsx | 0 .../js/src/components/inputs/Textarea.tsx | 0 .../js/src/components/inputs/index.ts | 0 packages/{ => embeds}/js/src/constants.ts | 0 packages/{ => embeds}/js/src/env.d.ts | 0 .../bubbles/audio/components/AudioBubble.tsx | 2 +- .../blocks/bubbles/audio/components/index.ts | 0 .../features/blocks/bubbles/audio/index.ts | 0 .../bubbles/embed/components/EmbedBubble.tsx | 2 +- .../blocks/bubbles/embed/components/index.ts | 0 .../features/blocks/bubbles/embed/index.ts | 0 .../bubbles/image/components/ImageBubble.tsx | 2 +- .../features/blocks/bubbles/image/index.ts | 0 .../textBubble/components/TextBubble.tsx | 2 +- .../blocks/bubbles/textBubble/index.ts | 0 .../textBubble/utils/computeTypingDuration.ts | 2 +- .../bubbles/video/components/VideoBubble.tsx | 4 +- .../features/blocks/bubbles/video/index.ts | 0 .../inputs/buttons/components/ChoiceForm.tsx | 2 +- .../features/blocks/inputs/buttons/index.ts | 0 .../inputs/date/components/DateForm.tsx | 2 +- .../src/features/blocks/inputs/date/index.ts | 0 .../inputs/date/utils/parseReadableDate.ts | 0 .../inputs/email/components/EmailInput.tsx | 2 +- .../src/features/blocks/inputs/email/index.ts | 0 .../fileUpload/components/FileUploadForm.tsx | 6 +- .../blocks/inputs/fileUpload/index.ts | 0 .../inputs/number/components/NumberInput.tsx | 2 +- .../features/blocks/inputs/number/index.ts | 0 .../inputs/payment/components/PaymentForm.tsx | 4 +- .../payment/components/StripePaymentForm.tsx | 2 +- .../blocks/inputs/payment/components/index.ts | 0 .../features/blocks/inputs/payment/index.ts | 0 .../inputs/phone/components/PhoneInput.tsx | 6 +- .../src/features/blocks/inputs/phone/index.ts | 0 .../inputs/rating/components/RatingForm.tsx | 4 +- .../features/blocks/inputs/rating/index.ts | 0 .../inputs/textInput/components/TextInput.tsx | 2 +- .../features/blocks/inputs/textInput/index.ts | 0 .../blocks/inputs/url/components/UrlInput.tsx | 2 +- .../src/features/blocks/inputs/url/index.ts | 0 .../blocks/integrations/chatwoot/index.ts | 0 .../chatwoot/utils/executeChatwoot.ts | 2 +- .../integrations/chatwoot/utils/index.ts | 0 .../integrations/googleAnalytics/index.ts | 0 .../utils/executeGoogleAnalytics.ts | 2 +- .../googleAnalytics/utils/index.ts | 0 .../features/blocks/logic/redirect/index.ts | 0 .../logic/redirect/utils/executeRedirect.ts | 2 +- .../blocks/logic/redirect/utils/index.ts | 0 .../blocks/logic/script/executeScript.ts | 2 +- .../blocks/logic/wait/utils/executeWait.ts | 0 .../src/features/bubble/components/Bubble.tsx | 2 +- .../bubble/components/BubbleButton.tsx | 2 +- .../bubble/components/PreviewMessage.tsx | 0 .../src/features/bubble/components/index.ts | 0 .../js/src/features/bubble/index.ts | 0 .../js/src/features/bubble/types.ts | 0 .../js/src/features/commands/index.ts | 0 .../js/src/features/commands/types.ts | 0 .../js/src/features/commands/utils/close.ts | 0 .../commands/utils/hidePreviewMessage.ts | 0 .../js/src/features/commands/utils/index.ts | 0 .../js/src/features/commands/utils/open.ts | 0 .../commands/utils/setPrefilledVariables.ts | 0 .../commands/utils/showPreviewMessage.ts | 0 .../js/src/features/commands/utils/toggle.ts | 0 .../src/features/popup/components/Popup.tsx | 2 +- .../js/src/features/popup/components/index.ts | 0 .../js/src/features/popup/index.ts | 0 .../js/src/features/popup/types.ts | 0 .../features/standard/components/Standard.tsx | 0 .../src/features/standard/components/index.ts | 0 .../js/src/features/standard/index.ts | 0 packages/{ => embeds}/js/src/global.d.ts | 0 packages/{ => embeds}/js/src/index.ts | 0 .../{bot-engine => embeds/js}/src/lib/gtag.ts | 2 +- packages/{ => embeds}/js/src/lib/stripe.ts | 0 .../src/queries/getInitialChatReplyQuery.ts | 4 +- .../js/src/queries/sendMessageQuery.ts | 4 +- packages/{ => embeds}/js/src/register.tsx | 0 packages/{ => embeds}/js/src/types.ts | 2 +- .../js/src/utils/executeClientSideActions.ts | 2 +- .../{ => embeds}/js/src/utils/guessApiHost.ts | 2 +- .../js/src/utils/injectHeadCode.ts | 0 .../js/src/utils/isMobileSignal.ts | 0 .../js/src/utils/sessionStorage.ts | 0 .../js/src/utils/setCssVariablesValue.ts | 4 +- packages/{ => embeds}/js/src/web.ts | 0 packages/{ => embeds}/js/src/window.ts | 0 packages/{ => embeds}/js/tailwind.config.cjs | 0 packages/{ => embeds}/js/tsconfig.json | 2 +- .../{ => embeds}/react/.env.local.example | 0 packages/{ => embeds}/react/.eslintrc.cjs | 0 packages/{ => embeds}/react/.npmignore | 0 packages/{ => embeds}/react/.npmrc | 0 packages/{ => embeds}/react/README.md | 0 packages/{ => embeds}/react/package.json | 8 +- packages/{ => embeds}/react/rollup.config.js | 0 packages/{ => embeds}/react/src/Bubble.tsx | 0 packages/{ => embeds}/react/src/Popup.tsx | 0 packages/{ => embeds}/react/src/Standard.tsx | 0 packages/{ => embeds}/react/src/index.ts | 0 .../stories/assets/leadGenerationTypebot.ts | 2 +- .../react/src/stories/bubble.stories.tsx | 0 .../react/src/stories/popup.stories.tsx | 0 .../react/src/stories/standard.stories.tsx | 0 packages/{ => embeds}/react/tsconfig.json | 2 +- packages/{ => embeds}/wordpress/README.md | 0 .../wordpress/assets/banner-1544x500.png | Bin .../wordpress/assets/icon-256x256.png | Bin packages/{ => embeds}/wordpress/package.json | 2 +- .../{ => embeds}/wordpress/trunk/LICENSE.txt | 0 .../{ => embeds}/wordpress/trunk/README.txt | 0 .../trunk/admin/class-typebot-admin.php | 0 .../wordpress/trunk/admin/index.php | 0 .../admin/partials/typebot-admin-display.php | 0 .../includes/class-typebot-activator.php | 0 .../includes/class-typebot-deactivator.php | 0 .../trunk/includes/class-typebot-i18n.php | 0 .../trunk/includes/class-typebot-loader.php | 0 .../trunk/includes/class-typebot.php | 0 .../wordpress/trunk/includes/index.php | 0 .../{ => embeds}/wordpress/trunk/index.php | 0 .../wordpress/trunk/languages/plugin-name.pot | 0 .../trunk/public/class-typebot-public.php | 0 .../wordpress/trunk/public/index.php | 0 .../{ => embeds}/wordpress/trunk/typebot.php | 0 .../wordpress/trunk/uninstall.php | 0 packages/{models => lib}/.eslintrc.js | 0 packages/{utils => lib}/api/encryption.ts | 0 packages/{utils => lib}/api/index.ts | 0 packages/{utils => lib}/api/storage.ts | 0 packages/{utils => lib}/api/utils.ts | 0 packages/{utils => lib}/index.ts | 0 packages/{utils => lib}/package.json | 8 +- packages/{utils => lib}/phoneCountries.ts | 0 .../{utils => lib}/playwright/baseConfig.ts | 0 .../playwright/databaseActions.ts | 11 +- .../playwright/databaseHelpers.ts | 2 +- .../playwright/databaseSetup.ts | 7 +- .../{utils => lib}/playwright/globalSetup.ts | 0 .../{utils => lib}/playwright/testHelpers.ts | 0 packages/{utils => lib}/pricing.ts | 4 +- packages/{utils => lib}/results.ts | 2 +- .../telemetry/sendTelemetryEvent.ts | 2 +- packages/{utils => lib}/tsconfig.json | 2 +- packages/{utils => lib}/utils.ts | 10 +- packages/{db => prisma}/.env.example | 0 packages/{db => prisma}/README.md | 0 packages/{db => prisma}/index.ts | 0 packages/{db => prisma}/mysql/schema.prisma | 0 packages/{db => prisma}/package.json | 5 +- .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../20220301103112_add_logs/migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../20220603074700_add_tokens/migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../20221123121854_test/migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../20230201100009_set_not_null/migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../postgresql/migrations/migration_lock.toml | 0 .../{db => prisma}/postgresql/schema.prisma | 0 .../{db => prisma}/scripts/db-generate.ts | 0 packages/{db => prisma}/scripts/db-push.ts | 0 .../{db => prisma}/scripts/executeCommand.ts | 0 .../{db => prisma}/scripts/migrate-deploy.ts | 0 .../{db => prisma}/scripts/migrate-dev.ts | 0 packages/{db => prisma}/scripts/studio.ts | 0 packages/{db => prisma}/tsconfig.json | 2 +- packages/{utils => schemas}/.eslintrc.js | 0 .../{models => schemas}/features/answer.ts | 2 +- .../features/billing/invoice.ts | 0 .../features/billing/subscription.ts | 0 .../features/blocks/baseSchemas.ts | 2 +- .../features/blocks/bubbles/audio.ts | 0 .../features/blocks/bubbles/embed.ts | 0 .../features/blocks/bubbles/enums.ts | 0 .../features/blocks/bubbles/image.ts | 0 .../features/blocks/bubbles/index.ts | 0 .../features/blocks/bubbles/text.ts | 0 .../features/blocks/bubbles/video/enums.ts | 0 .../features/blocks/bubbles/video/index.ts | 0 .../features/blocks/bubbles/video/schemas.ts | 0 .../features/blocks/index.ts | 0 .../features/blocks/inputs/choice.ts | 0 .../features/blocks/inputs/constants.ts | 0 .../features/blocks/inputs/date.ts | 0 .../features/blocks/inputs/email.ts | 0 .../features/blocks/inputs/enums.ts | 0 .../features/blocks/inputs/file.ts | 0 .../features/blocks/inputs/index.ts | 0 .../features/blocks/inputs/number.ts | 0 .../features/blocks/inputs/payment/enums.ts | 0 .../features/blocks/inputs/payment/index.ts | 0 .../features/blocks/inputs/payment/schemas.ts | 0 .../features/blocks/inputs/phone.ts | 0 .../features/blocks/inputs/rating.ts | 0 .../features/blocks/inputs/text.ts | 0 .../features/blocks/inputs/url.ts | 0 .../features/blocks/integrations/chatwoot.ts | 0 .../features/blocks/integrations/enums.ts | 0 .../blocks/integrations/googleAnalytics.ts | 0 .../blocks/integrations/googleSheets/enums.ts | 0 .../blocks/integrations/googleSheets/index.ts | 0 .../integrations/googleSheets/schemas.ts | 0 .../features/blocks/integrations/index.ts | 0 .../features/blocks/integrations/makeCom.ts | 0 .../features/blocks/integrations/openai.ts | 0 .../blocks/integrations/pabblyConnect.ts | 0 .../features/blocks/integrations/sendEmail.ts | 0 .../features/blocks/integrations/webhook.ts | 0 .../features/blocks/integrations/zapier.ts | 0 .../features/blocks/logic/condition.ts | 0 .../features/blocks/logic/enums.ts | 0 .../features/blocks/logic/index.ts | 0 .../features/blocks/logic/jump.ts | 0 .../features/blocks/logic/redirect.ts | 0 .../features/blocks/logic/script.ts | 0 .../features/blocks/logic/setVariable.ts | 0 .../features/blocks/logic/typebotLink.ts | 0 .../features/blocks/logic/wait.ts | 0 .../features/blocks/schemas.ts | 0 .../features/blocks/start/index.ts | 0 .../features/blocks/start/schemas.ts | 0 packages/{models => schemas}/features/chat.ts | 0 .../features/credentials.ts | 0 .../features/items/baseSchemas.ts | 0 .../features/items/enums.ts | 0 .../features/items/index.ts | 0 .../features/items/schemas.ts | 0 .../features/items/types.ts | 0 .../features/publicTypebot.ts | 2 +- .../{models => schemas}/features/result.ts | 2 +- .../{models => schemas}/features/telemetry.ts | 2 +- .../features/typebot/index.ts | 0 .../features/typebot/settings.ts | 0 .../features/typebot/theme/enums.ts | 0 .../features/typebot/theme/index.ts | 0 .../features/typebot/theme/schemas.ts | 0 .../features/typebot/typebot.ts | 2 +- .../features/typebot/variable.ts | 0 .../{models => schemas}/features/utils.ts | 0 .../{models => schemas}/features/webhooks.ts | 2 +- .../{models => schemas}/features/workspace.ts | 2 +- packages/{models => schemas}/index.ts | 0 packages/{models => schemas}/package.json | 6 +- packages/{models => schemas}/tsconfig.json | 2 +- packages/scripts/bulkUpdate.ts | 6 +- packages/scripts/cleanDatabase.ts | 2 +- packages/scripts/fixTypebots.ts | 6 +- packages/scripts/package.json | 10 +- packages/scripts/playground.ts | 4 +- packages/scripts/sendTotalResultsDigest.ts | 8 +- packages/scripts/setCustomPlan.ts | 2 +- packages/scripts/utils.ts | 2 +- packages/tsconfig/package.json | 3 +- pnpm-lock.yaml | 2914 ++++++++--------- pnpm-workspace.yaml | 2 + .../builder-entrypoint.sh | 4 +- env.sh => scripts/env.sh | 0 .../viewer-entrypoint.sh | 0 turbo.json | 16 +- 987 files changed, 2657 insertions(+), 2711 deletions(-) delete mode 100644 entrypoint.sh delete mode 100644 packages/bot-engine/src/features/blocks/inputs/payment/index.ts rename packages/{ => deprecated}/bot-engine/.eslintrc.js (100%) rename packages/{ => deprecated}/bot-engine/README.md (100%) rename packages/{ => deprecated}/bot-engine/package.json (84%) rename packages/{ => deprecated}/bot-engine/postcss.config.js (100%) rename packages/{ => deprecated}/bot-engine/src/assets/importantStyles.css (100%) rename packages/{ => deprecated}/bot-engine/src/assets/phone.css (100%) rename packages/{ => deprecated}/bot-engine/src/assets/style.css (100%) rename packages/{ => deprecated}/bot-engine/src/components/ChatGroup/AvatarSideContainer.tsx (96%) rename packages/{ => deprecated}/bot-engine/src/components/ChatGroup/ChatBlock/InputChatBlock.tsx (97%) rename packages/{ => deprecated}/bot-engine/src/components/ChatGroup/ChatBlock/bubbles/GuestBubble.tsx (100%) rename packages/{ => deprecated}/bot-engine/src/components/ChatGroup/ChatBlock/bubbles/HostBubble.tsx (94%) rename packages/{ => deprecated}/bot-engine/src/components/ChatGroup/ChatGroup.tsx (99%) rename packages/{ => deprecated}/bot-engine/src/components/ChatGroup/index.tsx (100%) rename packages/{ => deprecated}/bot-engine/src/components/ConversationContainer.tsx (93%) rename packages/{ => deprecated}/bot-engine/src/components/LiteBadge.tsx (93%) rename packages/{ => deprecated}/bot-engine/src/components/PopupBlockedToast.tsx (100%) rename packages/{ => deprecated}/bot-engine/src/components/SendButton.tsx (100%) rename packages/{ => deprecated}/bot-engine/src/components/TypebotViewer.tsx (87%) rename packages/{ => deprecated}/bot-engine/src/components/TypingBubble.tsx (100%) rename packages/{ => deprecated}/bot-engine/src/components/avatars/Avatar.tsx (93%) rename packages/{ => deprecated}/bot-engine/src/components/avatars/DefaultAvatar.tsx (100%) rename packages/{ => deprecated}/bot-engine/src/components/global.d.ts (100%) rename packages/{ => deprecated}/bot-engine/src/components/icons.tsx (100%) rename packages/{ => deprecated}/bot-engine/src/components/inputs/ShortTextInput.tsx (100%) rename packages/{ => deprecated}/bot-engine/src/components/inputs/Textarea.tsx (100%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/bubbles/audio/components/AudioBubble.tsx (97%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/bubbles/audio/components/index.ts (100%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/bubbles/audio/index.ts (100%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/bubbles/embed/components/EmbedBubble.tsx (97%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/bubbles/embed/index.ts (100%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/bubbles/image/components/ImageBubble.tsx (97%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/bubbles/image/index.ts (100%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/bubbles/textBubble/components/TextBubble.tsx (97%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/bubbles/textBubble/index.ts (100%) rename packages/{js => deprecated/bot-engine}/src/features/blocks/bubbles/textBubble/utils/computeTypingDuration.ts (90%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/bubbles/video/components/VideoBubble.tsx (99%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/bubbles/video/index.ts (100%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/inputs/buttons/components/ChoiceForm.tsx (98%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/inputs/buttons/index.ts (100%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/inputs/date/components/DateForm.tsx (98%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/inputs/date/index.ts (100%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/inputs/date/utils/parseReadableDate.ts (100%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/inputs/email/components/EmailInput.tsx (97%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/inputs/email/index.ts (100%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/inputs/email/utils/validateEmail.ts (100%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/inputs/fileUpload/components/FileUploadForm.tsx (98%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/inputs/fileUpload/index.ts (100%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/inputs/number/components/NumberInput.tsx (97%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/inputs/number/index.ts (100%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/inputs/payment/components/PaymentForm/PaymentForm.tsx (83%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/inputs/payment/components/PaymentForm/StripePaymentForm.tsx (93%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/inputs/payment/components/PaymentForm/index.tsx (100%) create mode 100644 packages/deprecated/bot-engine/src/features/blocks/inputs/payment/index.ts rename packages/{ => deprecated}/bot-engine/src/features/blocks/inputs/payment/queries/createPaymentIntentQuery.ts (79%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/inputs/phone/components/PhoneInput.tsx (96%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/inputs/phone/index.ts (100%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/inputs/phone/utils/validatePhoneNumber.ts (100%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/inputs/rating/components/RatingForm.tsx (95%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/inputs/rating/index.ts (100%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/inputs/textInput/components/TextInput.tsx (97%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/inputs/textInput/index.ts (100%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/inputs/url/components/UrlInput.tsx (97%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/inputs/url/index.ts (100%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/inputs/url/utils/validateUrl.ts (100%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/integrations/chatwoot/index.ts (100%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/integrations/chatwoot/utils/executeChatwootBlock.ts (96%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/integrations/googleAnalytics/index.ts (100%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/integrations/googleAnalytics/utils/executeGoogleAnalyticsBlock.ts (90%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/integrations/googleSheets/index.ts (100%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/integrations/googleSheets/utils/executeGoogleSheetBlock.ts (98%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/integrations/sendEmail/index.ts (100%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/integrations/sendEmail/utils/executeSendEmailBlock.ts (93%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/integrations/webhook/index.ts (100%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/integrations/webhook/utils/executeWebhookBlock.ts (96%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/logic/condition/index.ts (100%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/logic/condition/utils/executeCondition.ts (95%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/logic/condition/utils/index.ts (100%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/logic/redirect/index.ts (100%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/logic/redirect/utils/executeRedirect.ts (91%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/logic/script/executeScript.ts (94%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/logic/setVariable/index.ts (100%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/logic/setVariable/utils/executeSetVariable.ts (92%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/logic/typebotLink/index.ts (100%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/logic/typebotLink/queries/fetchAndInjectTypebotQuery.ts (83%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/logic/typebotLink/utils/executeTypebotLink.ts (96%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/logic/wait/index.ts (100%) rename packages/{ => deprecated}/bot-engine/src/features/blocks/logic/wait/utils/executeWait.ts (92%) rename packages/{ => deprecated}/bot-engine/src/features/theme/index.ts (100%) rename packages/{ => deprecated}/bot-engine/src/features/theme/utils/setCssVariablesValue.ts (99%) rename packages/{ => deprecated}/bot-engine/src/features/variables/index.ts (100%) rename packages/{ => deprecated}/bot-engine/src/features/variables/utils.ts (95%) rename packages/{ => deprecated}/bot-engine/src/index.ts (100%) rename packages/{js => deprecated/bot-engine}/src/lib/gtag.ts (95%) rename packages/{ => deprecated}/bot-engine/src/lib/stripe.ts (100%) rename packages/{ => deprecated}/bot-engine/src/providers/AnswersProvider.tsx (97%) rename packages/{ => deprecated}/bot-engine/src/providers/ChatProvider.tsx (100%) rename packages/{ => deprecated}/bot-engine/src/providers/TypebotProvider.tsx (97%) rename packages/{ => deprecated}/bot-engine/src/types.ts (95%) rename packages/{ => deprecated}/bot-engine/src/utils/chat.ts (87%) rename packages/{ => deprecated}/bot-engine/src/utils/executeIntegration.ts (94%) rename packages/{ => deprecated}/bot-engine/src/utils/executeLogic.ts (95%) rename packages/{ => deprecated}/bot-engine/src/utils/helpers.ts (95%) rename packages/{ => deprecated}/bot-engine/src/utils/inputs.ts (95%) rename packages/{ => deprecated}/bot-engine/tailwind.config.js (100%) rename packages/{ => deprecated}/bot-engine/tsconfig.json (68%) rename packages/{ => deprecated}/bot-engine/tsup.config.js (100%) rename packages/{ => deprecated}/typebot-js/.eslintrc.js (100%) rename packages/{ => deprecated}/typebot-js/.npmignore (100%) rename packages/{ => deprecated}/typebot-js/README.md (100%) rename packages/{ => deprecated}/typebot-js/__mocks__/styleMock.js (100%) rename packages/{ => deprecated}/typebot-js/examples/chatEmbedExample.html (100%) rename packages/{ => deprecated}/typebot-js/examples/containerEmbedExample.html (100%) rename packages/{ => deprecated}/typebot-js/examples/popupEmbedExample.html (100%) rename packages/{ => deprecated}/typebot-js/jest.config.js (100%) rename packages/{ => deprecated}/typebot-js/package.json (93%) rename packages/{ => deprecated}/typebot-js/src/commands/close.ts (100%) rename packages/{ => deprecated}/typebot-js/src/commands/hideMessage.ts (100%) rename packages/{ => deprecated}/typebot-js/src/commands/index.ts (100%) rename packages/{ => deprecated}/typebot-js/src/commands/open.ts (100%) rename packages/{ => deprecated}/typebot-js/src/commands/setHiddenVariables.ts (100%) rename packages/{ => deprecated}/typebot-js/src/commands/showMessage.ts (100%) rename packages/{ => deprecated}/typebot-js/src/commands/toggle.ts (100%) rename packages/{ => deprecated}/typebot-js/src/embedTypes/chat/button.ts (100%) rename packages/{ => deprecated}/typebot-js/src/embedTypes/chat/iframe.ts (100%) rename packages/{ => deprecated}/typebot-js/src/embedTypes/chat/index.ts (100%) rename packages/{ => deprecated}/typebot-js/src/embedTypes/chat/proactiveMessage.ts (97%) rename packages/{ => deprecated}/typebot-js/src/embedTypes/chat/style.css (100%) rename packages/{ => deprecated}/typebot-js/src/embedTypes/container/index.ts (100%) rename packages/{ => deprecated}/typebot-js/src/embedTypes/popup/index.ts (100%) rename packages/{ => deprecated}/typebot-js/src/embedTypes/popup/style.css (100%) rename packages/{ => deprecated}/typebot-js/src/iframe/index.ts (100%) rename packages/{ => deprecated}/typebot-js/src/iframe/style.css (100%) rename packages/{ => deprecated}/typebot-js/src/index.ts (100%) rename packages/{ => deprecated}/typebot-js/src/types.ts (100%) rename packages/{ => deprecated}/typebot-js/tests/chat/button.spec.ts (100%) rename packages/{ => deprecated}/typebot-js/tests/chat/commands.spec.ts (100%) rename packages/{ => deprecated}/typebot-js/tests/chat/index.spec.ts (100%) rename packages/{ => deprecated}/typebot-js/tests/chat/proactiveMessage.spec.ts (100%) rename packages/{ => deprecated}/typebot-js/tests/container.spec.ts (100%) rename packages/{ => deprecated}/typebot-js/tests/iframe.spec.ts (100%) rename packages/{ => deprecated}/typebot-js/tests/popup.spec.ts (100%) rename packages/{ => deprecated}/typebot-js/tsconfig.json (59%) rename packages/{ => deprecated}/typebot-js/tsup.config.js (100%) rename packages/{ => embeds}/js/.eslintignore (100%) rename packages/{ => embeds}/js/.eslintrc.cjs (100%) rename packages/{ => embeds}/js/.gitignore (100%) rename packages/{ => embeds}/js/.npmignore (100%) rename packages/{ => embeds}/js/.npmrc (100%) rename packages/{ => embeds}/js/README.md (100%) rename packages/{ => embeds}/js/package.json (90%) rename packages/{ => embeds}/js/rollup.config.js (100%) rename packages/{ => embeds}/js/src/assets/immutable.css (100%) rename packages/{ => embeds}/js/src/assets/index.css (100%) rename packages/{ => embeds}/js/src/components/Bot.tsx (99%) rename packages/{ => embeds}/js/src/components/ConversationContainer/AvatarSideContainer.tsx (100%) rename packages/{ => embeds}/js/src/components/ConversationContainer/ChatChunk.tsx (97%) rename packages/{ => embeds}/js/src/components/ConversationContainer/ConversationContainer.tsx (98%) rename packages/{ => embeds}/js/src/components/ConversationContainer/LoadingChunk.tsx (92%) rename packages/{ => embeds}/js/src/components/ConversationContainer/PopupBlockedToast.tsx (100%) rename packages/{ => embeds}/js/src/components/ConversationContainer/index.ts (100%) rename packages/{ => embeds}/js/src/components/ErrorMessage.tsx (100%) rename packages/{ => embeds}/js/src/components/InputChatBlock.tsx (97%) rename packages/{ => embeds}/js/src/components/LiteBadge.tsx (100%) rename packages/{ => embeds}/js/src/components/SendButton.tsx (100%) rename packages/{ => embeds}/js/src/components/TypingBubble.tsx (100%) rename packages/{ => embeds}/js/src/components/avatars/Avatar.tsx (95%) rename packages/{ => embeds}/js/src/components/avatars/DefaultAvatar.tsx (100%) rename packages/{ => embeds}/js/src/components/bubbles/GuestBubble.tsx (100%) rename packages/{ => embeds}/js/src/components/bubbles/HostBubble.tsx (94%) rename packages/{ => embeds}/js/src/components/bubbles/LoadingBubble.tsx (100%) rename packages/{ => embeds}/js/src/components/icons/ChevronDownIcon.tsx (100%) rename packages/{ => embeds}/js/src/components/icons/SendIcon.tsx (100%) rename packages/{ => embeds}/js/src/components/icons/TypebotLogo.tsx (100%) rename packages/{ => embeds}/js/src/components/icons/index.ts (100%) rename packages/{ => embeds}/js/src/components/index.ts (100%) rename packages/{ => embeds}/js/src/components/inputs/ShortTextInput.tsx (100%) rename packages/{ => embeds}/js/src/components/inputs/Textarea.tsx (100%) rename packages/{ => embeds}/js/src/components/inputs/index.ts (100%) rename packages/{ => embeds}/js/src/constants.ts (100%) rename packages/{ => embeds}/js/src/env.d.ts (100%) rename packages/{ => embeds}/js/src/features/blocks/bubbles/audio/components/AudioBubble.tsx (96%) rename packages/{ => embeds}/js/src/features/blocks/bubbles/audio/components/index.ts (100%) rename packages/{ => embeds}/js/src/features/blocks/bubbles/audio/index.ts (100%) rename packages/{ => embeds}/js/src/features/blocks/bubbles/embed/components/EmbedBubble.tsx (96%) rename packages/{ => embeds}/js/src/features/blocks/bubbles/embed/components/index.ts (100%) rename packages/{ => embeds}/js/src/features/blocks/bubbles/embed/index.ts (100%) rename packages/{ => embeds}/js/src/features/blocks/bubbles/image/components/ImageBubble.tsx (96%) rename packages/{ => embeds}/js/src/features/blocks/bubbles/image/index.ts (100%) rename packages/{ => embeds}/js/src/features/blocks/bubbles/textBubble/components/TextBubble.tsx (96%) rename packages/{ => embeds}/js/src/features/blocks/bubbles/textBubble/index.ts (100%) rename packages/{bot-engine => embeds/js}/src/features/blocks/bubbles/textBubble/utils/computeTypingDuration.ts (89%) rename packages/{ => embeds}/js/src/features/blocks/bubbles/video/components/VideoBubble.tsx (94%) rename packages/{ => embeds}/js/src/features/blocks/bubbles/video/index.ts (100%) rename packages/{ => embeds}/js/src/features/blocks/inputs/buttons/components/ChoiceForm.tsx (97%) rename packages/{ => embeds}/js/src/features/blocks/inputs/buttons/index.ts (100%) rename packages/{ => embeds}/js/src/features/blocks/inputs/date/components/DateForm.tsx (98%) rename packages/{ => embeds}/js/src/features/blocks/inputs/date/index.ts (100%) rename packages/{ => embeds}/js/src/features/blocks/inputs/date/utils/parseReadableDate.ts (100%) rename packages/{ => embeds}/js/src/features/blocks/inputs/email/components/EmailInput.tsx (96%) rename packages/{ => embeds}/js/src/features/blocks/inputs/email/index.ts (100%) rename packages/{ => embeds}/js/src/features/blocks/inputs/fileUpload/components/FileUploadForm.tsx (97%) rename packages/{ => embeds}/js/src/features/blocks/inputs/fileUpload/index.ts (100%) rename packages/{ => embeds}/js/src/features/blocks/inputs/number/components/NumberInput.tsx (96%) rename packages/{ => embeds}/js/src/features/blocks/inputs/number/index.ts (100%) rename packages/{ => embeds}/js/src/features/blocks/inputs/payment/components/PaymentForm.tsx (75%) rename packages/{ => embeds}/js/src/features/blocks/inputs/payment/components/StripePaymentForm.tsx (97%) rename packages/{ => embeds}/js/src/features/blocks/inputs/payment/components/index.ts (100%) rename packages/{ => embeds}/js/src/features/blocks/inputs/payment/index.ts (100%) rename packages/{ => embeds}/js/src/features/blocks/inputs/phone/components/PhoneInput.tsx (96%) rename packages/{ => embeds}/js/src/features/blocks/inputs/phone/index.ts (100%) rename packages/{ => embeds}/js/src/features/blocks/inputs/rating/components/RatingForm.tsx (96%) rename packages/{ => embeds}/js/src/features/blocks/inputs/rating/index.ts (100%) rename packages/{ => embeds}/js/src/features/blocks/inputs/textInput/components/TextInput.tsx (97%) rename packages/{ => embeds}/js/src/features/blocks/inputs/textInput/index.ts (100%) rename packages/{ => embeds}/js/src/features/blocks/inputs/url/components/UrlInput.tsx (97%) rename packages/{ => embeds}/js/src/features/blocks/inputs/url/index.ts (100%) rename packages/{ => embeds}/js/src/features/blocks/integrations/chatwoot/index.ts (100%) rename packages/{ => embeds}/js/src/features/blocks/integrations/chatwoot/utils/executeChatwoot.ts (77%) rename packages/{ => embeds}/js/src/features/blocks/integrations/chatwoot/utils/index.ts (100%) rename packages/{ => embeds}/js/src/features/blocks/integrations/googleAnalytics/index.ts (100%) rename packages/{ => embeds}/js/src/features/blocks/integrations/googleAnalytics/utils/executeGoogleAnalytics.ts (82%) rename packages/{ => embeds}/js/src/features/blocks/integrations/googleAnalytics/utils/index.ts (100%) rename packages/{ => embeds}/js/src/features/blocks/logic/redirect/index.ts (100%) rename packages/{ => embeds}/js/src/features/blocks/logic/redirect/utils/executeRedirect.ts (82%) rename packages/{ => embeds}/js/src/features/blocks/logic/redirect/utils/index.ts (100%) rename packages/{ => embeds}/js/src/features/blocks/logic/script/executeScript.ts (88%) rename packages/{ => embeds}/js/src/features/blocks/logic/wait/utils/executeWait.ts (100%) rename packages/{ => embeds}/js/src/features/bubble/components/Bubble.tsx (99%) rename packages/{ => embeds}/js/src/features/bubble/components/BubbleButton.tsx (97%) rename packages/{ => embeds}/js/src/features/bubble/components/PreviewMessage.tsx (100%) rename packages/{ => embeds}/js/src/features/bubble/components/index.ts (100%) rename packages/{ => embeds}/js/src/features/bubble/index.ts (100%) rename packages/{ => embeds}/js/src/features/bubble/types.ts (100%) rename packages/{ => embeds}/js/src/features/commands/index.ts (100%) rename packages/{ => embeds}/js/src/features/commands/types.ts (100%) rename packages/{ => embeds}/js/src/features/commands/utils/close.ts (100%) rename packages/{ => embeds}/js/src/features/commands/utils/hidePreviewMessage.ts (100%) rename packages/{ => embeds}/js/src/features/commands/utils/index.ts (100%) rename packages/{ => embeds}/js/src/features/commands/utils/open.ts (100%) rename packages/{ => embeds}/js/src/features/commands/utils/setPrefilledVariables.ts (100%) rename packages/{ => embeds}/js/src/features/commands/utils/showPreviewMessage.ts (100%) rename packages/{ => embeds}/js/src/features/commands/utils/toggle.ts (100%) rename packages/{ => embeds}/js/src/features/popup/components/Popup.tsx (98%) rename packages/{ => embeds}/js/src/features/popup/components/index.ts (100%) rename packages/{ => embeds}/js/src/features/popup/index.ts (100%) rename packages/{ => embeds}/js/src/features/popup/types.ts (100%) rename packages/{ => embeds}/js/src/features/standard/components/Standard.tsx (100%) rename packages/{ => embeds}/js/src/features/standard/components/index.ts (100%) rename packages/{ => embeds}/js/src/features/standard/index.ts (100%) rename packages/{ => embeds}/js/src/global.d.ts (100%) rename packages/{ => embeds}/js/src/index.ts (100%) rename packages/{bot-engine => embeds/js}/src/lib/gtag.ts (94%) rename packages/{ => embeds}/js/src/lib/stripe.ts (100%) rename packages/{ => embeds}/js/src/queries/getInitialChatReplyQuery.ts (84%) rename packages/{ => embeds}/js/src/queries/sendMessageQuery.ts (73%) rename packages/{ => embeds}/js/src/register.tsx (100%) rename packages/{ => embeds}/js/src/types.ts (88%) rename packages/{ => embeds}/js/src/utils/executeClientSideActions.ts (95%) rename packages/{ => embeds}/js/src/utils/guessApiHost.ts (78%) rename packages/{ => embeds}/js/src/utils/injectHeadCode.ts (100%) rename packages/{ => embeds}/js/src/utils/isMobileSignal.ts (100%) rename packages/{ => embeds}/js/src/utils/sessionStorage.ts (100%) rename packages/{ => embeds}/js/src/utils/setCssVariablesValue.ts (97%) rename packages/{ => embeds}/js/src/web.ts (100%) rename packages/{ => embeds}/js/src/window.ts (100%) rename packages/{ => embeds}/js/tailwind.config.cjs (100%) rename packages/{ => embeds}/js/tsconfig.json (88%) rename packages/{ => embeds}/react/.env.local.example (100%) rename packages/{ => embeds}/react/.eslintrc.cjs (100%) rename packages/{ => embeds}/react/.npmignore (100%) rename packages/{ => embeds}/react/.npmrc (100%) rename packages/{ => embeds}/react/README.md (100%) rename packages/{ => embeds}/react/package.json (88%) rename packages/{ => embeds}/react/rollup.config.js (100%) rename packages/{ => embeds}/react/src/Bubble.tsx (100%) rename packages/{ => embeds}/react/src/Popup.tsx (100%) rename packages/{ => embeds}/react/src/Standard.tsx (100%) rename packages/{ => embeds}/react/src/index.ts (100%) rename packages/{ => embeds}/react/src/stories/assets/leadGenerationTypebot.ts (99%) rename packages/{ => embeds}/react/src/stories/bubble.stories.tsx (100%) rename packages/{ => embeds}/react/src/stories/popup.stories.tsx (100%) rename packages/{ => embeds}/react/src/stories/standard.stories.tsx (100%) rename packages/{ => embeds}/react/tsconfig.json (80%) rename packages/{ => embeds}/wordpress/README.md (100%) rename packages/{ => embeds}/wordpress/assets/banner-1544x500.png (100%) rename packages/{ => embeds}/wordpress/assets/icon-256x256.png (100%) rename packages/{ => embeds}/wordpress/package.json (92%) rename packages/{ => embeds}/wordpress/trunk/LICENSE.txt (100%) rename packages/{ => embeds}/wordpress/trunk/README.txt (100%) rename packages/{ => embeds}/wordpress/trunk/admin/class-typebot-admin.php (100%) rename packages/{ => embeds}/wordpress/trunk/admin/index.php (100%) rename packages/{ => embeds}/wordpress/trunk/admin/partials/typebot-admin-display.php (100%) rename packages/{ => embeds}/wordpress/trunk/includes/class-typebot-activator.php (100%) rename packages/{ => embeds}/wordpress/trunk/includes/class-typebot-deactivator.php (100%) rename packages/{ => embeds}/wordpress/trunk/includes/class-typebot-i18n.php (100%) rename packages/{ => embeds}/wordpress/trunk/includes/class-typebot-loader.php (100%) rename packages/{ => embeds}/wordpress/trunk/includes/class-typebot.php (100%) rename packages/{ => embeds}/wordpress/trunk/includes/index.php (100%) rename packages/{ => embeds}/wordpress/trunk/index.php (100%) rename packages/{ => embeds}/wordpress/trunk/languages/plugin-name.pot (100%) rename packages/{ => embeds}/wordpress/trunk/public/class-typebot-public.php (100%) rename packages/{ => embeds}/wordpress/trunk/public/index.php (100%) rename packages/{ => embeds}/wordpress/trunk/typebot.php (100%) rename packages/{ => embeds}/wordpress/trunk/uninstall.php (100%) rename packages/{models => lib}/.eslintrc.js (100%) rename packages/{utils => lib}/api/encryption.ts (100%) rename packages/{utils => lib}/api/index.ts (100%) rename packages/{utils => lib}/api/storage.ts (100%) rename packages/{utils => lib}/api/utils.ts (100%) rename packages/{utils => lib}/index.ts (100%) rename packages/{utils => lib}/package.json (77%) rename packages/{utils => lib}/phoneCountries.ts (100%) rename packages/{utils => lib}/playwright/baseConfig.ts (100%) rename packages/{utils => lib}/playwright/databaseActions.ts (97%) rename packages/{utils => lib}/playwright/databaseHelpers.ts (98%) rename packages/{utils => lib}/playwright/databaseSetup.ts (97%) rename packages/{utils => lib}/playwright/globalSetup.ts (100%) rename packages/{utils => lib}/playwright/testHelpers.ts (100%) rename packages/{utils => lib}/pricing.ts (98%) rename packages/{utils => lib}/results.ts (99%) rename packages/{utils => lib}/telemetry/sendTelemetryEvent.ts (91%) rename packages/{utils => lib}/tsconfig.json (56%) rename packages/{utils => lib}/utils.ts (96%) rename packages/{db => prisma}/.env.example (100%) rename packages/{db => prisma}/README.md (100%) rename packages/{db => prisma}/index.ts (100%) rename packages/{db => prisma}/mysql/schema.prisma (100%) rename packages/{db => prisma}/package.json (87%) rename packages/{db => prisma}/postgresql/migrations/20220214162352_initial_schema/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20220217161047_add_prefilled_variables/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20220218135618_add_custom_domains/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20220218171811_add_unique_constraints/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20220221055630_add_api_token/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20220222091415_add_updated_at_fields/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20220224101209_add_collaboration/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20220224135151_add_created_at_and_updated_at_fields/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20220301060138_add_webhook_table/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20220301103112_add_logs/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20220322064218_add_custom_domain_primary_key/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20220322143206_add_company_and_categories/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20220328144519_rename_prefilled_variables/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20220401140029_add_icon_on_typebot/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20220408192635_add_editor_navigation/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20220513223344_add_workspaces/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20220514235014_remove_owner_id/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20220603074700_add_tokens/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20220604084638_remove_public_typebot_duplicates/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20220607063609_required_workspace/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20220609085335_rename_block_to_group/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20220621144946_add_usage_fields/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20220624090915_add_result_fk_indices/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20220624120243_add_is_archived_on_result/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20220701154116_add_table_preferences/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20220713061342_switch_block_group_id_on_old_answers/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20220918083055_add_usage_based_pricing/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20220925181003_remove_cascade_delete_on_result/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20221001063449_add_is_archive_to_typebot/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20221006063227_add_is_closed_to_typebot/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20221020070814_remove_duplicate_answer_index/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20221020070833_add_typebot_id_index_in_result/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20221028145148_add_claimable_custom_plan/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20221123121854_test/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20221129090341_add_chat_session/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20221206182055_add_workspace_id_index_in_typebot_table/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20221206182113_add_created_at_index_in_result/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20221206182126_add_has_started_index_in_result/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20221207070502_optimize_result_indexes/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20221208094821_add_typebot_id_index_in_result/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20221219142712_add_app_appearance_preference/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20230124131622_migrate_default_background_color/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20230127133558_add_unlimited_plan/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20230127153202_remove_useless_published_typebot_id/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20230201082042_remove_scalar_list_types/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20230201100009_set_not_null/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20230203065215_add_missing_updated_at_fields/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20230220085522_add_version_fields/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/20230307144424_remove_updated_at_on_result/migration.sql (100%) rename packages/{db => prisma}/postgresql/migrations/migration_lock.toml (100%) rename packages/{db => prisma}/postgresql/schema.prisma (100%) rename packages/{db => prisma}/scripts/db-generate.ts (100%) rename packages/{db => prisma}/scripts/db-push.ts (100%) rename packages/{db => prisma}/scripts/executeCommand.ts (100%) rename packages/{db => prisma}/scripts/migrate-deploy.ts (100%) rename packages/{db => prisma}/scripts/migrate-dev.ts (100%) rename packages/{db => prisma}/scripts/studio.ts (100%) rename packages/{db => prisma}/tsconfig.json (56%) rename packages/{utils => schemas}/.eslintrc.js (100%) rename packages/{models => schemas}/features/answer.ts (92%) rename packages/{models => schemas}/features/billing/invoice.ts (100%) rename packages/{models => schemas}/features/billing/subscription.ts (100%) rename packages/{models => schemas}/features/blocks/baseSchemas.ts (86%) rename packages/{models => schemas}/features/blocks/bubbles/audio.ts (100%) rename packages/{models => schemas}/features/blocks/bubbles/embed.ts (100%) rename packages/{models => schemas}/features/blocks/bubbles/enums.ts (100%) rename packages/{models => schemas}/features/blocks/bubbles/image.ts (100%) rename packages/{models => schemas}/features/blocks/bubbles/index.ts (100%) rename packages/{models => schemas}/features/blocks/bubbles/text.ts (100%) rename packages/{models => schemas}/features/blocks/bubbles/video/enums.ts (100%) rename packages/{models => schemas}/features/blocks/bubbles/video/index.ts (100%) rename packages/{models => schemas}/features/blocks/bubbles/video/schemas.ts (100%) rename packages/{models => schemas}/features/blocks/index.ts (100%) rename packages/{models => schemas}/features/blocks/inputs/choice.ts (100%) rename packages/{models => schemas}/features/blocks/inputs/constants.ts (100%) rename packages/{models => schemas}/features/blocks/inputs/date.ts (100%) rename packages/{models => schemas}/features/blocks/inputs/email.ts (100%) rename packages/{models => schemas}/features/blocks/inputs/enums.ts (100%) rename packages/{models => schemas}/features/blocks/inputs/file.ts (100%) rename packages/{models => schemas}/features/blocks/inputs/index.ts (100%) rename packages/{models => schemas}/features/blocks/inputs/number.ts (100%) rename packages/{models => schemas}/features/blocks/inputs/payment/enums.ts (100%) rename packages/{models => schemas}/features/blocks/inputs/payment/index.ts (100%) rename packages/{models => schemas}/features/blocks/inputs/payment/schemas.ts (100%) rename packages/{models => schemas}/features/blocks/inputs/phone.ts (100%) rename packages/{models => schemas}/features/blocks/inputs/rating.ts (100%) rename packages/{models => schemas}/features/blocks/inputs/text.ts (100%) rename packages/{models => schemas}/features/blocks/inputs/url.ts (100%) rename packages/{models => schemas}/features/blocks/integrations/chatwoot.ts (100%) rename packages/{models => schemas}/features/blocks/integrations/enums.ts (100%) rename packages/{models => schemas}/features/blocks/integrations/googleAnalytics.ts (100%) rename packages/{models => schemas}/features/blocks/integrations/googleSheets/enums.ts (100%) rename packages/{models => schemas}/features/blocks/integrations/googleSheets/index.ts (100%) rename packages/{models => schemas}/features/blocks/integrations/googleSheets/schemas.ts (100%) rename packages/{models => schemas}/features/blocks/integrations/index.ts (100%) rename packages/{models => schemas}/features/blocks/integrations/makeCom.ts (100%) rename packages/{models => schemas}/features/blocks/integrations/openai.ts (100%) rename packages/{models => schemas}/features/blocks/integrations/pabblyConnect.ts (100%) rename packages/{models => schemas}/features/blocks/integrations/sendEmail.ts (100%) rename packages/{models => schemas}/features/blocks/integrations/webhook.ts (100%) rename packages/{models => schemas}/features/blocks/integrations/zapier.ts (100%) rename packages/{models => schemas}/features/blocks/logic/condition.ts (100%) rename packages/{models => schemas}/features/blocks/logic/enums.ts (100%) rename packages/{models => schemas}/features/blocks/logic/index.ts (100%) rename packages/{models => schemas}/features/blocks/logic/jump.ts (100%) rename packages/{models => schemas}/features/blocks/logic/redirect.ts (100%) rename packages/{models => schemas}/features/blocks/logic/script.ts (100%) rename packages/{models => schemas}/features/blocks/logic/setVariable.ts (100%) rename packages/{models => schemas}/features/blocks/logic/typebotLink.ts (100%) rename packages/{models => schemas}/features/blocks/logic/wait.ts (100%) rename packages/{models => schemas}/features/blocks/schemas.ts (100%) rename packages/{models => schemas}/features/blocks/start/index.ts (100%) rename packages/{models => schemas}/features/blocks/start/schemas.ts (100%) rename packages/{models => schemas}/features/chat.ts (100%) rename packages/{models => schemas}/features/credentials.ts (100%) rename packages/{models => schemas}/features/items/baseSchemas.ts (100%) rename packages/{models => schemas}/features/items/enums.ts (100%) rename packages/{models => schemas}/features/items/index.ts (100%) rename packages/{models => schemas}/features/items/schemas.ts (100%) rename packages/{models => schemas}/features/items/types.ts (100%) rename packages/{models => schemas}/features/publicTypebot.ts (91%) rename packages/{models => schemas}/features/result.ts (95%) rename packages/{models => schemas}/features/telemetry.ts (97%) rename packages/{models => schemas}/features/typebot/index.ts (100%) rename packages/{models => schemas}/features/typebot/settings.ts (100%) rename packages/{models => schemas}/features/typebot/theme/enums.ts (100%) rename packages/{models => schemas}/features/typebot/theme/index.ts (100%) rename packages/{models => schemas}/features/typebot/theme/schemas.ts (100%) rename packages/{models => schemas}/features/typebot/typebot.ts (96%) rename packages/{models => schemas}/features/typebot/variable.ts (100%) rename packages/{models => schemas}/features/utils.ts (100%) rename packages/{models => schemas}/features/webhooks.ts (91%) rename packages/{models => schemas}/features/workspace.ts (98%) rename packages/{models => schemas}/index.ts (100%) rename packages/{models => schemas}/package.json (65%) rename packages/{models => schemas}/tsconfig.json (56%) rename builder-entrypoint.sh => scripts/builder-entrypoint.sh (51%) rename env.sh => scripts/env.sh (100%) rename viewer-entrypoint.sh => scripts/viewer-entrypoint.sh (100%) diff --git a/Dockerfile b/Dockerfile index 73ac1e08fda..78426d7fe02 100644 --- a/Dockerfile +++ b/Dockerfile @@ -32,14 +32,14 @@ RUN apt-get -qy update \ && apt-get autoremove -yq \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* -COPY ./packages/db ./packages/db +COPY ./packages/prisma ./packages/prisma COPY ./apps/${SCOPE}/.env.docker ./apps/${SCOPE}/.env.production COPY --from=builder /app/node_modules ./node_modules COPY --from=builder /app/apps/${SCOPE}/public ./apps/${SCOPE}/public COPY --from=builder --chown=node:node /app/apps/${SCOPE}/.next/standalone ./ COPY --from=builder --chown=node:node /app/apps/${SCOPE}/.next/static ./apps/${SCOPE}/.next/static -COPY env.sh ${SCOPE}-entrypoint.sh ./ +COPY scripts/env.sh scripts/${SCOPE}-entrypoint.sh ./ RUN chmod +x ./${SCOPE}-entrypoint.sh \ && chmod +x ./env.sh ENTRYPOINT ./${SCOPE}-entrypoint.sh diff --git a/apps/builder/next.config.js b/apps/builder/next.config.js index 6085ecb717a..1ddeeba8d31 100644 --- a/apps/builder/next.config.js +++ b/apps/builder/next.config.js @@ -1,12 +1,16 @@ /* eslint-disable @typescript-eslint/no-var-requires */ const { withSentryConfig } = require('@sentry/nextjs') const path = require('path') -const withTM = require('next-transpile-modules')(['utils', 'models', 'emails']) /** @type {import('next').NextConfig} */ -const nextConfig = withTM({ +const nextConfig = { reactStrictMode: true, output: 'standalone', + transpilePackages: [ + '@typebot.io/lib', + '@typebot.io/schemas', + '@typebot.io/emails', + ], i18n: { defaultLocale: 'en', locales: ['en', 'fr', 'pr'], @@ -27,7 +31,7 @@ const nextConfig = withTM({ }, ] }, -}) +} const sentryWebpackPluginOptions = { silent: true, diff --git a/apps/builder/package.json b/apps/builder/package.json index c9c169e46a6..6310f42b5fb 100644 --- a/apps/builder/package.json +++ b/apps/builder/package.json @@ -3,10 +3,10 @@ "version": "0.1.0", "license": "AGPL-3.0-or-later", "scripts": { - "dev": "cross-env ENVSH_ENV=.env.local bash ../../env.sh next dev -p 3000", - "build": "cross-env ENVSH_ENV=.env.local bash ../../env.sh next build", + "dev": "cross-env ENVSH_ENV=.env.local bash ../../scripts/env.sh next dev -p 3000", + "build": "cross-env ENVSH_ENV=.env.local bash ../../scripts/env.sh next build", "build:docker": "next build", - "build:env": "cd ../.. && cross-env ENVSH_ENV=./apps/builder/.env.docker ENVSH_OUTPUT=./apps/builder/public/__env.js bash env.sh", + "build:env": "cd ../.. && cross-env ENVSH_ENV=./apps/builder/.env.docker ENVSH_OUTPUT=./apps/builder/public/__env.js bash scripts/env.sh", "start": "next start", "lint": "next lint", "test": "pnpm playwright test", @@ -57,7 +57,7 @@ "codemirror": "6.0.1", "deep-object-diff": "1.1.9", "dequal": "2.0.3", - "emails": "workspace:*", + "@typebot.io/emails": "workspace:*", "emojilib": "3.0.8", "focus-visible": "5.2.0", "framer-motion": "10.3.0", @@ -112,16 +112,15 @@ "@types/qs": "6.9.7", "@types/react": "18.0.28", "@types/tinycolor2": "1.4.3", - "db": "workspace:*", + "@typebot.io/prisma": "workspace:*", "dotenv": "16.0.3", "eslint": "8.36.0", "eslint-config-custom": "workspace:*", - "models": "workspace:*", - "next-transpile-modules": "10.0.0", + "@typebot.io/schemas": "workspace:*", "superjson": "^1.12.2", - "tsconfig": "workspace:*", + "@typebot.io/tsconfig": "workspace:*", "typescript": "4.9.5", - "utils": "workspace:*", + "@typebot.io/lib": "workspace:*", "zod": "3.21.4" } } diff --git a/apps/builder/playwright.config.ts b/apps/builder/playwright.config.ts index bfc5e56baeb..9e00557afd9 100644 --- a/apps/builder/playwright.config.ts +++ b/apps/builder/playwright.config.ts @@ -1,6 +1,6 @@ import { PlaywrightTestConfig } from '@playwright/test' import path from 'path' -import { playwrightBaseConfig } from 'utils/playwright/baseConfig' +import { playwrightBaseConfig } from '@typebot.io/lib/playwright/baseConfig' const config: PlaywrightTestConfig = { ...playwrightBaseConfig, diff --git a/apps/builder/src/components/ImageUploadContent/GiphySearchForm.tsx b/apps/builder/src/components/ImageUploadContent/GiphySearchForm.tsx index 6a5e3655505..b5361742f57 100644 --- a/apps/builder/src/components/ImageUploadContent/GiphySearchForm.tsx +++ b/apps/builder/src/components/ImageUploadContent/GiphySearchForm.tsx @@ -3,7 +3,7 @@ import { GiphyFetch } from '@giphy/js-fetch-api' import { Grid } from '@giphy/react-components' import { GiphyLogo } from './GiphyLogo' import React, { useState } from 'react' -import { env, isEmpty } from 'utils' +import { env, isEmpty } from '@typebot.io/lib' import { TextInput } from '../inputs' type GiphySearchFormProps = { diff --git a/apps/builder/src/components/ImageUploadContent/UploadButton.tsx b/apps/builder/src/components/ImageUploadContent/UploadButton.tsx index 6293e11010d..ccb234107ce 100644 --- a/apps/builder/src/components/ImageUploadContent/UploadButton.tsx +++ b/apps/builder/src/components/ImageUploadContent/UploadButton.tsx @@ -2,7 +2,7 @@ import { useToast } from '@/hooks/useToast' import { compressFile } from '@/utils/helpers' import { Button, ButtonProps, chakra } from '@chakra-ui/react' import { ChangeEvent, useState } from 'react' -import { uploadFiles } from 'utils' +import { uploadFiles } from '@typebot.io/lib' type UploadButtonProps = { fileType: 'image' | 'audio' diff --git a/apps/builder/src/components/SetVariableLabel.tsx b/apps/builder/src/components/SetVariableLabel.tsx index 4f672501c56..2bf7e48b5ca 100644 --- a/apps/builder/src/components/SetVariableLabel.tsx +++ b/apps/builder/src/components/SetVariableLabel.tsx @@ -1,5 +1,5 @@ import { useColorModeValue, HStack, Tag, Text } from '@chakra-ui/react' -import { Variable } from 'models' +import { Variable } from '@typebot.io/schemas' export const SetVariableLabel = ({ variableId, diff --git a/apps/builder/src/components/inputs/AutocompleteInput.tsx b/apps/builder/src/components/inputs/AutocompleteInput.tsx index 97fc3645b4c..f41ac3300b7 100644 --- a/apps/builder/src/components/inputs/AutocompleteInput.tsx +++ b/apps/builder/src/components/inputs/AutocompleteInput.tsx @@ -13,11 +13,11 @@ import { } from '@chakra-ui/react' import { useState, useRef, useEffect, ReactNode } from 'react' import { useDebouncedCallback } from 'use-debounce' -import { env, isDefined } from 'utils' +import { env, isDefined } from '@typebot.io/lib' import { useOutsideClick } from '@/hooks/useOutsideClick' import { useParentModal } from '@/features/graph/providers/ParentModalProvider' import { VariablesButton } from '@/features/variables' -import { Variable } from 'models' +import { Variable } from '@typebot.io/schemas' import { injectVariableInText } from '@/features/variables/utils/injectVariableInTextInput' import { focusInput } from '@/utils/focusInput' import { MoreInfoTooltip } from '../MoreInfoTooltip' diff --git a/apps/builder/src/components/inputs/CodeEditor.tsx b/apps/builder/src/components/inputs/CodeEditor.tsx index 96a85215b8e..810a5022621 100644 --- a/apps/builder/src/components/inputs/CodeEditor.tsx +++ b/apps/builder/src/components/inputs/CodeEditor.tsx @@ -8,8 +8,8 @@ import { import { useEffect, useRef, useState } from 'react' import { useDebouncedCallback } from 'use-debounce' import { VariablesButton } from '@/features/variables' -import { Variable } from 'models' -import { env } from 'utils' +import { Variable } from '@typebot.io/schemas' +import { env } from '@typebot.io/lib' import CodeMirror, { ReactCodeMirrorRef } from '@uiw/react-codemirror' import { tokyoNight } from '@uiw/codemirror-theme-tokyo-night' import { githubLight } from '@uiw/codemirror-theme-github' diff --git a/apps/builder/src/components/inputs/NumberInput.tsx b/apps/builder/src/components/inputs/NumberInput.tsx index 45fa8adeb44..a34c10bdf0c 100644 --- a/apps/builder/src/components/inputs/NumberInput.tsx +++ b/apps/builder/src/components/inputs/NumberInput.tsx @@ -10,10 +10,10 @@ import { FormControl, FormLabel, } from '@chakra-ui/react' -import { Variable, VariableString } from 'models' +import { Variable, VariableString } from '@typebot.io/schemas' import { useEffect, useState } from 'react' import { useDebouncedCallback } from 'use-debounce' -import { env } from 'utils' +import { env } from '@typebot.io/lib' import { MoreInfoTooltip } from '../MoreInfoTooltip' type Value = HasVariable extends true | undefined diff --git a/apps/builder/src/components/inputs/Select.tsx b/apps/builder/src/components/inputs/Select.tsx index 831f32972bf..3e54009f9ca 100644 --- a/apps/builder/src/components/inputs/Select.tsx +++ b/apps/builder/src/components/inputs/Select.tsx @@ -16,7 +16,7 @@ import { HStack, } from '@chakra-ui/react' import { useState, useRef, ChangeEvent } from 'react' -import { isDefined } from 'utils' +import { isDefined } from '@typebot.io/lib' import { useOutsideClick } from '@/hooks/useOutsideClick' import { useParentModal } from '@/features/graph/providers/ParentModalProvider' import { ChevronDownIcon, CloseIcon } from '../icons' diff --git a/apps/builder/src/components/inputs/TextInput.tsx b/apps/builder/src/components/inputs/TextInput.tsx index b1f0c04ed61..e0c36f341b4 100644 --- a/apps/builder/src/components/inputs/TextInput.tsx +++ b/apps/builder/src/components/inputs/TextInput.tsx @@ -9,7 +9,7 @@ import { Input as ChakraInput, InputProps, } from '@chakra-ui/react' -import { Variable } from 'models' +import { Variable } from '@typebot.io/schemas' import React, { forwardRef, ReactNode, @@ -19,7 +19,7 @@ import React, { useState, } from 'react' import { useDebouncedCallback } from 'use-debounce' -import { env } from 'utils' +import { env } from '@typebot.io/lib' import { MoreInfoTooltip } from '../MoreInfoTooltip' export type TextInputProps = { diff --git a/apps/builder/src/components/inputs/Textarea.tsx b/apps/builder/src/components/inputs/Textarea.tsx index 917fdd864ea..c70eef44731 100644 --- a/apps/builder/src/components/inputs/Textarea.tsx +++ b/apps/builder/src/components/inputs/Textarea.tsx @@ -8,10 +8,10 @@ import { Textarea as ChakraTextarea, TextareaProps, } from '@chakra-ui/react' -import { Variable } from 'models' +import { Variable } from '@typebot.io/schemas' import React, { useEffect, useRef, useState } from 'react' import { useDebouncedCallback } from 'use-debounce' -import { env } from 'utils' +import { env } from '@typebot.io/lib' import { MoreInfoTooltip } from '../MoreInfoTooltip' type Props = { diff --git a/apps/builder/src/components/inputs/VariableSearchInput.tsx b/apps/builder/src/components/inputs/VariableSearchInput.tsx index 75b9ddff8c9..42fc31607bd 100644 --- a/apps/builder/src/components/inputs/VariableSearchInput.tsx +++ b/apps/builder/src/components/inputs/VariableSearchInput.tsx @@ -17,9 +17,9 @@ import { import { EditIcon, PlusIcon, TrashIcon } from '@/components/icons' import { useTypebot } from '@/features/editor/providers/TypebotProvider/TypebotProvider' import { createId } from '@paralleldrive/cuid2' -import { Variable } from 'models' +import { Variable } from '@typebot.io/schemas' import React, { useState, useRef, ChangeEvent, useEffect } from 'react' -import { byId, isDefined, isNotDefined } from 'utils' +import { byId, isDefined, isNotDefined } from '@typebot.io/lib' import { useOutsideClick } from '@/hooks/useOutsideClick' import { useParentModal } from '@/features/graph/providers/ParentModalProvider' diff --git a/apps/builder/src/features/account/UserProvider.tsx b/apps/builder/src/features/account/UserProvider.tsx index 68e5355d175..68b66f39d67 100644 --- a/apps/builder/src/features/account/UserProvider.tsx +++ b/apps/builder/src/features/account/UserProvider.tsx @@ -7,8 +7,8 @@ import { useEffect, useState, } from 'react' -import { env, isDefined, isNotDefined } from 'utils' -import { User } from 'db' +import { env, isDefined, isNotDefined } from '@typebot.io/lib' +import { User } from '@typebot.io/prisma' import { setUser as setSentryUser } from '@sentry/nextjs' import { useToast } from '@/hooks/useToast' import { updateUserQuery } from './queries/updateUserQuery' diff --git a/apps/builder/src/features/account/account.spec.ts b/apps/builder/src/features/account/account.spec.ts index 64b633bf96d..ffed13c177a 100644 --- a/apps/builder/src/features/account/account.spec.ts +++ b/apps/builder/src/features/account/account.spec.ts @@ -1,6 +1,6 @@ import { getTestAsset } from '@/test/utils/playwright' import test, { expect } from '@playwright/test' -import { userId } from 'utils/playwright/databaseSetup' +import { userId } from '@typebot.io/lib/playwright/databaseSetup' test.describe.configure({ mode: 'parallel' }) diff --git a/apps/builder/src/features/account/components/MyAccountForm/ApiTokensList/ApiTokensList.tsx b/apps/builder/src/features/account/components/MyAccountForm/ApiTokensList/ApiTokensList.tsx index 4fa709a0015..5af0712f19c 100644 --- a/apps/builder/src/features/account/components/MyAccountForm/ApiTokensList/ApiTokensList.tsx +++ b/apps/builder/src/features/account/components/MyAccountForm/ApiTokensList/ApiTokensList.tsx @@ -17,9 +17,9 @@ import { } from '@chakra-ui/react' import { ConfirmModal } from '@/components/ConfirmModal' import { useToast } from '@/hooks/useToast' -import { User } from 'db' +import { User } from '@typebot.io/prisma' import React, { useState } from 'react' -import { byId, isDefined } from 'utils' +import { byId, isDefined } from '@typebot.io/lib' import { CreateTokenModal } from './CreateTokenModal' import { useApiTokens } from '../../../hooks/useApiTokens' import { ApiTokenFromServer } from '../../../types' diff --git a/apps/builder/src/features/account/components/UserPreferenceForm/GraphNavigationRadioGroup.tsx b/apps/builder/src/features/account/components/UserPreferenceForm/GraphNavigationRadioGroup.tsx index f5b71e887c9..150c2633eb6 100644 --- a/apps/builder/src/features/account/components/UserPreferenceForm/GraphNavigationRadioGroup.tsx +++ b/apps/builder/src/features/account/components/UserPreferenceForm/GraphNavigationRadioGroup.tsx @@ -7,7 +7,7 @@ import { VStack, Text, } from '@chakra-ui/react' -import { GraphNavigation } from 'db' +import { GraphNavigation } from '@typebot.io/prisma' const graphNavigationData = [ { diff --git a/apps/builder/src/features/account/components/UserPreferenceForm/UserPreferencesForm.tsx b/apps/builder/src/features/account/components/UserPreferenceForm/UserPreferencesForm.tsx index 0e2fa6dc794..df9b56f1965 100644 --- a/apps/builder/src/features/account/components/UserPreferenceForm/UserPreferencesForm.tsx +++ b/apps/builder/src/features/account/components/UserPreferenceForm/UserPreferencesForm.tsx @@ -1,6 +1,6 @@ import { Stack, Heading, useColorMode } from '@chakra-ui/react' import { useUser } from '@/features/account' -import { GraphNavigation } from 'db' +import { GraphNavigation } from '@typebot.io/prisma' import React, { useEffect } from 'react' import { GraphNavigationRadioGroup } from './GraphNavigationRadioGroup' import { AppearanceRadioGroup } from './AppearanceRadioGroup' diff --git a/apps/builder/src/features/account/hooks/useApiTokens.ts b/apps/builder/src/features/account/hooks/useApiTokens.ts index 0517890e43f..27ad977990c 100644 --- a/apps/builder/src/features/account/hooks/useApiTokens.ts +++ b/apps/builder/src/features/account/hooks/useApiTokens.ts @@ -1,6 +1,6 @@ import { fetcher } from '@/utils/helpers' import useSWR from 'swr' -import { env } from 'utils' +import { env } from '@typebot.io/lib' import { ApiTokenFromServer } from '../types' type ServerResponse = { diff --git a/apps/builder/src/features/account/queries/createApiTokenQuery.ts b/apps/builder/src/features/account/queries/createApiTokenQuery.ts index e7c77dfa9d3..fba8971fa90 100644 --- a/apps/builder/src/features/account/queries/createApiTokenQuery.ts +++ b/apps/builder/src/features/account/queries/createApiTokenQuery.ts @@ -1,4 +1,4 @@ -import { sendRequest } from 'utils' +import { sendRequest } from '@typebot.io/lib' import { ApiTokenFromServer } from '../types' export const createApiTokenQuery = ( diff --git a/apps/builder/src/features/account/queries/deleteApiTokenQuery.ts b/apps/builder/src/features/account/queries/deleteApiTokenQuery.ts index 8f92654d3ea..0de20aff910 100644 --- a/apps/builder/src/features/account/queries/deleteApiTokenQuery.ts +++ b/apps/builder/src/features/account/queries/deleteApiTokenQuery.ts @@ -1,5 +1,5 @@ -import { ApiToken } from 'db' -import { sendRequest } from 'utils' +import { ApiToken } from '@typebot.io/prisma' +import { sendRequest } from '@typebot.io/lib' export const deleteApiTokenQuery = ({ userId, diff --git a/apps/builder/src/features/account/queries/updateUserQuery.ts b/apps/builder/src/features/account/queries/updateUserQuery.ts index a9a2b719ba9..2927551c968 100644 --- a/apps/builder/src/features/account/queries/updateUserQuery.ts +++ b/apps/builder/src/features/account/queries/updateUserQuery.ts @@ -1,5 +1,5 @@ -import { User } from 'db' -import { sendRequest } from 'utils' +import { User } from '@typebot.io/prisma' +import { sendRequest } from '@typebot.io/lib' export const updateUserQuery = async (id: string, user: User) => sendRequest({ diff --git a/apps/builder/src/features/analytics/analytics.spec.ts b/apps/builder/src/features/analytics/analytics.spec.ts index bd3456dfadc..fab8a3ea603 100644 --- a/apps/builder/src/features/analytics/analytics.spec.ts +++ b/apps/builder/src/features/analytics/analytics.spec.ts @@ -4,8 +4,8 @@ import { createId } from '@paralleldrive/cuid2' import { importTypebotInDatabase, injectFakeResults, -} from 'utils/playwright/databaseActions' -import { starterWorkspaceId } from 'utils/playwright/databaseSetup' +} from '@typebot.io/lib/playwright/databaseActions' +import { starterWorkspaceId } from '@typebot.io/lib/playwright/databaseSetup' test('analytics are not available for non-pro workspaces', async ({ page }) => { const typebotId = createId() diff --git a/apps/builder/src/features/analytics/components/AnalyticsGraphContainer.tsx b/apps/builder/src/features/analytics/components/AnalyticsGraphContainer.tsx index 0c12925c350..b45db6df4f7 100644 --- a/apps/builder/src/features/analytics/components/AnalyticsGraphContainer.tsx +++ b/apps/builder/src/features/analytics/components/AnalyticsGraphContainer.tsx @@ -6,7 +6,7 @@ import { } from '@chakra-ui/react' import { useToast } from '@/hooks/useToast' import { useTypebot } from '@/features/editor' -import { Stats } from 'models' +import { Stats } from '@typebot.io/schemas' import React from 'react' import { useAnswersCount } from '../hooks/useAnswersCount' import { diff --git a/apps/builder/src/features/analytics/components/StatsCards.tsx b/apps/builder/src/features/analytics/components/StatsCards.tsx index 9ddf7da8c64..16688ed16a1 100644 --- a/apps/builder/src/features/analytics/components/StatsCards.tsx +++ b/apps/builder/src/features/analytics/components/StatsCards.tsx @@ -7,10 +7,10 @@ import { StatNumber, useColorModeValue, } from '@chakra-ui/react' -import { Stats } from 'models' +import { Stats } from '@typebot.io/schemas' import React from 'react' -const computeCompletionRate = ( +const computeCompletionRate = ( totalCompleted: number, totalStarts: number ): string => { diff --git a/apps/builder/src/features/auth/api/convertInvitationsToCollaborations.ts b/apps/builder/src/features/auth/api/convertInvitationsToCollaborations.ts index 63e0b4e6978..f90c08ab377 100644 --- a/apps/builder/src/features/auth/api/convertInvitationsToCollaborations.ts +++ b/apps/builder/src/features/auth/api/convertInvitationsToCollaborations.ts @@ -1,4 +1,4 @@ -import { Invitation, PrismaClient, WorkspaceRole } from 'db' +import { Invitation, PrismaClient, WorkspaceRole } from '@typebot.io/prisma' export type InvitationWithWorkspaceId = Invitation & { typebot: { diff --git a/apps/builder/src/features/auth/api/getAuthenticatedUser.ts b/apps/builder/src/features/auth/api/getAuthenticatedUser.ts index 7db6586cb4f..d52bf98d145 100644 --- a/apps/builder/src/features/auth/api/getAuthenticatedUser.ts +++ b/apps/builder/src/features/auth/api/getAuthenticatedUser.ts @@ -1,6 +1,6 @@ import prisma from '@/lib/prisma' import { setUser } from '@sentry/nextjs' -import { User } from 'db' +import { User } from '@typebot.io/prisma' import { NextApiRequest } from 'next' import { getSession } from 'next-auth/react' diff --git a/apps/builder/src/features/auth/api/getNewUserInvitations.ts b/apps/builder/src/features/auth/api/getNewUserInvitations.ts index cac3babcef1..014d1c48f5a 100644 --- a/apps/builder/src/features/auth/api/getNewUserInvitations.ts +++ b/apps/builder/src/features/auth/api/getNewUserInvitations.ts @@ -1,4 +1,4 @@ -import { PrismaClient, WorkspaceInvitation } from 'db' +import { PrismaClient, WorkspaceInvitation } from '@typebot.io/prisma' import { InvitationWithWorkspaceId } from './convertInvitationsToCollaborations' export const getNewUserInvitations = async ( diff --git a/apps/builder/src/features/auth/api/joinWorkspaces.ts b/apps/builder/src/features/auth/api/joinWorkspaces.ts index b51e4e540f2..0332260bb42 100644 --- a/apps/builder/src/features/auth/api/joinWorkspaces.ts +++ b/apps/builder/src/features/auth/api/joinWorkspaces.ts @@ -1,4 +1,4 @@ -import { PrismaClient, WorkspaceInvitation } from 'db' +import { PrismaClient, WorkspaceInvitation } from '@typebot.io/prisma' export const joinWorkspaces = async ( p: PrismaClient, diff --git a/apps/builder/src/features/auth/components/SocialLoginButtons.tsx b/apps/builder/src/features/auth/components/SocialLoginButtons.tsx index 88ae51d1283..1c6062614a9 100644 --- a/apps/builder/src/features/auth/components/SocialLoginButtons.tsx +++ b/apps/builder/src/features/auth/components/SocialLoginButtons.tsx @@ -12,7 +12,7 @@ import { stringify } from 'qs' import { BuiltInProviderType } from 'next-auth/providers' import { GoogleLogo } from '@/components/GoogleLogo' import { AzureAdLogo, FacebookLogo, GitlabLogo } from './logos' -import { omit } from 'utils' +import { omit } from '@typebot.io/lib' type Props = { providers: diff --git a/apps/builder/src/features/auth/constants.ts b/apps/builder/src/features/auth/constants.ts index c183e2afd7c..944815c5ee2 100644 --- a/apps/builder/src/features/auth/constants.ts +++ b/apps/builder/src/features/auth/constants.ts @@ -1,4 +1,4 @@ -import { User } from 'db' +import { User } from '@typebot.io/prisma' export const mockedUser: User = { id: 'userId', diff --git a/apps/builder/src/features/billing/api/procedures/cancelSubscription.ts b/apps/builder/src/features/billing/api/procedures/cancelSubscription.ts index 8b743d70511..1518315ca40 100644 --- a/apps/builder/src/features/billing/api/procedures/cancelSubscription.ts +++ b/apps/builder/src/features/billing/api/procedures/cancelSubscription.ts @@ -1,7 +1,7 @@ import prisma from '@/lib/prisma' import { authenticatedProcedure } from '@/utils/server/trpc' import { TRPCError } from '@trpc/server' -import { Plan, WorkspaceRole } from 'db' +import { Plan, WorkspaceRole } from '@typebot.io/prisma' import Stripe from 'stripe' import { z } from 'zod' diff --git a/apps/builder/src/features/billing/api/procedures/createCheckoutSession.ts b/apps/builder/src/features/billing/api/procedures/createCheckoutSession.ts index 7da0db1aec1..24b51db7c25 100644 --- a/apps/builder/src/features/billing/api/procedures/createCheckoutSession.ts +++ b/apps/builder/src/features/billing/api/procedures/createCheckoutSession.ts @@ -1,7 +1,7 @@ import prisma from '@/lib/prisma' import { authenticatedProcedure } from '@/utils/server/trpc' import { TRPCError } from '@trpc/server' -import { Plan, WorkspaceRole } from 'db' +import { Plan, WorkspaceRole } from '@typebot.io/prisma' import Stripe from 'stripe' import { z } from 'zod' import { parseSubscriptionItems } from '../utils/parseSubscriptionItems' diff --git a/apps/builder/src/features/billing/api/procedures/getBillingPortalUrl.ts b/apps/builder/src/features/billing/api/procedures/getBillingPortalUrl.ts index 1eaeeea50a2..1f9fb1dca10 100644 --- a/apps/builder/src/features/billing/api/procedures/getBillingPortalUrl.ts +++ b/apps/builder/src/features/billing/api/procedures/getBillingPortalUrl.ts @@ -1,7 +1,7 @@ import prisma from '@/lib/prisma' import { authenticatedProcedure } from '@/utils/server/trpc' import { TRPCError } from '@trpc/server' -import { WorkspaceRole } from 'db' +import { WorkspaceRole } from '@typebot.io/prisma' import Stripe from 'stripe' import { z } from 'zod' diff --git a/apps/builder/src/features/billing/api/procedures/getSubscription.ts b/apps/builder/src/features/billing/api/procedures/getSubscription.ts index 0d5466cbacf..bedb74187b5 100644 --- a/apps/builder/src/features/billing/api/procedures/getSubscription.ts +++ b/apps/builder/src/features/billing/api/procedures/getSubscription.ts @@ -1,10 +1,10 @@ import prisma from '@/lib/prisma' import { authenticatedProcedure } from '@/utils/server/trpc' import { TRPCError } from '@trpc/server' -import { WorkspaceRole } from 'db' +import { WorkspaceRole } from '@typebot.io/prisma' import Stripe from 'stripe' import { z } from 'zod' -import { subscriptionSchema } from 'models/features/billing/subscription' +import { subscriptionSchema } from '@typebot.io/schemas/features/billing/subscription' export const getSubscription = authenticatedProcedure .meta({ diff --git a/apps/builder/src/features/billing/api/procedures/listInvoices.ts b/apps/builder/src/features/billing/api/procedures/listInvoices.ts index 029be2dd00d..dd8dc0433ca 100644 --- a/apps/builder/src/features/billing/api/procedures/listInvoices.ts +++ b/apps/builder/src/features/billing/api/procedures/listInvoices.ts @@ -1,11 +1,11 @@ import prisma from '@/lib/prisma' import { authenticatedProcedure } from '@/utils/server/trpc' import { TRPCError } from '@trpc/server' -import { WorkspaceRole } from 'db' +import { WorkspaceRole } from '@typebot.io/prisma' import Stripe from 'stripe' -import { isDefined } from 'utils' +import { isDefined } from '@typebot.io/lib' import { z } from 'zod' -import { invoiceSchema } from 'models/features/billing/invoice' +import { invoiceSchema } from '@typebot.io/schemas/features/billing/invoice' export const listInvoices = authenticatedProcedure .meta({ diff --git a/apps/builder/src/features/billing/api/procedures/updateSubscription.ts b/apps/builder/src/features/billing/api/procedures/updateSubscription.ts index 35a573e2357..2a4b299e2f7 100644 --- a/apps/builder/src/features/billing/api/procedures/updateSubscription.ts +++ b/apps/builder/src/features/billing/api/procedures/updateSubscription.ts @@ -1,11 +1,11 @@ -import { sendTelemetryEvents } from 'utils/telemetry/sendTelemetryEvent' +import { sendTelemetryEvents } from '@typebot.io/lib/telemetry/sendTelemetryEvent' import prisma from '@/lib/prisma' import { authenticatedProcedure } from '@/utils/server/trpc' import { TRPCError } from '@trpc/server' -import { Plan, WorkspaceRole } from 'db' -import { workspaceSchema } from 'models' +import { Plan, WorkspaceRole } from '@typebot.io/prisma' +import { workspaceSchema } from '@typebot.io/schemas' import Stripe from 'stripe' -import { isDefined } from 'utils' +import { isDefined } from '@typebot.io/lib' import { z } from 'zod' export const updateSubscription = authenticatedProcedure diff --git a/apps/builder/src/features/billing/api/utils/parseSubscriptionItems.ts b/apps/builder/src/features/billing/api/utils/parseSubscriptionItems.ts index f9bcc2252e6..ec310dbd6b3 100644 --- a/apps/builder/src/features/billing/api/utils/parseSubscriptionItems.ts +++ b/apps/builder/src/features/billing/api/utils/parseSubscriptionItems.ts @@ -1,4 +1,4 @@ -import { Plan } from 'db' +import { Plan } from '@typebot.io/prisma' export const parseSubscriptionItems = ( plan: Plan, diff --git a/apps/builder/src/features/billing/billing.spec.ts b/apps/builder/src/features/billing/billing.spec.ts index 1ce1634177d..c8f80449fe4 100644 --- a/apps/builder/src/features/billing/billing.spec.ts +++ b/apps/builder/src/features/billing/billing.spec.ts @@ -4,13 +4,13 @@ import { } from '@/test/utils/databaseActions' import test, { expect } from '@playwright/test' import { createId } from '@paralleldrive/cuid2' -import { Plan } from 'db' +import { Plan } from '@typebot.io/prisma' import { createTypebots, createWorkspaces, deleteWorkspaces, injectFakeResults, -} from 'utils/playwright/databaseActions' +} from '@typebot.io/lib/playwright/databaseActions' const usageWorkspaceId = createId() const usageTypebotId = createId() diff --git a/apps/builder/src/features/billing/components/BillingContent/BillingContent.tsx b/apps/builder/src/features/billing/components/BillingContent/BillingContent.tsx index 68220816621..1764ea85b88 100644 --- a/apps/builder/src/features/billing/components/BillingContent/BillingContent.tsx +++ b/apps/builder/src/features/billing/components/BillingContent/BillingContent.tsx @@ -1,6 +1,6 @@ import { HStack, Stack, Text } from '@chakra-ui/react' import { useWorkspace } from '@/features/workspace' -import { Plan } from 'db' +import { Plan } from '@typebot.io/prisma' import React from 'react' import { CurrentSubscriptionContent } from './CurrentSubscriptionContent' import { InvoicesList } from './InvoicesList' diff --git a/apps/builder/src/features/billing/components/BillingContent/CurrentSubscriptionContent.tsx b/apps/builder/src/features/billing/components/BillingContent/CurrentSubscriptionContent.tsx index 4b9108224cf..e7d1dddd552 100644 --- a/apps/builder/src/features/billing/components/BillingContent/CurrentSubscriptionContent.tsx +++ b/apps/builder/src/features/billing/components/BillingContent/CurrentSubscriptionContent.tsx @@ -1,11 +1,11 @@ import { Text, HStack, Link, Spinner, Stack, Heading } from '@chakra-ui/react' import { useToast } from '@/hooks/useToast' -import { Plan } from 'db' +import { Plan } from '@typebot.io/prisma' import React from 'react' import { PlanTag } from '../PlanTag' import { BillingPortalButton } from './BillingPortalButton' import { trpc } from '@/lib/trpc' -import { Workspace } from 'models' +import { Workspace } from '@typebot.io/schemas' type CurrentSubscriptionContentProps = { workspace: Pick diff --git a/apps/builder/src/features/billing/components/BillingContent/UsageContent/UsageContent.tsx b/apps/builder/src/features/billing/components/BillingContent/UsageContent/UsageContent.tsx index 119075e6fd5..6836e0b2ce4 100644 --- a/apps/builder/src/features/billing/components/BillingContent/UsageContent/UsageContent.tsx +++ b/apps/builder/src/features/billing/components/BillingContent/UsageContent/UsageContent.tsx @@ -9,10 +9,10 @@ import { Tooltip, } from '@chakra-ui/react' import { AlertIcon } from '@/components/icons' -import { Plan, Workspace } from 'db' +import { Plan, Workspace } from '@typebot.io/prisma' import React from 'react' -import { parseNumberWithCommas } from 'utils' -import { getChatsLimit, getStorageLimit } from 'utils/pricing' +import { parseNumberWithCommas } from '@typebot.io/lib' +import { getChatsLimit, getStorageLimit } from '@typebot.io/lib/pricing' import { storageToReadable } from './helpers' import { trpc } from '@/lib/trpc' diff --git a/apps/builder/src/features/billing/components/BillingContent/queries/cancelSubscriptionQuery.ts b/apps/builder/src/features/billing/components/BillingContent/queries/cancelSubscriptionQuery.ts index 705249839ac..3147d4d18e5 100644 --- a/apps/builder/src/features/billing/components/BillingContent/queries/cancelSubscriptionQuery.ts +++ b/apps/builder/src/features/billing/components/BillingContent/queries/cancelSubscriptionQuery.ts @@ -1,4 +1,4 @@ -import { sendRequest } from 'utils' +import { sendRequest } from '@typebot.io/lib' export const cancelSubscriptionQuery = (stripeId: string) => sendRequest({ diff --git a/apps/builder/src/features/billing/components/ChangePlanForm/ChangePlanForm.tsx b/apps/builder/src/features/billing/components/ChangePlanForm/ChangePlanForm.tsx index 9e753a3d676..4861eb500b5 100644 --- a/apps/builder/src/features/billing/components/ChangePlanForm/ChangePlanForm.tsx +++ b/apps/builder/src/features/billing/components/ChangePlanForm/ChangePlanForm.tsx @@ -1,13 +1,13 @@ import { Stack, HStack, Text } from '@chakra-ui/react' import { useUser } from '@/features/account' -import { Plan } from 'db' +import { Plan } from '@typebot.io/prisma' import { ProPlanContent } from './ProPlanContent' import { StarterPlanContent } from './StarterPlanContent' import { TextLink } from '@/components/TextLink' import { useToast } from '@/hooks/useToast' import { trpc } from '@/lib/trpc' -import { guessIfUserIsEuropean } from 'utils/pricing' -import { Workspace } from 'models' +import { guessIfUserIsEuropean } from '@typebot.io/lib/pricing' +import { Workspace } from '@typebot.io/schemas' import { PreCheckoutModal, PreCheckoutModalProps } from '../PreCheckoutModal' import { useState } from 'react' import { ParentModalProvider } from '@/features/graph/providers/ParentModalProvider' diff --git a/apps/builder/src/features/billing/components/ChangePlanForm/ProPlanContent.tsx b/apps/builder/src/features/billing/components/ChangePlanForm/ProPlanContent.tsx index e27c5b87e7b..39a88bbacd9 100644 --- a/apps/builder/src/features/billing/components/ChangePlanForm/ProPlanContent.tsx +++ b/apps/builder/src/features/billing/components/ChangePlanForm/ProPlanContent.tsx @@ -16,9 +16,9 @@ import { } from '@chakra-ui/react' import { ChevronLeftIcon } from '@/components/icons' import { useWorkspace } from '@/features/workspace' -import { Plan } from 'db' +import { Plan } from '@typebot.io/prisma' import { useEffect, useState } from 'react' -import { parseNumberWithCommas } from 'utils' +import { parseNumberWithCommas } from '@typebot.io/lib' import { chatsLimit, computePrice, @@ -26,7 +26,7 @@ import { getChatsLimit, getStorageLimit, storageLimit, -} from 'utils/pricing' +} from '@typebot.io/lib/pricing' import { FeaturesList } from './components/FeaturesList' import { MoreInfoTooltip } from '@/components/MoreInfoTooltip' diff --git a/apps/builder/src/features/billing/components/ChangePlanForm/StarterPlanContent.tsx b/apps/builder/src/features/billing/components/ChangePlanForm/StarterPlanContent.tsx index cc9e3314730..8ca1b2e2b82 100644 --- a/apps/builder/src/features/billing/components/ChangePlanForm/StarterPlanContent.tsx +++ b/apps/builder/src/features/billing/components/ChangePlanForm/StarterPlanContent.tsx @@ -12,9 +12,9 @@ import { } from '@chakra-ui/react' import { ChevronLeftIcon } from '@/components/icons' import { useWorkspace } from '@/features/workspace' -import { Plan } from 'db' +import { Plan } from '@typebot.io/prisma' import { useEffect, useState } from 'react' -import { parseNumberWithCommas } from 'utils' +import { parseNumberWithCommas } from '@typebot.io/lib' import { chatsLimit, computePrice, @@ -22,7 +22,7 @@ import { getChatsLimit, getStorageLimit, storageLimit, -} from 'utils/pricing' +} from '@typebot.io/lib/pricing' import { FeaturesList } from './components/FeaturesList' import { MoreInfoTooltip } from '@/components/MoreInfoTooltip' diff --git a/apps/builder/src/features/billing/components/LockTag.tsx b/apps/builder/src/features/billing/components/LockTag.tsx index 4781485c8a1..8b6a1711dae 100644 --- a/apps/builder/src/features/billing/components/LockTag.tsx +++ b/apps/builder/src/features/billing/components/LockTag.tsx @@ -1,6 +1,6 @@ import { Tag, TagProps } from '@chakra-ui/react' import { LockedIcon } from '@/components/icons' -import { Plan } from 'db' +import { Plan } from '@typebot.io/prisma' import { planColorSchemes } from './PlanTag' export const LockTag = ({ plan, ...props }: { plan?: Plan } & TagProps) => ( diff --git a/apps/builder/src/features/billing/components/PlanTag.tsx b/apps/builder/src/features/billing/components/PlanTag.tsx index cf3311304de..c4e4f171da3 100644 --- a/apps/builder/src/features/billing/components/PlanTag.tsx +++ b/apps/builder/src/features/billing/components/PlanTag.tsx @@ -1,5 +1,5 @@ import { Tag, TagProps, ThemeTypings } from '@chakra-ui/react' -import { Plan } from 'db' +import { Plan } from '@typebot.io/prisma' export const planColorSchemes: Record = { [Plan.LIFETIME]: 'purple', diff --git a/apps/builder/src/features/billing/components/PreCheckoutModal.tsx b/apps/builder/src/features/billing/components/PreCheckoutModal.tsx index faf24e984d0..2dd802b5837 100644 --- a/apps/builder/src/features/billing/components/PreCheckoutModal.tsx +++ b/apps/builder/src/features/billing/components/PreCheckoutModal.tsx @@ -16,7 +16,7 @@ import { } from '@chakra-ui/react' import { useRouter } from 'next/router' import React, { FormEvent, useState } from 'react' -import { isDefined } from 'utils' +import { isDefined } from '@typebot.io/lib' import { taxIdTypes } from '../taxIdTypes' export type PreCheckoutModalProps = { diff --git a/apps/builder/src/features/billing/components/UpgradeButton.tsx b/apps/builder/src/features/billing/components/UpgradeButton.tsx index 8ffa8888708..debacf61e54 100644 --- a/apps/builder/src/features/billing/components/UpgradeButton.tsx +++ b/apps/builder/src/features/billing/components/UpgradeButton.tsx @@ -1,7 +1,7 @@ import { Button, ButtonProps, useDisclosure } from '@chakra-ui/react' import { useWorkspace } from '@/features/workspace' import React from 'react' -import { isNotDefined } from 'utils' +import { isNotDefined } from '@typebot.io/lib' import { ChangePlanModal } from './ChangePlanModal' import { LimitReached } from './ChangePlanModal' diff --git a/apps/builder/src/features/billing/utils.ts b/apps/builder/src/features/billing/utils.ts index a94d5ad340c..d400a60291d 100644 --- a/apps/builder/src/features/billing/utils.ts +++ b/apps/builder/src/features/billing/utils.ts @@ -1,5 +1,5 @@ -import { Plan, Workspace } from 'db' -import { isDefined, isNotDefined } from 'utils' +import { Plan, Workspace } from '@typebot.io/prisma' +import { isDefined, isNotDefined } from '@typebot.io/lib' export const planToReadable = (plan?: Plan) => { if (!plan) return diff --git a/apps/builder/src/features/blocks/bubbles/audio/audio.spec.ts b/apps/builder/src/features/blocks/bubbles/audio/audio.spec.ts index 421d134aef5..033a5a79ee3 100644 --- a/apps/builder/src/features/blocks/bubbles/audio/audio.spec.ts +++ b/apps/builder/src/features/blocks/bubbles/audio/audio.spec.ts @@ -1,7 +1,7 @@ import test, { expect } from '@playwright/test' -import { createTypebots } from 'utils/playwright/databaseActions' -import { parseDefaultGroupWithBlock } from 'utils/playwright/databaseHelpers' -import { BubbleBlockType, defaultAudioBubbleContent } from 'models' +import { createTypebots } from '@typebot.io/lib/playwright/databaseActions' +import { parseDefaultGroupWithBlock } from '@typebot.io/lib/playwright/databaseHelpers' +import { BubbleBlockType, defaultAudioBubbleContent } from '@typebot.io/schemas' import { createId } from '@paralleldrive/cuid2' import { getTestAsset } from '@/test/utils/playwright' diff --git a/apps/builder/src/features/blocks/bubbles/audio/components/AudioBubbleForm.tsx b/apps/builder/src/features/blocks/bubbles/audio/components/AudioBubbleForm.tsx index e0ce94fdf97..6698a11ba03 100644 --- a/apps/builder/src/features/blocks/bubbles/audio/components/AudioBubbleForm.tsx +++ b/apps/builder/src/features/blocks/bubbles/audio/components/AudioBubbleForm.tsx @@ -1,5 +1,5 @@ import { Button, Flex, HStack, Stack, Text } from '@chakra-ui/react' -import { AudioBubbleContent } from 'models' +import { AudioBubbleContent } from '@typebot.io/schemas' import { TextInput } from '@/components/inputs' import { useState } from 'react' import { UploadButton } from '@/components/ImageUploadContent/UploadButton' diff --git a/apps/builder/src/features/blocks/bubbles/audio/components/AudioBubbleNode.tsx b/apps/builder/src/features/blocks/bubbles/audio/components/AudioBubbleNode.tsx index d7a2f9c12e0..9ad1f75a9bc 100644 --- a/apps/builder/src/features/blocks/bubbles/audio/components/AudioBubbleNode.tsx +++ b/apps/builder/src/features/blocks/bubbles/audio/components/AudioBubbleNode.tsx @@ -1,6 +1,6 @@ import { Text } from '@chakra-ui/react' -import { AudioBubbleContent } from 'models' -import { isDefined } from 'utils' +import { AudioBubbleContent } from '@typebot.io/schemas' +import { isDefined } from '@typebot.io/lib' type Props = { url: AudioBubbleContent['url'] diff --git a/apps/builder/src/features/blocks/bubbles/embed/components/EmbedBubbleContent.tsx b/apps/builder/src/features/blocks/bubbles/embed/components/EmbedBubbleContent.tsx index 2aabeb987fb..7d7c1b5df87 100644 --- a/apps/builder/src/features/blocks/bubbles/embed/components/EmbedBubbleContent.tsx +++ b/apps/builder/src/features/blocks/bubbles/embed/components/EmbedBubbleContent.tsx @@ -1,5 +1,5 @@ import { Text } from '@chakra-ui/react' -import { EmbedBubbleBlock } from 'models' +import { EmbedBubbleBlock } from '@typebot.io/schemas' export const EmbedBubbleContent = ({ block }: { block: EmbedBubbleBlock }) => { if (!block.content?.url) return Click to edit... diff --git a/apps/builder/src/features/blocks/bubbles/embed/components/EmbedUploadContent.tsx b/apps/builder/src/features/blocks/bubbles/embed/components/EmbedUploadContent.tsx index f945cffc329..9b757759fb6 100644 --- a/apps/builder/src/features/blocks/bubbles/embed/components/EmbedUploadContent.tsx +++ b/apps/builder/src/features/blocks/bubbles/embed/components/EmbedUploadContent.tsx @@ -1,7 +1,7 @@ import { TextInput, NumberInput } from '@/components/inputs' import { HStack, Stack, Text } from '@chakra-ui/react' -import { EmbedBubbleContent } from 'models' -import { sanitizeUrl } from 'utils' +import { EmbedBubbleContent } from '@typebot.io/schemas' +import { sanitizeUrl } from '@typebot.io/lib' type Props = { content: EmbedBubbleContent diff --git a/apps/builder/src/features/blocks/bubbles/embed/embed.spec.ts b/apps/builder/src/features/blocks/bubbles/embed/embed.spec.ts index 65df3732010..e8d9db8d2c7 100644 --- a/apps/builder/src/features/blocks/bubbles/embed/embed.spec.ts +++ b/apps/builder/src/features/blocks/bubbles/embed/embed.spec.ts @@ -1,8 +1,8 @@ import test, { expect } from '@playwright/test' -import { BubbleBlockType, defaultEmbedBubbleContent } from 'models' +import { BubbleBlockType, defaultEmbedBubbleContent } from '@typebot.io/schemas' import { createId } from '@paralleldrive/cuid2' -import { createTypebots } from 'utils/playwright/databaseActions' -import { parseDefaultGroupWithBlock } from 'utils/playwright/databaseHelpers' +import { createTypebots } from '@typebot.io/lib/playwright/databaseActions' +import { parseDefaultGroupWithBlock } from '@typebot.io/lib/playwright/databaseHelpers' const pdfSrc = 'https://www.orimi.com/pdf-test.pdf' const siteSrc = 'https://app.cal.com/baptistearno/15min' diff --git a/apps/builder/src/features/blocks/bubbles/image/components/ImageBubbleContent.tsx b/apps/builder/src/features/blocks/bubbles/image/components/ImageBubbleContent.tsx index b917814e3fc..fc51f90fec0 100644 --- a/apps/builder/src/features/blocks/bubbles/image/components/ImageBubbleContent.tsx +++ b/apps/builder/src/features/blocks/bubbles/image/components/ImageBubbleContent.tsx @@ -1,5 +1,5 @@ import { Box, Text, Image } from '@chakra-ui/react' -import { ImageBubbleBlock } from 'models' +import { ImageBubbleBlock } from '@typebot.io/schemas' export const ImageBubbleContent = ({ block }: { block: ImageBubbleBlock }) => { const containsVariables = diff --git a/apps/builder/src/features/blocks/bubbles/image/image.spec.ts b/apps/builder/src/features/blocks/bubbles/image/image.spec.ts index 3df5c5cfeec..9d1cc531ff9 100644 --- a/apps/builder/src/features/blocks/bubbles/image/image.spec.ts +++ b/apps/builder/src/features/blocks/bubbles/image/image.spec.ts @@ -1,7 +1,7 @@ import test, { expect } from '@playwright/test' -import { createTypebots } from 'utils/playwright/databaseActions' -import { parseDefaultGroupWithBlock } from 'utils/playwright/databaseHelpers' -import { BubbleBlockType, defaultImageBubbleContent } from 'models' +import { createTypebots } from '@typebot.io/lib/playwright/databaseActions' +import { parseDefaultGroupWithBlock } from '@typebot.io/lib/playwright/databaseHelpers' +import { BubbleBlockType, defaultImageBubbleContent } from '@typebot.io/schemas' import { createId } from '@paralleldrive/cuid2' import { getTestAsset } from '@/test/utils/playwright' diff --git a/apps/builder/src/features/blocks/bubbles/textBubble/components/TextBubbleContent.tsx b/apps/builder/src/features/blocks/bubbles/textBubble/components/TextBubbleContent.tsx index 302e04acb7b..b91ae548d6a 100644 --- a/apps/builder/src/features/blocks/bubbles/textBubble/components/TextBubbleContent.tsx +++ b/apps/builder/src/features/blocks/bubbles/textBubble/components/TextBubbleContent.tsx @@ -1,9 +1,9 @@ import { Flex } from '@chakra-ui/react' import { useTypebot } from '@/features/editor' -import { TextBubbleBlock } from 'models' +import { TextBubbleBlock } from '@typebot.io/schemas' import React from 'react' import { parseVariableHighlight } from '@/utils/helpers' -import { isEmpty } from 'utils' +import { isEmpty } from '@typebot.io/lib' type Props = { block: TextBubbleBlock diff --git a/apps/builder/src/features/blocks/bubbles/textBubble/components/TextBubbleEditor/TextBubbleEditor.tsx b/apps/builder/src/features/blocks/bubbles/textBubble/components/TextBubbleEditor/TextBubbleEditor.tsx index 3fbcc4aed04..7f0ea4e268c 100644 --- a/apps/builder/src/features/blocks/bubbles/textBubble/components/TextBubbleEditor/TextBubbleEditor.tsx +++ b/apps/builder/src/features/blocks/bubbles/textBubble/components/TextBubbleEditor/TextBubbleEditor.tsx @@ -9,7 +9,11 @@ import { Plate, PlateProvider, usePlateEditorRef } from '@udecode/plate-core' import { editorStyle, platePlugins } from '@/lib/plate' import { BaseEditor, BaseSelection, Transforms } from 'slate' import { ToolBar } from './ToolBar' -import { defaultTextBubbleContent, TextBubbleContent, Variable } from 'models' +import { + defaultTextBubbleContent, + TextBubbleContent, + Variable, +} from '@typebot.io/schemas' import { ReactEditor } from 'slate-react' import { serializeHtml } from '@udecode/plate-serializer-html' import { parseHtmlStringToPlainText } from '../../utils' diff --git a/apps/builder/src/features/blocks/bubbles/textBubble/textBubble.spec.ts b/apps/builder/src/features/blocks/bubbles/textBubble/textBubble.spec.ts index 92877a7d518..7d2b238e550 100644 --- a/apps/builder/src/features/blocks/bubbles/textBubble/textBubble.spec.ts +++ b/apps/builder/src/features/blocks/bubbles/textBubble/textBubble.spec.ts @@ -1,7 +1,7 @@ import test, { expect } from '@playwright/test' -import { createTypebots } from 'utils/playwright/databaseActions' -import { parseDefaultGroupWithBlock } from 'utils/playwright/databaseHelpers' -import { BubbleBlockType, defaultTextBubbleContent } from 'models' +import { createTypebots } from '@typebot.io/lib/playwright/databaseActions' +import { parseDefaultGroupWithBlock } from '@typebot.io/lib/playwright/databaseHelpers' +import { BubbleBlockType, defaultTextBubbleContent } from '@typebot.io/schemas' import { createId } from '@paralleldrive/cuid2' test.describe('Text bubble block', () => { diff --git a/apps/builder/src/features/blocks/bubbles/textBubble/utils.ts b/apps/builder/src/features/blocks/bubbles/textBubble/utils.ts index 15b53edfe89..90448174352 100644 --- a/apps/builder/src/features/blocks/bubbles/textBubble/utils.ts +++ b/apps/builder/src/features/blocks/bubbles/textBubble/utils.ts @@ -1,5 +1,5 @@ import { Parser } from 'htmlparser2' -import { isNotEmpty } from 'utils' +import { isNotEmpty } from '@typebot.io/lib' export const parseHtmlStringToPlainText = (html: string): string => { let plainText = '' diff --git a/apps/builder/src/features/blocks/bubbles/video/components/VideoBubbleContent.tsx b/apps/builder/src/features/blocks/bubbles/video/components/VideoBubbleContent.tsx index 4a27cd5d0e2..e63bed04ac3 100644 --- a/apps/builder/src/features/blocks/bubbles/video/components/VideoBubbleContent.tsx +++ b/apps/builder/src/features/blocks/bubbles/video/components/VideoBubbleContent.tsx @@ -1,5 +1,5 @@ import { Box, Text } from '@chakra-ui/react' -import { VideoBubbleBlock, VideoBubbleContentType } from 'models' +import { VideoBubbleBlock, VideoBubbleContentType } from '@typebot.io/schemas' export const VideoBubbleContent = ({ block }: { block: VideoBubbleBlock }) => { if (!block.content?.url || !block.content.type) diff --git a/apps/builder/src/features/blocks/bubbles/video/components/VideoUploadContent.tsx b/apps/builder/src/features/blocks/bubbles/video/components/VideoUploadContent.tsx index cc5ba4ac5cf..978e60be502 100644 --- a/apps/builder/src/features/blocks/bubbles/video/components/VideoUploadContent.tsx +++ b/apps/builder/src/features/blocks/bubbles/video/components/VideoUploadContent.tsx @@ -1,9 +1,9 @@ import { Stack, Text } from '@chakra-ui/react' -import { VideoBubbleContent, VideoBubbleContentType } from 'models' +import { VideoBubbleContent, VideoBubbleContentType } from '@typebot.io/schemas' import urlParser from 'js-video-url-parser/lib/base' import 'js-video-url-parser/lib/provider/vimeo' import 'js-video-url-parser/lib/provider/youtube' -import { isDefined } from 'utils' +import { isDefined } from '@typebot.io/lib' import { TextInput } from '@/components/inputs' type Props = { diff --git a/apps/builder/src/features/blocks/bubbles/video/video.spec.ts b/apps/builder/src/features/blocks/bubbles/video/video.spec.ts index 52b070af668..b82c4431d75 100644 --- a/apps/builder/src/features/blocks/bubbles/video/video.spec.ts +++ b/apps/builder/src/features/blocks/bubbles/video/video.spec.ts @@ -1,11 +1,11 @@ import test, { expect } from '@playwright/test' -import { createTypebots } from 'utils/playwright/databaseActions' -import { parseDefaultGroupWithBlock } from 'utils/playwright/databaseHelpers' +import { createTypebots } from '@typebot.io/lib/playwright/databaseActions' +import { parseDefaultGroupWithBlock } from '@typebot.io/lib/playwright/databaseHelpers' import { BubbleBlockType, defaultVideoBubbleContent, VideoBubbleContentType, -} from 'models' +} from '@typebot.io/schemas' import { createId } from '@paralleldrive/cuid2' const videoSrc = diff --git a/apps/builder/src/features/blocks/inputs/buttons/buttons.spec.ts b/apps/builder/src/features/blocks/inputs/buttons/buttons.spec.ts index c794ff7ebe7..2cbb3cdf747 100644 --- a/apps/builder/src/features/blocks/inputs/buttons/buttons.spec.ts +++ b/apps/builder/src/features/blocks/inputs/buttons/buttons.spec.ts @@ -2,9 +2,13 @@ import test, { expect } from '@playwright/test' import { createTypebots, importTypebotInDatabase, -} from 'utils/playwright/databaseActions' -import { parseDefaultGroupWithBlock } from 'utils/playwright/databaseHelpers' -import { defaultChoiceInputOptions, InputBlockType, ItemType } from 'models' +} from '@typebot.io/lib/playwright/databaseActions' +import { parseDefaultGroupWithBlock } from '@typebot.io/lib/playwright/databaseHelpers' +import { + defaultChoiceInputOptions, + InputBlockType, + ItemType, +} from '@typebot.io/schemas' import { createId } from '@paralleldrive/cuid2' import { getTestAsset } from '@/test/utils/playwright' diff --git a/apps/builder/src/features/blocks/inputs/buttons/components/ButtonsBlockNode.tsx b/apps/builder/src/features/blocks/inputs/buttons/components/ButtonsBlockNode.tsx index bf5e7c9372d..c24003684c3 100644 --- a/apps/builder/src/features/blocks/inputs/buttons/components/ButtonsBlockNode.tsx +++ b/apps/builder/src/features/blocks/inputs/buttons/components/ButtonsBlockNode.tsx @@ -1,4 +1,4 @@ -import { BlockIndices, ChoiceInputBlock } from 'models' +import { BlockIndices, ChoiceInputBlock } from '@typebot.io/schemas' import React from 'react' import { ItemNodesList } from '@/features/graph/components/Nodes/ItemNode' import { Stack, Tag, Text, Wrap } from '@chakra-ui/react' diff --git a/apps/builder/src/features/blocks/inputs/buttons/components/ButtonsBlockSettings.tsx b/apps/builder/src/features/blocks/inputs/buttons/components/ButtonsBlockSettings.tsx index c6a87fec8d5..129bf17b013 100644 --- a/apps/builder/src/features/blocks/inputs/buttons/components/ButtonsBlockSettings.tsx +++ b/apps/builder/src/features/blocks/inputs/buttons/components/ButtonsBlockSettings.tsx @@ -3,7 +3,7 @@ import { MoreInfoTooltip } from '@/components/MoreInfoTooltip' import { SwitchWithLabel } from '@/components/inputs/SwitchWithLabel' import { VariableSearchInput } from '@/components/inputs/VariableSearchInput' import { FormControl, FormLabel, Stack } from '@chakra-ui/react' -import { ChoiceInputOptions, Variable } from 'models' +import { ChoiceInputOptions, Variable } from '@typebot.io/schemas' import React from 'react' type Props = { diff --git a/apps/builder/src/features/blocks/inputs/buttons/components/ButtonsItemNode.tsx b/apps/builder/src/features/blocks/inputs/buttons/components/ButtonsItemNode.tsx index 04b30dbbed1..e27cc6930ac 100644 --- a/apps/builder/src/features/blocks/inputs/buttons/components/ButtonsItemNode.tsx +++ b/apps/builder/src/features/blocks/inputs/buttons/components/ButtonsItemNode.tsx @@ -8,9 +8,9 @@ import { } from '@chakra-ui/react' import { PlusIcon } from '@/components/icons' import { useTypebot } from '@/features/editor' -import { ButtonItem, ItemIndices, ItemType } from 'models' +import { ButtonItem, ItemIndices, ItemType } from '@typebot.io/schemas' import React, { useRef, useState } from 'react' -import { isNotDefined } from 'utils' +import { isNotDefined } from '@typebot.io/lib' type Props = { item: ButtonItem diff --git a/apps/builder/src/features/blocks/inputs/date/components/DateInputSettingsBody.tsx b/apps/builder/src/features/blocks/inputs/date/components/DateInputSettingsBody.tsx index 2aede252e9c..7a4d3e9946c 100644 --- a/apps/builder/src/features/blocks/inputs/date/components/DateInputSettingsBody.tsx +++ b/apps/builder/src/features/blocks/inputs/date/components/DateInputSettingsBody.tsx @@ -2,7 +2,7 @@ import { TextInput } from '@/components/inputs' import { SwitchWithLabel } from '@/components/inputs/SwitchWithLabel' import { VariableSearchInput } from '@/components/inputs/VariableSearchInput' import { FormLabel, Stack } from '@chakra-ui/react' -import { DateInputOptions, Variable } from 'models' +import { DateInputOptions, Variable } from '@typebot.io/schemas' import React from 'react' type DateInputSettingsBodyProps = { diff --git a/apps/builder/src/features/blocks/inputs/date/date.spec.ts b/apps/builder/src/features/blocks/inputs/date/date.spec.ts index d6c857e0c68..fab9b90fb3b 100644 --- a/apps/builder/src/features/blocks/inputs/date/date.spec.ts +++ b/apps/builder/src/features/blocks/inputs/date/date.spec.ts @@ -1,7 +1,7 @@ import test, { expect } from '@playwright/test' -import { createTypebots } from 'utils/playwright/databaseActions' -import { parseDefaultGroupWithBlock } from 'utils/playwright/databaseHelpers' -import { defaultDateInputOptions, InputBlockType } from 'models' +import { createTypebots } from '@typebot.io/lib/playwright/databaseActions' +import { parseDefaultGroupWithBlock } from '@typebot.io/lib/playwright/databaseHelpers' +import { defaultDateInputOptions, InputBlockType } from '@typebot.io/schemas' import { createId } from '@paralleldrive/cuid2' test.describe('Date input block', () => { diff --git a/apps/builder/src/features/blocks/inputs/emailInput/components/EmailInputNodeContent.tsx b/apps/builder/src/features/blocks/inputs/emailInput/components/EmailInputNodeContent.tsx index 43faa27748c..7e9aa4164da 100644 --- a/apps/builder/src/features/blocks/inputs/emailInput/components/EmailInputNodeContent.tsx +++ b/apps/builder/src/features/blocks/inputs/emailInput/components/EmailInputNodeContent.tsx @@ -1,6 +1,6 @@ import React from 'react' import { Text } from '@chakra-ui/react' -import { EmailInputBlock } from 'models' +import { EmailInputBlock } from '@typebot.io/schemas' import { WithVariableContent } from '@/features/graph/components/Nodes/BlockNode/BlockNodeContent/WithVariableContent' type Props = { diff --git a/apps/builder/src/features/blocks/inputs/emailInput/components/EmailInputSettingsBody.tsx b/apps/builder/src/features/blocks/inputs/emailInput/components/EmailInputSettingsBody.tsx index 3b6550e64b6..a36b0c731ec 100644 --- a/apps/builder/src/features/blocks/inputs/emailInput/components/EmailInputSettingsBody.tsx +++ b/apps/builder/src/features/blocks/inputs/emailInput/components/EmailInputSettingsBody.tsx @@ -1,7 +1,7 @@ import { TextInput } from '@/components/inputs' import { VariableSearchInput } from '@/components/inputs/VariableSearchInput' import { FormLabel, Stack } from '@chakra-ui/react' -import { EmailInputOptions, Variable } from 'models' +import { EmailInputOptions, Variable } from '@typebot.io/schemas' import React from 'react' type EmailInputSettingsBodyProps = { diff --git a/apps/builder/src/features/blocks/inputs/emailInput/emailInput.spec.ts b/apps/builder/src/features/blocks/inputs/emailInput/emailInput.spec.ts index a0cfb8d2994..55ab0efb854 100644 --- a/apps/builder/src/features/blocks/inputs/emailInput/emailInput.spec.ts +++ b/apps/builder/src/features/blocks/inputs/emailInput/emailInput.spec.ts @@ -1,7 +1,7 @@ import test, { expect } from '@playwright/test' -import { createTypebots } from 'utils/playwright/databaseActions' -import { parseDefaultGroupWithBlock } from 'utils/playwright/databaseHelpers' -import { defaultEmailInputOptions, InputBlockType } from 'models' +import { createTypebots } from '@typebot.io/lib/playwright/databaseActions' +import { parseDefaultGroupWithBlock } from '@typebot.io/lib/playwright/databaseHelpers' +import { defaultEmailInputOptions, InputBlockType } from '@typebot.io/schemas' import { createId } from '@paralleldrive/cuid2' test.describe('Email input block', () => { diff --git a/apps/builder/src/features/blocks/inputs/fileUpload/components/FileInputContent.tsx b/apps/builder/src/features/blocks/inputs/fileUpload/components/FileInputContent.tsx index 49a20fb09f4..e0cb84b14aa 100644 --- a/apps/builder/src/features/blocks/inputs/fileUpload/components/FileInputContent.tsx +++ b/apps/builder/src/features/blocks/inputs/fileUpload/components/FileInputContent.tsx @@ -1,6 +1,6 @@ import { WithVariableContent } from '@/features/graph/components/Nodes/BlockNode/BlockNodeContent/WithVariableContent' import { Text } from '@chakra-ui/react' -import { FileInputOptions } from 'models' +import { FileInputOptions } from '@typebot.io/schemas' type Props = { options: FileInputOptions diff --git a/apps/builder/src/features/blocks/inputs/fileUpload/components/FileInputSettings.tsx b/apps/builder/src/features/blocks/inputs/fileUpload/components/FileInputSettings.tsx index 4f39b3d54c1..d68fa464c76 100644 --- a/apps/builder/src/features/blocks/inputs/fileUpload/components/FileInputSettings.tsx +++ b/apps/builder/src/features/blocks/inputs/fileUpload/components/FileInputSettings.tsx @@ -1,6 +1,6 @@ import { FormLabel, HStack, Stack, Text } from '@chakra-ui/react' import { CodeEditor } from '@/components/inputs/CodeEditor' -import { FileInputOptions, Variable } from 'models' +import { FileInputOptions, Variable } from '@typebot.io/schemas' import React from 'react' import { TextInput, NumberInput } from '@/components/inputs' import { SwitchWithLabel } from '@/components/inputs/SwitchWithLabel' diff --git a/apps/builder/src/features/blocks/inputs/fileUpload/fileUpload.spec.ts b/apps/builder/src/features/blocks/inputs/fileUpload/fileUpload.spec.ts index 11a3258c9f4..27a34b5cec9 100644 --- a/apps/builder/src/features/blocks/inputs/fileUpload/fileUpload.spec.ts +++ b/apps/builder/src/features/blocks/inputs/fileUpload/fileUpload.spec.ts @@ -1,9 +1,9 @@ import test, { expect } from '@playwright/test' -import { createTypebots } from 'utils/playwright/databaseActions' -import { parseDefaultGroupWithBlock } from 'utils/playwright/databaseHelpers' -import { defaultFileInputOptions, InputBlockType } from 'models' +import { createTypebots } from '@typebot.io/lib/playwright/databaseActions' +import { parseDefaultGroupWithBlock } from '@typebot.io/lib/playwright/databaseHelpers' +import { defaultFileInputOptions, InputBlockType } from '@typebot.io/schemas' import { createId } from '@paralleldrive/cuid2' -import { freeWorkspaceId } from 'utils/playwright/databaseSetup' +import { freeWorkspaceId } from '@typebot.io/lib/playwright/databaseSetup' import { getTestAsset } from '@/test/utils/playwright' test.describe.configure({ mode: 'parallel' }) diff --git a/apps/builder/src/features/blocks/inputs/number/components/NumberInputSettingsBody.tsx b/apps/builder/src/features/blocks/inputs/number/components/NumberInputSettingsBody.tsx index 8d741ae966d..62216d8fe06 100644 --- a/apps/builder/src/features/blocks/inputs/number/components/NumberInputSettingsBody.tsx +++ b/apps/builder/src/features/blocks/inputs/number/components/NumberInputSettingsBody.tsx @@ -2,7 +2,7 @@ import { TextInput, NumberInput } from '@/components/inputs' import { VariableSearchInput } from '@/components/inputs/VariableSearchInput' import { removeUndefinedFields } from '@/utils/helpers' import { FormLabel, Stack } from '@chakra-ui/react' -import { NumberInputOptions, Variable } from 'models' +import { NumberInputOptions, Variable } from '@typebot.io/schemas' import React from 'react' type NumberInputSettingsBodyProps = { diff --git a/apps/builder/src/features/blocks/inputs/number/components/NumberNodeContent.tsx b/apps/builder/src/features/blocks/inputs/number/components/NumberNodeContent.tsx index 1a1e8bdc53f..689fcfbc701 100644 --- a/apps/builder/src/features/blocks/inputs/number/components/NumberNodeContent.tsx +++ b/apps/builder/src/features/blocks/inputs/number/components/NumberNodeContent.tsx @@ -1,6 +1,6 @@ import React from 'react' import { Text } from '@chakra-ui/react' -import { NumberInputBlock } from 'models' +import { NumberInputBlock } from '@typebot.io/schemas' import { WithVariableContent } from '@/features/graph/components/Nodes/BlockNode/BlockNodeContent/WithVariableContent' type Props = { diff --git a/apps/builder/src/features/blocks/inputs/number/number.spec.ts b/apps/builder/src/features/blocks/inputs/number/number.spec.ts index 7b722897ffe..39568262a42 100644 --- a/apps/builder/src/features/blocks/inputs/number/number.spec.ts +++ b/apps/builder/src/features/blocks/inputs/number/number.spec.ts @@ -1,7 +1,7 @@ import test, { expect } from '@playwright/test' -import { createTypebots } from 'utils/playwright/databaseActions' -import { parseDefaultGroupWithBlock } from 'utils/playwright/databaseHelpers' -import { defaultNumberInputOptions, InputBlockType } from 'models' +import { createTypebots } from '@typebot.io/lib/playwright/databaseActions' +import { parseDefaultGroupWithBlock } from '@typebot.io/lib/playwright/databaseHelpers' +import { defaultNumberInputOptions, InputBlockType } from '@typebot.io/schemas' import { createId } from '@paralleldrive/cuid2' test.describe('Number input block', () => { diff --git a/apps/builder/src/features/blocks/inputs/payment/components/PaymentInputContent.tsx b/apps/builder/src/features/blocks/inputs/payment/components/PaymentInputContent.tsx index e025d670c12..633a11cc1f7 100644 --- a/apps/builder/src/features/blocks/inputs/payment/components/PaymentInputContent.tsx +++ b/apps/builder/src/features/blocks/inputs/payment/components/PaymentInputContent.tsx @@ -1,5 +1,5 @@ import { Text } from '@chakra-ui/react' -import { PaymentInputBlock } from 'models' +import { PaymentInputBlock } from '@typebot.io/schemas' type Props = { block: PaymentInputBlock diff --git a/apps/builder/src/features/blocks/inputs/payment/components/PaymentSettings/PaymentSettings.tsx b/apps/builder/src/features/blocks/inputs/payment/components/PaymentSettings/PaymentSettings.tsx index b5979d59e27..ee355387395 100644 --- a/apps/builder/src/features/blocks/inputs/payment/components/PaymentSettings/PaymentSettings.tsx +++ b/apps/builder/src/features/blocks/inputs/payment/components/PaymentSettings/PaymentSettings.tsx @@ -11,7 +11,7 @@ import { AccordionPanel, } from '@chakra-ui/react' import { DropdownList } from '@/components/DropdownList' -import { PaymentInputOptions, PaymentProvider } from 'models' +import { PaymentInputOptions, PaymentProvider } from '@typebot.io/schemas' import React, { ChangeEvent } from 'react' import { currencies } from './currencies' import { StripeConfigModal } from './StripeConfigModal' diff --git a/apps/builder/src/features/blocks/inputs/payment/components/PaymentSettings/StripeConfigModal.tsx b/apps/builder/src/features/blocks/inputs/payment/components/PaymentSettings/StripeConfigModal.tsx index 842e5b0471c..deca4982199 100644 --- a/apps/builder/src/features/blocks/inputs/payment/components/PaymentSettings/StripeConfigModal.tsx +++ b/apps/builder/src/features/blocks/inputs/payment/components/PaymentSettings/StripeConfigModal.tsx @@ -20,9 +20,9 @@ import { useToast } from '@/hooks/useToast' import { TextInput } from '@/components/inputs' import { MoreInfoTooltip } from '@/components/MoreInfoTooltip' import { TextLink } from '@/components/TextLink' -import { StripeCredentials } from 'models' +import { StripeCredentials } from '@typebot.io/schemas' import { trpc } from '@/lib/trpc' -import { isNotEmpty } from 'utils' +import { isNotEmpty } from '@typebot.io/lib' type Props = { isOpen: boolean diff --git a/apps/builder/src/features/blocks/inputs/payment/payment.spec.ts b/apps/builder/src/features/blocks/inputs/payment/payment.spec.ts index cc69d2f7dc4..ef49e6c9ce2 100644 --- a/apps/builder/src/features/blocks/inputs/payment/payment.spec.ts +++ b/apps/builder/src/features/blocks/inputs/payment/payment.spec.ts @@ -1,7 +1,7 @@ import test, { expect } from '@playwright/test' -import { createTypebots } from 'utils/playwright/databaseActions' -import { parseDefaultGroupWithBlock } from 'utils/playwright/databaseHelpers' -import { defaultPaymentInputOptions, InputBlockType } from 'models' +import { createTypebots } from '@typebot.io/lib/playwright/databaseActions' +import { parseDefaultGroupWithBlock } from '@typebot.io/lib/playwright/databaseHelpers' +import { defaultPaymentInputOptions, InputBlockType } from '@typebot.io/schemas' import { createId } from '@paralleldrive/cuid2' import { stripePaymentForm } from '@/test/utils/selectorUtils' diff --git a/apps/builder/src/features/blocks/inputs/phone/components/PhoneNodeContent.tsx b/apps/builder/src/features/blocks/inputs/phone/components/PhoneNodeContent.tsx index a6d054e5a0a..ae61cb89444 100644 --- a/apps/builder/src/features/blocks/inputs/phone/components/PhoneNodeContent.tsx +++ b/apps/builder/src/features/blocks/inputs/phone/components/PhoneNodeContent.tsx @@ -1,6 +1,6 @@ import React from 'react' import { Text } from '@chakra-ui/react' -import { PhoneNumberInputOptions } from 'models' +import { PhoneNumberInputOptions } from '@typebot.io/schemas' import { WithVariableContent } from '@/features/graph/components/Nodes/BlockNode/BlockNodeContent/WithVariableContent' type Props = { diff --git a/apps/builder/src/features/blocks/inputs/phone/components/PhoneNumberSettingsBody/PhoneNumberSettingsBody.tsx b/apps/builder/src/features/blocks/inputs/phone/components/PhoneNumberSettingsBody/PhoneNumberSettingsBody.tsx index 3a83f82ea1b..27d9e9a3a8f 100644 --- a/apps/builder/src/features/blocks/inputs/phone/components/PhoneNumberSettingsBody/PhoneNumberSettingsBody.tsx +++ b/apps/builder/src/features/blocks/inputs/phone/components/PhoneNumberSettingsBody/PhoneNumberSettingsBody.tsx @@ -1,7 +1,7 @@ import { TextInput } from '@/components/inputs' import { VariableSearchInput } from '@/components/inputs/VariableSearchInput' import { FormLabel, Stack } from '@chakra-ui/react' -import { PhoneNumberInputOptions, Variable } from 'models' +import { PhoneNumberInputOptions, Variable } from '@typebot.io/schemas' import React from 'react' import { CountryCodeSelect } from './CountryCodeSelect' diff --git a/apps/builder/src/features/blocks/inputs/phone/phone.spec.ts b/apps/builder/src/features/blocks/inputs/phone/phone.spec.ts index c1bf88faad7..58e1cd6c893 100644 --- a/apps/builder/src/features/blocks/inputs/phone/phone.spec.ts +++ b/apps/builder/src/features/blocks/inputs/phone/phone.spec.ts @@ -1,7 +1,7 @@ import test, { expect } from '@playwright/test' -import { createTypebots } from 'utils/playwright/databaseActions' -import { parseDefaultGroupWithBlock } from 'utils/playwright/databaseHelpers' -import { defaultPhoneInputOptions, InputBlockType } from 'models' +import { createTypebots } from '@typebot.io/lib/playwright/databaseActions' +import { parseDefaultGroupWithBlock } from '@typebot.io/lib/playwright/databaseHelpers' +import { defaultPhoneInputOptions, InputBlockType } from '@typebot.io/schemas' import { createId } from '@paralleldrive/cuid2' test.describe('Phone input block', () => { diff --git a/apps/builder/src/features/blocks/inputs/rating/components/RatingInputContent.tsx b/apps/builder/src/features/blocks/inputs/rating/components/RatingInputContent.tsx index 9a315822e6a..a0674f0876c 100644 --- a/apps/builder/src/features/blocks/inputs/rating/components/RatingInputContent.tsx +++ b/apps/builder/src/features/blocks/inputs/rating/components/RatingInputContent.tsx @@ -1,6 +1,6 @@ import { WithVariableContent } from '@/features/graph/components/Nodes/BlockNode/BlockNodeContent/WithVariableContent' import { Text } from '@chakra-ui/react' -import { RatingInputBlock } from 'models' +import { RatingInputBlock } from '@typebot.io/schemas' type Props = { variableId?: string diff --git a/apps/builder/src/features/blocks/inputs/rating/components/RatingInputSettings.tsx b/apps/builder/src/features/blocks/inputs/rating/components/RatingInputSettings.tsx index 6bb8c097139..a7d1b5b3169 100644 --- a/apps/builder/src/features/blocks/inputs/rating/components/RatingInputSettings.tsx +++ b/apps/builder/src/features/blocks/inputs/rating/components/RatingInputSettings.tsx @@ -1,6 +1,6 @@ import { FormLabel, Stack } from '@chakra-ui/react' import { DropdownList } from '@/components/DropdownList' -import { RatingInputOptions, Variable } from 'models' +import { RatingInputOptions, Variable } from '@typebot.io/schemas' import React from 'react' import { SwitchWithLabel } from '@/components/inputs/SwitchWithLabel' import { TextInput } from '@/components/inputs' diff --git a/apps/builder/src/features/blocks/inputs/rating/rating.spec.ts b/apps/builder/src/features/blocks/inputs/rating/rating.spec.ts index d94b89645c4..ae5e92f8807 100644 --- a/apps/builder/src/features/blocks/inputs/rating/rating.spec.ts +++ b/apps/builder/src/features/blocks/inputs/rating/rating.spec.ts @@ -1,7 +1,7 @@ import test, { expect } from '@playwright/test' -import { createTypebots } from 'utils/playwright/databaseActions' -import { parseDefaultGroupWithBlock } from 'utils/playwright/databaseHelpers' -import { defaultRatingInputOptions, InputBlockType } from 'models' +import { createTypebots } from '@typebot.io/lib/playwright/databaseActions' +import { parseDefaultGroupWithBlock } from '@typebot.io/lib/playwright/databaseHelpers' +import { defaultRatingInputOptions, InputBlockType } from '@typebot.io/schemas' import { createId } from '@paralleldrive/cuid2' const boxSvg = ` { diff --git a/apps/builder/src/features/blocks/inputs/url/components/UrlInputSettingsBody.tsx b/apps/builder/src/features/blocks/inputs/url/components/UrlInputSettingsBody.tsx index 3256192f0d1..9d844aac9ed 100644 --- a/apps/builder/src/features/blocks/inputs/url/components/UrlInputSettingsBody.tsx +++ b/apps/builder/src/features/blocks/inputs/url/components/UrlInputSettingsBody.tsx @@ -1,7 +1,7 @@ import { TextInput } from '@/components/inputs' import { VariableSearchInput } from '@/components/inputs/VariableSearchInput' import { FormLabel, Stack } from '@chakra-ui/react' -import { UrlInputOptions, Variable } from 'models' +import { UrlInputOptions, Variable } from '@typebot.io/schemas' import React from 'react' type UrlInputSettingsBodyProps = { diff --git a/apps/builder/src/features/blocks/inputs/url/components/UrlNodeContent.tsx b/apps/builder/src/features/blocks/inputs/url/components/UrlNodeContent.tsx index 0d2360bc528..a49abd6cd0b 100644 --- a/apps/builder/src/features/blocks/inputs/url/components/UrlNodeContent.tsx +++ b/apps/builder/src/features/blocks/inputs/url/components/UrlNodeContent.tsx @@ -1,6 +1,6 @@ import React from 'react' import { Text } from '@chakra-ui/react' -import { UrlInputOptions } from 'models' +import { UrlInputOptions } from '@typebot.io/schemas' import { WithVariableContent } from '@/features/graph/components/Nodes/BlockNode/BlockNodeContent/WithVariableContent' type Props = { diff --git a/apps/builder/src/features/blocks/inputs/url/url.spec.ts b/apps/builder/src/features/blocks/inputs/url/url.spec.ts index 651e3161ba0..0eff36ed07c 100644 --- a/apps/builder/src/features/blocks/inputs/url/url.spec.ts +++ b/apps/builder/src/features/blocks/inputs/url/url.spec.ts @@ -1,7 +1,7 @@ import test, { expect } from '@playwright/test' -import { createTypebots } from 'utils/playwright/databaseActions' -import { parseDefaultGroupWithBlock } from 'utils/playwright/databaseHelpers' -import { defaultUrlInputOptions, InputBlockType } from 'models' +import { createTypebots } from '@typebot.io/lib/playwright/databaseActions' +import { parseDefaultGroupWithBlock } from '@typebot.io/lib/playwright/databaseHelpers' +import { defaultUrlInputOptions, InputBlockType } from '@typebot.io/schemas' import { createId } from '@paralleldrive/cuid2' test.describe('Url input block', () => { diff --git a/apps/builder/src/features/blocks/integrations/chatwoot/chatwoot.spec.ts b/apps/builder/src/features/blocks/integrations/chatwoot/chatwoot.spec.ts index adaed434f98..38f8e4198c6 100644 --- a/apps/builder/src/features/blocks/integrations/chatwoot/chatwoot.spec.ts +++ b/apps/builder/src/features/blocks/integrations/chatwoot/chatwoot.spec.ts @@ -1,8 +1,11 @@ import test, { expect } from '@playwright/test' -import { createTypebots } from 'utils/playwright/databaseActions' -import { parseDefaultGroupWithBlock } from 'utils/playwright/databaseHelpers' +import { createTypebots } from '@typebot.io/lib/playwright/databaseActions' +import { parseDefaultGroupWithBlock } from '@typebot.io/lib/playwright/databaseHelpers' import { createId } from '@paralleldrive/cuid2' -import { defaultChatwootOptions, IntegrationBlockType } from 'models' +import { + defaultChatwootOptions, + IntegrationBlockType, +} from '@typebot.io/schemas' const typebotId = createId() diff --git a/apps/builder/src/features/blocks/integrations/chatwoot/components/ChatwootBlockNodeLabel.tsx b/apps/builder/src/features/blocks/integrations/chatwoot/components/ChatwootBlockNodeLabel.tsx index 77f04547c9a..10c1a9bd88e 100644 --- a/apps/builder/src/features/blocks/integrations/chatwoot/components/ChatwootBlockNodeLabel.tsx +++ b/apps/builder/src/features/blocks/integrations/chatwoot/components/ChatwootBlockNodeLabel.tsx @@ -1,5 +1,5 @@ import { Text } from '@chakra-ui/react' -import { ChatwootBlock } from 'models' +import { ChatwootBlock } from '@typebot.io/schemas' type Props = { block: ChatwootBlock diff --git a/apps/builder/src/features/blocks/integrations/chatwoot/components/ChatwootSettingsForm.tsx b/apps/builder/src/features/blocks/integrations/chatwoot/components/ChatwootSettingsForm.tsx index 6e3dabf9d3b..be98c91e95b 100644 --- a/apps/builder/src/features/blocks/integrations/chatwoot/components/ChatwootSettingsForm.tsx +++ b/apps/builder/src/features/blocks/integrations/chatwoot/components/ChatwootSettingsForm.tsx @@ -8,7 +8,7 @@ import { AccordionPanel, Stack, } from '@chakra-ui/react' -import { ChatwootOptions, chatwootTasks } from 'models' +import { ChatwootOptions, chatwootTasks } from '@typebot.io/schemas' import React from 'react' type Props = { diff --git a/apps/builder/src/features/blocks/integrations/googleAnalytics/components/GoogleAnalyticsNodeContent.tsx b/apps/builder/src/features/blocks/integrations/googleAnalytics/components/GoogleAnalyticsNodeContent.tsx index a12f72e81a7..8b8c0a89b86 100644 --- a/apps/builder/src/features/blocks/integrations/googleAnalytics/components/GoogleAnalyticsNodeContent.tsx +++ b/apps/builder/src/features/blocks/integrations/googleAnalytics/components/GoogleAnalyticsNodeContent.tsx @@ -1,6 +1,6 @@ import React from 'react' import { Text } from '@chakra-ui/react' -import { GoogleAnalyticsOptions } from 'models' +import { GoogleAnalyticsOptions } from '@typebot.io/schemas' type Props = { action: GoogleAnalyticsOptions['action'] diff --git a/apps/builder/src/features/blocks/integrations/googleAnalytics/components/GoogleAnalyticsSettings.tsx b/apps/builder/src/features/blocks/integrations/googleAnalytics/components/GoogleAnalyticsSettings.tsx index 91d2be5c32a..39be503c0c6 100644 --- a/apps/builder/src/features/blocks/integrations/googleAnalytics/components/GoogleAnalyticsSettings.tsx +++ b/apps/builder/src/features/blocks/integrations/googleAnalytics/components/GoogleAnalyticsSettings.tsx @@ -10,7 +10,7 @@ import { Stack, Tag, } from '@chakra-ui/react' -import { GoogleAnalyticsOptions } from 'models' +import { GoogleAnalyticsOptions } from '@typebot.io/schemas' import React from 'react' type Props = { diff --git a/apps/builder/src/features/blocks/integrations/googleAnalytics/googleAnalytics.spec.ts b/apps/builder/src/features/blocks/integrations/googleAnalytics/googleAnalytics.spec.ts index 0e66dee8107..97b310c1082 100644 --- a/apps/builder/src/features/blocks/integrations/googleAnalytics/googleAnalytics.spec.ts +++ b/apps/builder/src/features/blocks/integrations/googleAnalytics/googleAnalytics.spec.ts @@ -1,7 +1,10 @@ import test from '@playwright/test' -import { createTypebots } from 'utils/playwright/databaseActions' -import { parseDefaultGroupWithBlock } from 'utils/playwright/databaseHelpers' -import { defaultGoogleAnalyticsOptions, IntegrationBlockType } from 'models' +import { createTypebots } from '@typebot.io/lib/playwright/databaseActions' +import { parseDefaultGroupWithBlock } from '@typebot.io/lib/playwright/databaseHelpers' +import { + defaultGoogleAnalyticsOptions, + IntegrationBlockType, +} from '@typebot.io/schemas' import { createId } from '@paralleldrive/cuid2' test.describe('Google Analytics block', () => { diff --git a/apps/builder/src/features/blocks/integrations/googleSheets/components/GoogleSheetsNodeContent.tsx b/apps/builder/src/features/blocks/integrations/googleSheets/components/GoogleSheetsNodeContent.tsx index 4a333ba0661..b0d3006df45 100644 --- a/apps/builder/src/features/blocks/integrations/googleSheets/components/GoogleSheetsNodeContent.tsx +++ b/apps/builder/src/features/blocks/integrations/googleSheets/components/GoogleSheetsNodeContent.tsx @@ -1,6 +1,6 @@ import React from 'react' import { Text } from '@chakra-ui/react' -import { GoogleSheetsAction } from 'models' +import { GoogleSheetsAction } from '@typebot.io/schemas' type Props = { action?: GoogleSheetsAction diff --git a/apps/builder/src/features/blocks/integrations/googleSheets/components/GoogleSheetsSettingsBody/CellWithValueStack.tsx b/apps/builder/src/features/blocks/integrations/googleSheets/components/GoogleSheetsSettingsBody/CellWithValueStack.tsx index 35326c26de5..236c57e31a5 100644 --- a/apps/builder/src/features/blocks/integrations/googleSheets/components/GoogleSheetsSettingsBody/CellWithValueStack.tsx +++ b/apps/builder/src/features/blocks/integrations/googleSheets/components/GoogleSheetsSettingsBody/CellWithValueStack.tsx @@ -1,6 +1,6 @@ import { Stack } from '@chakra-ui/react' import { DropdownList } from '@/components/DropdownList' -import { Cell } from 'models' +import { Cell } from '@typebot.io/schemas' import { TableListItemProps } from '@/components/TableList' import { TextInput } from '@/components/inputs' diff --git a/apps/builder/src/features/blocks/integrations/googleSheets/components/GoogleSheetsSettingsBody/CellWithVariableIdStack.tsx b/apps/builder/src/features/blocks/integrations/googleSheets/components/GoogleSheetsSettingsBody/CellWithVariableIdStack.tsx index 8d6886b6467..a8b041c478c 100644 --- a/apps/builder/src/features/blocks/integrations/googleSheets/components/GoogleSheetsSettingsBody/CellWithVariableIdStack.tsx +++ b/apps/builder/src/features/blocks/integrations/googleSheets/components/GoogleSheetsSettingsBody/CellWithVariableIdStack.tsx @@ -1,6 +1,6 @@ import { Stack } from '@chakra-ui/react' import { DropdownList } from '@/components/DropdownList' -import { ExtractingCell, Variable } from 'models' +import { ExtractingCell, Variable } from '@typebot.io/schemas' import { TableListItemProps } from '@/components/TableList' import { VariableSearchInput } from '@/components/inputs/VariableSearchInput' diff --git a/apps/builder/src/features/blocks/integrations/googleSheets/components/GoogleSheetsSettingsBody/GoogleSheetsSettingsBody.tsx b/apps/builder/src/features/blocks/integrations/googleSheets/components/GoogleSheetsSettingsBody/GoogleSheetsSettingsBody.tsx index eadfc2599df..452b738a267 100644 --- a/apps/builder/src/features/blocks/integrations/googleSheets/components/GoogleSheetsSettingsBody/GoogleSheetsSettingsBody.tsx +++ b/apps/builder/src/features/blocks/integrations/googleSheets/components/GoogleSheetsSettingsBody/GoogleSheetsSettingsBody.tsx @@ -12,9 +12,9 @@ import { GoogleSheetsInsertRowOptions, GoogleSheetsOptions, GoogleSheetsUpdateRowOptions, -} from 'models' +} from '@typebot.io/schemas' import React, { useMemo } from 'react' -import { isDefined } from 'utils' +import { isDefined } from '@typebot.io/lib' import { SheetsDropdown } from './SheetsDropdown' import { SpreadsheetsDropdown } from './SpreadsheetDropdown' import { CellWithValueStack } from './CellWithValueStack' diff --git a/apps/builder/src/features/blocks/integrations/googleSheets/components/GoogleSheetsSettingsBody/RowsFilterTableList/RowsFilterComparisonItem.tsx b/apps/builder/src/features/blocks/integrations/googleSheets/components/GoogleSheetsSettingsBody/RowsFilterTableList/RowsFilterComparisonItem.tsx index 3778ad4f20d..110f8ccbb8a 100644 --- a/apps/builder/src/features/blocks/integrations/googleSheets/components/GoogleSheetsSettingsBody/RowsFilterTableList/RowsFilterComparisonItem.tsx +++ b/apps/builder/src/features/blocks/integrations/googleSheets/components/GoogleSheetsSettingsBody/RowsFilterTableList/RowsFilterComparisonItem.tsx @@ -2,7 +2,7 @@ import { DropdownList } from '@/components/DropdownList' import { TextInput } from '@/components/inputs' import { TableListItemProps } from '@/components/TableList' import { Stack } from '@chakra-ui/react' -import { ComparisonOperators, RowsFilterComparison } from 'models' +import { ComparisonOperators, RowsFilterComparison } from '@typebot.io/schemas' import React from 'react' export const RowsFilterComparisonItem = ({ diff --git a/apps/builder/src/features/blocks/integrations/googleSheets/components/GoogleSheetsSettingsBody/RowsFilterTableList/RowsFilterTableList.tsx b/apps/builder/src/features/blocks/integrations/googleSheets/components/GoogleSheetsSettingsBody/RowsFilterTableList/RowsFilterTableList.tsx index d5723331bab..5a63591272b 100644 --- a/apps/builder/src/features/blocks/integrations/googleSheets/components/GoogleSheetsSettingsBody/RowsFilterTableList/RowsFilterTableList.tsx +++ b/apps/builder/src/features/blocks/integrations/googleSheets/components/GoogleSheetsSettingsBody/RowsFilterTableList/RowsFilterTableList.tsx @@ -5,7 +5,7 @@ import { GoogleSheetsGetOptions, LogicalOperator, RowsFilterComparison, -} from 'models' +} from '@typebot.io/schemas' import React, { useCallback } from 'react' import { RowsFilterComparisonItem } from './RowsFilterComparisonItem' diff --git a/apps/builder/src/features/blocks/integrations/googleSheets/googleSheets.spec.ts b/apps/builder/src/features/blocks/integrations/googleSheets/googleSheets.spec.ts index d4ff9a99da9..0c17c2e9ff2 100644 --- a/apps/builder/src/features/blocks/integrations/googleSheets/googleSheets.spec.ts +++ b/apps/builder/src/features/blocks/integrations/googleSheets/googleSheets.spec.ts @@ -1,5 +1,5 @@ import test, { expect, Page } from '@playwright/test' -import { importTypebotInDatabase } from 'utils/playwright/databaseActions' +import { importTypebotInDatabase } from '@typebot.io/lib/playwright/databaseActions' import { createId } from '@paralleldrive/cuid2' import { getTestAsset } from '@/test/utils/playwright' diff --git a/apps/builder/src/features/blocks/integrations/googleSheets/queries/createSheetsCredentialQuery.ts b/apps/builder/src/features/blocks/integrations/googleSheets/queries/createSheetsCredentialQuery.ts index 6c209554781..e507cc0ae0e 100644 --- a/apps/builder/src/features/blocks/integrations/googleSheets/queries/createSheetsCredentialQuery.ts +++ b/apps/builder/src/features/blocks/integrations/googleSheets/queries/createSheetsCredentialQuery.ts @@ -1,5 +1,5 @@ import { stringify } from 'qs' -import { sendRequest } from 'utils' +import { sendRequest } from '@typebot.io/lib' export const createSheetsCredentialQuery = async (code: string) => { const queryParams = stringify({ code }) diff --git a/apps/builder/src/features/blocks/integrations/makeCom/components/MakeComContent.tsx b/apps/builder/src/features/blocks/integrations/makeCom/components/MakeComContent.tsx index 2b58e103535..035becff353 100644 --- a/apps/builder/src/features/blocks/integrations/makeCom/components/MakeComContent.tsx +++ b/apps/builder/src/features/blocks/integrations/makeCom/components/MakeComContent.tsx @@ -1,7 +1,7 @@ import { Text } from '@chakra-ui/react' import { useTypebot } from '@/features/editor' -import { MakeComBlock } from 'models' -import { byId, isNotDefined } from 'utils' +import { MakeComBlock } from '@typebot.io/schemas' +import { byId, isNotDefined } from '@typebot.io/lib' type Props = { block: MakeComBlock diff --git a/apps/builder/src/features/blocks/integrations/makeCom/components/MakeComSettings.tsx b/apps/builder/src/features/blocks/integrations/makeCom/components/MakeComSettings.tsx index fec290bd0f4..ff428443285 100644 --- a/apps/builder/src/features/blocks/integrations/makeCom/components/MakeComSettings.tsx +++ b/apps/builder/src/features/blocks/integrations/makeCom/components/MakeComSettings.tsx @@ -1,9 +1,9 @@ import { Alert, AlertIcon, Button, Link, Stack, Text } from '@chakra-ui/react' import { ExternalLinkIcon } from '@/components/icons' import { useTypebot } from '@/features/editor' -import { MakeComBlock, Webhook, WebhookOptions } from 'models' +import { MakeComBlock, Webhook, WebhookOptions } from '@typebot.io/schemas' import React, { useCallback, useEffect, useState } from 'react' -import { byId } from 'utils' +import { byId } from '@typebot.io/lib' import { WebhookAdvancedConfigForm } from '../../webhook/components/WebhookAdvancedConfigForm' type Props = { diff --git a/apps/builder/src/features/blocks/integrations/openai/components/OpenAINodeBody.tsx b/apps/builder/src/features/blocks/integrations/openai/components/OpenAINodeBody.tsx index af386f63f34..fa151a5f92c 100644 --- a/apps/builder/src/features/blocks/integrations/openai/components/OpenAINodeBody.tsx +++ b/apps/builder/src/features/blocks/integrations/openai/components/OpenAINodeBody.tsx @@ -5,7 +5,7 @@ import { ChatCompletionOpenAIOptions, CreateImageOpenAIOptions, OpenAIBlock, -} from 'models/features/blocks/integrations/openai' +} from '@typebot.io/schemas/features/blocks/integrations/openai' type Props = { task: OpenAIBlock['options']['task'] diff --git a/apps/builder/src/features/blocks/integrations/openai/components/OpenAISettings.tsx b/apps/builder/src/features/blocks/integrations/openai/components/OpenAISettings.tsx index 318ba283118..224fc5128dc 100644 --- a/apps/builder/src/features/blocks/integrations/openai/components/OpenAISettings.tsx +++ b/apps/builder/src/features/blocks/integrations/openai/components/OpenAISettings.tsx @@ -7,7 +7,7 @@ import { defaultChatCompletionOptions, OpenAIBlock, openAITasks, -} from 'models/features/blocks/integrations/openai' +} from '@typebot.io/schemas/features/blocks/integrations/openai' import { OpenAICredentialsModal } from './OpenAICredentialsModal' import { useWorkspace } from '@/features/workspace/WorkspaceProvider' import { DropdownList } from '@/components/DropdownList' diff --git a/apps/builder/src/features/blocks/integrations/openai/components/createChatCompletion/ChatCompletionMessageItem.tsx b/apps/builder/src/features/blocks/integrations/openai/components/createChatCompletion/ChatCompletionMessageItem.tsx index 9f8b77c6982..bd028918085 100644 --- a/apps/builder/src/features/blocks/integrations/openai/components/createChatCompletion/ChatCompletionMessageItem.tsx +++ b/apps/builder/src/features/blocks/integrations/openai/components/createChatCompletion/ChatCompletionMessageItem.tsx @@ -3,12 +3,12 @@ import { TextInput } from '@/components/inputs' import { VariableSearchInput } from '@/components/inputs/VariableSearchInput' import { TableListItemProps } from '@/components/TableList' import { Stack } from '@chakra-ui/react' -import { Variable } from 'models' +import { Variable } from '@typebot.io/schemas' import { chatCompletionMessageCustomRoles, chatCompletionMessageRoles, ChatCompletionOpenAIOptions, -} from 'models/features/blocks/integrations/openai' +} from '@typebot.io/schemas/features/blocks/integrations/openai' type Props = TableListItemProps diff --git a/apps/builder/src/features/blocks/integrations/openai/components/createChatCompletion/ChatCompletionResponseItem.tsx b/apps/builder/src/features/blocks/integrations/openai/components/createChatCompletion/ChatCompletionResponseItem.tsx index a077bd0a69f..9d7278c6120 100644 --- a/apps/builder/src/features/blocks/integrations/openai/components/createChatCompletion/ChatCompletionResponseItem.tsx +++ b/apps/builder/src/features/blocks/integrations/openai/components/createChatCompletion/ChatCompletionResponseItem.tsx @@ -2,11 +2,11 @@ import { DropdownList } from '@/components/DropdownList' import { VariableSearchInput } from '@/components/inputs/VariableSearchInput' import { TableListItemProps } from '@/components/TableList' import { Stack } from '@chakra-ui/react' -import { Variable } from 'models' +import { Variable } from '@typebot.io/schemas' import { ChatCompletionOpenAIOptions, chatCompletionResponseValues, -} from 'models/features/blocks/integrations/openai' +} from '@typebot.io/schemas/features/blocks/integrations/openai' type Props = TableListItemProps< ChatCompletionOpenAIOptions['responseMapping'][number] diff --git a/apps/builder/src/features/blocks/integrations/openai/components/createChatCompletion/OpenAIChatCompletionSettings.tsx b/apps/builder/src/features/blocks/integrations/openai/components/createChatCompletion/OpenAIChatCompletionSettings.tsx index 1e35f2632bf..e8746ebd55a 100644 --- a/apps/builder/src/features/blocks/integrations/openai/components/createChatCompletion/OpenAIChatCompletionSettings.tsx +++ b/apps/builder/src/features/blocks/integrations/openai/components/createChatCompletion/OpenAIChatCompletionSettings.tsx @@ -3,7 +3,7 @@ import { TableList } from '@/components/TableList' import { chatCompletionModels, ChatCompletionOpenAIOptions, -} from 'models/features/blocks/integrations/openai' +} from '@typebot.io/schemas/features/blocks/integrations/openai' import { ChatCompletionMessageItem } from './ChatCompletionMessageItem' import { Accordion, diff --git a/apps/builder/src/features/blocks/integrations/openai/openai.spec.ts b/apps/builder/src/features/blocks/integrations/openai/openai.spec.ts index d1587e62b37..f352bdda557 100644 --- a/apps/builder/src/features/blocks/integrations/openai/openai.spec.ts +++ b/apps/builder/src/features/blocks/integrations/openai/openai.spec.ts @@ -1,8 +1,8 @@ import test, { expect } from '@playwright/test' -import { createTypebots } from 'utils/playwright/databaseActions' +import { createTypebots } from '@typebot.io/lib/playwright/databaseActions' import { createId } from '@paralleldrive/cuid2' -import { IntegrationBlockType } from 'models' -import { parseDefaultGroupWithBlock } from 'utils/playwright/databaseHelpers' +import { IntegrationBlockType } from '@typebot.io/schemas' +import { parseDefaultGroupWithBlock } from '@typebot.io/lib/playwright/databaseHelpers' const typebotId = createId() diff --git a/apps/builder/src/features/blocks/integrations/pabbly/components/PabblyConnectContent.tsx b/apps/builder/src/features/blocks/integrations/pabbly/components/PabblyConnectContent.tsx index 9db2fb3b707..0e8fc5a1540 100644 --- a/apps/builder/src/features/blocks/integrations/pabbly/components/PabblyConnectContent.tsx +++ b/apps/builder/src/features/blocks/integrations/pabbly/components/PabblyConnectContent.tsx @@ -1,7 +1,7 @@ import { Text } from '@chakra-ui/react' import { useTypebot } from '@/features/editor' -import { PabblyConnectBlock } from 'models' -import { byId, isNotDefined } from 'utils' +import { PabblyConnectBlock } from '@typebot.io/schemas' +import { byId, isNotDefined } from '@typebot.io/lib' type Props = { block: PabblyConnectBlock diff --git a/apps/builder/src/features/blocks/integrations/pabbly/components/PabblyConnectSettings.tsx b/apps/builder/src/features/blocks/integrations/pabbly/components/PabblyConnectSettings.tsx index b3ec74e9c62..ee19c6b7876 100644 --- a/apps/builder/src/features/blocks/integrations/pabbly/components/PabblyConnectSettings.tsx +++ b/apps/builder/src/features/blocks/integrations/pabbly/components/PabblyConnectSettings.tsx @@ -1,9 +1,13 @@ import { Alert, AlertIcon, Button, Link, Stack, Text } from '@chakra-ui/react' import { ExternalLinkIcon } from '@/components/icons' import { useTypebot } from '@/features/editor' -import { PabblyConnectBlock, Webhook, WebhookOptions } from 'models' +import { + PabblyConnectBlock, + Webhook, + WebhookOptions, +} from '@typebot.io/schemas' import React, { useState } from 'react' -import { byId } from 'utils' +import { byId } from '@typebot.io/lib' import { WebhookAdvancedConfigForm } from '../../webhook/components/WebhookAdvancedConfigForm' import { TextInput } from '@/components/inputs' diff --git a/apps/builder/src/features/blocks/integrations/sendEmail/components/SendEmailContent.tsx b/apps/builder/src/features/blocks/integrations/sendEmail/components/SendEmailContent.tsx index d6258961e0e..64d7335b1b8 100644 --- a/apps/builder/src/features/blocks/integrations/sendEmail/components/SendEmailContent.tsx +++ b/apps/builder/src/features/blocks/integrations/sendEmail/components/SendEmailContent.tsx @@ -1,5 +1,5 @@ import { Tag, Text, Wrap, WrapItem } from '@chakra-ui/react' -import { SendEmailBlock } from 'models' +import { SendEmailBlock } from '@typebot.io/schemas' type Props = { block: SendEmailBlock diff --git a/apps/builder/src/features/blocks/integrations/sendEmail/components/SendEmailSettings/SendEmailSettings.tsx b/apps/builder/src/features/blocks/integrations/sendEmail/components/SendEmailSettings/SendEmailSettings.tsx index d005a90cb48..490d5ddc92d 100644 --- a/apps/builder/src/features/blocks/integrations/sendEmail/components/SendEmailSettings/SendEmailSettings.tsx +++ b/apps/builder/src/features/blocks/integrations/sendEmail/components/SendEmailSettings/SendEmailSettings.tsx @@ -8,9 +8,9 @@ import { FormLabel, } from '@chakra-ui/react' import { CodeEditor } from '@/components/inputs/CodeEditor' -import { SendEmailOptions, Variable } from 'models' +import { SendEmailOptions, Variable } from '@typebot.io/schemas' import React from 'react' -import { env, isNotEmpty } from 'utils' +import { env, isNotEmpty } from '@typebot.io/lib' import { SmtpConfigModal } from './SmtpConfigModal' import { SwitchWithLabel } from '@/components/inputs/SwitchWithLabel' import { VariableSearchInput } from '@/components/inputs/VariableSearchInput' diff --git a/apps/builder/src/features/blocks/integrations/sendEmail/components/SendEmailSettings/SmtpConfigForm.tsx b/apps/builder/src/features/blocks/integrations/sendEmail/components/SendEmailSettings/SmtpConfigForm.tsx index c4b839452ef..0665582624d 100644 --- a/apps/builder/src/features/blocks/integrations/sendEmail/components/SendEmailSettings/SmtpConfigForm.tsx +++ b/apps/builder/src/features/blocks/integrations/sendEmail/components/SendEmailSettings/SmtpConfigForm.tsx @@ -2,7 +2,7 @@ import { TextInput, NumberInput } from '@/components/inputs' import { SwitchWithLabel } from '@/components/inputs/SwitchWithLabel' import { Stack } from '@chakra-ui/react' import { isDefined } from '@udecode/plate-common' -import { SmtpCredentials } from 'models' +import { SmtpCredentials } from '@typebot.io/schemas' import React from 'react' type Props = { diff --git a/apps/builder/src/features/blocks/integrations/sendEmail/components/SendEmailSettings/SmtpConfigModal.tsx b/apps/builder/src/features/blocks/integrations/sendEmail/components/SendEmailSettings/SmtpConfigModal.tsx index 9caa8964fec..a2d4525c6ab 100644 --- a/apps/builder/src/features/blocks/integrations/sendEmail/components/SendEmailSettings/SmtpConfigModal.tsx +++ b/apps/builder/src/features/blocks/integrations/sendEmail/components/SendEmailSettings/SmtpConfigModal.tsx @@ -10,12 +10,12 @@ import { } from '@chakra-ui/react' import { useUser } from '@/features/account' import React, { useState } from 'react' -import { isNotDefined } from 'utils' +import { isNotDefined } from '@typebot.io/lib' import { SmtpConfigForm } from './SmtpConfigForm' import { useWorkspace } from '@/features/workspace' import { useToast } from '@/hooks/useToast' import { testSmtpConfig } from '../../queries/testSmtpConfigQuery' -import { SmtpCredentials } from 'models' +import { SmtpCredentials } from '@typebot.io/schemas' import { trpc } from '@/lib/trpc' type Props = { diff --git a/apps/builder/src/features/blocks/integrations/sendEmail/queries/sendEmail.spec.ts b/apps/builder/src/features/blocks/integrations/sendEmail/queries/sendEmail.spec.ts index 8e0c975303f..266a0580b67 100644 --- a/apps/builder/src/features/blocks/integrations/sendEmail/queries/sendEmail.spec.ts +++ b/apps/builder/src/features/blocks/integrations/sendEmail/queries/sendEmail.spec.ts @@ -1,5 +1,5 @@ import test, { expect } from '@playwright/test' -import { importTypebotInDatabase } from 'utils/playwright/databaseActions' +import { importTypebotInDatabase } from '@typebot.io/lib/playwright/databaseActions' import { createId } from '@paralleldrive/cuid2' import { getTestAsset } from '@/test/utils/playwright' diff --git a/apps/builder/src/features/blocks/integrations/sendEmail/queries/testSmtpConfigQuery.ts b/apps/builder/src/features/blocks/integrations/sendEmail/queries/testSmtpConfigQuery.ts index 50fd611da1d..b1508e08517 100644 --- a/apps/builder/src/features/blocks/integrations/sendEmail/queries/testSmtpConfigQuery.ts +++ b/apps/builder/src/features/blocks/integrations/sendEmail/queries/testSmtpConfigQuery.ts @@ -1,5 +1,5 @@ -import { SmtpCredentials } from 'models' -import { sendRequest } from 'utils' +import { SmtpCredentials } from '@typebot.io/schemas' +import { sendRequest } from '@typebot.io/lib' export const testSmtpConfig = (smtpData: SmtpCredentials['data'], to: string) => sendRequest({ diff --git a/apps/builder/src/features/blocks/integrations/webhook/api/procedures/getResultExampleProcedure.ts b/apps/builder/src/features/blocks/integrations/webhook/api/procedures/getResultExampleProcedure.ts index 89b01afb088..d26b070f5bb 100644 --- a/apps/builder/src/features/blocks/integrations/webhook/api/procedures/getResultExampleProcedure.ts +++ b/apps/builder/src/features/blocks/integrations/webhook/api/procedures/getResultExampleProcedure.ts @@ -3,7 +3,7 @@ import prisma from '@/lib/prisma' import { canReadTypebots } from '@/utils/api/dbRules' import { authenticatedProcedure } from '@/utils/server/trpc' import { TRPCError } from '@trpc/server' -import { Typebot, Webhook } from 'models' +import { Typebot, Webhook } from '@typebot.io/schemas' import { z } from 'zod' import { parseResultExample } from '../utils' diff --git a/apps/builder/src/features/blocks/integrations/webhook/api/procedures/listWebhookBlocksProcedure.ts b/apps/builder/src/features/blocks/integrations/webhook/api/procedures/listWebhookBlocksProcedure.ts index bcc19f4af55..4c39e2d62ae 100644 --- a/apps/builder/src/features/blocks/integrations/webhook/api/procedures/listWebhookBlocksProcedure.ts +++ b/apps/builder/src/features/blocks/integrations/webhook/api/procedures/listWebhookBlocksProcedure.ts @@ -2,8 +2,8 @@ import prisma from '@/lib/prisma' import { canReadTypebots } from '@/utils/api/dbRules' import { authenticatedProcedure } from '@/utils/server/trpc' import { TRPCError } from '@trpc/server' -import { Group, Typebot, Webhook, WebhookBlock } from 'models' -import { byId, isWebhookBlock, parseGroupTitle } from 'utils' +import { Group, Typebot, Webhook, WebhookBlock } from '@typebot.io/schemas' +import { byId, isWebhookBlock, parseGroupTitle } from '@typebot.io/lib' import { z } from 'zod' export const listWebhookBlocksProcedure = authenticatedProcedure diff --git a/apps/builder/src/features/blocks/integrations/webhook/api/procedures/subscribeWebhookProcedure.ts b/apps/builder/src/features/blocks/integrations/webhook/api/procedures/subscribeWebhookProcedure.ts index 89beb49d3d3..d3695e2085e 100644 --- a/apps/builder/src/features/blocks/integrations/webhook/api/procedures/subscribeWebhookProcedure.ts +++ b/apps/builder/src/features/blocks/integrations/webhook/api/procedures/subscribeWebhookProcedure.ts @@ -2,8 +2,8 @@ import prisma from '@/lib/prisma' import { canWriteTypebots } from '@/utils/api/dbRules' import { authenticatedProcedure } from '@/utils/server/trpc' import { TRPCError } from '@trpc/server' -import { Typebot, Webhook, WebhookBlock } from 'models' -import { byId, isWebhookBlock } from 'utils' +import { Typebot, Webhook, WebhookBlock } from '@typebot.io/schemas' +import { byId, isWebhookBlock } from '@typebot.io/lib' import { z } from 'zod' export const subscribeWebhookProcedure = authenticatedProcedure diff --git a/apps/builder/src/features/blocks/integrations/webhook/api/procedures/unsubscribeWebhookProcedure.ts b/apps/builder/src/features/blocks/integrations/webhook/api/procedures/unsubscribeWebhookProcedure.ts index 6ba92f170d2..96442176b0c 100644 --- a/apps/builder/src/features/blocks/integrations/webhook/api/procedures/unsubscribeWebhookProcedure.ts +++ b/apps/builder/src/features/blocks/integrations/webhook/api/procedures/unsubscribeWebhookProcedure.ts @@ -2,8 +2,8 @@ import prisma from '@/lib/prisma' import { canWriteTypebots } from '@/utils/api/dbRules' import { authenticatedProcedure } from '@/utils/server/trpc' import { TRPCError } from '@trpc/server' -import { Typebot, Webhook, WebhookBlock } from 'models' -import { byId, isWebhookBlock } from 'utils' +import { Typebot, Webhook, WebhookBlock } from '@typebot.io/schemas' +import { byId, isWebhookBlock } from '@typebot.io/lib' import { z } from 'zod' export const unsubscribeWebhookProcedure = authenticatedProcedure diff --git a/apps/builder/src/features/blocks/integrations/webhook/api/utils/parseResultExample.ts b/apps/builder/src/features/blocks/integrations/webhook/api/utils/parseResultExample.ts index 998979e7698..bf47767be8a 100644 --- a/apps/builder/src/features/blocks/integrations/webhook/api/utils/parseResultExample.ts +++ b/apps/builder/src/features/blocks/integrations/webhook/api/utils/parseResultExample.ts @@ -7,9 +7,9 @@ import { Block, Typebot, TypebotLinkBlock, -} from 'models' -import { isInputBlock, byId, isNotDefined } from 'utils' -import { parseResultHeader } from 'utils/results' +} from '@typebot.io/schemas' +import { isInputBlock, byId, isNotDefined } from '@typebot.io/lib' +import { parseResultHeader } from '@typebot.io/lib/results' export const parseResultExample = ( diff --git a/apps/builder/src/features/blocks/integrations/webhook/components/WebhookAdvancedConfigForm.tsx b/apps/builder/src/features/blocks/integrations/webhook/components/WebhookAdvancedConfigForm.tsx index 2cedbb85c07..a902e766b92 100644 --- a/apps/builder/src/features/blocks/integrations/webhook/components/WebhookAdvancedConfigForm.tsx +++ b/apps/builder/src/features/blocks/integrations/webhook/components/WebhookAdvancedConfigForm.tsx @@ -22,7 +22,7 @@ import { ResponseVariableMapping, WebhookOptions, Webhook, -} from 'models' +} from '@typebot.io/schemas' import { useState, useMemo } from 'react' import { executeWebhook } from '../queries/executeWebhookQuery' import { convertVariablesForTestToVariables } from '../utils/convertVariablesForTestToVariables' diff --git a/apps/builder/src/features/blocks/integrations/webhook/components/WebhookContent.tsx b/apps/builder/src/features/blocks/integrations/webhook/components/WebhookContent.tsx index c7a579f458c..8b271947a24 100644 --- a/apps/builder/src/features/blocks/integrations/webhook/components/WebhookContent.tsx +++ b/apps/builder/src/features/blocks/integrations/webhook/components/WebhookContent.tsx @@ -1,7 +1,7 @@ import { Stack, Text } from '@chakra-ui/react' import { useTypebot } from '@/features/editor' -import { WebhookBlock } from 'models' -import { byId } from 'utils' +import { WebhookBlock } from '@typebot.io/schemas' +import { byId } from '@typebot.io/lib' import { SetVariableLabel } from '@/components/SetVariableLabel' type Props = { diff --git a/apps/builder/src/features/blocks/integrations/webhook/components/WebhookSettings/KeyValueInputs.tsx b/apps/builder/src/features/blocks/integrations/webhook/components/WebhookSettings/KeyValueInputs.tsx index cc06411fd9a..5cb48b223fd 100644 --- a/apps/builder/src/features/blocks/integrations/webhook/components/WebhookSettings/KeyValueInputs.tsx +++ b/apps/builder/src/features/blocks/integrations/webhook/components/WebhookSettings/KeyValueInputs.tsx @@ -1,7 +1,7 @@ import { TextInput } from '@/components/inputs' import { TableListItemProps } from '@/components/TableList' import { Stack } from '@chakra-ui/react' -import { KeyValue } from 'models' +import { KeyValue } from '@typebot.io/schemas' export const QueryParamsInputs = (props: TableListItemProps) => ( { test('easy configuration should work', async ({ page }) => { diff --git a/apps/builder/src/features/blocks/integrations/zapier/components/ZapierContent.tsx b/apps/builder/src/features/blocks/integrations/zapier/components/ZapierContent.tsx index 92564d30750..013730ebb77 100644 --- a/apps/builder/src/features/blocks/integrations/zapier/components/ZapierContent.tsx +++ b/apps/builder/src/features/blocks/integrations/zapier/components/ZapierContent.tsx @@ -1,7 +1,7 @@ import { Text } from '@chakra-ui/react' import { useTypebot } from '@/features/editor' -import { ZapierBlock } from 'models' -import { byId, isNotDefined } from 'utils' +import { ZapierBlock } from '@typebot.io/schemas' +import { byId, isNotDefined } from '@typebot.io/lib' type Props = { block: ZapierBlock diff --git a/apps/builder/src/features/blocks/integrations/zapier/components/ZapierSettings.tsx b/apps/builder/src/features/blocks/integrations/zapier/components/ZapierSettings.tsx index fe434a68d2b..9f464cdee76 100644 --- a/apps/builder/src/features/blocks/integrations/zapier/components/ZapierSettings.tsx +++ b/apps/builder/src/features/blocks/integrations/zapier/components/ZapierSettings.tsx @@ -1,9 +1,9 @@ import { Alert, AlertIcon, Button, Link, Stack, Text } from '@chakra-ui/react' import { ExternalLinkIcon } from '@/components/icons' import { useTypebot } from '@/features/editor' -import { Webhook, WebhookOptions, ZapierBlock } from 'models' +import { Webhook, WebhookOptions, ZapierBlock } from '@typebot.io/schemas' import React, { useCallback, useEffect, useState } from 'react' -import { byId } from 'utils' +import { byId } from '@typebot.io/lib' import { WebhookAdvancedConfigForm } from '../../webhook/components/WebhookAdvancedConfigForm' type Props = { diff --git a/apps/builder/src/features/blocks/logic/condition/components/ConditionItemForm/ComparisonItem.tsx b/apps/builder/src/features/blocks/logic/condition/components/ConditionItemForm/ComparisonItem.tsx index b92588aaedf..a76d6360ac0 100644 --- a/apps/builder/src/features/blocks/logic/condition/components/ConditionItemForm/ComparisonItem.tsx +++ b/apps/builder/src/features/blocks/logic/condition/components/ConditionItemForm/ComparisonItem.tsx @@ -1,6 +1,6 @@ import { Stack } from '@chakra-ui/react' import { DropdownList } from '@/components/DropdownList' -import { Comparison, Variable, ComparisonOperators } from 'models' +import { Comparison, Variable, ComparisonOperators } from '@typebot.io/schemas' import { TableListItemProps } from '@/components/TableList' import { VariableSearchInput } from '@/components/inputs/VariableSearchInput' import { TextInput } from '@/components/inputs' diff --git a/apps/builder/src/features/blocks/logic/condition/components/ConditionItemForm/ConditionItemForm.tsx b/apps/builder/src/features/blocks/logic/condition/components/ConditionItemForm/ConditionItemForm.tsx index 1d79ba7fac6..b278420186f 100644 --- a/apps/builder/src/features/blocks/logic/condition/components/ConditionItemForm/ConditionItemForm.tsx +++ b/apps/builder/src/features/blocks/logic/condition/components/ConditionItemForm/ConditionItemForm.tsx @@ -1,6 +1,6 @@ import { Flex } from '@chakra-ui/react' import { DropdownList } from '@/components/DropdownList' -import { Comparison, ConditionItem, LogicalOperator } from 'models' +import { Comparison, ConditionItem, LogicalOperator } from '@typebot.io/schemas' import React from 'react' import { ComparisonItem } from './ComparisonItem' import { TableList } from '@/components/TableList' diff --git a/apps/builder/src/features/blocks/logic/condition/components/ConditionItemNode.tsx b/apps/builder/src/features/blocks/logic/condition/components/ConditionItemNode.tsx index 739484babc6..d61bc20f620 100644 --- a/apps/builder/src/features/blocks/logic/condition/components/ConditionItemNode.tsx +++ b/apps/builder/src/features/blocks/logic/condition/components/ConditionItemNode.tsx @@ -22,9 +22,9 @@ import { ComparisonOperators, ItemType, ItemIndices, -} from 'models' +} from '@typebot.io/schemas' import React, { useRef } from 'react' -import { byId, isNotDefined } from 'utils' +import { byId, isNotDefined } from '@typebot.io/lib' import { PlusIcon } from '@/components/icons' import { ConditionItemForm } from './ConditionItemForm' import { useGraph } from '@/features/graph' diff --git a/apps/builder/src/features/blocks/logic/condition/condition.spec.ts b/apps/builder/src/features/blocks/logic/condition/condition.spec.ts index d61ff16c616..b4bd4baedaf 100644 --- a/apps/builder/src/features/blocks/logic/condition/condition.spec.ts +++ b/apps/builder/src/features/blocks/logic/condition/condition.spec.ts @@ -1,5 +1,5 @@ import test, { expect } from '@playwright/test' -import { importTypebotInDatabase } from 'utils/playwright/databaseActions' +import { importTypebotInDatabase } from '@typebot.io/lib/playwright/databaseActions' import { createId } from '@paralleldrive/cuid2' import { getTestAsset } from '@/test/utils/playwright' diff --git a/apps/builder/src/features/blocks/logic/jump/components/JumpNodeBody.tsx b/apps/builder/src/features/blocks/logic/jump/components/JumpNodeBody.tsx index 65e7d41202c..95fc7b2e2be 100644 --- a/apps/builder/src/features/blocks/logic/jump/components/JumpNodeBody.tsx +++ b/apps/builder/src/features/blocks/logic/jump/components/JumpNodeBody.tsx @@ -1,8 +1,8 @@ import React from 'react' import { Tag, Text } from '@chakra-ui/react' import { useTypebot } from '@/features/editor' -import { byId, isDefined, parseGroupTitle } from 'utils' -import { JumpBlock } from 'models/features/blocks/logic/jump' +import { byId, isDefined, parseGroupTitle } from '@typebot.io/lib' +import { JumpBlock } from '@typebot.io/schemas/features/blocks/logic/jump' type Props = { options: JumpBlock['options'] diff --git a/apps/builder/src/features/blocks/logic/jump/components/JumpSettings.tsx b/apps/builder/src/features/blocks/logic/jump/components/JumpSettings.tsx index 3ab7dfa3792..37212b48719 100644 --- a/apps/builder/src/features/blocks/logic/jump/components/JumpSettings.tsx +++ b/apps/builder/src/features/blocks/logic/jump/components/JumpSettings.tsx @@ -1,9 +1,9 @@ import { Select } from '@/components/inputs/Select' import { useTypebot } from '@/features/editor' import { Stack } from '@chakra-ui/react' -import { JumpBlock } from 'models/features/blocks/logic/jump' +import { JumpBlock } from '@typebot.io/schemas/features/blocks/logic/jump' import React from 'react' -import { byId, parseGroupTitle } from 'utils' +import { byId, parseGroupTitle } from '@typebot.io/lib' type Props = { groupId: string diff --git a/apps/builder/src/features/blocks/logic/jump/jump.spec.ts b/apps/builder/src/features/blocks/logic/jump/jump.spec.ts index a495ed8e47f..34171efbff7 100644 --- a/apps/builder/src/features/blocks/logic/jump/jump.spec.ts +++ b/apps/builder/src/features/blocks/logic/jump/jump.spec.ts @@ -1,5 +1,5 @@ import test, { expect } from '@playwright/test' -import { importTypebotInDatabase } from 'utils/playwright/databaseActions' +import { importTypebotInDatabase } from '@typebot.io/lib/playwright/databaseActions' import { createId } from '@paralleldrive/cuid2' import { getTestAsset } from '@/test/utils/playwright' diff --git a/apps/builder/src/features/blocks/logic/redirect/components/RedirectNodeContent.tsx b/apps/builder/src/features/blocks/logic/redirect/components/RedirectNodeContent.tsx index 5f9098f84d6..39dcd035d99 100644 --- a/apps/builder/src/features/blocks/logic/redirect/components/RedirectNodeContent.tsx +++ b/apps/builder/src/features/blocks/logic/redirect/components/RedirectNodeContent.tsx @@ -1,6 +1,6 @@ import React from 'react' import { Text } from '@chakra-ui/react' -import { RedirectOptions } from 'models' +import { RedirectOptions } from '@typebot.io/schemas' type Props = { url: RedirectOptions['url'] } diff --git a/apps/builder/src/features/blocks/logic/redirect/components/RedirectSettings.tsx b/apps/builder/src/features/blocks/logic/redirect/components/RedirectSettings.tsx index 580a4df2618..bc2d9a2767f 100644 --- a/apps/builder/src/features/blocks/logic/redirect/components/RedirectSettings.tsx +++ b/apps/builder/src/features/blocks/logic/redirect/components/RedirectSettings.tsx @@ -1,7 +1,7 @@ import { TextInput } from '@/components/inputs' import { SwitchWithLabel } from '@/components/inputs/SwitchWithLabel' import { Stack } from '@chakra-ui/react' -import { RedirectOptions } from 'models' +import { RedirectOptions } from '@typebot.io/schemas' import React from 'react' type Props = { diff --git a/apps/builder/src/features/blocks/logic/redirect/redirect.spec.ts b/apps/builder/src/features/blocks/logic/redirect/redirect.spec.ts index 6c509003d97..ec61fc57e4b 100644 --- a/apps/builder/src/features/blocks/logic/redirect/redirect.spec.ts +++ b/apps/builder/src/features/blocks/logic/redirect/redirect.spec.ts @@ -1,5 +1,5 @@ import test, { expect } from '@playwright/test' -import { importTypebotInDatabase } from 'utils/playwright/databaseActions' +import { importTypebotInDatabase } from '@typebot.io/lib/playwright/databaseActions' import { createId } from '@paralleldrive/cuid2' import { getTestAsset } from '@/test/utils/playwright' diff --git a/apps/builder/src/features/blocks/logic/script/components/ScriptNodeContent.tsx b/apps/builder/src/features/blocks/logic/script/components/ScriptNodeContent.tsx index fef99b4f363..397a4f6747c 100644 --- a/apps/builder/src/features/blocks/logic/script/components/ScriptNodeContent.tsx +++ b/apps/builder/src/features/blocks/logic/script/components/ScriptNodeContent.tsx @@ -1,6 +1,6 @@ import React from 'react' import { Text } from '@chakra-ui/react' -import { ScriptOptions } from 'models' +import { ScriptOptions } from '@typebot.io/schemas' type Props = ScriptOptions diff --git a/apps/builder/src/features/blocks/logic/script/components/ScriptSettings.tsx b/apps/builder/src/features/blocks/logic/script/components/ScriptSettings.tsx index 78f68034818..d9ded0d39db 100644 --- a/apps/builder/src/features/blocks/logic/script/components/ScriptSettings.tsx +++ b/apps/builder/src/features/blocks/logic/script/components/ScriptSettings.tsx @@ -2,7 +2,7 @@ import { Stack, Text } from '@chakra-ui/react' import { CodeEditor } from '@/components/inputs/CodeEditor' import React from 'react' import { TextInput } from '@/components/inputs' -import { ScriptOptions } from 'models' +import { ScriptOptions } from '@typebot.io/schemas' type Props = { options: ScriptOptions diff --git a/apps/builder/src/features/blocks/logic/script/script.spec.ts b/apps/builder/src/features/blocks/logic/script/script.spec.ts index 3bea66b7417..9287d01dab9 100644 --- a/apps/builder/src/features/blocks/logic/script/script.spec.ts +++ b/apps/builder/src/features/blocks/logic/script/script.spec.ts @@ -1,5 +1,5 @@ import test, { expect } from '@playwright/test' -import { importTypebotInDatabase } from 'utils/playwright/databaseActions' +import { importTypebotInDatabase } from '@typebot.io/lib/playwright/databaseActions' import { createId } from '@paralleldrive/cuid2' import { getTestAsset } from '@/test/utils/playwright' diff --git a/apps/builder/src/features/blocks/logic/setVariable/components/SetVariableContent.tsx b/apps/builder/src/features/blocks/logic/setVariable/components/SetVariableContent.tsx index 92a24000c4c..5aafba32cc1 100644 --- a/apps/builder/src/features/blocks/logic/setVariable/components/SetVariableContent.tsx +++ b/apps/builder/src/features/blocks/logic/setVariable/components/SetVariableContent.tsx @@ -1,7 +1,7 @@ import { Text } from '@chakra-ui/react' import { useTypebot } from '@/features/editor' -import { SetVariableBlock } from 'models' -import { byId } from 'utils' +import { SetVariableBlock } from '@typebot.io/schemas' +import { byId } from '@typebot.io/lib' export const SetVariableContent = ({ block }: { block: SetVariableBlock }) => { const { typebot } = useTypebot() diff --git a/apps/builder/src/features/blocks/logic/setVariable/components/SetVariableSettings.tsx b/apps/builder/src/features/blocks/logic/setVariable/components/SetVariableSettings.tsx index 4eb05befd55..fb56a55d29d 100644 --- a/apps/builder/src/features/blocks/logic/setVariable/components/SetVariableSettings.tsx +++ b/apps/builder/src/features/blocks/logic/setVariable/components/SetVariableSettings.tsx @@ -1,6 +1,6 @@ import { FormLabel, HStack, Stack, Switch, Text } from '@chakra-ui/react' import { CodeEditor } from '@/components/inputs/CodeEditor' -import { SetVariableOptions, Variable } from 'models' +import { SetVariableOptions, Variable } from '@typebot.io/schemas' import React from 'react' import { VariableSearchInput } from '@/components/inputs/VariableSearchInput' import { Textarea } from '@/components/inputs' diff --git a/apps/builder/src/features/blocks/logic/setVariable/setVariable.spec.ts b/apps/builder/src/features/blocks/logic/setVariable/setVariable.spec.ts index 3af45e725a1..f1107b7d9a7 100644 --- a/apps/builder/src/features/blocks/logic/setVariable/setVariable.spec.ts +++ b/apps/builder/src/features/blocks/logic/setVariable/setVariable.spec.ts @@ -1,5 +1,5 @@ import test, { expect } from '@playwright/test' -import { importTypebotInDatabase } from 'utils/playwright/databaseActions' +import { importTypebotInDatabase } from '@typebot.io/lib/playwright/databaseActions' import { createId } from '@paralleldrive/cuid2' import { getTestAsset } from '@/test/utils/playwright' diff --git a/apps/builder/src/features/blocks/logic/typebotLink/api/utils/getLinkedTypebots.ts b/apps/builder/src/features/blocks/logic/typebotLink/api/utils/getLinkedTypebots.ts index 481195e7ecb..b53de1802a6 100644 --- a/apps/builder/src/features/blocks/logic/typebotLink/api/utils/getLinkedTypebots.ts +++ b/apps/builder/src/features/blocks/logic/typebotLink/api/utils/getLinkedTypebots.ts @@ -1,13 +1,13 @@ import prisma from '@/lib/prisma' import { canReadTypebots } from '@/utils/api/dbRules' -import { User } from 'db' +import { User } from '@typebot.io/prisma' import { LogicBlockType, PublicTypebot, Typebot, TypebotLinkBlock, -} from 'models' -import { isDefined } from 'utils' +} from '@typebot.io/schemas' +import { isDefined } from '@typebot.io/lib' export const getLinkedTypebots = async ( typebot: Pick, diff --git a/apps/builder/src/features/blocks/logic/typebotLink/components/TypebotLinkForm/GroupsDropdown.tsx b/apps/builder/src/features/blocks/logic/typebotLink/components/TypebotLinkForm/GroupsDropdown.tsx index f78aa73181c..3ea5f04a348 100644 --- a/apps/builder/src/features/blocks/logic/typebotLink/components/TypebotLinkForm/GroupsDropdown.tsx +++ b/apps/builder/src/features/blocks/logic/typebotLink/components/TypebotLinkForm/GroupsDropdown.tsx @@ -1,7 +1,7 @@ import { Select } from '@/components/inputs/Select' import { Input } from '@chakra-ui/react' -import { Group } from 'models' -import { parseGroupTitle } from 'utils' +import { Group } from '@typebot.io/schemas' +import { parseGroupTitle } from '@typebot.io/lib' type Props = { groups: Group[] diff --git a/apps/builder/src/features/blocks/logic/typebotLink/components/TypebotLinkForm/TypebotLinkForm.tsx b/apps/builder/src/features/blocks/logic/typebotLink/components/TypebotLinkForm/TypebotLinkForm.tsx index fdcf64d4619..8a19d14c304 100644 --- a/apps/builder/src/features/blocks/logic/typebotLink/components/TypebotLinkForm/TypebotLinkForm.tsx +++ b/apps/builder/src/features/blocks/logic/typebotLink/components/TypebotLinkForm/TypebotLinkForm.tsx @@ -1,7 +1,7 @@ import { Stack } from '@chakra-ui/react' import { useTypebot } from '@/features/editor' -import { TypebotLinkOptions } from 'models' -import { byId } from 'utils' +import { TypebotLinkOptions } from '@typebot.io/schemas' +import { byId } from '@typebot.io/lib' import { GroupsDropdown } from './GroupsDropdown' import { TypebotsDropdown } from './TypebotsDropdown' diff --git a/apps/builder/src/features/blocks/logic/typebotLink/components/TypebotLinkNode.tsx b/apps/builder/src/features/blocks/logic/typebotLink/components/TypebotLinkNode.tsx index 8cc764c66c7..56e8b8df3cc 100644 --- a/apps/builder/src/features/blocks/logic/typebotLink/components/TypebotLinkNode.tsx +++ b/apps/builder/src/features/blocks/logic/typebotLink/components/TypebotLinkNode.tsx @@ -1,8 +1,8 @@ -import { TypebotLinkBlock } from 'models' +import { TypebotLinkBlock } from '@typebot.io/schemas' import React from 'react' import { Tag, Text } from '@chakra-ui/react' import { useTypebot } from '@/features/editor' -import { byId } from 'utils' +import { byId } from '@typebot.io/lib' type Props = { block: TypebotLinkBlock diff --git a/apps/builder/src/features/blocks/logic/typebotLink/typebotLink.spec.ts b/apps/builder/src/features/blocks/logic/typebotLink/typebotLink.spec.ts index cfd4c2cf9b8..5c288ba116c 100644 --- a/apps/builder/src/features/blocks/logic/typebotLink/typebotLink.spec.ts +++ b/apps/builder/src/features/blocks/logic/typebotLink/typebotLink.spec.ts @@ -1,5 +1,5 @@ import test, { expect } from '@playwright/test' -import { importTypebotInDatabase } from 'utils/playwright/databaseActions' +import { importTypebotInDatabase } from '@typebot.io/lib/playwright/databaseActions' import { createId } from '@paralleldrive/cuid2' import { getTestAsset } from '@/test/utils/playwright' diff --git a/apps/builder/src/features/blocks/logic/wait/components/WaitNodeContent.tsx b/apps/builder/src/features/blocks/logic/wait/components/WaitNodeContent.tsx index c8793c6b70a..e8844768309 100644 --- a/apps/builder/src/features/blocks/logic/wait/components/WaitNodeContent.tsx +++ b/apps/builder/src/features/blocks/logic/wait/components/WaitNodeContent.tsx @@ -1,5 +1,5 @@ import { Text } from '@chakra-ui/react' -import { WaitOptions } from 'models' +import { WaitOptions } from '@typebot.io/schemas' import React from 'react' type Props = { diff --git a/apps/builder/src/features/blocks/logic/wait/components/WaitSettings.tsx b/apps/builder/src/features/blocks/logic/wait/components/WaitSettings.tsx index b23afcf27a1..5479c7a32e5 100644 --- a/apps/builder/src/features/blocks/logic/wait/components/WaitSettings.tsx +++ b/apps/builder/src/features/blocks/logic/wait/components/WaitSettings.tsx @@ -1,5 +1,5 @@ import { Stack } from '@chakra-ui/react' -import { WaitOptions } from 'models' +import { WaitOptions } from '@typebot.io/schemas' import React from 'react' import { TextInput } from '@/components/inputs' diff --git a/apps/builder/src/features/blocks/logic/wait/wait.spec.ts b/apps/builder/src/features/blocks/logic/wait/wait.spec.ts index 3b132038ee3..a1363857567 100644 --- a/apps/builder/src/features/blocks/logic/wait/wait.spec.ts +++ b/apps/builder/src/features/blocks/logic/wait/wait.spec.ts @@ -1,5 +1,5 @@ import test, { expect } from '@playwright/test' -import { importTypebotInDatabase } from 'utils/playwright/databaseActions' +import { importTypebotInDatabase } from '@typebot.io/lib/playwright/databaseActions' import { createId } from '@paralleldrive/cuid2' import { getTestAsset } from '@/test/utils/playwright' diff --git a/apps/builder/src/features/collaboration/collaboration.spec.ts b/apps/builder/src/features/collaboration/collaboration.spec.ts index d04e7cbd07c..cb8c130a3a0 100644 --- a/apps/builder/src/features/collaboration/collaboration.spec.ts +++ b/apps/builder/src/features/collaboration/collaboration.spec.ts @@ -1,14 +1,14 @@ import test, { expect } from '@playwright/test' import { createId } from '@paralleldrive/cuid2' -import { CollaborationType, Plan, WorkspaceRole } from 'db' +import { CollaborationType, Plan, WorkspaceRole } from '@typebot.io/prisma' import prisma from '@/lib/prisma' -import { InputBlockType, defaultTextInputOptions } from 'models' +import { InputBlockType, defaultTextInputOptions } from '@typebot.io/schemas' import { createTypebots, injectFakeResults, -} from 'utils/playwright/databaseActions' -import { parseDefaultGroupWithBlock } from 'utils/playwright/databaseHelpers' -import { userId } from 'utils/playwright/databaseSetup' +} from '@typebot.io/lib/playwright/databaseActions' +import { parseDefaultGroupWithBlock } from '@typebot.io/lib/playwright/databaseHelpers' +import { userId } from '@typebot.io/lib/playwright/databaseSetup' import { createFolder } from '@/test/utils/databaseActions' test.describe('Typebot owner', () => { diff --git a/apps/builder/src/features/collaboration/components/CollaborationMenuButton/CollaborationList.tsx b/apps/builder/src/features/collaboration/components/CollaborationMenuButton/CollaborationList.tsx index 75905b4e4d5..8081b043720 100644 --- a/apps/builder/src/features/collaboration/components/CollaborationMenuButton/CollaborationList.tsx +++ b/apps/builder/src/features/collaboration/components/CollaborationMenuButton/CollaborationList.tsx @@ -17,7 +17,7 @@ import { ChevronLeftIcon } from '@/components/icons' import { useToast } from '@/hooks/useToast' import { useTypebot } from '@/features/editor' import { useWorkspace } from '@/features/workspace' -import { CollaborationType, WorkspaceRole } from 'db' +import { CollaborationType, WorkspaceRole } from '@typebot.io/prisma' import React, { FormEvent, useState } from 'react' import { CollaboratorItem } from './CollaboratorButton' import { EmojiOrImageIcon } from '@/components/EmojiOrImageIcon' diff --git a/apps/builder/src/features/collaboration/components/CollaborationMenuButton/CollaboratorButton.tsx b/apps/builder/src/features/collaboration/components/CollaborationMenuButton/CollaboratorButton.tsx index 23b99ccac1c..5cc8494f3cb 100644 --- a/apps/builder/src/features/collaboration/components/CollaborationMenuButton/CollaboratorButton.tsx +++ b/apps/builder/src/features/collaboration/components/CollaborationMenuButton/CollaboratorButton.tsx @@ -10,7 +10,7 @@ import { Text, useColorModeValue, } from '@chakra-ui/react' -import { CollaborationType } from 'db' +import { CollaborationType } from '@typebot.io/prisma' import React from 'react' import { convertCollaborationTypeEnumToReadable } from './CollaborationList' diff --git a/apps/builder/src/features/collaboration/hooks/useInvitations.ts b/apps/builder/src/features/collaboration/hooks/useInvitations.ts index b829e409ab8..5a4b164a249 100644 --- a/apps/builder/src/features/collaboration/hooks/useInvitations.ts +++ b/apps/builder/src/features/collaboration/hooks/useInvitations.ts @@ -1,7 +1,7 @@ import { fetcher } from '@/utils/helpers' -import { Invitation } from 'db' +import { Invitation } from '@typebot.io/prisma' import useSWR from 'swr' -import { env } from 'utils' +import { env } from '@typebot.io/lib' export const useInvitations = ({ typebotId, diff --git a/apps/builder/src/features/collaboration/queries/deleteCollaboratorQuery.ts b/apps/builder/src/features/collaboration/queries/deleteCollaboratorQuery.ts index 8dbf9f72978..2c6c3c3c47a 100644 --- a/apps/builder/src/features/collaboration/queries/deleteCollaboratorQuery.ts +++ b/apps/builder/src/features/collaboration/queries/deleteCollaboratorQuery.ts @@ -1,4 +1,4 @@ -import { sendRequest } from 'utils' +import { sendRequest } from '@typebot.io/lib' export const deleteCollaboratorQuery = (typebotId: string, userId: string) => sendRequest({ diff --git a/apps/builder/src/features/collaboration/queries/deleteInvitationQuery.ts b/apps/builder/src/features/collaboration/queries/deleteInvitationQuery.ts index 4e125c3353f..ac9fff1449c 100644 --- a/apps/builder/src/features/collaboration/queries/deleteInvitationQuery.ts +++ b/apps/builder/src/features/collaboration/queries/deleteInvitationQuery.ts @@ -1,4 +1,4 @@ -import { sendRequest } from 'utils' +import { sendRequest } from '@typebot.io/lib' export const deleteInvitationQuery = (typebotId: string, email: string) => sendRequest({ diff --git a/apps/builder/src/features/collaboration/queries/sendInvitationQuery.ts b/apps/builder/src/features/collaboration/queries/sendInvitationQuery.ts index 5ca6ae3d4b5..4626f53ae84 100644 --- a/apps/builder/src/features/collaboration/queries/sendInvitationQuery.ts +++ b/apps/builder/src/features/collaboration/queries/sendInvitationQuery.ts @@ -1,5 +1,5 @@ -import { CollaborationType } from 'db' -import { sendRequest } from 'utils' +import { CollaborationType } from '@typebot.io/prisma' +import { sendRequest } from '@typebot.io/lib' export const sendInvitationQuery = ( typebotId: string, diff --git a/apps/builder/src/features/collaboration/queries/updateCollaboratorQuery.ts b/apps/builder/src/features/collaboration/queries/updateCollaboratorQuery.ts index 87be06b1a4f..2ee88db1900 100644 --- a/apps/builder/src/features/collaboration/queries/updateCollaboratorQuery.ts +++ b/apps/builder/src/features/collaboration/queries/updateCollaboratorQuery.ts @@ -1,5 +1,5 @@ -import { CollaboratorsOnTypebots } from 'db' -import { sendRequest } from 'utils' +import { CollaboratorsOnTypebots } from '@typebot.io/prisma' +import { sendRequest } from '@typebot.io/lib' export const updateCollaboratorQuery = ( typebotId: string, diff --git a/apps/builder/src/features/collaboration/queries/updateInvitationQuery.ts b/apps/builder/src/features/collaboration/queries/updateInvitationQuery.ts index cbf86cee201..4fb04bc2c9d 100644 --- a/apps/builder/src/features/collaboration/queries/updateInvitationQuery.ts +++ b/apps/builder/src/features/collaboration/queries/updateInvitationQuery.ts @@ -1,5 +1,5 @@ -import { Invitation } from 'db' -import { sendRequest } from 'utils' +import { Invitation } from '@typebot.io/prisma' +import { sendRequest } from '@typebot.io/lib' export const updateInvitationQuery = ( typebotId: string, diff --git a/apps/builder/src/features/collaboration/types.ts b/apps/builder/src/features/collaboration/types.ts index 25813059e8d..65715807577 100644 --- a/apps/builder/src/features/collaboration/types.ts +++ b/apps/builder/src/features/collaboration/types.ts @@ -1,4 +1,4 @@ -import { CollaboratorsOnTypebots } from 'db' +import { CollaboratorsOnTypebots } from '@typebot.io/prisma' export type Collaborator = CollaboratorsOnTypebots & { user: { diff --git a/apps/builder/src/features/credentials/api/createCredentials.ts b/apps/builder/src/features/credentials/api/createCredentials.ts index afb10910107..535f3ace17b 100644 --- a/apps/builder/src/features/credentials/api/createCredentials.ts +++ b/apps/builder/src/features/credentials/api/createCredentials.ts @@ -1,11 +1,11 @@ import prisma from '@/lib/prisma' import { authenticatedProcedure } from '@/utils/server/trpc' import { TRPCError } from '@trpc/server' -import { stripeCredentialsSchema } from 'models/features/blocks/inputs/payment/schemas' -import { googleSheetsCredentialsSchema } from 'models/features/blocks/integrations/googleSheets/schemas' -import { openAICredentialsSchema } from 'models/features/blocks/integrations/openai' -import { smtpCredentialsSchema } from 'models/features/blocks/integrations/sendEmail' -import { encrypt } from 'utils/api/encryption' +import { stripeCredentialsSchema } from '@typebot.io/schemas/features/blocks/inputs/payment/schemas' +import { googleSheetsCredentialsSchema } from '@typebot.io/schemas/features/blocks/integrations/googleSheets/schemas' +import { openAICredentialsSchema } from '@typebot.io/schemas/features/blocks/integrations/openai' +import { smtpCredentialsSchema } from '@typebot.io/schemas/features/blocks/integrations/sendEmail' +import { encrypt } from '@typebot.io/lib/api/encryption' import { z } from 'zod' const inputShape = { diff --git a/apps/builder/src/features/credentials/api/listCredentials.ts b/apps/builder/src/features/credentials/api/listCredentials.ts index 7f0c2d47881..9bb8fa464d9 100644 --- a/apps/builder/src/features/credentials/api/listCredentials.ts +++ b/apps/builder/src/features/credentials/api/listCredentials.ts @@ -1,10 +1,10 @@ import prisma from '@/lib/prisma' import { authenticatedProcedure } from '@/utils/server/trpc' import { TRPCError } from '@trpc/server' -import { stripeCredentialsSchema } from 'models/features/blocks/inputs/payment/schemas' -import { googleSheetsCredentialsSchema } from 'models/features/blocks/integrations/googleSheets/schemas' -import { openAICredentialsSchema } from 'models/features/blocks/integrations/openai' -import { smtpCredentialsSchema } from 'models/features/blocks/integrations/sendEmail' +import { stripeCredentialsSchema } from '@typebot.io/schemas/features/blocks/inputs/payment/schemas' +import { googleSheetsCredentialsSchema } from '@typebot.io/schemas/features/blocks/integrations/googleSheets/schemas' +import { openAICredentialsSchema } from '@typebot.io/schemas/features/blocks/integrations/openai' +import { smtpCredentialsSchema } from '@typebot.io/schemas/features/blocks/integrations/sendEmail' import { z } from 'zod' export const listCredentials = authenticatedProcedure diff --git a/apps/builder/src/features/credentials/components/CredentialsDropdown.tsx b/apps/builder/src/features/credentials/components/CredentialsDropdown.tsx index 450c86866ce..d7cdc1a82c2 100644 --- a/apps/builder/src/features/credentials/components/CredentialsDropdown.tsx +++ b/apps/builder/src/features/credentials/components/CredentialsDropdown.tsx @@ -13,7 +13,7 @@ import { ChevronLeftIcon, PlusIcon, TrashIcon } from '@/components/icons' import React, { useCallback, useEffect, useState } from 'react' import { useRouter } from 'next/router' import { useToast } from '../../../hooks/useToast' -import { Credentials } from 'models' +import { Credentials } from '@typebot.io/schemas' import { trpc } from '@/lib/trpc' type Props = Omit & { diff --git a/apps/builder/src/features/customDomains/components/CustomDomainModal.tsx b/apps/builder/src/features/customDomains/components/CustomDomainModal.tsx index 4f5ddc6bcaa..cf01b924445 100644 --- a/apps/builder/src/features/customDomains/components/CustomDomainModal.tsx +++ b/apps/builder/src/features/customDomains/components/CustomDomainModal.tsx @@ -17,7 +17,7 @@ import { } from '@chakra-ui/react' import { useToast } from '@/hooks/useToast' import { useEffect, useRef, useState } from 'react' -import { env, getViewerUrl } from 'utils' +import { env, getViewerUrl } from '@typebot.io/lib' import { createCustomDomainQuery } from '../queries/createCustomDomainQuery' const hostnameRegex = diff --git a/apps/builder/src/features/customDomains/customDomains.spec.ts b/apps/builder/src/features/customDomains/customDomains.spec.ts index aeac6535348..b11a428d140 100644 --- a/apps/builder/src/features/customDomains/customDomains.spec.ts +++ b/apps/builder/src/features/customDomains/customDomains.spec.ts @@ -1,9 +1,9 @@ import test, { expect } from '@playwright/test' -import { InputBlockType, defaultTextInputOptions } from 'models' +import { InputBlockType, defaultTextInputOptions } from '@typebot.io/schemas' import { createId } from '@paralleldrive/cuid2' -import { createTypebots } from 'utils/playwright/databaseActions' -import { parseDefaultGroupWithBlock } from 'utils/playwright/databaseHelpers' -import { starterWorkspaceId } from 'utils/playwright/databaseSetup' +import { createTypebots } from '@typebot.io/lib/playwright/databaseActions' +import { parseDefaultGroupWithBlock } from '@typebot.io/lib/playwright/databaseHelpers' +import { starterWorkspaceId } from '@typebot.io/lib/playwright/databaseSetup' test('should be able to connect custom domain', async ({ page }) => { const typebotId = createId() diff --git a/apps/builder/src/features/customDomains/hooks/useCustomDomains.ts b/apps/builder/src/features/customDomains/hooks/useCustomDomains.ts index 1aa517646c1..0d1133298bb 100644 --- a/apps/builder/src/features/customDomains/hooks/useCustomDomains.ts +++ b/apps/builder/src/features/customDomains/hooks/useCustomDomains.ts @@ -1,4 +1,4 @@ -import { CustomDomain } from 'db' +import { CustomDomain } from '@typebot.io/prisma' import { stringify } from 'qs' import { fetcher } from '@/utils/helpers' import useSWR from 'swr' diff --git a/apps/builder/src/features/customDomains/queries/createCustomDomainQuery.ts b/apps/builder/src/features/customDomains/queries/createCustomDomainQuery.ts index d892d75dbb6..ccb3c823deb 100644 --- a/apps/builder/src/features/customDomains/queries/createCustomDomainQuery.ts +++ b/apps/builder/src/features/customDomains/queries/createCustomDomainQuery.ts @@ -1,6 +1,6 @@ -import { CustomDomain, Credentials } from 'db' +import { CustomDomain, Credentials } from '@typebot.io/prisma' import { stringify } from 'qs' -import { sendRequest } from 'utils' +import { sendRequest } from '@typebot.io/lib' export const createCustomDomainQuery = async ( workspaceId: string, diff --git a/apps/builder/src/features/customDomains/queries/deleteCustomDomainQuery.ts b/apps/builder/src/features/customDomains/queries/deleteCustomDomainQuery.ts index 0dbe9f8d440..61e2a67b409 100644 --- a/apps/builder/src/features/customDomains/queries/deleteCustomDomainQuery.ts +++ b/apps/builder/src/features/customDomains/queries/deleteCustomDomainQuery.ts @@ -1,6 +1,6 @@ -import { Credentials } from 'db' +import { Credentials } from '@typebot.io/prisma' import { stringify } from 'qs' -import { sendRequest } from 'utils' +import { sendRequest } from '@typebot.io/lib' export const deleteCustomDomainQuery = async ( workspaceId: string, diff --git a/apps/builder/src/features/dashboard/api/parseNewTypebot.ts b/apps/builder/src/features/dashboard/api/parseNewTypebot.ts index 852b26a88ff..b905e947f0e 100644 --- a/apps/builder/src/features/dashboard/api/parseNewTypebot.ts +++ b/apps/builder/src/features/dashboard/api/parseNewTypebot.ts @@ -5,7 +5,7 @@ import { Group, StartBlock, Typebot, -} from 'models' +} from '@typebot.io/schemas' export type NewTypebotProps = Omit< Typebot, diff --git a/apps/builder/src/features/dashboard/components/DashboardHeader.tsx b/apps/builder/src/features/dashboard/components/DashboardHeader.tsx index 3d7ea2a399c..f7bc9039abd 100644 --- a/apps/builder/src/features/dashboard/components/DashboardHeader.tsx +++ b/apps/builder/src/features/dashboard/components/DashboardHeader.tsx @@ -4,7 +4,7 @@ import { HardDriveIcon, SettingsIcon } from '@/components/icons' import { signOut } from 'next-auth/react' import { useUser } from '@/features/account' import { useWorkspace, WorkspaceDropdown } from '@/features/workspace' -import { isNotDefined } from 'utils' +import { isNotDefined } from '@typebot.io/lib' import Link from 'next/link' import { WorkspaceSettingsModal } from '@/features/workspace' import { EmojiOrImageIcon } from '@/components/EmojiOrImageIcon' diff --git a/apps/builder/src/features/dashboard/components/DashboardPage.tsx b/apps/builder/src/features/dashboard/components/DashboardPage.tsx index 8dcb2f99985..da35fd27498 100644 --- a/apps/builder/src/features/dashboard/components/DashboardPage.tsx +++ b/apps/builder/src/features/dashboard/components/DashboardPage.tsx @@ -9,10 +9,10 @@ import { ParentModalProvider } from '@/features/graph' import { useWorkspace } from '@/features/workspace' import { useScopedI18n } from '@/locales' import { Stack, VStack, Spinner, Text } from '@chakra-ui/react' -import { Plan } from 'db' +import { Plan } from '@typebot.io/prisma' import { useRouter } from 'next/router' import { useState, useEffect } from 'react' -import { guessIfUserIsEuropean } from 'utils/pricing' +import { guessIfUserIsEuropean } from '@typebot.io/lib/pricing' import { DashboardHeader } from './DashboardHeader' export const DashboardPage = () => { diff --git a/apps/builder/src/features/dashboard/components/OnboardingModal.tsx b/apps/builder/src/features/dashboard/components/OnboardingModal.tsx index dc0f9bd84ce..f1670604d7b 100644 --- a/apps/builder/src/features/dashboard/components/OnboardingModal.tsx +++ b/apps/builder/src/features/dashboard/components/OnboardingModal.tsx @@ -1,9 +1,9 @@ import { chakra, useColorModeValue } from '@chakra-ui/react' import { Popup } from '@typebot.io/react' import { useUser } from '@/features/account' -import { Typebot } from 'models' +import { Typebot } from '@typebot.io/schemas' import React, { useEffect, useRef, useState } from 'react' -import { sendRequest } from 'utils' +import { sendRequest } from '@typebot.io/lib' import confetti from 'canvas-confetti' import { useToast } from '@/hooks/useToast' import { useRouter } from 'next/router' diff --git a/apps/builder/src/features/dashboard/dashboard.spec.ts b/apps/builder/src/features/dashboard/dashboard.spec.ts index ae020ce9069..78fe4319e11 100644 --- a/apps/builder/src/features/dashboard/dashboard.spec.ts +++ b/apps/builder/src/features/dashboard/dashboard.spec.ts @@ -2,7 +2,7 @@ import { createFolders } from '@/test/utils/databaseActions' import { deleteButtonInConfirmDialog } from '@/test/utils/selectorUtils' import test, { expect } from '@playwright/test' import { createId } from '@paralleldrive/cuid2' -import { createTypebots } from 'utils/playwright/databaseActions' +import { createTypebots } from '@typebot.io/lib/playwright/databaseActions' test('folders navigation should work', async ({ page }) => { await page.goto('/typebots') diff --git a/apps/builder/src/features/dashboard/queries/createTypebotQuery.ts b/apps/builder/src/features/dashboard/queries/createTypebotQuery.ts index c13407af120..821ed935903 100644 --- a/apps/builder/src/features/dashboard/queries/createTypebotQuery.ts +++ b/apps/builder/src/features/dashboard/queries/createTypebotQuery.ts @@ -1,5 +1,5 @@ -import { Typebot } from 'models' -import { sendRequest } from 'utils' +import { Typebot } from '@typebot.io/schemas' +import { sendRequest } from '@typebot.io/lib' export const createTypebotQuery = async ({ folderId, diff --git a/apps/builder/src/features/dashboard/queries/deleteTypebotQuery.ts b/apps/builder/src/features/dashboard/queries/deleteTypebotQuery.ts index 992c19cc8c9..ec53ec613e4 100644 --- a/apps/builder/src/features/dashboard/queries/deleteTypebotQuery.ts +++ b/apps/builder/src/features/dashboard/queries/deleteTypebotQuery.ts @@ -1,4 +1,4 @@ -import { sendRequest } from 'utils' +import { sendRequest } from '@typebot.io/lib' export const deleteTypebotQuery = async (id: string) => sendRequest({ diff --git a/apps/builder/src/features/dashboard/queries/getTypebotQuery.ts b/apps/builder/src/features/dashboard/queries/getTypebotQuery.ts index cf42ae842b1..0ff46d001e4 100644 --- a/apps/builder/src/features/dashboard/queries/getTypebotQuery.ts +++ b/apps/builder/src/features/dashboard/queries/getTypebotQuery.ts @@ -1,5 +1,5 @@ -import { Typebot } from 'models' -import { sendRequest } from 'utils' +import { Typebot } from '@typebot.io/schemas' +import { sendRequest } from '@typebot.io/lib' export const getTypebotQuery = (typebotId: string) => sendRequest<{ typebot: Typebot }>({ diff --git a/apps/builder/src/features/dashboard/queries/importTypebotQuery.ts b/apps/builder/src/features/dashboard/queries/importTypebotQuery.ts index 9319209149f..a67aa837863 100644 --- a/apps/builder/src/features/dashboard/queries/importTypebotQuery.ts +++ b/apps/builder/src/features/dashboard/queries/importTypebotQuery.ts @@ -1,14 +1,19 @@ import { duplicateWebhookQuery } from '@/features/blocks/integrations/webhook' import { createId } from '@paralleldrive/cuid2' -import { Plan, Prisma } from 'db' +import { Plan, Prisma } from '@typebot.io/prisma' import { ChoiceInputBlock, ConditionBlock, LogicBlockType, Typebot, -} from 'models' -import { JumpBlock } from 'models/features/blocks/logic/jump' -import { blockHasItems, isDefined, isWebhookBlock, sendRequest } from 'utils' +} from '@typebot.io/schemas' +import { JumpBlock } from '@typebot.io/schemas/features/blocks/logic/jump' +import { + blockHasItems, + isDefined, + isWebhookBlock, + sendRequest, +} from '@typebot.io/lib' export const importTypebotQuery = async (typebot: Typebot, userPlan: Plan) => { const { typebot: newTypebot, webhookIdsMapping } = duplicateTypebot( diff --git a/apps/builder/src/features/dashboard/types.ts b/apps/builder/src/features/dashboard/types.ts index a95c0e683e7..5aab1cd9646 100644 --- a/apps/builder/src/features/dashboard/types.ts +++ b/apps/builder/src/features/dashboard/types.ts @@ -1,4 +1,4 @@ -import { Typebot } from 'models' +import { Typebot } from '@typebot.io/schemas' export type TypebotInDashboard = Pick & { publishedTypebotId?: string diff --git a/apps/builder/src/features/editor/components/BlocksSideBar/BlockCard.tsx b/apps/builder/src/features/editor/components/BlocksSideBar/BlockCard.tsx index cd8ccc52a06..7f521f10673 100644 --- a/apps/builder/src/features/editor/components/BlocksSideBar/BlockCard.tsx +++ b/apps/builder/src/features/editor/components/BlocksSideBar/BlockCard.tsx @@ -5,12 +5,12 @@ import { InputBlockType, IntegrationBlockType, LogicBlockType, -} from 'models' +} from '@typebot.io/schemas' import { useBlockDnd } from '@/features/graph' import React, { useEffect, useState } from 'react' import { BlockIcon } from './BlockIcon' import { isFreePlan, LockTag } from '@/features/billing' -import { Plan } from 'db' +import { Plan } from '@typebot.io/prisma' import { useWorkspace } from '@/features/workspace' import { BlockLabel } from './BlockLabel' diff --git a/apps/builder/src/features/editor/components/BlocksSideBar/BlockCardOverlay.tsx b/apps/builder/src/features/editor/components/BlocksSideBar/BlockCardOverlay.tsx index 484fd4e2fbc..dddda4f0a3f 100644 --- a/apps/builder/src/features/editor/components/BlocksSideBar/BlockCardOverlay.tsx +++ b/apps/builder/src/features/editor/components/BlocksSideBar/BlockCardOverlay.tsx @@ -1,5 +1,5 @@ import { StackProps, HStack, useColorModeValue } from '@chakra-ui/react' -import { BlockType } from 'models' +import { BlockType } from '@typebot.io/schemas' import { BlockIcon } from './BlockIcon' import { BlockLabel } from './BlockLabel' diff --git a/apps/builder/src/features/editor/components/BlocksSideBar/BlockIcon.tsx b/apps/builder/src/features/editor/components/BlocksSideBar/BlockIcon.tsx index c7bfeb53281..1f1c3773a13 100644 --- a/apps/builder/src/features/editor/components/BlocksSideBar/BlockIcon.tsx +++ b/apps/builder/src/features/editor/components/BlocksSideBar/BlockIcon.tsx @@ -5,7 +5,7 @@ import { IntegrationBlockType, LogicBlockType, BlockType, -} from 'models' +} from '@typebot.io/schemas' import React from 'react' import { TextBubbleIcon } from '@/features/blocks/bubbles/textBubble' import { ImageBubbleIcon } from '@/features/blocks/bubbles/image' diff --git a/apps/builder/src/features/editor/components/BlocksSideBar/BlockLabel.tsx b/apps/builder/src/features/editor/components/BlocksSideBar/BlockLabel.tsx index 6d8c354d234..45be8c065c3 100644 --- a/apps/builder/src/features/editor/components/BlocksSideBar/BlockLabel.tsx +++ b/apps/builder/src/features/editor/components/BlocksSideBar/BlockLabel.tsx @@ -5,7 +5,7 @@ import { IntegrationBlockType, LogicBlockType, BlockType, -} from 'models' +} from '@typebot.io/schemas' import React from 'react' type Props = { type: BlockType } diff --git a/apps/builder/src/features/editor/components/BlocksSideBar/BlocksSideBar.tsx b/apps/builder/src/features/editor/components/BlocksSideBar/BlocksSideBar.tsx index 892cc76bae8..cacc106ec9f 100644 --- a/apps/builder/src/features/editor/components/BlocksSideBar/BlocksSideBar.tsx +++ b/apps/builder/src/features/editor/components/BlocksSideBar/BlocksSideBar.tsx @@ -16,7 +16,7 @@ import { InputBlockType, IntegrationBlockType, LogicBlockType, -} from 'models' +} from '@typebot.io/schemas' import { useBlockDnd } from '@/features/graph' import React, { useState } from 'react' import { BlockCard } from './BlockCard' diff --git a/apps/builder/src/features/editor/components/BoardMenuButton.tsx b/apps/builder/src/features/editor/components/BoardMenuButton.tsx index 39efe717890..d4b2a69dd46 100644 --- a/apps/builder/src/features/editor/components/BoardMenuButton.tsx +++ b/apps/builder/src/features/editor/components/BoardMenuButton.tsx @@ -19,7 +19,7 @@ import { useTypebot } from '../providers/TypebotProvider' import { useUser } from '@/features/account' import { useRouter } from 'next/router' import React, { useEffect, useState } from 'react' -import { isNotDefined } from 'utils' +import { isNotDefined } from '@typebot.io/lib' import { EditorSettingsModal } from './EditorSettingsModal' import { parseDefaultPublicId } from '@/features/publish' diff --git a/apps/builder/src/features/editor/components/TypebotHeader/TypebotHeader.tsx b/apps/builder/src/features/editor/components/TypebotHeader/TypebotHeader.tsx index c041b68e1f7..a46c9bad24b 100644 --- a/apps/builder/src/features/editor/components/TypebotHeader/TypebotHeader.tsx +++ b/apps/builder/src/features/editor/components/TypebotHeader/TypebotHeader.tsx @@ -18,7 +18,7 @@ import { RightPanel, useEditor } from '../../providers/EditorProvider' import { useTypebot } from '../../providers/TypebotProvider' import { useRouter } from 'next/router' import React, { useState } from 'react' -import { isDefined, isNotDefined } from 'utils' +import { isDefined, isNotDefined } from '@typebot.io/lib' import { EditableTypebotName } from './EditableTypebotName' import { open as openSupportBubble } from '@typebot.io/js' import Link from 'next/link' diff --git a/apps/builder/src/features/editor/editor.spec.ts b/apps/builder/src/features/editor/editor.spec.ts index 3cc45a9ddd0..d0dc6931b54 100644 --- a/apps/builder/src/features/editor/editor.spec.ts +++ b/apps/builder/src/features/editor/editor.spec.ts @@ -1,16 +1,16 @@ import test, { expect } from '@playwright/test' -import { defaultTextInputOptions, InputBlockType } from 'models' +import { defaultTextInputOptions, InputBlockType } from '@typebot.io/schemas' import { createId } from '@paralleldrive/cuid2' import { createTypebots, importTypebotInDatabase, -} from 'utils/playwright/databaseActions' +} from '@typebot.io/lib/playwright/databaseActions' import { waitForSuccessfulDeleteRequest, waitForSuccessfulPostRequest, waitForSuccessfulPutRequest, -} from 'utils/playwright/testHelpers' -import { parseDefaultGroupWithBlock } from 'utils/playwright/databaseHelpers' +} from '@typebot.io/lib/playwright/testHelpers' +import { parseDefaultGroupWithBlock } from '@typebot.io/lib/playwright/databaseHelpers' import { getTestAsset } from '@/test/utils/playwright' test.describe.configure({ mode: 'parallel' }) diff --git a/apps/builder/src/features/editor/hooks/useUndo.ts b/apps/builder/src/features/editor/hooks/useUndo.ts index 001569b5763..025efd4f24c 100644 --- a/apps/builder/src/features/editor/hooks/useUndo.ts +++ b/apps/builder/src/features/editor/hooks/useUndo.ts @@ -1,6 +1,6 @@ import { dequal } from 'dequal' import { useCallback, useRef, useState } from 'react' -import { isDefined } from 'utils' +import { isDefined } from '@typebot.io/lib' export interface Actions { set: (newPresent: T | ((current: T) => T) | undefined) => void diff --git a/apps/builder/src/features/editor/providers/TypebotProvider/TypebotProvider.tsx b/apps/builder/src/features/editor/providers/TypebotProvider/TypebotProvider.tsx index 14fd57b41c3..cc88494fdf5 100644 --- a/apps/builder/src/features/editor/providers/TypebotProvider/TypebotProvider.tsx +++ b/apps/builder/src/features/editor/providers/TypebotProvider/TypebotProvider.tsx @@ -6,7 +6,7 @@ import { Theme, Typebot, Webhook, -} from 'models' +} from '@typebot.io/schemas' import { Router, useRouter } from 'next/router' import { createContext, @@ -17,7 +17,7 @@ import { useMemo, useState, } from 'react' -import { isDefined, omit } from 'utils' +import { isDefined, omit } from '@typebot.io/lib' import { edgesAction, EdgesActions } from './actions/edges' import { itemsAction, ItemsActions } from './actions/items' import { GroupsActions, groupsActions } from './actions/groups' diff --git a/apps/builder/src/features/editor/providers/TypebotProvider/actions/blocks.ts b/apps/builder/src/features/editor/providers/TypebotProvider/actions/blocks.ts index 124c0c4a485..edb022d0399 100644 --- a/apps/builder/src/features/editor/providers/TypebotProvider/actions/blocks.ts +++ b/apps/builder/src/features/editor/providers/TypebotProvider/actions/blocks.ts @@ -5,13 +5,13 @@ import { DraggableBlockType, BlockIndices, Webhook, -} from 'models' +} from '@typebot.io/schemas' import { WritableDraft } from 'immer/dist/types/types-external' import { SetTypebot } from '../TypebotProvider' import produce from 'immer' import { cleanUpEdgeDraft, deleteEdgeDraft } from './edges' import { createId } from '@paralleldrive/cuid2' -import { byId, isWebhookBlock, blockHasItems } from 'utils' +import { byId, isWebhookBlock, blockHasItems } from '@typebot.io/lib' import { duplicateItemDraft } from './items' import { parseNewBlock } from '@/features/graph/utils' diff --git a/apps/builder/src/features/editor/providers/TypebotProvider/actions/edges.ts b/apps/builder/src/features/editor/providers/TypebotProvider/actions/edges.ts index ca74f5b9a93..bc3bd3371c0 100644 --- a/apps/builder/src/features/editor/providers/TypebotProvider/actions/edges.ts +++ b/apps/builder/src/features/editor/providers/TypebotProvider/actions/edges.ts @@ -5,11 +5,11 @@ import { BlockIndices, ItemIndices, Block, -} from 'models' +} from '@typebot.io/schemas' import { WritableDraft } from 'immer/dist/types/types-external' import { SetTypebot } from '../TypebotProvider' import { produce } from 'immer' -import { byId, isDefined, blockHasItems } from 'utils' +import { byId, isDefined, blockHasItems } from '@typebot.io/lib' import { createId } from '@paralleldrive/cuid2' export type EdgesActions = { diff --git a/apps/builder/src/features/editor/providers/TypebotProvider/actions/groups.ts b/apps/builder/src/features/editor/providers/TypebotProvider/actions/groups.ts index c721c3ff25e..70cedbf817a 100644 --- a/apps/builder/src/features/editor/providers/TypebotProvider/actions/groups.ts +++ b/apps/builder/src/features/editor/providers/TypebotProvider/actions/groups.ts @@ -1,6 +1,11 @@ import { createId } from '@paralleldrive/cuid2' import { produce } from 'immer' -import { Group, DraggableBlock, DraggableBlockType, BlockIndices } from 'models' +import { + Group, + DraggableBlock, + DraggableBlockType, + BlockIndices, +} from '@typebot.io/schemas' import { SetTypebot } from '../TypebotProvider' import { deleteGroupDraft, @@ -9,7 +14,7 @@ import { WebhookCallBacks, } from './blocks' import { Coordinates } from '@/features/graph' -import { parseGroupTitle } from 'utils' +import { parseGroupTitle } from '@typebot.io/lib' export type GroupsActions = { createGroup: ( diff --git a/apps/builder/src/features/editor/providers/TypebotProvider/actions/items.ts b/apps/builder/src/features/editor/providers/TypebotProvider/actions/items.ts index 294687931fd..03029ea3129 100644 --- a/apps/builder/src/features/editor/providers/TypebotProvider/actions/items.ts +++ b/apps/builder/src/features/editor/providers/TypebotProvider/actions/items.ts @@ -7,11 +7,11 @@ import { Block, LogicBlockType, InputBlockType, -} from 'models' +} from '@typebot.io/schemas' import { SetTypebot } from '../TypebotProvider' import produce from 'immer' import { cleanUpEdgeDraft } from './edges' -import { byId, blockHasItems } from 'utils' +import { byId, blockHasItems } from '@typebot.io/lib' import { createId } from '@paralleldrive/cuid2' import { WritableDraft } from 'immer/dist/types/types-external' diff --git a/apps/builder/src/features/editor/providers/TypebotProvider/actions/variables.ts b/apps/builder/src/features/editor/providers/TypebotProvider/actions/variables.ts index 39887375eac..ca577977dec 100644 --- a/apps/builder/src/features/editor/providers/TypebotProvider/actions/variables.ts +++ b/apps/builder/src/features/editor/providers/TypebotProvider/actions/variables.ts @@ -1,4 +1,4 @@ -import { Typebot, Variable } from 'models' +import { Typebot, Variable } from '@typebot.io/schemas' import { WritableDraft } from 'immer/dist/types/types-external' import { SetTypebot } from '../TypebotProvider' import { produce } from 'immer' diff --git a/apps/builder/src/features/editor/queries/updateTypebotQuery.ts b/apps/builder/src/features/editor/queries/updateTypebotQuery.ts index b6a8600bc96..69c3ae6a2e6 100644 --- a/apps/builder/src/features/editor/queries/updateTypebotQuery.ts +++ b/apps/builder/src/features/editor/queries/updateTypebotQuery.ts @@ -1,5 +1,5 @@ -import { Typebot } from 'models' -import { sendRequest } from 'utils' +import { Typebot } from '@typebot.io/schemas' +import { sendRequest } from '@typebot.io/lib' export const updateTypebotQuery = async (id: string, typebot: Typebot) => sendRequest<{ typebot: Typebot }>({ diff --git a/apps/builder/src/features/folders/components/CreateFolderButton.tsx b/apps/builder/src/features/folders/components/CreateFolderButton.tsx index 0d756939b66..2ccedf7ba77 100644 --- a/apps/builder/src/features/folders/components/CreateFolderButton.tsx +++ b/apps/builder/src/features/folders/components/CreateFolderButton.tsx @@ -7,7 +7,7 @@ import { isFreePlan, } from '@/features/billing' import { useWorkspace } from '@/features/workspace' -import { Plan } from 'db' +import { Plan } from '@typebot.io/prisma' import React from 'react' import { useScopedI18n } from '@/locales' diff --git a/apps/builder/src/features/folders/components/FolderButton.tsx b/apps/builder/src/features/folders/components/FolderButton.tsx index 3f4d8231821..8a5e01ce922 100644 --- a/apps/builder/src/features/folders/components/FolderButton.tsx +++ b/apps/builder/src/features/folders/components/FolderButton.tsx @@ -1,4 +1,4 @@ -import { DashboardFolder } from 'db' +import { DashboardFolder } from '@typebot.io/prisma' import { Button, Editable, diff --git a/apps/builder/src/features/folders/components/FolderContent.tsx b/apps/builder/src/features/folders/components/FolderContent.tsx index 550802a0b5a..99970931df3 100644 --- a/apps/builder/src/features/folders/components/FolderContent.tsx +++ b/apps/builder/src/features/folders/components/FolderContent.tsx @@ -1,4 +1,4 @@ -import { DashboardFolder, WorkspaceRole } from 'db' +import { DashboardFolder, WorkspaceRole } from '@typebot.io/prisma' import { Flex, Heading, diff --git a/apps/builder/src/features/folders/components/TypebotButton.tsx b/apps/builder/src/features/folders/components/TypebotButton.tsx index 10b56f448f0..f5878952b4c 100644 --- a/apps/builder/src/features/folders/components/TypebotButton.tsx +++ b/apps/builder/src/features/folders/components/TypebotButton.tsx @@ -18,7 +18,7 @@ import { ConfirmModal } from '@/components/ConfirmModal' import { GripIcon } from '@/components/icons' import { useTypebotDnd } from '../TypebotDndProvider' import { useDebounce } from 'use-debounce' -import { Plan } from 'db' +import { Plan } from '@typebot.io/prisma' import { useWorkspace } from '@/features/workspace' import { useToast } from '@/hooks/useToast' import { isMobile } from '@/utils/helpers' diff --git a/apps/builder/src/features/folders/hooks/useFolder.ts b/apps/builder/src/features/folders/hooks/useFolder.ts index eba90bbaebc..99102110635 100644 --- a/apps/builder/src/features/folders/hooks/useFolder.ts +++ b/apps/builder/src/features/folders/hooks/useFolder.ts @@ -1,5 +1,5 @@ import { fetcher } from '@/utils/helpers' -import { DashboardFolder } from 'db' +import { DashboardFolder } from '@typebot.io/prisma' import useSWR from 'swr' export const useFolder = ({ diff --git a/apps/builder/src/features/folders/hooks/useFolders.ts b/apps/builder/src/features/folders/hooks/useFolders.ts index 22bd3d8ecc1..b45e06a0763 100644 --- a/apps/builder/src/features/folders/hooks/useFolders.ts +++ b/apps/builder/src/features/folders/hooks/useFolders.ts @@ -1,8 +1,8 @@ import { fetcher } from '@/utils/helpers' -import { DashboardFolder } from 'db' +import { DashboardFolder } from '@typebot.io/prisma' import { stringify } from 'qs' import useSWR from 'swr' -import { env } from 'utils' +import { env } from '@typebot.io/lib' export const useFolders = ({ parentId, diff --git a/apps/builder/src/features/folders/queries/createFolderQuery.ts b/apps/builder/src/features/folders/queries/createFolderQuery.ts index 25126bf77a0..ff4d0562e3c 100644 --- a/apps/builder/src/features/folders/queries/createFolderQuery.ts +++ b/apps/builder/src/features/folders/queries/createFolderQuery.ts @@ -1,5 +1,5 @@ -import { DashboardFolder } from 'db' -import { sendRequest } from 'utils' +import { DashboardFolder } from '@typebot.io/prisma' +import { sendRequest } from '@typebot.io/lib' export const createFolderQuery = async ( workspaceId: string, diff --git a/apps/builder/src/features/folders/queries/deleteFolderQuery.ts b/apps/builder/src/features/folders/queries/deleteFolderQuery.ts index 002c2d96c5b..0371d76f637 100644 --- a/apps/builder/src/features/folders/queries/deleteFolderQuery.ts +++ b/apps/builder/src/features/folders/queries/deleteFolderQuery.ts @@ -1,4 +1,4 @@ -import { sendRequest } from 'utils' +import { sendRequest } from '@typebot.io/lib' export const deleteFolderQuery = async (id: string) => sendRequest({ diff --git a/apps/builder/src/features/folders/queries/patchTypebotQuery.ts b/apps/builder/src/features/folders/queries/patchTypebotQuery.ts index 05adb7f6a00..cfd3eb556bb 100644 --- a/apps/builder/src/features/folders/queries/patchTypebotQuery.ts +++ b/apps/builder/src/features/folders/queries/patchTypebotQuery.ts @@ -1,5 +1,5 @@ -import { Typebot } from 'db' -import { sendRequest } from 'utils' +import { Typebot } from '@typebot.io/prisma' +import { sendRequest } from '@typebot.io/lib' export const patchTypebotQuery = async ( id: string, diff --git a/apps/builder/src/features/folders/queries/updateFolderQuery.ts b/apps/builder/src/features/folders/queries/updateFolderQuery.ts index 86a1408eb58..db113030ce0 100644 --- a/apps/builder/src/features/folders/queries/updateFolderQuery.ts +++ b/apps/builder/src/features/folders/queries/updateFolderQuery.ts @@ -1,5 +1,5 @@ -import { DashboardFolder } from 'db' -import { sendRequest } from 'utils' +import { DashboardFolder } from '@typebot.io/prisma' +import { sendRequest } from '@typebot.io/lib' export const updateFolderQuery = async ( id: string, diff --git a/apps/builder/src/features/graph/components/Edges/DropOffEdge.tsx b/apps/builder/src/features/graph/components/Edges/DropOffEdge.tsx index 54a725d6455..db2d21b226d 100644 --- a/apps/builder/src/features/graph/components/Edges/DropOffEdge.tsx +++ b/apps/builder/src/features/graph/components/Edges/DropOffEdge.tsx @@ -10,7 +10,7 @@ import { useGroupsCoordinates } from '../../providers' import { useTypebot } from '@/features/editor' import { useWorkspace } from '@/features/workspace' import React, { useMemo } from 'react' -import { byId, isDefined } from 'utils' +import { byId, isDefined } from '@typebot.io/lib' import { isProPlan } from '@/features/billing' import { AnswersCount } from '@/features/analytics' import { computeSourceCoordinates, computeDropOffPath } from '../../utils' diff --git a/apps/builder/src/features/graph/components/Edges/Edge.tsx b/apps/builder/src/features/graph/components/Edges/Edge.tsx index 4ad7eaebcd8..877a1abfaff 100644 --- a/apps/builder/src/features/graph/components/Edges/Edge.tsx +++ b/apps/builder/src/features/graph/components/Edges/Edge.tsx @@ -1,6 +1,6 @@ import { Coordinates, useGraph, useGroupsCoordinates } from '../../providers' import React, { useMemo, useState } from 'react' -import { Edge as EdgeProps } from 'models' +import { Edge as EdgeProps } from '@typebot.io/schemas' import { Portal, useColorMode, useDisclosure } from '@chakra-ui/react' import { useTypebot } from '@/features/editor' import { EdgeMenu } from './EdgeMenu' diff --git a/apps/builder/src/features/graph/components/Edges/Edges.tsx b/apps/builder/src/features/graph/components/Edges/Edges.tsx index fe19f25e673..59f5d7e50e4 100644 --- a/apps/builder/src/features/graph/components/Edges/Edges.tsx +++ b/apps/builder/src/features/graph/components/Edges/Edges.tsx @@ -1,6 +1,6 @@ import { chakra, useColorMode } from '@chakra-ui/react' import { colors } from '@/lib/theme' -import { Edge as EdgeProps } from 'models' +import { Edge as EdgeProps } from '@typebot.io/schemas' import React from 'react' import { DrawingEdge } from './DrawingEdge' import { DropOffEdge } from './DropOffEdge' diff --git a/apps/builder/src/features/graph/components/Endpoints/SourceEndpoint.tsx b/apps/builder/src/features/graph/components/Endpoints/SourceEndpoint.tsx index 968785ea920..f9c6efd6a2c 100644 --- a/apps/builder/src/features/graph/components/Endpoints/SourceEndpoint.tsx +++ b/apps/builder/src/features/graph/components/Endpoints/SourceEndpoint.tsx @@ -5,7 +5,7 @@ import { useEventListener, } from '@chakra-ui/react' import { useGraph, useGroupsCoordinates } from '../../providers' -import { Source } from 'models' +import { Source } from '@typebot.io/schemas' import React, { useEffect, useLayoutEffect, diff --git a/apps/builder/src/features/graph/components/Graph.tsx b/apps/builder/src/features/graph/components/Graph.tsx index df7a2dd9c09..7e95cc98ffa 100644 --- a/apps/builder/src/features/graph/components/Graph.tsx +++ b/apps/builder/src/features/graph/components/Graph.tsx @@ -9,7 +9,7 @@ import { useBlockDnd, } from '../providers' import { useTypebot } from '@/features/editor' -import { DraggableBlockType, PublicTypebot, Typebot } from 'models' +import { DraggableBlockType, PublicTypebot, Typebot } from '@typebot.io/schemas' import { useDebounce } from 'use-debounce' import GraphElements from './GraphElements' import { createId } from '@paralleldrive/cuid2' @@ -18,7 +18,7 @@ import { ZoomButtons } from './ZoomButtons' import { AnswersCount } from '@/features/analytics' import { headerHeight } from '@/features/editor' import { useGesture } from '@use-gesture/react' -import { GraphNavigation } from 'db' +import { GraphNavigation } from '@typebot.io/prisma' const maxScale = 2 const minScale = 0.3 diff --git a/apps/builder/src/features/graph/components/GraphElements.tsx b/apps/builder/src/features/graph/components/GraphElements.tsx index a85d0eb20a2..0130d21b443 100644 --- a/apps/builder/src/features/graph/components/GraphElements.tsx +++ b/apps/builder/src/features/graph/components/GraphElements.tsx @@ -1,5 +1,5 @@ import { AnswersCount } from '@/features/analytics' -import { Edge, Group } from 'models' +import { Edge, Group } from '@typebot.io/schemas' import React, { memo } from 'react' import { EndpointsProvider } from '../providers/EndpointsProvider' import { Edges } from './Edges' diff --git a/apps/builder/src/features/graph/components/Nodes/BlockNode/BlockNode.tsx b/apps/builder/src/features/graph/components/Nodes/BlockNode/BlockNode.tsx index 6a93711e027..eb8f46d0529 100644 --- a/apps/builder/src/features/graph/components/Nodes/BlockNode/BlockNode.tsx +++ b/apps/builder/src/features/graph/components/Nodes/BlockNode/BlockNode.tsx @@ -16,8 +16,8 @@ import { TextBubbleContent, TextBubbleBlock, LogicBlockType, -} from 'models' -import { isBubbleBlock, isDefined, isTextBubbleBlock } from 'utils' +} from '@typebot.io/schemas' +import { isBubbleBlock, isDefined, isTextBubbleBlock } from '@typebot.io/lib' import { BlockNodeContent } from './BlockNodeContent/BlockNodeContent' import { BlockIcon, useTypebot } from '@/features/editor' import { SettingsPopoverContent } from './SettingsPopoverContent' diff --git a/apps/builder/src/features/graph/components/Nodes/BlockNode/BlockNodeContent/BlockNodeContent.tsx b/apps/builder/src/features/graph/components/Nodes/BlockNode/BlockNodeContent/BlockNodeContent.tsx index 08ae2e97884..eb6711fe645 100644 --- a/apps/builder/src/features/graph/components/Nodes/BlockNode/BlockNodeContent/BlockNodeContent.tsx +++ b/apps/builder/src/features/graph/components/Nodes/BlockNode/BlockNodeContent/BlockNodeContent.tsx @@ -7,7 +7,7 @@ import { LogicBlockType, IntegrationBlockType, BlockIndices, -} from 'models' +} from '@typebot.io/schemas' import { ItemNodesList } from '../../ItemNode' import { TextBubbleContent } from '@/features/blocks/bubbles/textBubble' import { ImageBubbleContent } from '@/features/blocks/bubbles/image' diff --git a/apps/builder/src/features/graph/components/Nodes/BlockNode/BlockNodeContent/WithVariableContent.tsx b/apps/builder/src/features/graph/components/Nodes/BlockNode/BlockNodeContent/WithVariableContent.tsx index de7ba9f712f..153c3ffa4dc 100644 --- a/apps/builder/src/features/graph/components/Nodes/BlockNode/BlockNodeContent/WithVariableContent.tsx +++ b/apps/builder/src/features/graph/components/Nodes/BlockNode/BlockNodeContent/WithVariableContent.tsx @@ -1,7 +1,7 @@ import { chakra, Text, TextProps } from '@chakra-ui/react' import React from 'react' import { useTypebot } from '@/features/editor' -import { byId } from 'utils' +import { byId } from '@typebot.io/lib' type Props = { variableId: string diff --git a/apps/builder/src/features/graph/components/Nodes/BlockNode/BlockNodeContextMenu.tsx b/apps/builder/src/features/graph/components/Nodes/BlockNode/BlockNodeContextMenu.tsx index 41da67c5a53..52eda26c13e 100644 --- a/apps/builder/src/features/graph/components/Nodes/BlockNode/BlockNodeContextMenu.tsx +++ b/apps/builder/src/features/graph/components/Nodes/BlockNode/BlockNodeContextMenu.tsx @@ -1,7 +1,7 @@ import { MenuList, MenuItem } from '@chakra-ui/react' import { CopyIcon, TrashIcon } from '@/components/icons' import { useTypebot } from '@/features/editor' -import { BlockIndices } from 'models' +import { BlockIndices } from '@typebot.io/schemas' type Props = { indices: BlockIndices } export const BlockNodeContextMenu = ({ indices }: Props) => { diff --git a/apps/builder/src/features/graph/components/Nodes/BlockNode/BlockNodeOverlay.tsx b/apps/builder/src/features/graph/components/Nodes/BlockNode/BlockNodeOverlay.tsx index 829c97942c8..9d1ef099bc2 100644 --- a/apps/builder/src/features/graph/components/Nodes/BlockNode/BlockNodeOverlay.tsx +++ b/apps/builder/src/features/graph/components/Nodes/BlockNode/BlockNodeOverlay.tsx @@ -1,6 +1,6 @@ import { BlockIcon } from '@/features/editor' import { StackProps, HStack, useColorModeValue } from '@chakra-ui/react' -import { StartBlock, Block, BlockIndices } from 'models' +import { StartBlock, Block, BlockIndices } from '@typebot.io/schemas' import { BlockNodeContent } from './BlockNodeContent/BlockNodeContent' export const BlockNodeOverlay = ({ diff --git a/apps/builder/src/features/graph/components/Nodes/BlockNode/BlockNodesList.tsx b/apps/builder/src/features/graph/components/Nodes/BlockNode/BlockNodesList.tsx index 075e5217ebe..b03c82234f6 100644 --- a/apps/builder/src/features/graph/components/Nodes/BlockNode/BlockNodesList.tsx +++ b/apps/builder/src/features/graph/components/Nodes/BlockNode/BlockNodesList.tsx @@ -1,5 +1,5 @@ import { useEventListener, Stack, Portal } from '@chakra-ui/react' -import { DraggableBlock, DraggableBlockType, Block } from 'models' +import { DraggableBlock, DraggableBlockType, Block } from '@typebot.io/schemas' import { computeNearestPlaceholderIndex, useBlockDnd, @@ -11,7 +11,7 @@ import { useTypebot } from '@/features/editor' import { BlockNode } from './BlockNode' import { BlockNodeOverlay } from './BlockNodeOverlay' import { PlaceholderNode } from '../PlaceholderNode' -import { isDefined } from 'utils' +import { isDefined } from '@typebot.io/lib' type Props = { groupId: string diff --git a/apps/builder/src/features/graph/components/Nodes/BlockNode/MediaBubblePopoverContent.tsx b/apps/builder/src/features/graph/components/Nodes/BlockNode/MediaBubblePopoverContent.tsx index 4430ba33ecc..d670a665cf1 100644 --- a/apps/builder/src/features/graph/components/Nodes/BlockNode/MediaBubblePopoverContent.tsx +++ b/apps/builder/src/features/graph/components/Nodes/BlockNode/MediaBubblePopoverContent.tsx @@ -13,7 +13,7 @@ import { BubbleBlockContent, BubbleBlockType, TextBubbleBlock, -} from 'models' +} from '@typebot.io/schemas' import { useRef } from 'react' type Props = { diff --git a/apps/builder/src/features/graph/components/Nodes/BlockNode/SettingsPopoverContent/HelpDocButton.tsx b/apps/builder/src/features/graph/components/Nodes/BlockNode/SettingsPopoverContent/HelpDocButton.tsx index 0566c87f9a2..222f75f7e54 100644 --- a/apps/builder/src/features/graph/components/Nodes/BlockNode/SettingsPopoverContent/HelpDocButton.tsx +++ b/apps/builder/src/features/graph/components/Nodes/BlockNode/SettingsPopoverContent/HelpDocButton.tsx @@ -5,7 +5,7 @@ import { InputBlockType, IntegrationBlockType, LogicBlockType, -} from 'models' +} from '@typebot.io/schemas' import React from 'react' type HelpDocButtonProps = { diff --git a/apps/builder/src/features/graph/components/Nodes/BlockNode/SettingsPopoverContent/SettingsPopoverContent.tsx b/apps/builder/src/features/graph/components/Nodes/BlockNode/SettingsPopoverContent/SettingsPopoverContent.tsx index c503ce8f196..98a35b2d04f 100644 --- a/apps/builder/src/features/graph/components/Nodes/BlockNode/SettingsPopoverContent/SettingsPopoverContent.tsx +++ b/apps/builder/src/features/graph/components/Nodes/BlockNode/SettingsPopoverContent/SettingsPopoverContent.tsx @@ -17,7 +17,7 @@ import { Block, BlockOptions, BlockWithOptions, -} from 'models' +} from '@typebot.io/schemas' import { useRef } from 'react' import { DateInputSettingsBody } from '@/features/blocks/inputs/date' import { EmailInputSettingsBody } from '@/features/blocks/inputs/emailInput' diff --git a/apps/builder/src/features/graph/components/Nodes/GroupNode/GroupNode.tsx b/apps/builder/src/features/graph/components/Nodes/GroupNode/GroupNode.tsx index 30c1952f944..c5c10acb45f 100644 --- a/apps/builder/src/features/graph/components/Nodes/GroupNode/GroupNode.tsx +++ b/apps/builder/src/features/graph/components/Nodes/GroupNode/GroupNode.tsx @@ -7,7 +7,7 @@ import { useColorModeValue, } from '@chakra-ui/react' import React, { memo, useCallback, useEffect, useRef, useState } from 'react' -import { Group } from 'models' +import { Group } from '@typebot.io/schemas' import { Coordinates, useGraph, @@ -15,7 +15,7 @@ import { useBlockDnd, } from '../../../providers' import { BlockNodesList } from '../BlockNode/BlockNodesList' -import { isDefined, isEmpty, isNotDefined } from 'utils' +import { isDefined, isEmpty, isNotDefined } from '@typebot.io/lib' import { useTypebot, RightPanel, useEditor } from '@/features/editor' import { GroupNodeContextMenu } from './GroupNodeContextMenu' import { useDebounce } from 'use-debounce' diff --git a/apps/builder/src/features/graph/components/Nodes/ItemNode/ItemNode.tsx b/apps/builder/src/features/graph/components/Nodes/ItemNode/ItemNode.tsx index c0466019010..a956be4e33c 100644 --- a/apps/builder/src/features/graph/components/Nodes/ItemNode/ItemNode.tsx +++ b/apps/builder/src/features/graph/components/Nodes/ItemNode/ItemNode.tsx @@ -6,14 +6,14 @@ import { useDragDistance, } from '../../../providers' import { useTypebot } from '@/features/editor' -import { ChoiceInputBlock, Item, ItemIndices } from 'models' +import { ChoiceInputBlock, Item, ItemIndices } from '@typebot.io/schemas' import React, { useRef, useState } from 'react' import { SourceEndpoint } from '../../Endpoints/SourceEndpoint' import { ItemNodeContent } from './ItemNodeContent' import { ItemNodeContextMenu } from './ItemNodeContextMenu' import { ContextMenu } from '@/components/ContextMenu' import { setMultipleRefs } from '@/utils/helpers' -import { isDefined } from 'utils' +import { isDefined } from '@typebot.io/lib' type Props = { item: Item diff --git a/apps/builder/src/features/graph/components/Nodes/ItemNode/ItemNodeContent/ItemNodeContent.tsx b/apps/builder/src/features/graph/components/Nodes/ItemNode/ItemNodeContent/ItemNodeContent.tsx index 25f2130b842..16eccdffcb2 100644 --- a/apps/builder/src/features/graph/components/Nodes/ItemNode/ItemNodeContent/ItemNodeContent.tsx +++ b/apps/builder/src/features/graph/components/Nodes/ItemNode/ItemNodeContent/ItemNodeContent.tsx @@ -1,6 +1,6 @@ import { ButtonsItemNode } from '@/features/blocks/inputs/buttons' import { ConditionItemNode } from '@/features/blocks/logic/condition' -import { Item, ItemIndices, ItemType } from 'models' +import { Item, ItemIndices, ItemType } from '@typebot.io/schemas' import React from 'react' type Props = { diff --git a/apps/builder/src/features/graph/components/Nodes/ItemNode/ItemNodeContextMenu.tsx b/apps/builder/src/features/graph/components/Nodes/ItemNode/ItemNodeContextMenu.tsx index 529bdfbeabb..89952079e18 100644 --- a/apps/builder/src/features/graph/components/Nodes/ItemNode/ItemNodeContextMenu.tsx +++ b/apps/builder/src/features/graph/components/Nodes/ItemNode/ItemNodeContextMenu.tsx @@ -1,7 +1,7 @@ import { MenuList, MenuItem } from '@chakra-ui/react' import { TrashIcon } from '@/components/icons' import { useTypebot } from '@/features/editor' -import { ItemIndices } from 'models' +import { ItemIndices } from '@typebot.io/schemas' type Props = { indices: ItemIndices diff --git a/apps/builder/src/features/graph/components/Nodes/ItemNode/ItemNodesList.tsx b/apps/builder/src/features/graph/components/Nodes/ItemNode/ItemNodesList.tsx index 29f1a8b23e6..f5d41d5b8c6 100644 --- a/apps/builder/src/features/graph/components/Nodes/ItemNode/ItemNodesList.tsx +++ b/apps/builder/src/features/graph/components/Nodes/ItemNode/ItemNodesList.tsx @@ -13,12 +13,17 @@ import { useGraph, } from '../../../providers' import { useTypebot } from '@/features/editor' -import { BlockIndices, BlockWithItems, LogicBlockType, Item } from 'models' +import { + BlockIndices, + BlockWithItems, + LogicBlockType, + Item, +} from '@typebot.io/schemas' import React, { useEffect, useRef, useState } from 'react' import { ItemNode } from './ItemNode' import { SourceEndpoint } from '../../Endpoints' import { PlaceholderNode } from '../PlaceholderNode' -import { isDefined } from 'utils' +import { isDefined } from '@typebot.io/lib' type Props = { block: BlockWithItems diff --git a/apps/builder/src/features/graph/providers/GraphDndProvider.tsx b/apps/builder/src/features/graph/providers/GraphDndProvider.tsx index dfa60828007..0c8e43ffbea 100644 --- a/apps/builder/src/features/graph/providers/GraphDndProvider.tsx +++ b/apps/builder/src/features/graph/providers/GraphDndProvider.tsx @@ -1,5 +1,5 @@ import { useEventListener } from '@chakra-ui/react' -import { DraggableBlock, DraggableBlockType, Item } from 'models' +import { DraggableBlock, DraggableBlockType, Item } from '@typebot.io/schemas' import { createContext, Dispatch, diff --git a/apps/builder/src/features/graph/providers/GraphProvider.tsx b/apps/builder/src/features/graph/providers/GraphProvider.tsx index ede5f3fbac0..a597cc051b2 100644 --- a/apps/builder/src/features/graph/providers/GraphProvider.tsx +++ b/apps/builder/src/features/graph/providers/GraphProvider.tsx @@ -1,4 +1,4 @@ -import { Group, Edge, IdMap, Source, Block, Target } from 'models' +import { Group, Edge, IdMap, Source, Block, Target } from '@typebot.io/schemas' import { createContext, Dispatch, diff --git a/apps/builder/src/features/graph/providers/GroupsCoordinateProvider.tsx b/apps/builder/src/features/graph/providers/GroupsCoordinateProvider.tsx index 4ca75ce8dd7..1b54af6108a 100644 --- a/apps/builder/src/features/graph/providers/GroupsCoordinateProvider.tsx +++ b/apps/builder/src/features/graph/providers/GroupsCoordinateProvider.tsx @@ -1,4 +1,4 @@ -import { Group } from 'models' +import { Group } from '@typebot.io/schemas' import { ReactNode, useState, diff --git a/apps/builder/src/features/graph/utils.ts b/apps/builder/src/features/graph/utils.ts index 781af961e58..fe650ea3b5f 100644 --- a/apps/builder/src/features/graph/utils.ts +++ b/apps/builder/src/features/graph/utils.ts @@ -36,7 +36,7 @@ import { LogicBlockType, defaultWaitOptions, defaultScriptOptions, -} from 'models' +} from '@typebot.io/schemas' import { stubLength, blockWidth, @@ -54,7 +54,7 @@ import { isChoiceInput, isConditionBlock, isDefined, -} from 'utils' +} from '@typebot.io/lib' const roundSize = 20 diff --git a/apps/builder/src/features/preview/components/ApiPreviewInstructions.tsx b/apps/builder/src/features/preview/components/ApiPreviewInstructions.tsx index 429ed0145b5..206c7a545e5 100644 --- a/apps/builder/src/features/preview/components/ApiPreviewInstructions.tsx +++ b/apps/builder/src/features/preview/components/ApiPreviewInstructions.tsx @@ -10,7 +10,7 @@ import { StackProps, Text, } from '@chakra-ui/react' -import { env, getViewerUrl } from 'utils' +import { env, getViewerUrl } from '@typebot.io/lib' export const ApiPreviewInstructions = (props: StackProps) => { const { typebot } = useTypebot() diff --git a/apps/builder/src/features/preview/components/WebPreview.tsx b/apps/builder/src/features/preview/components/WebPreview.tsx index 8acd5437483..b04dc1b9c1d 100644 --- a/apps/builder/src/features/preview/components/WebPreview.tsx +++ b/apps/builder/src/features/preview/components/WebPreview.tsx @@ -4,7 +4,7 @@ import { useGraph } from '@/features/graph' import { useToast } from '@/hooks/useToast' import { UseToastOptions } from '@chakra-ui/react' import { Standard } from '@typebot.io/react' -import { ChatReply } from 'models' +import { ChatReply } from '@typebot.io/schemas' export const WebPreview = () => { const { typebot } = useTypebot() diff --git a/apps/builder/src/features/publish/components/PublishButton.tsx b/apps/builder/src/features/publish/components/PublishButton.tsx index f76da8f5c58..912abb47236 100644 --- a/apps/builder/src/features/publish/components/PublishButton.tsx +++ b/apps/builder/src/features/publish/components/PublishButton.tsx @@ -21,9 +21,9 @@ import { } from '@/components/icons' import { useTypebot } from '@/features/editor' import { useWorkspace } from '@/features/workspace' -import { InputBlockType } from 'models' +import { InputBlockType } from '@typebot.io/schemas' import { useRouter } from 'next/router' -import { isNotDefined } from 'utils' +import { isNotDefined } from '@typebot.io/lib' import { ChangePlanModal, isFreePlan, LimitReached } from '@/features/billing' import { timeSince } from '@/utils/helpers' diff --git a/apps/builder/src/features/publish/components/SharePage.tsx b/apps/builder/src/features/publish/components/SharePage.tsx index dab31bf6d4e..b71fe87ecc2 100644 --- a/apps/builder/src/features/publish/components/SharePage.tsx +++ b/apps/builder/src/features/publish/components/SharePage.tsx @@ -20,8 +20,8 @@ import { Wrap, Text, } from '@chakra-ui/react' -import { Plan } from 'db' -import { isDefined, getViewerUrl, isNotDefined, env } from 'utils' +import { Plan } from '@typebot.io/prisma' +import { isDefined, getViewerUrl, isNotDefined, env } from '@typebot.io/lib' import { isPublicDomainAvailableQuery } from '../queries/isPublicDomainAvailableQuery' import { parseDefaultPublicId } from '../utils' import { EditableUrl } from './EditableUrl' diff --git a/apps/builder/src/features/publish/components/embeds/EmbedModal.tsx b/apps/builder/src/features/publish/components/embeds/EmbedModal.tsx index ac96a3dd99f..baddcdfc42a 100644 --- a/apps/builder/src/features/publish/components/embeds/EmbedModal.tsx +++ b/apps/builder/src/features/publish/components/embeds/EmbedModal.tsx @@ -13,7 +13,7 @@ import { Stack, ModalFooter, } from '@chakra-ui/react' -import { capitalize } from 'utils' +import { capitalize } from '@typebot.io/lib' import { EmbedTypeMenu } from './EmbedTypeMenu/EmbedTypeMenu' type Props = { diff --git a/apps/builder/src/features/publish/components/embeds/modals/ApiModal.tsx b/apps/builder/src/features/publish/components/embeds/modals/ApiModal.tsx index 029044c101f..ac33f0b41f3 100644 --- a/apps/builder/src/features/publish/components/embeds/modals/ApiModal.tsx +++ b/apps/builder/src/features/publish/components/embeds/modals/ApiModal.tsx @@ -16,7 +16,7 @@ import { Text, Stack, } from '@chakra-ui/react' -import { env, getViewerUrl } from 'utils' +import { env, getViewerUrl } from '@typebot.io/lib' import { ModalProps } from '../EmbedButton' export const ApiModal = ({ diff --git a/apps/builder/src/features/publish/components/embeds/modals/GtmModal/instructions/GtmStandardInstructions.tsx b/apps/builder/src/features/publish/components/embeds/modals/GtmModal/instructions/GtmStandardInstructions.tsx index 14148e85ba0..9eb218ba501 100644 --- a/apps/builder/src/features/publish/components/embeds/modals/GtmModal/instructions/GtmStandardInstructions.tsx +++ b/apps/builder/src/features/publish/components/embeds/modals/GtmModal/instructions/GtmStandardInstructions.tsx @@ -1,6 +1,6 @@ import { CodeEditor } from '@/components/inputs/CodeEditor' import { OrderedList, ListItem, Code, Stack, Text } from '@chakra-ui/react' -import { Typebot } from 'models' +import { Typebot } from '@typebot.io/schemas' import { useState } from 'react' import { StandardSettings } from '../../../settings/StandardSettings' import { diff --git a/apps/builder/src/features/publish/components/embeds/modals/IframeModal/IframeSnippet.tsx b/apps/builder/src/features/publish/components/embeds/modals/IframeModal/IframeSnippet.tsx index 69c34a54537..4cd4aae93c2 100644 --- a/apps/builder/src/features/publish/components/embeds/modals/IframeModal/IframeSnippet.tsx +++ b/apps/builder/src/features/publish/components/embeds/modals/IframeModal/IframeSnippet.tsx @@ -1,6 +1,6 @@ import { FlexProps } from '@chakra-ui/react' import { useTypebot } from '@/features/editor' -import { env, getViewerUrl } from 'utils' +import { env, getViewerUrl } from '@typebot.io/lib' import { CodeEditor } from '@/components/inputs/CodeEditor' import prettier from 'prettier/standalone' import parserHtml from 'prettier/parser-html' diff --git a/apps/builder/src/features/publish/components/embeds/modals/Javascript/JavascriptBubbleSnippet.tsx b/apps/builder/src/features/publish/components/embeds/modals/Javascript/JavascriptBubbleSnippet.tsx index 722a9c5376d..761084dd42c 100644 --- a/apps/builder/src/features/publish/components/embeds/modals/Javascript/JavascriptBubbleSnippet.tsx +++ b/apps/builder/src/features/publish/components/embeds/modals/Javascript/JavascriptBubbleSnippet.tsx @@ -5,7 +5,7 @@ import { useTypebot } from '@/features/editor' import { CodeEditor } from '@/components/inputs/CodeEditor' import { BubbleProps } from '@typebot.io/js' import { isCloudProdInstance } from '@/utils/helpers' -import { env, getViewerUrl } from 'utils' +import { env, getViewerUrl } from '@typebot.io/lib' type Props = Pick diff --git a/apps/builder/src/features/publish/components/embeds/modals/Javascript/JavascriptPopupSnippet.tsx b/apps/builder/src/features/publish/components/embeds/modals/Javascript/JavascriptPopupSnippet.tsx index 02f4207b698..6ade2f3909f 100644 --- a/apps/builder/src/features/publish/components/embeds/modals/Javascript/JavascriptPopupSnippet.tsx +++ b/apps/builder/src/features/publish/components/embeds/modals/Javascript/JavascriptPopupSnippet.tsx @@ -5,7 +5,7 @@ import { parseInitPopupCode, typebotImportCode } from '../../snippetParsers' import { CodeEditor } from '@/components/inputs/CodeEditor' import { PopupProps } from '@typebot.io/js' import { isCloudProdInstance } from '@/utils/helpers' -import { env, getViewerUrl } from 'utils' +import { env, getViewerUrl } from '@typebot.io/lib' type Props = Pick diff --git a/apps/builder/src/features/publish/components/embeds/modals/Javascript/JavascriptStandardSnippet.tsx b/apps/builder/src/features/publish/components/embeds/modals/Javascript/JavascriptStandardSnippet.tsx index 550b3b37939..49f23cccfda 100644 --- a/apps/builder/src/features/publish/components/embeds/modals/Javascript/JavascriptStandardSnippet.tsx +++ b/apps/builder/src/features/publish/components/embeds/modals/Javascript/JavascriptStandardSnippet.tsx @@ -4,7 +4,7 @@ import { parseInitStandardCode, typebotImportCode } from '../../snippetParsers' import { useTypebot } from '@/features/editor' import { CodeEditor } from '@/components/inputs/CodeEditor' import { isCloudProdInstance } from '@/utils/helpers' -import { env, getViewerUrl } from 'utils' +import { env, getViewerUrl } from '@typebot.io/lib' type Props = { widthLabel?: string diff --git a/apps/builder/src/features/publish/components/embeds/modals/Javascript/instructions/JavascriptBubbleInstructions.tsx b/apps/builder/src/features/publish/components/embeds/modals/Javascript/instructions/JavascriptBubbleInstructions.tsx index 38050f8fb31..2c7d8871af0 100644 --- a/apps/builder/src/features/publish/components/embeds/modals/Javascript/instructions/JavascriptBubbleInstructions.tsx +++ b/apps/builder/src/features/publish/components/embeds/modals/Javascript/instructions/JavascriptBubbleInstructions.tsx @@ -1,7 +1,7 @@ import { useTypebot } from '@/features/editor' import { Stack, Code, Text } from '@chakra-ui/react' import { BubbleProps } from '@typebot.io/js' -import { Typebot } from 'models' +import { Typebot } from '@typebot.io/schemas' import { useState } from 'react' import { BubbleSettings } from '../../../settings/BubbleSettings/BubbleSettings' import { JavascriptBubbleSnippet } from '../JavascriptBubbleSnippet' diff --git a/apps/builder/src/features/publish/components/embeds/modals/NotionModal.tsx b/apps/builder/src/features/publish/components/embeds/modals/NotionModal.tsx index 60bc5681e0f..658ad57c0a8 100644 --- a/apps/builder/src/features/publish/components/embeds/modals/NotionModal.tsx +++ b/apps/builder/src/features/publish/components/embeds/modals/NotionModal.tsx @@ -18,7 +18,7 @@ import { Text, Stack, } from '@chakra-ui/react' -import { env, getViewerUrl } from 'utils' +import { env, getViewerUrl } from '@typebot.io/lib' import { ModalProps } from '../EmbedButton' export const NotionModal = ({ diff --git a/apps/builder/src/features/publish/components/embeds/modals/Script/instructions/ScriptBubbleInstructions.tsx b/apps/builder/src/features/publish/components/embeds/modals/Script/instructions/ScriptBubbleInstructions.tsx index 10fc205aa5e..3ee868c0391 100644 --- a/apps/builder/src/features/publish/components/embeds/modals/Script/instructions/ScriptBubbleInstructions.tsx +++ b/apps/builder/src/features/publish/components/embeds/modals/Script/instructions/ScriptBubbleInstructions.tsx @@ -3,9 +3,9 @@ import { useTypebot } from '@/features/editor' import { isCloudProdInstance } from '@/utils/helpers' import { Stack, Text } from '@chakra-ui/react' import { BubbleProps } from '@typebot.io/js' -import { Typebot } from 'models' +import { Typebot } from '@typebot.io/schemas' import { useState } from 'react' -import { env, getViewerUrl } from 'utils' +import { env, getViewerUrl } from '@typebot.io/lib' import { BubbleSettings } from '../../../settings/BubbleSettings/BubbleSettings' import { parseInlineScript, diff --git a/apps/builder/src/features/publish/components/embeds/modals/Script/instructions/ScriptPopupInstructions.tsx b/apps/builder/src/features/publish/components/embeds/modals/Script/instructions/ScriptPopupInstructions.tsx index 9a662154744..3481cb638eb 100644 --- a/apps/builder/src/features/publish/components/embeds/modals/Script/instructions/ScriptPopupInstructions.tsx +++ b/apps/builder/src/features/publish/components/embeds/modals/Script/instructions/ScriptPopupInstructions.tsx @@ -3,7 +3,7 @@ import { useTypebot } from '@/features/editor' import { isCloudProdInstance } from '@/utils/helpers' import { Stack, Text } from '@chakra-ui/react' import { useState } from 'react' -import { env, getViewerUrl } from 'utils' +import { env, getViewerUrl } from '@typebot.io/lib' import { PopupSettings } from '../../../settings/PopupSettings' import { parseInitPopupCode } from '../../../snippetParsers' import { diff --git a/apps/builder/src/features/publish/components/embeds/modals/Script/instructions/ScriptStandardInstructions.tsx b/apps/builder/src/features/publish/components/embeds/modals/Script/instructions/ScriptStandardInstructions.tsx index 88b92e7dcf5..b70dc174607 100644 --- a/apps/builder/src/features/publish/components/embeds/modals/Script/instructions/ScriptStandardInstructions.tsx +++ b/apps/builder/src/features/publish/components/embeds/modals/Script/instructions/ScriptStandardInstructions.tsx @@ -3,7 +3,7 @@ import { useTypebot } from '@/features/editor' import { isCloudProdInstance } from '@/utils/helpers' import { Stack, Code, Text } from '@chakra-ui/react' import { useState } from 'react' -import { env, getViewerUrl } from 'utils' +import { env, getViewerUrl } from '@typebot.io/lib' import { StandardSettings } from '../../../settings/StandardSettings' import { parseInitStandardCode } from '../../../snippetParsers/standard' import { parseStandardElementCode } from '../../Javascript/JavascriptStandardSnippet' diff --git a/apps/builder/src/features/publish/components/embeds/modals/WordpressModal/WordpressModal.tsx b/apps/builder/src/features/publish/components/embeds/modals/WordpressModal/WordpressModal.tsx index 74b445ad767..b3a27bb27a9 100644 --- a/apps/builder/src/features/publish/components/embeds/modals/WordpressModal/WordpressModal.tsx +++ b/apps/builder/src/features/publish/components/embeds/modals/WordpressModal/WordpressModal.tsx @@ -1,4 +1,4 @@ -import { isDefined } from 'utils' +import { isDefined } from '@typebot.io/lib' import { ModalProps } from '../../EmbedButton' import { useState } from 'react' import { EmbedModal } from '../../EmbedModal' diff --git a/apps/builder/src/features/publish/components/embeds/modals/WordpressModal/instructions/WordpressBubbleInstructions.tsx b/apps/builder/src/features/publish/components/embeds/modals/WordpressModal/instructions/WordpressBubbleInstructions.tsx index 2e8dcb7a0d7..14421810e0c 100644 --- a/apps/builder/src/features/publish/components/embeds/modals/WordpressModal/instructions/WordpressBubbleInstructions.tsx +++ b/apps/builder/src/features/publish/components/embeds/modals/WordpressModal/instructions/WordpressBubbleInstructions.tsx @@ -15,7 +15,7 @@ import { BubbleSettings } from '../../../settings/BubbleSettings/BubbleSettings' import { parseInitBubbleCode } from '../../../snippetParsers' import { parseDefaultBubbleTheme } from '../../Javascript/instructions/JavascriptBubbleInstructions' import { isCloudProdInstance } from '@/utils/helpers' -import { env, getViewerUrl } from 'utils' +import { env, getViewerUrl } from '@typebot.io/lib' type Props = { publicId: string diff --git a/apps/builder/src/features/publish/components/embeds/modals/WordpressModal/instructions/WordpressPopupInstructions.tsx b/apps/builder/src/features/publish/components/embeds/modals/WordpressModal/instructions/WordpressPopupInstructions.tsx index 017224657f4..6fa1d82ff75 100644 --- a/apps/builder/src/features/publish/components/embeds/modals/WordpressModal/instructions/WordpressPopupInstructions.tsx +++ b/apps/builder/src/features/publish/components/embeds/modals/WordpressModal/instructions/WordpressPopupInstructions.tsx @@ -12,7 +12,7 @@ import { useState } from 'react' import { PopupSettings } from '../../../settings/PopupSettings' import { parseInitPopupCode } from '../../../snippetParsers/popup' import { isCloudProdInstance } from '@/utils/helpers' -import { env, getViewerUrl } from 'utils' +import { env, getViewerUrl } from '@typebot.io/lib' type Props = { publicId: string diff --git a/apps/builder/src/features/publish/components/embeds/modals/WordpressModal/instructions/WordpressStandardInstructions.tsx b/apps/builder/src/features/publish/components/embeds/modals/WordpressModal/instructions/WordpressStandardInstructions.tsx index affadb5bd60..4b015160695 100644 --- a/apps/builder/src/features/publish/components/embeds/modals/WordpressModal/instructions/WordpressStandardInstructions.tsx +++ b/apps/builder/src/features/publish/components/embeds/modals/WordpressModal/instructions/WordpressStandardInstructions.tsx @@ -12,7 +12,7 @@ import { import { useState } from 'react' import { StandardSettings } from '../../../settings/StandardSettings' import { isCloudProdInstance } from '@/utils/helpers' -import { env, getViewerUrl } from 'utils' +import { env, getViewerUrl } from '@typebot.io/lib' type Props = { publicId: string diff --git a/apps/builder/src/features/publish/components/embeds/settings/BubbleSettings/BubbleSettings.tsx b/apps/builder/src/features/publish/components/embeds/settings/BubbleSettings/BubbleSettings.tsx index dc4feec176b..72b0f02d2b3 100644 --- a/apps/builder/src/features/publish/components/embeds/settings/BubbleSettings/BubbleSettings.tsx +++ b/apps/builder/src/features/publish/components/embeds/settings/BubbleSettings/BubbleSettings.tsx @@ -1,6 +1,6 @@ import { Stack, Heading, HStack, Flex, Text, Image } from '@chakra-ui/react' import { BubbleProps } from '@typebot.io/js' -import { isDefined } from 'utils' +import { isDefined } from '@typebot.io/lib' import { PreviewMessageSettings } from './PreviewMessageSettings' import { ThemeSettings } from './ThemeSettings' diff --git a/apps/builder/src/features/publish/components/embeds/settings/BubbleSettings/PreviewMessageSettings.tsx b/apps/builder/src/features/publish/components/embeds/settings/BubbleSettings/PreviewMessageSettings.tsx index fa577330545..638a30495eb 100644 --- a/apps/builder/src/features/publish/components/embeds/settings/BubbleSettings/PreviewMessageSettings.tsx +++ b/apps/builder/src/features/publish/components/embeds/settings/BubbleSettings/PreviewMessageSettings.tsx @@ -2,7 +2,7 @@ import { NumberInput } from '@/components/inputs' import { FormLabel, HStack, Input, Stack, Switch, Text } from '@chakra-ui/react' import { PreviewMessageParams } from '@typebot.io/js/dist/features/bubble/types' import { useState } from 'react' -import { isDefined } from 'utils' +import { isDefined } from '@typebot.io/lib' type Props = { defaultAvatar: string diff --git a/apps/builder/src/features/publish/components/embeds/settings/PopupSettings.tsx b/apps/builder/src/features/publish/components/embeds/settings/PopupSettings.tsx index 1e62c555b88..ac7d5983fdb 100644 --- a/apps/builder/src/features/publish/components/embeds/settings/PopupSettings.tsx +++ b/apps/builder/src/features/publish/components/embeds/settings/PopupSettings.tsx @@ -9,7 +9,7 @@ import { } from '@chakra-ui/react' import { PopupProps } from '@typebot.io/js' import { useState, useEffect } from 'react' -import { isDefined } from 'utils' +import { isDefined } from '@typebot.io/lib' type Props = { onUpdateSettings: (windowSettings: Pick) => void diff --git a/apps/builder/src/features/publish/components/embeds/snippetParsers/shared.ts b/apps/builder/src/features/publish/components/embeds/snippetParsers/shared.ts index f21605178ca..487d68be5a4 100644 --- a/apps/builder/src/features/publish/components/embeds/snippetParsers/shared.ts +++ b/apps/builder/src/features/publish/components/embeds/snippetParsers/shared.ts @@ -1,7 +1,7 @@ import { BotProps } from '@typebot.io/js' import parserBabel from 'prettier/parser-babel' import prettier from 'prettier/standalone' -import { isDefined } from 'utils' +import { isDefined } from '@typebot.io/lib' export const parseStringParam = (fieldName: string, fieldValue?: string) => fieldValue ? `${fieldName}: "${fieldValue}",` : `` diff --git a/apps/builder/src/features/publish/publish.spec.ts b/apps/builder/src/features/publish/publish.spec.ts index 801c19f4806..03c7a06e0a6 100644 --- a/apps/builder/src/features/publish/publish.spec.ts +++ b/apps/builder/src/features/publish/publish.spec.ts @@ -1,8 +1,8 @@ import test, { expect } from '@playwright/test' import { createId } from '@paralleldrive/cuid2' -import { defaultTextInputOptions, InputBlockType } from 'models' -import { createTypebots } from 'utils/playwright/databaseActions' -import { parseDefaultGroupWithBlock } from 'utils/playwright/databaseHelpers' +import { defaultTextInputOptions, InputBlockType } from '@typebot.io/schemas' +import { createTypebots } from '@typebot.io/lib/playwright/databaseActions' +import { parseDefaultGroupWithBlock } from '@typebot.io/lib/playwright/databaseHelpers' test('should not be able to submit taken url ID', async ({ page }) => { const takenTypebotId = createId() diff --git a/apps/builder/src/features/publish/queries/createPublishedTypebotQuery.ts b/apps/builder/src/features/publish/queries/createPublishedTypebotQuery.ts index 334584e457f..84eebb46bbb 100644 --- a/apps/builder/src/features/publish/queries/createPublishedTypebotQuery.ts +++ b/apps/builder/src/features/publish/queries/createPublishedTypebotQuery.ts @@ -1,5 +1,5 @@ -import { PublicTypebot } from 'models' -import { sendRequest } from 'utils' +import { PublicTypebot } from '@typebot.io/schemas' +import { sendRequest } from '@typebot.io/lib' export const createPublishedTypebotQuery = async ( typebot: Omit, diff --git a/apps/builder/src/features/publish/queries/deletePublishedTypebotQuery.ts b/apps/builder/src/features/publish/queries/deletePublishedTypebotQuery.ts index 75d24a7fb0c..3dce872905f 100644 --- a/apps/builder/src/features/publish/queries/deletePublishedTypebotQuery.ts +++ b/apps/builder/src/features/publish/queries/deletePublishedTypebotQuery.ts @@ -1,4 +1,4 @@ -import { sendRequest } from 'utils' +import { sendRequest } from '@typebot.io/lib' export const deletePublishedTypebotQuery = ({ publishedTypebotId, diff --git a/apps/builder/src/features/publish/queries/isPublicDomainAvailableQuery.ts b/apps/builder/src/features/publish/queries/isPublicDomainAvailableQuery.ts index 3d4a74332a7..5f32d829173 100644 --- a/apps/builder/src/features/publish/queries/isPublicDomainAvailableQuery.ts +++ b/apps/builder/src/features/publish/queries/isPublicDomainAvailableQuery.ts @@ -1,4 +1,4 @@ -import { sendRequest } from 'utils' +import { sendRequest } from '@typebot.io/lib' export const isPublicDomainAvailableQuery = (publicId: string) => sendRequest<{ isAvailable: boolean }>({ diff --git a/apps/builder/src/features/publish/queries/updatePublishedTypebotQuery.ts b/apps/builder/src/features/publish/queries/updatePublishedTypebotQuery.ts index c7e03f5e56e..94b28581615 100644 --- a/apps/builder/src/features/publish/queries/updatePublishedTypebotQuery.ts +++ b/apps/builder/src/features/publish/queries/updatePublishedTypebotQuery.ts @@ -1,5 +1,5 @@ -import { PublicTypebot } from 'models' -import { sendRequest } from 'utils' +import { PublicTypebot } from '@typebot.io/schemas' +import { sendRequest } from '@typebot.io/lib' export const updatePublishedTypebotQuery = async ( id: string, diff --git a/apps/builder/src/features/publish/utils.ts b/apps/builder/src/features/publish/utils.ts index d43574bf30b..9b4b7f8b1e3 100644 --- a/apps/builder/src/features/publish/utils.ts +++ b/apps/builder/src/features/publish/utils.ts @@ -1,7 +1,7 @@ import { createId } from '@paralleldrive/cuid2' -import { PublicTypebot, Typebot } from 'models' +import { PublicTypebot, Typebot } from '@typebot.io/schemas' import { dequal } from 'dequal' -import { omit } from 'utils' +import { omit } from '@typebot.io/lib' import { diff } from 'deep-object-diff' import { toKebabCase } from '@/utils/helpers' diff --git a/apps/builder/src/features/results/ResultsProvider.tsx b/apps/builder/src/features/results/ResultsProvider.tsx index 733e2b132e6..d19eb29a0f6 100644 --- a/apps/builder/src/features/results/ResultsProvider.tsx +++ b/apps/builder/src/features/results/ResultsProvider.tsx @@ -1,7 +1,7 @@ import { useToast } from '@/hooks/useToast' -import { ResultHeaderCell, ResultWithAnswers } from 'models' +import { ResultHeaderCell, ResultWithAnswers } from '@typebot.io/schemas' import { createContext, ReactNode, useContext, useMemo } from 'react' -import { parseResultHeader } from 'utils/results' +import { parseResultHeader } from '@typebot.io/lib/results' import { useTypebot } from '../editor/providers/TypebotProvider' import { useResultsQuery } from './hooks/useResultsQuery' import { TableData } from './types' diff --git a/apps/builder/src/features/results/api/archiveResults.ts b/apps/builder/src/features/results/api/archiveResults.ts index 264ed46f9ed..99c8fae634c 100644 --- a/apps/builder/src/features/results/api/archiveResults.ts +++ b/apps/builder/src/features/results/api/archiveResults.ts @@ -1,7 +1,7 @@ import prisma from '@/lib/prisma' import { deleteFiles } from '@/utils/api/storage' -import { Prisma } from 'db' -import { InputBlockType, Typebot } from 'models' +import { Prisma } from '@typebot.io/prisma' +import { InputBlockType, Typebot } from '@typebot.io/schemas' const batchSize = 100 diff --git a/apps/builder/src/features/results/api/procedures/deleteResultsProcedure.ts b/apps/builder/src/features/results/api/procedures/deleteResultsProcedure.ts index d81fb4b2c69..6e9fac0c021 100644 --- a/apps/builder/src/features/results/api/procedures/deleteResultsProcedure.ts +++ b/apps/builder/src/features/results/api/procedures/deleteResultsProcedure.ts @@ -1,7 +1,7 @@ import { getTypebot } from '@/features/typebot/api/utils/getTypebot' import { authenticatedProcedure } from '@/utils/server/trpc' import { TRPCError } from '@trpc/server' -import { Typebot } from 'models' +import { Typebot } from '@typebot.io/schemas' import { z } from 'zod' import { archiveResults } from '../archiveResults' diff --git a/apps/builder/src/features/results/api/procedures/getResultLogsProcedure.ts b/apps/builder/src/features/results/api/procedures/getResultLogsProcedure.ts index 9af43c9be45..e8136d37de9 100644 --- a/apps/builder/src/features/results/api/procedures/getResultLogsProcedure.ts +++ b/apps/builder/src/features/results/api/procedures/getResultLogsProcedure.ts @@ -1,7 +1,7 @@ import { getTypebot } from '@/features/typebot/api/utils/getTypebot' import prisma from '@/lib/prisma' import { authenticatedProcedure } from '@/utils/server/trpc' -import { logSchema } from 'models' +import { logSchema } from '@typebot.io/schemas' import { z } from 'zod' export const getResultLogsProcedure = authenticatedProcedure diff --git a/apps/builder/src/features/results/api/procedures/getResultsProcedure.ts b/apps/builder/src/features/results/api/procedures/getResultsProcedure.ts index 9329ced05d4..077b886c6cd 100644 --- a/apps/builder/src/features/results/api/procedures/getResultsProcedure.ts +++ b/apps/builder/src/features/results/api/procedures/getResultsProcedure.ts @@ -2,7 +2,7 @@ import { getTypebot } from '@/features/typebot/api/utils/getTypebot' import prisma from '@/lib/prisma' import { authenticatedProcedure } from '@/utils/server/trpc' import { TRPCError } from '@trpc/server' -import { ResultWithAnswers, resultWithAnswersSchema } from 'models' +import { ResultWithAnswers, resultWithAnswersSchema } from '@typebot.io/schemas' import { z } from 'zod' const maxLimit = 200 diff --git a/apps/builder/src/features/results/components/LogsModal.tsx b/apps/builder/src/features/results/components/LogsModal.tsx index 5e79e851693..307c6df6fbb 100644 --- a/apps/builder/src/features/results/components/LogsModal.tsx +++ b/apps/builder/src/features/results/components/LogsModal.tsx @@ -17,8 +17,8 @@ import { Text, Tag, } from '@chakra-ui/react' -import { Log } from 'db' -import { isDefined } from 'utils' +import { Log } from '@typebot.io/prisma' +import { isDefined } from '@typebot.io/lib' import { useLogs } from '../hooks/useLogs' type Props = { diff --git a/apps/builder/src/features/results/components/ResultModal.tsx b/apps/builder/src/features/results/components/ResultModal.tsx index 5ec1ae7c9ac..5868c12f8ad 100644 --- a/apps/builder/src/features/results/components/ResultModal.tsx +++ b/apps/builder/src/features/results/components/ResultModal.tsx @@ -11,7 +11,7 @@ import { } from '@chakra-ui/react' import { useResults } from '../ResultsProvider' import React from 'react' -import { isDefined } from 'utils' +import { isDefined } from '@typebot.io/lib' import { HeaderIcon } from '../utils' type Props = { diff --git a/apps/builder/src/features/results/components/ResultsTable/ColumnSettings.tsx b/apps/builder/src/features/results/components/ResultsTable/ColumnSettings.tsx index d41f2de3e6f..dcdc1bebb9a 100644 --- a/apps/builder/src/features/results/components/ResultsTable/ColumnSettings.tsx +++ b/apps/builder/src/features/results/components/ResultsTable/ColumnSettings.tsx @@ -19,7 +19,7 @@ import { arrayMove, } from '@dnd-kit/sortable' import { Text } from '@chakra-ui/react' -import { ResultHeaderCell } from 'models' +import { ResultHeaderCell } from '@typebot.io/schemas' import { HeaderIcon } from '../../utils' import { useState } from 'react' import { CSS } from '@dnd-kit/utilities' diff --git a/apps/builder/src/features/results/components/ResultsTable/ExportAllResultsModal.tsx b/apps/builder/src/features/results/components/ResultsTable/ExportAllResultsModal.tsx index d45a10f499e..be149c86f46 100644 --- a/apps/builder/src/features/results/components/ResultsTable/ExportAllResultsModal.tsx +++ b/apps/builder/src/features/results/components/ResultsTable/ExportAllResultsModal.tsx @@ -18,7 +18,7 @@ import { import { TRPCError } from '@trpc/server' import { unparse } from 'papaparse' import { useState } from 'react' -import { parseResultHeader } from 'utils/results' +import { parseResultHeader } from '@typebot.io/lib/results' import { useResults } from '../../ResultsProvider' import { convertResultsToTableData, parseAccessor } from '../../utils' import { parseColumnOrder } from '../../utils/parseColumnsOrder' diff --git a/apps/builder/src/features/results/components/ResultsTable/ResultsTable.tsx b/apps/builder/src/features/results/components/ResultsTable/ResultsTable.tsx index 296a764f5a4..b09a42ee9fc 100644 --- a/apps/builder/src/features/results/components/ResultsTable/ResultsTable.tsx +++ b/apps/builder/src/features/results/components/ResultsTable/ResultsTable.tsx @@ -8,7 +8,7 @@ import { useColorModeValue, } from '@chakra-ui/react' import { AlignLeftTextIcon } from '@/components/icons' -import { ResultHeaderCell, ResultsTablePreferences } from 'models' +import { ResultHeaderCell, ResultsTablePreferences } from '@typebot.io/schemas' import React, { useEffect, useRef, useState } from 'react' import { LoadingRows } from './LoadingRows' import { diff --git a/apps/builder/src/features/results/components/ResultsTable/TableSettingsButton.tsx b/apps/builder/src/features/results/components/ResultsTable/TableSettingsButton.tsx index bcccaf64d35..9eae8769c53 100644 --- a/apps/builder/src/features/results/components/ResultsTable/TableSettingsButton.tsx +++ b/apps/builder/src/features/results/components/ResultsTable/TableSettingsButton.tsx @@ -17,7 +17,7 @@ import { ListIcon, MoreHorizontalIcon, } from '@/components/icons' -import { ResultHeaderCell } from 'models' +import { ResultHeaderCell } from '@typebot.io/schemas' import React, { useState } from 'react' import { ColumnSettings } from './ColumnSettings' import { ExportAllResultsModal } from './ExportAllResultsModal' diff --git a/apps/builder/src/features/results/components/UsageAlertBanners.tsx b/apps/builder/src/features/results/components/UsageAlertBanners.tsx index 4736aa312af..3db840879f2 100644 --- a/apps/builder/src/features/results/components/UsageAlertBanners.tsx +++ b/apps/builder/src/features/results/components/UsageAlertBanners.tsx @@ -1,9 +1,9 @@ import { UnlockPlanAlertInfo } from '@/components/UnlockPlanAlertInfo' import { trpc } from '@/lib/trpc' import { Flex } from '@chakra-ui/react' -import { Workspace } from 'models' +import { Workspace } from '@typebot.io/schemas' import { useMemo } from 'react' -import { getChatsLimit, getStorageLimit } from 'utils/pricing' +import { getChatsLimit, getStorageLimit } from '@typebot.io/lib/pricing' const ALERT_CHATS_PERCENT_THRESHOLD = 80 const ALERT_STORAGE_PERCENT_THRESHOLD = 80 diff --git a/apps/builder/src/features/results/hooks/useStats.ts b/apps/builder/src/features/results/hooks/useStats.ts index 0617e0616d2..d4636169500 100644 --- a/apps/builder/src/features/results/hooks/useStats.ts +++ b/apps/builder/src/features/results/hooks/useStats.ts @@ -1,4 +1,4 @@ -import { Stats } from 'models' +import { Stats } from '@typebot.io/schemas' import { fetcher } from '@/utils/helpers' import useSWR from 'swr' diff --git a/apps/builder/src/features/results/results.spec.ts b/apps/builder/src/features/results/results.spec.ts index 85257d6f869..b9614906880 100644 --- a/apps/builder/src/features/results/results.spec.ts +++ b/apps/builder/src/features/results/results.spec.ts @@ -7,7 +7,7 @@ import { parse } from 'papaparse' import { importTypebotInDatabase, injectFakeResults, -} from 'utils/playwright/databaseActions' +} from '@typebot.io/lib/playwright/databaseActions' const typebotId = createId() diff --git a/apps/builder/src/features/results/utils.tsx b/apps/builder/src/features/results/utils.tsx index ab1974516e4..cdb897705d6 100644 --- a/apps/builder/src/features/results/utils.tsx +++ b/apps/builder/src/features/results/utils.tsx @@ -3,9 +3,9 @@ import { VariableWithValue, ResultHeaderCell, InputBlockType, -} from 'models' -import { Answer } from 'db' -import { isDefined } from 'utils' +} from '@typebot.io/schemas' +import { Answer } from '@typebot.io/prisma' +import { isDefined } from '@typebot.io/lib' import { HStack, Wrap, WrapItem, Text } from '@chakra-ui/react' import { BlockIcon } from '@/features/editor' import { HeaderCell, TableData } from './types' diff --git a/apps/builder/src/features/results/utils/parseColumnsOrder.ts b/apps/builder/src/features/results/utils/parseColumnsOrder.ts index b4c3c900ecf..5f634806fdd 100644 --- a/apps/builder/src/features/results/utils/parseColumnsOrder.ts +++ b/apps/builder/src/features/results/utils/parseColumnsOrder.ts @@ -1,4 +1,4 @@ -import { ResultHeaderCell } from 'models' +import { ResultHeaderCell } from '@typebot.io/schemas' export const parseColumnOrder = ( existingOrder: string[] | undefined, diff --git a/apps/builder/src/features/settings/components/GeneralSettingsForm.tsx b/apps/builder/src/features/settings/components/GeneralSettingsForm.tsx index 87bf516cc02..b76bf3db0f3 100644 --- a/apps/builder/src/features/settings/components/GeneralSettingsForm.tsx +++ b/apps/builder/src/features/settings/components/GeneralSettingsForm.tsx @@ -1,9 +1,9 @@ import { Flex, FormLabel, Stack, Switch, useDisclosure } from '@chakra-ui/react' import { useWorkspace } from '@/features/workspace' -import { Plan } from 'db' -import { GeneralSettings } from 'models' +import { Plan } from '@typebot.io/prisma' +import { GeneralSettings } from '@typebot.io/schemas' import React from 'react' -import { isDefined } from 'utils' +import { isDefined } from '@typebot.io/lib' import { ChangePlanModal, isFreePlan, LimitReached } from '@/features/billing' import { SwitchWithLabel } from '@/components/inputs/SwitchWithLabel' import { LockTag } from '@/features/billing' diff --git a/apps/builder/src/features/settings/components/MetadataForm.tsx b/apps/builder/src/features/settings/components/MetadataForm.tsx index 6911cf56fcd..c580c8db7fd 100644 --- a/apps/builder/src/features/settings/components/MetadataForm.tsx +++ b/apps/builder/src/features/settings/components/MetadataForm.tsx @@ -1,5 +1,5 @@ import React from 'react' -import { Metadata } from 'models' +import { Metadata } from '@typebot.io/schemas' import { FormLabel, Popover, diff --git a/apps/builder/src/features/settings/components/SettingsPage.tsx b/apps/builder/src/features/settings/components/SettingsPage.tsx index 9ee1dbd4cd5..fbfe013ef1f 100644 --- a/apps/builder/src/features/settings/components/SettingsPage.tsx +++ b/apps/builder/src/features/settings/components/SettingsPage.tsx @@ -2,7 +2,7 @@ import { Seo } from '@/components/Seo' import { TypebotHeader, useTypebot } from '@/features/editor' import { Flex } from '@chakra-ui/react' import { Standard } from '@typebot.io/react' -import { getViewerUrl } from 'utils' +import { getViewerUrl } from '@typebot.io/lib' import { SettingsSideMenu } from './SettingsSideMenu' export const SettingsPage = () => { diff --git a/apps/builder/src/features/settings/components/SettingsSideMenu.tsx b/apps/builder/src/features/settings/components/SettingsSideMenu.tsx index e2427f94243..05e7019a3ed 100644 --- a/apps/builder/src/features/settings/components/SettingsSideMenu.tsx +++ b/apps/builder/src/features/settings/components/SettingsSideMenu.tsx @@ -9,7 +9,7 @@ import { Stack, } from '@chakra-ui/react' import { ChatIcon, CodeIcon, MoreVerticalIcon } from '@/components/icons' -import { GeneralSettings, Metadata, TypingEmulation } from 'models' +import { GeneralSettings, Metadata, TypingEmulation } from '@typebot.io/schemas' import React from 'react' import { GeneralSettingsForm } from './GeneralSettingsForm' import { MetadataForm } from './MetadataForm' diff --git a/apps/builder/src/features/settings/components/TypingEmulationForm.tsx b/apps/builder/src/features/settings/components/TypingEmulationForm.tsx index f687d8b492d..7070bed797f 100644 --- a/apps/builder/src/features/settings/components/TypingEmulationForm.tsx +++ b/apps/builder/src/features/settings/components/TypingEmulationForm.tsx @@ -1,7 +1,7 @@ import { Flex, FormLabel, Stack, Switch } from '@chakra-ui/react' -import { TypingEmulation } from 'models' +import { TypingEmulation } from '@typebot.io/schemas' import React from 'react' -import { isDefined } from 'utils' +import { isDefined } from '@typebot.io/lib' import { NumberInput } from '@/components/inputs' type Props = { diff --git a/apps/builder/src/features/settings/settings.spec.ts b/apps/builder/src/features/settings/settings.spec.ts index 3fc274df512..711e2615f0a 100644 --- a/apps/builder/src/features/settings/settings.spec.ts +++ b/apps/builder/src/features/settings/settings.spec.ts @@ -1,9 +1,9 @@ import { getTestAsset } from '@/test/utils/playwright' import test, { expect } from '@playwright/test' import { createId } from '@paralleldrive/cuid2' -import { defaultTextInputOptions } from 'models' -import { importTypebotInDatabase } from 'utils/playwright/databaseActions' -import { freeWorkspaceId } from 'utils/playwright/databaseSetup' +import { defaultTextInputOptions } from '@typebot.io/schemas' +import { importTypebotInDatabase } from '@typebot.io/lib/playwright/databaseActions' +import { freeWorkspaceId } from '@typebot.io/lib/playwright/databaseSetup' test.describe.parallel('Settings page', () => { test.describe('General', () => { diff --git a/apps/builder/src/features/telemetry/api/processTelemetryEvent.ts b/apps/builder/src/features/telemetry/api/processTelemetryEvent.ts index 23e70273d36..de4e532fe8a 100644 --- a/apps/builder/src/features/telemetry/api/processTelemetryEvent.ts +++ b/apps/builder/src/features/telemetry/api/processTelemetryEvent.ts @@ -1,4 +1,4 @@ -import { eventSchema } from 'models/features/telemetry' +import { eventSchema } from '@typebot.io/schemas/features/telemetry' import { z } from 'zod' import { PostHog } from 'posthog-node' import { TRPCError } from '@trpc/server' diff --git a/apps/builder/src/features/templates/components/CreateNewTypebotButtons.tsx b/apps/builder/src/features/templates/components/CreateNewTypebotButtons.tsx index 3ee74b22c8d..6db5face21f 100644 --- a/apps/builder/src/features/templates/components/CreateNewTypebotButtons.tsx +++ b/apps/builder/src/features/templates/components/CreateNewTypebotButtons.tsx @@ -7,7 +7,7 @@ import { useColorModeValue, } from '@chakra-ui/react' import { ToolIcon, TemplateIcon, DownloadIcon } from '@/components/icons' -import { Typebot } from 'models' +import { Typebot } from '@typebot.io/schemas' import { useRouter } from 'next/router' import React, { useState } from 'react' import { ImportTypebotFromFileButton } from './ImportTypebotFromFileButton' diff --git a/apps/builder/src/features/templates/components/ImportTypebotFromFileButton.tsx b/apps/builder/src/features/templates/components/ImportTypebotFromFileButton.tsx index d3d1f32c5ef..597dda1a470 100644 --- a/apps/builder/src/features/templates/components/ImportTypebotFromFileButton.tsx +++ b/apps/builder/src/features/templates/components/ImportTypebotFromFileButton.tsx @@ -1,7 +1,7 @@ import { useToast } from '@/hooks/useToast' import { readFile } from '@/utils/helpers' import { Button, ButtonProps, chakra } from '@chakra-ui/react' -import { groupSchema, Typebot } from 'models' +import { groupSchema, Typebot } from '@typebot.io/schemas' import React, { ChangeEvent } from 'react' import { z } from 'zod' diff --git a/apps/builder/src/features/templates/components/TemplatesModal.tsx b/apps/builder/src/features/templates/components/TemplatesModal.tsx index 15c193ce4cd..d48febd5c33 100644 --- a/apps/builder/src/features/templates/components/TemplatesModal.tsx +++ b/apps/builder/src/features/templates/components/TemplatesModal.tsx @@ -15,12 +15,12 @@ import { } from '@chakra-ui/react' import { ExternalLinkIcon } from '@/components/icons' import { Standard } from '@typebot.io/react' -import { Typebot } from 'models' +import { Typebot } from '@typebot.io/schemas' import React, { useCallback, useEffect, useState } from 'react' import { templates } from '../data' import { TemplateProps } from '../types' import { useToast } from '@/hooks/useToast' -import { sendRequest } from 'utils' +import { sendRequest } from '@typebot.io/lib' type Props = { isOpen: boolean diff --git a/apps/builder/src/features/theme/components/ChatSettings/AvatarForm.tsx b/apps/builder/src/features/theme/components/ChatSettings/AvatarForm.tsx index 39cbacc5b00..0f29507e762 100644 --- a/apps/builder/src/features/theme/components/ChatSettings/AvatarForm.tsx +++ b/apps/builder/src/features/theme/components/ChatSettings/AvatarForm.tsx @@ -1,5 +1,5 @@ import React from 'react' -import { AvatarProps } from 'models' +import { AvatarProps } from '@typebot.io/schemas' import { Heading, HStack, diff --git a/apps/builder/src/features/theme/components/ChatSettings/ButtonsTheme.tsx b/apps/builder/src/features/theme/components/ChatSettings/ButtonsTheme.tsx index 1a42c0579f3..411a01a8e50 100644 --- a/apps/builder/src/features/theme/components/ChatSettings/ButtonsTheme.tsx +++ b/apps/builder/src/features/theme/components/ChatSettings/ButtonsTheme.tsx @@ -1,5 +1,5 @@ import { Stack, Flex, Text } from '@chakra-ui/react' -import { ContainerColors } from 'models' +import { ContainerColors } from '@typebot.io/schemas' import React from 'react' import { ColorPicker } from '../../../../components/ColorPicker' diff --git a/apps/builder/src/features/theme/components/ChatSettings/ChatThemeSettings.tsx b/apps/builder/src/features/theme/components/ChatSettings/ChatThemeSettings.tsx index 5e42d627d2f..57725db9156 100644 --- a/apps/builder/src/features/theme/components/ChatSettings/ChatThemeSettings.tsx +++ b/apps/builder/src/features/theme/components/ChatSettings/ChatThemeSettings.tsx @@ -1,5 +1,10 @@ import { Heading, Stack } from '@chakra-ui/react' -import { AvatarProps, ChatTheme, ContainerColors, InputColors } from 'models' +import { + AvatarProps, + ChatTheme, + ContainerColors, + InputColors, +} from '@typebot.io/schemas' import React from 'react' import { AvatarForm } from './AvatarForm' import { ButtonsTheme } from './ButtonsTheme' diff --git a/apps/builder/src/features/theme/components/ChatSettings/GuestBubbles.tsx b/apps/builder/src/features/theme/components/ChatSettings/GuestBubbles.tsx index 7b011f9a042..d6ddabdc4f2 100644 --- a/apps/builder/src/features/theme/components/ChatSettings/GuestBubbles.tsx +++ b/apps/builder/src/features/theme/components/ChatSettings/GuestBubbles.tsx @@ -1,5 +1,5 @@ import { Stack, Flex, Text } from '@chakra-ui/react' -import { ContainerColors } from 'models' +import { ContainerColors } from '@typebot.io/schemas' import React from 'react' import { ColorPicker } from '../../../../components/ColorPicker' diff --git a/apps/builder/src/features/theme/components/ChatSettings/HostBubbles.tsx b/apps/builder/src/features/theme/components/ChatSettings/HostBubbles.tsx index 12da7419cc6..3037d6b79cf 100644 --- a/apps/builder/src/features/theme/components/ChatSettings/HostBubbles.tsx +++ b/apps/builder/src/features/theme/components/ChatSettings/HostBubbles.tsx @@ -1,5 +1,5 @@ import { Stack, Flex, Text } from '@chakra-ui/react' -import { ContainerColors } from 'models' +import { ContainerColors } from '@typebot.io/schemas' import React from 'react' import { ColorPicker } from '../../../../components/ColorPicker' diff --git a/apps/builder/src/features/theme/components/ChatSettings/InputsTheme.tsx b/apps/builder/src/features/theme/components/ChatSettings/InputsTheme.tsx index ebc18be8f26..8f0be17669b 100644 --- a/apps/builder/src/features/theme/components/ChatSettings/InputsTheme.tsx +++ b/apps/builder/src/features/theme/components/ChatSettings/InputsTheme.tsx @@ -1,5 +1,5 @@ import { Stack, Flex, Text } from '@chakra-ui/react' -import { InputColors } from 'models' +import { InputColors } from '@typebot.io/schemas' import React from 'react' import { ColorPicker } from '../../../../components/ColorPicker' diff --git a/apps/builder/src/features/theme/components/GeneralSettings/BackgroundSelector/BackgroundContent.tsx b/apps/builder/src/features/theme/components/GeneralSettings/BackgroundSelector/BackgroundContent.tsx index 2f921089e1b..00ffd0327ce 100644 --- a/apps/builder/src/features/theme/components/GeneralSettings/BackgroundSelector/BackgroundContent.tsx +++ b/apps/builder/src/features/theme/components/GeneralSettings/BackgroundSelector/BackgroundContent.tsx @@ -1,5 +1,5 @@ import { Flex, Text } from '@chakra-ui/react' -import { Background, BackgroundType } from 'models' +import { Background, BackgroundType } from '@typebot.io/schemas' import React from 'react' import { ColorPicker } from '../../../../../components/ColorPicker' diff --git a/apps/builder/src/features/theme/components/GeneralSettings/BackgroundSelector/BackgroundSelector.tsx b/apps/builder/src/features/theme/components/GeneralSettings/BackgroundSelector/BackgroundSelector.tsx index 733ad6c5f83..caabd5a473b 100644 --- a/apps/builder/src/features/theme/components/GeneralSettings/BackgroundSelector/BackgroundSelector.tsx +++ b/apps/builder/src/features/theme/components/GeneralSettings/BackgroundSelector/BackgroundSelector.tsx @@ -1,5 +1,5 @@ import { Stack, Text } from '@chakra-ui/react' -import { Background, BackgroundType } from 'models' +import { Background, BackgroundType } from '@typebot.io/schemas' import React from 'react' import { BackgroundContent } from './BackgroundContent' import { BackgroundTypeRadioButtons } from './BackgroundTypeRadioButtons' diff --git a/apps/builder/src/features/theme/components/GeneralSettings/BackgroundSelector/BackgroundTypeRadioButtons.tsx b/apps/builder/src/features/theme/components/GeneralSettings/BackgroundSelector/BackgroundTypeRadioButtons.tsx index 041b80e4c87..268c8423813 100644 --- a/apps/builder/src/features/theme/components/GeneralSettings/BackgroundSelector/BackgroundTypeRadioButtons.tsx +++ b/apps/builder/src/features/theme/components/GeneralSettings/BackgroundSelector/BackgroundTypeRadioButtons.tsx @@ -7,7 +7,7 @@ import { useRadioGroup, UseRadioProps, } from '@chakra-ui/react' -import { BackgroundType } from 'models' +import { BackgroundType } from '@typebot.io/schemas' import { ReactNode } from 'react' type Props = { diff --git a/apps/builder/src/features/theme/components/GeneralSettings/FontSelector/FontSelector.tsx b/apps/builder/src/features/theme/components/GeneralSettings/FontSelector/FontSelector.tsx index eeadfe9455d..6c1df701f68 100644 --- a/apps/builder/src/features/theme/components/GeneralSettings/FontSelector/FontSelector.tsx +++ b/apps/builder/src/features/theme/components/GeneralSettings/FontSelector/FontSelector.tsx @@ -1,6 +1,6 @@ import React, { useEffect, useState } from 'react' import { Text, HStack } from '@chakra-ui/react' -import { env, isEmpty } from 'utils' +import { env, isEmpty } from '@typebot.io/lib' import { AutocompleteInput } from '@/components/inputs/AutocompleteInput' type FontSelectorProps = { diff --git a/apps/builder/src/features/theme/components/GeneralSettings/GeneralSettings.tsx b/apps/builder/src/features/theme/components/GeneralSettings/GeneralSettings.tsx index f6867f81265..9ee8b64ea93 100644 --- a/apps/builder/src/features/theme/components/GeneralSettings/GeneralSettings.tsx +++ b/apps/builder/src/features/theme/components/GeneralSettings/GeneralSettings.tsx @@ -1,5 +1,5 @@ import { Stack } from '@chakra-ui/react' -import { Background, GeneralTheme } from 'models' +import { Background, GeneralTheme } from '@typebot.io/schemas' import React from 'react' import { BackgroundSelector } from './BackgroundSelector' import { FontSelector } from './FontSelector' diff --git a/apps/builder/src/features/theme/components/ThemeSideMenu.tsx b/apps/builder/src/features/theme/components/ThemeSideMenu.tsx index db3e2d6fa61..ce34e5433ce 100644 --- a/apps/builder/src/features/theme/components/ThemeSideMenu.tsx +++ b/apps/builder/src/features/theme/components/ThemeSideMenu.tsx @@ -9,7 +9,7 @@ import { Stack, } from '@chakra-ui/react' import { ChatIcon, CodeIcon, PencilIcon } from '@/components/icons' -import { ChatTheme, GeneralTheme } from 'models' +import { ChatTheme, GeneralTheme } from '@typebot.io/schemas' import React from 'react' import { ChatThemeSettings } from './ChatSettings' import { CustomCssSettings } from './CustomCssSettings/CustomCssSettings' diff --git a/apps/builder/src/features/theme/theme.spec.ts b/apps/builder/src/features/theme/theme.spec.ts index db0572970ce..9fd6f11a299 100644 --- a/apps/builder/src/features/theme/theme.spec.ts +++ b/apps/builder/src/features/theme/theme.spec.ts @@ -1,7 +1,7 @@ import { getTestAsset } from '@/test/utils/playwright' import test, { expect } from '@playwright/test' import { createId } from '@paralleldrive/cuid2' -import { importTypebotInDatabase } from 'utils/playwright/databaseActions' +import { importTypebotInDatabase } from '@typebot.io/lib/playwright/databaseActions' const hostAvatarUrl = 'https://images.unsplash.com/photo-1535713875002-d1d0cf377fde?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1760&q=80' diff --git a/apps/builder/src/features/typebot/api/procedures/listTypebotsProcedure.ts b/apps/builder/src/features/typebot/api/procedures/listTypebotsProcedure.ts index 9d564237878..4c068073a52 100644 --- a/apps/builder/src/features/typebot/api/procedures/listTypebotsProcedure.ts +++ b/apps/builder/src/features/typebot/api/procedures/listTypebotsProcedure.ts @@ -1,9 +1,9 @@ import prisma from '@/lib/prisma' import { authenticatedProcedure } from '@/utils/server/trpc' import { TRPCError } from '@trpc/server' -import { WorkspaceRole } from 'db' -import { PublicTypebot, Typebot, typebotSchema } from 'models' -import { omit } from 'utils' +import { WorkspaceRole } from '@typebot.io/prisma' +import { PublicTypebot, Typebot, typebotSchema } from '@typebot.io/schemas' +import { omit } from '@typebot.io/lib' import { z } from 'zod' export const listTypebotsProcedure = authenticatedProcedure diff --git a/apps/builder/src/features/typebot/api/utils/getTypebot.ts b/apps/builder/src/features/typebot/api/utils/getTypebot.ts index 2f647f6c210..4fb2ba97f0c 100644 --- a/apps/builder/src/features/typebot/api/utils/getTypebot.ts +++ b/apps/builder/src/features/typebot/api/utils/getTypebot.ts @@ -1,5 +1,5 @@ import prisma from '@/lib/prisma' -import { Prisma, User } from 'db' +import { Prisma, User } from '@typebot.io/prisma' import { isReadTypebotForbidden } from './isReadTypebotForbidden' import { isWriteTypebotForbidden } from './isWriteTypebotForbidden' diff --git a/apps/builder/src/features/typebot/api/utils/isReadTypebotForbidden.ts b/apps/builder/src/features/typebot/api/utils/isReadTypebotForbidden.ts index 16a689f9e47..7cdee98f9e6 100644 --- a/apps/builder/src/features/typebot/api/utils/isReadTypebotForbidden.ts +++ b/apps/builder/src/features/typebot/api/utils/isReadTypebotForbidden.ts @@ -1,6 +1,6 @@ import prisma from '@/lib/prisma' -import { CollaboratorsOnTypebots, User } from 'db' -import { Typebot } from 'models' +import { CollaboratorsOnTypebots, User } from '@typebot.io/prisma' +import { Typebot } from '@typebot.io/schemas' export const isReadTypebotForbidden = async ( typebot: Pick & { diff --git a/apps/builder/src/features/typebot/api/utils/isWriteTypebotForbidden.ts b/apps/builder/src/features/typebot/api/utils/isWriteTypebotForbidden.ts index 481e4195a6c..6450906f278 100644 --- a/apps/builder/src/features/typebot/api/utils/isWriteTypebotForbidden.ts +++ b/apps/builder/src/features/typebot/api/utils/isWriteTypebotForbidden.ts @@ -1,7 +1,11 @@ import prisma from '@/lib/prisma' -import { CollaborationType, CollaboratorsOnTypebots, User } from 'db' -import { Typebot } from 'models' -import { isNotDefined } from 'utils' +import { + CollaborationType, + CollaboratorsOnTypebots, + User, +} from '@typebot.io/prisma' +import { Typebot } from '@typebot.io/schemas' +import { isNotDefined } from '@typebot.io/lib' export const isWriteTypebotForbidden = async ( typebot: Pick & { diff --git a/apps/builder/src/features/typebot/api/utils/removeTypebotOldProperties.ts b/apps/builder/src/features/typebot/api/utils/removeTypebotOldProperties.ts index 80dcac16334..7213cc474d1 100644 --- a/apps/builder/src/features/typebot/api/utils/removeTypebotOldProperties.ts +++ b/apps/builder/src/features/typebot/api/utils/removeTypebotOldProperties.ts @@ -1,4 +1,4 @@ -import { omit } from 'utils' +import { omit } from '@typebot.io/lib' export const removeTypebotOldProperties = (data: unknown) => { if (!data || typeof data !== 'object') return data diff --git a/apps/builder/src/features/variables/components/VariablesButton.tsx b/apps/builder/src/features/variables/components/VariablesButton.tsx index 33c0fc5be1d..0d4f49873b8 100644 --- a/apps/builder/src/features/variables/components/VariablesButton.tsx +++ b/apps/builder/src/features/variables/components/VariablesButton.tsx @@ -10,7 +10,7 @@ import { Portal, } from '@chakra-ui/react' import { UserIcon } from '@/components/icons' -import { Variable } from 'models' +import { Variable } from '@typebot.io/schemas' import React, { useRef } from 'react' import { VariableSearchInput } from '@/components/inputs/VariableSearchInput' import { useOutsideClick } from '@/hooks/useOutsideClick' diff --git a/apps/builder/src/features/variables/utils/injectVariableInTextInput.ts b/apps/builder/src/features/variables/utils/injectVariableInTextInput.ts index 91ef3348616..5b96aa7d51b 100644 --- a/apps/builder/src/features/variables/utils/injectVariableInTextInput.ts +++ b/apps/builder/src/features/variables/utils/injectVariableInTextInput.ts @@ -1,4 +1,4 @@ -import { Variable } from 'models' +import { Variable } from '@typebot.io/schemas' type Props = { variable: Variable diff --git a/apps/builder/src/features/workspace/WorkspaceProvider.tsx b/apps/builder/src/features/workspace/WorkspaceProvider.tsx index ed20f26df69..eb672aa1c81 100644 --- a/apps/builder/src/features/workspace/WorkspaceProvider.tsx +++ b/apps/builder/src/features/workspace/WorkspaceProvider.tsx @@ -6,12 +6,12 @@ import { useMemo, useState, } from 'react' -import { byId } from 'utils' -import { WorkspaceRole } from 'db' +import { byId } from '@typebot.io/lib' +import { WorkspaceRole } from '@typebot.io/prisma' import { useUser } from '../account/UserProvider' import { useRouter } from 'next/router' import { trpc } from '@/lib/trpc' -import { Workspace } from 'models' +import { Workspace } from '@typebot.io/schemas' import { useToast } from '@/hooks/useToast' import { parseNewName, setWorkspaceIdInLocalStorage } from './utils' import { useTypebot } from '../editor' diff --git a/apps/builder/src/features/workspace/api/procedures/createWorkspaceProcedure.ts b/apps/builder/src/features/workspace/api/procedures/createWorkspaceProcedure.ts index e996a5134b8..60455e38204 100644 --- a/apps/builder/src/features/workspace/api/procedures/createWorkspaceProcedure.ts +++ b/apps/builder/src/features/workspace/api/procedures/createWorkspaceProcedure.ts @@ -1,8 +1,8 @@ -import { sendTelemetryEvents } from 'utils/telemetry/sendTelemetryEvent' +import { sendTelemetryEvents } from '@typebot.io/lib/telemetry/sendTelemetryEvent' import prisma from '@/lib/prisma' import { authenticatedProcedure } from '@/utils/server/trpc' import { TRPCError } from '@trpc/server' -import { Workspace, workspaceSchema } from 'models' +import { Workspace, workspaceSchema } from '@typebot.io/schemas' import { z } from 'zod' import { parseWorkspaceDefaultPlan } from '../../utils' diff --git a/apps/builder/src/features/workspace/api/procedures/getWorkspaceProcedure.ts b/apps/builder/src/features/workspace/api/procedures/getWorkspaceProcedure.ts index 5c764a9c516..7c2604180a3 100644 --- a/apps/builder/src/features/workspace/api/procedures/getWorkspaceProcedure.ts +++ b/apps/builder/src/features/workspace/api/procedures/getWorkspaceProcedure.ts @@ -1,7 +1,7 @@ import prisma from '@/lib/prisma' import { authenticatedProcedure } from '@/utils/server/trpc' import { TRPCError } from '@trpc/server' -import { Workspace, workspaceSchema } from 'models' +import { Workspace, workspaceSchema } from '@typebot.io/schemas' import { z } from 'zod' export const getWorkspaceProcedure = authenticatedProcedure diff --git a/apps/builder/src/features/workspace/api/procedures/listInvitationsInWorkspaceProcedure.ts b/apps/builder/src/features/workspace/api/procedures/listInvitationsInWorkspaceProcedure.ts index 12d1c54e372..6a0bb7e682a 100644 --- a/apps/builder/src/features/workspace/api/procedures/listInvitationsInWorkspaceProcedure.ts +++ b/apps/builder/src/features/workspace/api/procedures/listInvitationsInWorkspaceProcedure.ts @@ -1,7 +1,10 @@ import prisma from '@/lib/prisma' import { authenticatedProcedure } from '@/utils/server/trpc' import { TRPCError } from '@trpc/server' -import { WorkspaceInvitation, workspaceInvitationSchema } from 'models' +import { + WorkspaceInvitation, + workspaceInvitationSchema, +} from '@typebot.io/schemas' import { z } from 'zod' export const listInvitationsInWorkspaceProcedure = authenticatedProcedure diff --git a/apps/builder/src/features/workspace/api/procedures/listMembersInWorkspaceProcedure.ts b/apps/builder/src/features/workspace/api/procedures/listMembersInWorkspaceProcedure.ts index 15ba963cced..74105b11c76 100644 --- a/apps/builder/src/features/workspace/api/procedures/listMembersInWorkspaceProcedure.ts +++ b/apps/builder/src/features/workspace/api/procedures/listMembersInWorkspaceProcedure.ts @@ -1,7 +1,7 @@ import prisma from '@/lib/prisma' import { authenticatedProcedure } from '@/utils/server/trpc' import { TRPCError } from '@trpc/server' -import { WorkspaceMember, workspaceMemberSchema } from 'models' +import { WorkspaceMember, workspaceMemberSchema } from '@typebot.io/schemas' import { z } from 'zod' export const listMembersInWorkspaceProcedure = authenticatedProcedure diff --git a/apps/builder/src/features/workspace/api/procedures/listWorkspacesProcedure.ts b/apps/builder/src/features/workspace/api/procedures/listWorkspacesProcedure.ts index 07f9ea92a4d..491d709ff69 100644 --- a/apps/builder/src/features/workspace/api/procedures/listWorkspacesProcedure.ts +++ b/apps/builder/src/features/workspace/api/procedures/listWorkspacesProcedure.ts @@ -1,7 +1,7 @@ import prisma from '@/lib/prisma' import { authenticatedProcedure } from '@/utils/server/trpc' import { TRPCError } from '@trpc/server' -import { Workspace, workspaceSchema } from 'models' +import { Workspace, workspaceSchema } from '@typebot.io/schemas' import { z } from 'zod' export const listWorkspacesProcedure = authenticatedProcedure diff --git a/apps/builder/src/features/workspace/api/procedures/updateWorkspaceProcedure.ts b/apps/builder/src/features/workspace/api/procedures/updateWorkspaceProcedure.ts index 320f1319b6b..999285df09d 100644 --- a/apps/builder/src/features/workspace/api/procedures/updateWorkspaceProcedure.ts +++ b/apps/builder/src/features/workspace/api/procedures/updateWorkspaceProcedure.ts @@ -1,7 +1,7 @@ import prisma from '@/lib/prisma' import { authenticatedProcedure } from '@/utils/server/trpc' import { TRPCError } from '@trpc/server' -import { Workspace, workspaceSchema } from 'models' +import { Workspace, workspaceSchema } from '@typebot.io/schemas' import { z } from 'zod' export const updateWorkspaceProcedure = authenticatedProcedure diff --git a/apps/builder/src/features/workspace/components/MembersList/AddMemberForm.tsx b/apps/builder/src/features/workspace/components/MembersList/AddMemberForm.tsx index e26665ddf38..3b1b563e1a7 100644 --- a/apps/builder/src/features/workspace/components/MembersList/AddMemberForm.tsx +++ b/apps/builder/src/features/workspace/components/MembersList/AddMemberForm.tsx @@ -9,7 +9,7 @@ import { MenuItem, } from '@chakra-ui/react' import { ChevronLeftIcon } from '@/components/icons' -import { WorkspaceInvitation, WorkspaceRole } from 'db' +import { WorkspaceInvitation, WorkspaceRole } from '@typebot.io/prisma' import { FormEvent, useState } from 'react' import { Member } from '../../types' import { sendInvitationQuery } from '../../queries/sendInvitationQuery' diff --git a/apps/builder/src/features/workspace/components/MembersList/MemberItem.tsx b/apps/builder/src/features/workspace/components/MembersList/MemberItem.tsx index e775f0f19f9..20dae937bc0 100644 --- a/apps/builder/src/features/workspace/components/MembersList/MemberItem.tsx +++ b/apps/builder/src/features/workspace/components/MembersList/MemberItem.tsx @@ -10,7 +10,7 @@ import { Text, useColorModeValue, } from '@chakra-ui/react' -import { WorkspaceRole } from 'db' +import { WorkspaceRole } from '@typebot.io/prisma' import React from 'react' import { convertWorkspaceRoleToReadable } from './AddMemberForm' diff --git a/apps/builder/src/features/workspace/components/MembersList/MembersList.tsx b/apps/builder/src/features/workspace/components/MembersList/MembersList.tsx index c12918478e2..aa63c7542de 100644 --- a/apps/builder/src/features/workspace/components/MembersList/MembersList.tsx +++ b/apps/builder/src/features/workspace/components/MembersList/MembersList.tsx @@ -6,9 +6,9 @@ import { Stack, } from '@chakra-ui/react' import { UnlockPlanAlertInfo } from '@/components/UnlockPlanAlertInfo' -import { WorkspaceInvitation, WorkspaceRole } from 'db' +import { WorkspaceInvitation, WorkspaceRole } from '@typebot.io/prisma' import React from 'react' -import { getSeatsLimit, isSeatsLimitReached } from 'utils/pricing' +import { getSeatsLimit, isSeatsLimitReached } from '@typebot.io/lib/pricing' import { AddMemberForm } from './AddMemberForm' import { MemberItem } from './MemberItem' import { useUser } from '@/features/account' @@ -19,7 +19,7 @@ import { updateMemberQuery } from '../../queries/updateMemberQuery' import { deleteInvitationQuery } from '../../queries/deleteInvitationQuery' import { updateInvitationQuery } from '../../queries/updateInvitationQuery' import { Member } from '../../types' -import { isDefined } from 'utils' +import { isDefined } from '@typebot.io/lib' export const MembersList = () => { const { user } = useUser() diff --git a/apps/builder/src/features/workspace/components/WorkspaceDropdown.tsx b/apps/builder/src/features/workspace/components/WorkspaceDropdown.tsx index 11c82bca9d2..5697d0683c6 100644 --- a/apps/builder/src/features/workspace/components/WorkspaceDropdown.tsx +++ b/apps/builder/src/features/workspace/components/WorkspaceDropdown.tsx @@ -16,7 +16,7 @@ import { MenuItem, Text, } from '@chakra-ui/react' -import { Workspace } from 'models' +import { Workspace } from '@typebot.io/schemas' type Props = { currentWorkspace?: Workspace diff --git a/apps/builder/src/features/workspace/components/WorkspaceSettingsModal.tsx b/apps/builder/src/features/workspace/components/WorkspaceSettingsModal.tsx index 6cc2b400339..11f21d6a07b 100644 --- a/apps/builder/src/features/workspace/components/WorkspaceSettingsModal.tsx +++ b/apps/builder/src/features/workspace/components/WorkspaceSettingsModal.tsx @@ -15,7 +15,7 @@ import { UsersIcon, } from '@/components/icons' import { EmojiOrImageIcon } from '@/components/EmojiOrImageIcon' -import { User, Workspace, WorkspaceRole } from 'db' +import { User, Workspace, WorkspaceRole } from '@typebot.io/prisma' import { useState } from 'react' import { MembersList } from './MembersList' import { WorkspaceSettingsForm } from './WorkspaceSettingsForm' diff --git a/apps/builder/src/features/workspace/hooks/useMembers.ts b/apps/builder/src/features/workspace/hooks/useMembers.ts index e7f94a68cee..d548f01a98c 100644 --- a/apps/builder/src/features/workspace/hooks/useMembers.ts +++ b/apps/builder/src/features/workspace/hooks/useMembers.ts @@ -1,7 +1,7 @@ -import { WorkspaceInvitation } from 'db' +import { WorkspaceInvitation } from '@typebot.io/prisma' import { fetcher } from '@/utils/helpers' import useSWR from 'swr' -import { env } from 'utils' +import { env } from '@typebot.io/lib' import { Member } from '../types' export const useMembers = ({ workspaceId }: { workspaceId?: string }) => { diff --git a/apps/builder/src/features/workspace/queries/deleteInvitationQuery.ts b/apps/builder/src/features/workspace/queries/deleteInvitationQuery.ts index 960a5f9423d..010c20d0c8c 100644 --- a/apps/builder/src/features/workspace/queries/deleteInvitationQuery.ts +++ b/apps/builder/src/features/workspace/queries/deleteInvitationQuery.ts @@ -1,4 +1,4 @@ -import { sendRequest } from 'utils' +import { sendRequest } from '@typebot.io/lib' export const deleteInvitationQuery = (invitation: { workspaceId: string diff --git a/apps/builder/src/features/workspace/queries/deleteMemberQuery.ts b/apps/builder/src/features/workspace/queries/deleteMemberQuery.ts index 87f2597cba2..56b40d0bcc7 100644 --- a/apps/builder/src/features/workspace/queries/deleteMemberQuery.ts +++ b/apps/builder/src/features/workspace/queries/deleteMemberQuery.ts @@ -1,4 +1,4 @@ -import { sendRequest } from 'utils' +import { sendRequest } from '@typebot.io/lib' export const deleteMemberQuery = (workspaceId: string, userId: string) => sendRequest({ diff --git a/apps/builder/src/features/workspace/queries/sendInvitationQuery.ts b/apps/builder/src/features/workspace/queries/sendInvitationQuery.ts index 33b1f7b78f2..618ef9fd1d9 100644 --- a/apps/builder/src/features/workspace/queries/sendInvitationQuery.ts +++ b/apps/builder/src/features/workspace/queries/sendInvitationQuery.ts @@ -1,5 +1,5 @@ -import { WorkspaceInvitation } from 'db' -import { sendRequest } from 'utils' +import { WorkspaceInvitation } from '@typebot.io/prisma' +import { sendRequest } from '@typebot.io/lib' import { Member } from '../types' export const sendInvitationQuery = ( diff --git a/apps/builder/src/features/workspace/queries/updateInvitationQuery.ts b/apps/builder/src/features/workspace/queries/updateInvitationQuery.ts index 42f76e9b31f..fe1bff32c78 100644 --- a/apps/builder/src/features/workspace/queries/updateInvitationQuery.ts +++ b/apps/builder/src/features/workspace/queries/updateInvitationQuery.ts @@ -1,5 +1,5 @@ -import { WorkspaceInvitation } from 'db' -import { sendRequest } from 'utils' +import { WorkspaceInvitation } from '@typebot.io/prisma' +import { sendRequest } from '@typebot.io/lib' export const updateInvitationQuery = ( invitation: Partial diff --git a/apps/builder/src/features/workspace/queries/updateMemberQuery.ts b/apps/builder/src/features/workspace/queries/updateMemberQuery.ts index 7b9b7efb19f..c9e234cadc2 100644 --- a/apps/builder/src/features/workspace/queries/updateMemberQuery.ts +++ b/apps/builder/src/features/workspace/queries/updateMemberQuery.ts @@ -1,5 +1,5 @@ -import { MemberInWorkspace } from 'db' -import { sendRequest } from 'utils' +import { MemberInWorkspace } from '@typebot.io/prisma' +import { sendRequest } from '@typebot.io/lib' export const updateMemberQuery = ( workspaceId: string, diff --git a/apps/builder/src/features/workspace/types.ts b/apps/builder/src/features/workspace/types.ts index 594ea0cffb1..68d0afd8dd0 100644 --- a/apps/builder/src/features/workspace/types.ts +++ b/apps/builder/src/features/workspace/types.ts @@ -1,4 +1,4 @@ -import { MemberInWorkspace } from 'db' +import { MemberInWorkspace } from '@typebot.io/prisma' export type Member = MemberInWorkspace & { name: string | null diff --git a/apps/builder/src/features/workspace/utils/parseNewName.ts b/apps/builder/src/features/workspace/utils/parseNewName.ts index ae062e7cd11..c4b699dc9ee 100644 --- a/apps/builder/src/features/workspace/utils/parseNewName.ts +++ b/apps/builder/src/features/workspace/utils/parseNewName.ts @@ -1,4 +1,4 @@ -import { Workspace } from 'models' +import { Workspace } from '@typebot.io/schemas' export const parseNewName = ( userFullName: string | undefined, diff --git a/apps/builder/src/features/workspace/utils/parseWorkspaceDefaultPlan.ts b/apps/builder/src/features/workspace/utils/parseWorkspaceDefaultPlan.ts index 1f9e9736576..442bf3f6b22 100644 --- a/apps/builder/src/features/workspace/utils/parseWorkspaceDefaultPlan.ts +++ b/apps/builder/src/features/workspace/utils/parseWorkspaceDefaultPlan.ts @@ -1,4 +1,4 @@ -import { Plan } from 'db' +import { Plan } from '@typebot.io/prisma' export const parseWorkspaceDefaultPlan = (userEmail: string) => { if (process.env.ADMIN_EMAIL === userEmail) return Plan.UNLIMITED diff --git a/apps/builder/src/features/workspace/workspaces.spec.ts b/apps/builder/src/features/workspace/workspaces.spec.ts index 8c25e94a6dc..8d6f1b0172d 100644 --- a/apps/builder/src/features/workspace/workspaces.spec.ts +++ b/apps/builder/src/features/workspace/workspaces.spec.ts @@ -1,13 +1,13 @@ import test, { expect } from '@playwright/test' import { createId } from '@paralleldrive/cuid2' -import { defaultTextInputOptions, InputBlockType } from 'models' -import { createTypebots } from 'utils/playwright/databaseActions' +import { defaultTextInputOptions, InputBlockType } from '@typebot.io/schemas' +import { createTypebots } from '@typebot.io/lib/playwright/databaseActions' import { proWorkspaceId, starterWorkspaceId, -} from 'utils/playwright/databaseSetup' -import { parseDefaultGroupWithBlock } from 'utils/playwright/databaseHelpers' -import { mockSessionResponsesToOtherUser } from 'utils/playwright/testHelpers' +} from '@typebot.io/lib/playwright/databaseSetup' +import { parseDefaultGroupWithBlock } from '@typebot.io/lib/playwright/databaseHelpers' +import { mockSessionResponsesToOtherUser } from '@typebot.io/lib/playwright/testHelpers' const proTypebotId = createId() const starterTypebotId = createId() diff --git a/apps/builder/src/hooks/useLinkedTypebots.ts b/apps/builder/src/hooks/useLinkedTypebots.ts index e4f6a4f3fdc..6397dadc1ad 100644 --- a/apps/builder/src/hooks/useLinkedTypebots.ts +++ b/apps/builder/src/hooks/useLinkedTypebots.ts @@ -1,5 +1,5 @@ import { fetcher } from '@/utils/helpers' -import { Typebot } from 'models' +import { Typebot } from '@typebot.io/schemas' import { stringify } from 'qs' import useSWR from 'swr' diff --git a/apps/builder/src/hooks/useTypebotQuery.ts b/apps/builder/src/hooks/useTypebotQuery.ts index 28b30721565..33feef7d0a3 100644 --- a/apps/builder/src/hooks/useTypebotQuery.ts +++ b/apps/builder/src/hooks/useTypebotQuery.ts @@ -1,7 +1,7 @@ import { fetcher } from '@/utils/helpers' -import { PublicTypebot, Typebot, Webhook } from 'models' +import { PublicTypebot, Typebot, Webhook } from '@typebot.io/schemas' import useSWR from 'swr' -import { env } from 'utils' +import { env } from '@typebot.io/lib' export const useTypebotQuery = ({ typebotId, diff --git a/apps/builder/src/lib/googleSheets.ts b/apps/builder/src/lib/googleSheets.ts index 1896fc4d5ed..e71f79c1f33 100644 --- a/apps/builder/src/lib/googleSheets.ts +++ b/apps/builder/src/lib/googleSheets.ts @@ -1,8 +1,8 @@ -import { Credentials as CredentialsFromDb } from 'db' +import { Credentials as CredentialsFromDb } from '@typebot.io/prisma' import { OAuth2Client, Credentials } from 'google-auth-library' -import { GoogleSheetsCredentials } from 'models' -import { isDefined } from 'utils' -import { decrypt, encrypt } from 'utils/api' +import { GoogleSheetsCredentials } from '@typebot.io/schemas' +import { isDefined } from '@typebot.io/lib' +import { decrypt, encrypt } from '@typebot.io/lib/api' import prisma from './prisma' export const oauth2Client = new OAuth2Client( diff --git a/apps/builder/src/lib/prisma.ts b/apps/builder/src/lib/prisma.ts index 7fab529e344..13abf46c6e2 100644 --- a/apps/builder/src/lib/prisma.ts +++ b/apps/builder/src/lib/prisma.ts @@ -2,7 +2,7 @@ * Instantiates a single instance PrismaClient and save it on the global object. * @link https://www.prisma.io/docs/support/help-articles/nextjs-prisma-client-dev-practices */ -import { PrismaClient } from 'db' +import { PrismaClient } from '@typebot.io/prisma' const prismaGlobal = global as typeof global & { prisma?: PrismaClient diff --git a/apps/builder/src/pages/_app.tsx b/apps/builder/src/pages/_app.tsx index 5279efa3e4f..c679369fc23 100644 --- a/apps/builder/src/pages/_app.tsx +++ b/apps/builder/src/pages/_app.tsx @@ -13,8 +13,8 @@ import { TypebotProvider } from '@/features/editor' import { useRouter } from 'next/router' import { SupportBubble } from '@/components/SupportBubble' import { WorkspaceProvider } from '@/features/workspace' -import { toTitleCase } from 'utils' -import { Plan } from 'db' +import { toTitleCase } from '@typebot.io/lib' +import { Plan } from '@typebot.io/prisma' import { trpc } from '@/lib/trpc' import { NewVersionPopup } from '@/components/NewVersionPopup' import { I18nProvider } from '@/locales' diff --git a/apps/builder/src/pages/api/auth/[...nextauth].ts b/apps/builder/src/pages/api/auth/[...nextauth].ts index a75b0d18e0b..95ef5426d8c 100644 --- a/apps/builder/src/pages/api/auth/[...nextauth].ts +++ b/apps/builder/src/pages/api/auth/[...nextauth].ts @@ -9,8 +9,8 @@ import prisma from '@/lib/prisma' import { Provider } from 'next-auth/providers' import { NextApiRequest, NextApiResponse } from 'next' import { CustomAdapter } from './adapter' -import { User } from 'db' -import { env, getAtPath, isDefined, isNotEmpty } from 'utils' +import { User } from '@typebot.io/prisma' +import { env, getAtPath, isDefined, isNotEmpty } from '@typebot.io/lib' import { mockedUser } from '@/features/auth' import { getNewUserInvitations } from '@/features/auth/api' import { sendVerificationRequest } from './sendVerificationRequest' diff --git a/apps/builder/src/pages/api/auth/adapter.ts b/apps/builder/src/pages/api/auth/adapter.ts index bef0c6e72c8..5eacb6052b0 100644 --- a/apps/builder/src/pages/api/auth/adapter.ts +++ b/apps/builder/src/pages/api/auth/adapter.ts @@ -1,16 +1,21 @@ // Forked from https://github.com/nextauthjs/adapters/blob/main/packages/prisma/src/index.ts -import { PrismaClient, Prisma, WorkspaceRole, Session } from 'db' +import { + PrismaClient, + Prisma, + WorkspaceRole, + Session, +} from '@typebot.io/prisma' import type { Adapter, AdapterUser } from 'next-auth/adapters' import { createId } from '@paralleldrive/cuid2' -import { generateId } from 'utils' +import { generateId } from '@typebot.io/lib' import { parseWorkspaceDefaultPlan } from '@/features/workspace' import { getNewUserInvitations, convertInvitationsToCollaborations, joinWorkspaces, } from '@/features/auth/api' -import { sendTelemetryEvents } from 'utils/telemetry/sendTelemetryEvent' -import { TelemetryEvent } from 'models/features/telemetry' +import { sendTelemetryEvents } from '@typebot.io/lib/telemetry/sendTelemetryEvent' +import { TelemetryEvent } from '@typebot.io/schemas/features/telemetry' export function CustomAdapter(p: PrismaClient): Adapter { return { diff --git a/apps/builder/src/pages/api/auth/sendVerificationRequest.ts b/apps/builder/src/pages/api/auth/sendVerificationRequest.ts index 50b04fb057b..cb5e44bcf50 100644 --- a/apps/builder/src/pages/api/auth/sendVerificationRequest.ts +++ b/apps/builder/src/pages/api/auth/sendVerificationRequest.ts @@ -1,5 +1,5 @@ import { EmailConfig } from 'next-auth/providers/email' -import { sendMagicLinkEmail } from 'emails' +import { sendMagicLinkEmail } from '@typebot.io/emails' type Props = { identifier: string diff --git a/apps/builder/src/pages/api/credentials.ts b/apps/builder/src/pages/api/credentials.ts index b4083b5eebd..29b8a6ba409 100644 --- a/apps/builder/src/pages/api/credentials.ts +++ b/apps/builder/src/pages/api/credentials.ts @@ -1,5 +1,5 @@ import prisma from '@/lib/prisma' -import { Credentials } from 'models' +import { Credentials } from '@typebot.io/schemas' import { NextApiRequest, NextApiResponse } from 'next' import { getAuthenticatedUser } from '@/features/auth/api' import { @@ -8,7 +8,7 @@ import { methodNotAllowed, notAuthenticated, encrypt, -} from 'utils/api' +} from '@typebot.io/lib/api' const handler = async (req: NextApiRequest, res: NextApiResponse) => { const user = await getAuthenticatedUser(req) diff --git a/apps/builder/src/pages/api/credentials/[credentialsId].ts b/apps/builder/src/pages/api/credentials/[credentialsId].ts index 7fa45554217..5a1ac0ff384 100644 --- a/apps/builder/src/pages/api/credentials/[credentialsId].ts +++ b/apps/builder/src/pages/api/credentials/[credentialsId].ts @@ -1,7 +1,11 @@ import prisma from '@/lib/prisma' import { NextApiRequest, NextApiResponse } from 'next' import { getAuthenticatedUser } from '@/features/auth/api' -import { badRequest, methodNotAllowed, notAuthenticated } from 'utils/api' +import { + badRequest, + methodNotAllowed, + notAuthenticated, +} from '@typebot.io/lib/api' const handler = async (req: NextApiRequest, res: NextApiResponse) => { const user = await getAuthenticatedUser(req) diff --git a/apps/builder/src/pages/api/credentials/google-sheets/callback.ts b/apps/builder/src/pages/api/credentials/google-sheets/callback.ts index bad36cab1a1..a18e57033bc 100644 --- a/apps/builder/src/pages/api/credentials/google-sheets/callback.ts +++ b/apps/builder/src/pages/api/credentials/google-sheets/callback.ts @@ -1,9 +1,9 @@ import { NextApiRequest, NextApiResponse } from 'next' -import { Prisma } from 'db' +import { Prisma } from '@typebot.io/prisma' import prisma from '@/lib/prisma' import { googleSheetsScopes } from './consent-url' import { stringify } from 'querystring' -import { badRequest, encrypt, notAuthenticated } from 'utils/api' +import { badRequest, encrypt, notAuthenticated } from '@typebot.io/lib/api' import { oauth2Client } from '@/lib/googleSheets' import { getAuthenticatedUser } from '@/features/auth/api' diff --git a/apps/builder/src/pages/api/customDomains.ts b/apps/builder/src/pages/api/customDomains.ts index 058a12480e1..218b9f09ca3 100644 --- a/apps/builder/src/pages/api/customDomains.ts +++ b/apps/builder/src/pages/api/customDomains.ts @@ -1,4 +1,4 @@ -import { CustomDomain } from 'db' +import { CustomDomain } from '@typebot.io/prisma' import { got, HTTPError } from 'got' import prisma from '@/lib/prisma' import { NextApiRequest, NextApiResponse } from 'next' @@ -8,7 +8,7 @@ import { forbidden, methodNotAllowed, notAuthenticated, -} from 'utils/api' +} from '@typebot.io/lib/api' const handler = async (req: NextApiRequest, res: NextApiResponse) => { const user = await getAuthenticatedUser(req) diff --git a/apps/builder/src/pages/api/customDomains/[domain].ts b/apps/builder/src/pages/api/customDomains/[domain].ts index 6942d0d76e6..e082318cb9d 100644 --- a/apps/builder/src/pages/api/customDomains/[domain].ts +++ b/apps/builder/src/pages/api/customDomains/[domain].ts @@ -1,6 +1,10 @@ import prisma from '@/lib/prisma' import { NextApiRequest, NextApiResponse } from 'next' -import { badRequest, methodNotAllowed, notAuthenticated } from 'utils/api' +import { + badRequest, + methodNotAllowed, + notAuthenticated, +} from '@typebot.io/lib/api' import { got } from 'got' import { getAuthenticatedUser } from '@/features/auth/api' diff --git a/apps/builder/src/pages/api/folders.ts b/apps/builder/src/pages/api/folders.ts index 1fcf41574e5..d00c952bfe4 100644 --- a/apps/builder/src/pages/api/folders.ts +++ b/apps/builder/src/pages/api/folders.ts @@ -1,7 +1,11 @@ -import { DashboardFolder, WorkspaceRole } from 'db' +import { DashboardFolder, WorkspaceRole } from '@typebot.io/prisma' import prisma from '@/lib/prisma' import { NextApiRequest, NextApiResponse } from 'next' -import { badRequest, methodNotAllowed, notAuthenticated } from 'utils/api' +import { + badRequest, + methodNotAllowed, + notAuthenticated, +} from '@typebot.io/lib/api' import { getAuthenticatedUser } from '@/features/auth/api' const handler = async (req: NextApiRequest, res: NextApiResponse) => { diff --git a/apps/builder/src/pages/api/folders/[id].ts b/apps/builder/src/pages/api/folders/[id].ts index 66224e357f7..d2aaa7b357c 100644 --- a/apps/builder/src/pages/api/folders/[id].ts +++ b/apps/builder/src/pages/api/folders/[id].ts @@ -1,8 +1,8 @@ -import { DashboardFolder } from 'db' +import { DashboardFolder } from '@typebot.io/prisma' import prisma from '@/lib/prisma' import { NextApiRequest, NextApiResponse } from 'next' import { getAuthenticatedUser } from '@/features/auth/api' -import { methodNotAllowed, notAuthenticated } from 'utils/api' +import { methodNotAllowed, notAuthenticated } from '@typebot.io/lib/api' const handler = async (req: NextApiRequest, res: NextApiResponse) => { const user = await getAuthenticatedUser(req) diff --git a/apps/builder/src/pages/api/integrations/email/test-config.ts b/apps/builder/src/pages/api/integrations/email/test-config.ts index a90d3d3a531..cfcf22ae482 100644 --- a/apps/builder/src/pages/api/integrations/email/test-config.ts +++ b/apps/builder/src/pages/api/integrations/email/test-config.ts @@ -1,8 +1,8 @@ import { NextApiRequest, NextApiResponse } from 'next' import { createTransport } from 'nodemailer' import { getAuthenticatedUser } from '@/features/auth/api' -import { notAuthenticated } from 'utils/api' -import { SmtpCredentials } from 'models' +import { notAuthenticated } from '@typebot.io/lib/api' +import { SmtpCredentials } from '@typebot.io/schemas' const handler = async (req: NextApiRequest, res: NextApiResponse) => { const user = await getAuthenticatedUser(req) diff --git a/apps/builder/src/pages/api/integrations/google-sheets/spreadsheets.ts b/apps/builder/src/pages/api/integrations/google-sheets/spreadsheets.ts index d0933eba05e..bd809bd7fc3 100644 --- a/apps/builder/src/pages/api/integrations/google-sheets/spreadsheets.ts +++ b/apps/builder/src/pages/api/integrations/google-sheets/spreadsheets.ts @@ -1,7 +1,11 @@ import { NextApiRequest, NextApiResponse } from 'next' import { drive } from '@googleapis/drive' import { getAuthenticatedGoogleClient } from '@/lib/googleSheets' -import { badRequest, methodNotAllowed, notAuthenticated } from 'utils/api' +import { + badRequest, + methodNotAllowed, + notAuthenticated, +} from '@typebot.io/lib/api' import { setUser } from '@sentry/nextjs' import { getAuthenticatedUser } from '@/features/auth/api' diff --git a/apps/builder/src/pages/api/integrations/google-sheets/spreadsheets/[id]/sheets.ts b/apps/builder/src/pages/api/integrations/google-sheets/spreadsheets/[id]/sheets.ts index a202b41551b..ed60fa783fa 100644 --- a/apps/builder/src/pages/api/integrations/google-sheets/spreadsheets/[id]/sheets.ts +++ b/apps/builder/src/pages/api/integrations/google-sheets/spreadsheets/[id]/sheets.ts @@ -1,8 +1,12 @@ import { NextApiRequest, NextApiResponse } from 'next' import { GoogleSpreadsheet } from 'google-spreadsheet' import { getAuthenticatedGoogleClient } from '@/lib/googleSheets' -import { isDefined } from 'utils' -import { badRequest, methodNotAllowed, notAuthenticated } from 'utils/api' +import { isDefined } from '@typebot.io/lib' +import { + badRequest, + methodNotAllowed, + notAuthenticated, +} from '@typebot.io/lib/api' import { setUser } from '@sentry/nextjs' import { getAuthenticatedUser } from '@/features/auth/api' diff --git a/apps/builder/src/pages/api/mock/webhook-easy-config.ts b/apps/builder/src/pages/api/mock/webhook-easy-config.ts index 1acbf61574e..1a3d7703f25 100644 --- a/apps/builder/src/pages/api/mock/webhook-easy-config.ts +++ b/apps/builder/src/pages/api/mock/webhook-easy-config.ts @@ -1,5 +1,5 @@ import { NextApiRequest, NextApiResponse } from 'next' -import { methodNotAllowed } from 'utils/api' +import { methodNotAllowed } from '@typebot.io/lib/api' const handler = (req: NextApiRequest, res: NextApiResponse) => { if (req.method === 'POST') { diff --git a/apps/builder/src/pages/api/mock/webhook.ts b/apps/builder/src/pages/api/mock/webhook.ts index e0faebd7dbb..785e59826c5 100644 --- a/apps/builder/src/pages/api/mock/webhook.ts +++ b/apps/builder/src/pages/api/mock/webhook.ts @@ -1,5 +1,5 @@ import { NextApiRequest, NextApiResponse } from 'next' -import { methodNotAllowed } from 'utils/api' +import { methodNotAllowed } from '@typebot.io/lib/api' const handler = (req: NextApiRequest, res: NextApiResponse) => { if (req.method === 'POST') { diff --git a/apps/builder/src/pages/api/publicIdAvailable.ts b/apps/builder/src/pages/api/publicIdAvailable.ts index 936c6a8e14b..a331d76034f 100644 --- a/apps/builder/src/pages/api/publicIdAvailable.ts +++ b/apps/builder/src/pages/api/publicIdAvailable.ts @@ -1,6 +1,6 @@ import prisma from '@/lib/prisma' import { NextApiRequest, NextApiResponse } from 'next' -import { methodNotAllowed, notAuthenticated } from 'utils/api' +import { methodNotAllowed, notAuthenticated } from '@typebot.io/lib/api' import { getAuthenticatedUser } from '@/features/auth/api' const handler = async (req: NextApiRequest, res: NextApiResponse) => { diff --git a/apps/builder/src/pages/api/publicTypebots.ts b/apps/builder/src/pages/api/publicTypebots.ts index ebccc22d43b..9c7c9340d96 100644 --- a/apps/builder/src/pages/api/publicTypebots.ts +++ b/apps/builder/src/pages/api/publicTypebots.ts @@ -1,10 +1,14 @@ import prisma from '@/lib/prisma' -import { InputBlockType, PublicTypebot } from 'models' +import { InputBlockType, PublicTypebot } from '@typebot.io/schemas' import { NextApiRequest, NextApiResponse } from 'next' import { canPublishFileInput } from '@/utils/api/dbRules' -import { badRequest, methodNotAllowed, notAuthenticated } from 'utils/api' +import { + badRequest, + methodNotAllowed, + notAuthenticated, +} from '@typebot.io/lib/api' import { getAuthenticatedUser } from '@/features/auth/api' -import { sendTelemetryEvents } from 'utils/telemetry/sendTelemetryEvent' +import { sendTelemetryEvents } from '@typebot.io/lib/telemetry/sendTelemetryEvent' const handler = async (req: NextApiRequest, res: NextApiResponse) => { const user = await getAuthenticatedUser(req) diff --git a/apps/builder/src/pages/api/publicTypebots/[id].ts b/apps/builder/src/pages/api/publicTypebots/[id].ts index 9276f5b5a05..37af5af20c2 100644 --- a/apps/builder/src/pages/api/publicTypebots/[id].ts +++ b/apps/builder/src/pages/api/publicTypebots/[id].ts @@ -1,10 +1,14 @@ import prisma from '@/lib/prisma' -import { InputBlockType, PublicTypebot } from 'models' +import { InputBlockType, PublicTypebot } from '@typebot.io/schemas' import { NextApiRequest, NextApiResponse } from 'next' import { canPublishFileInput, canWriteTypebots } from '@/utils/api/dbRules' import { getAuthenticatedUser } from '@/features/auth/api' -import { badRequest, methodNotAllowed, notAuthenticated } from 'utils/api' -import { sendTelemetryEvents } from 'utils/telemetry/sendTelemetryEvent' +import { + badRequest, + methodNotAllowed, + notAuthenticated, +} from '@typebot.io/lib/api' +import { sendTelemetryEvents } from '@typebot.io/lib/telemetry/sendTelemetryEvent' const handler = async (req: NextApiRequest, res: NextApiResponse) => { const user = await getAuthenticatedUser(req) diff --git a/apps/builder/src/pages/api/storage/upload-url.ts b/apps/builder/src/pages/api/storage/upload-url.ts index a6917767057..e8a53adcff4 100644 --- a/apps/builder/src/pages/api/storage/upload-url.ts +++ b/apps/builder/src/pages/api/storage/upload-url.ts @@ -5,7 +5,7 @@ import { generatePresignedUrl, methodNotAllowed, notAuthenticated, -} from 'utils/api' +} from '@typebot.io/lib/api' const handler = async ( req: NextApiRequest, diff --git a/apps/builder/src/pages/api/stripe/billing-portal.ts b/apps/builder/src/pages/api/stripe/billing-portal.ts index 08bfb9dca43..6ec399d8d00 100644 --- a/apps/builder/src/pages/api/stripe/billing-portal.ts +++ b/apps/builder/src/pages/api/stripe/billing-portal.ts @@ -4,11 +4,11 @@ import { forbidden, methodNotAllowed, notAuthenticated, -} from 'utils/api' +} from '@typebot.io/lib/api' import Stripe from 'stripe' import { getAuthenticatedUser } from '@/features/auth/api' import prisma from '@/lib/prisma' -import { WorkspaceRole } from 'db' +import { WorkspaceRole } from '@typebot.io/prisma' // TO-DO: Delete const handler = async (req: NextApiRequest, res: NextApiResponse) => { diff --git a/apps/builder/src/pages/api/stripe/custom-plan-checkout.ts b/apps/builder/src/pages/api/stripe/custom-plan-checkout.ts index f31bae07995..391407308f6 100644 --- a/apps/builder/src/pages/api/stripe/custom-plan-checkout.ts +++ b/apps/builder/src/pages/api/stripe/custom-plan-checkout.ts @@ -1,9 +1,9 @@ -import { Plan } from 'db' +import { Plan } from '@typebot.io/prisma' import prisma from '@/lib/prisma' import { NextApiRequest, NextApiResponse } from 'next' import { getAuthenticatedUser } from '@/features/auth/api' import Stripe from 'stripe' -import { methodNotAllowed, notAuthenticated } from 'utils/api' +import { methodNotAllowed, notAuthenticated } from '@typebot.io/lib/api' const handler = async (req: NextApiRequest, res: NextApiResponse) => { const user = await getAuthenticatedUser(req) diff --git a/apps/builder/src/pages/api/stripe/invoices.ts b/apps/builder/src/pages/api/stripe/invoices.ts index a63b9494f8a..74f222b704f 100644 --- a/apps/builder/src/pages/api/stripe/invoices.ts +++ b/apps/builder/src/pages/api/stripe/invoices.ts @@ -4,11 +4,11 @@ import { forbidden, methodNotAllowed, notAuthenticated, -} from 'utils/api' +} from '@typebot.io/lib/api' import Stripe from 'stripe' import { getAuthenticatedUser } from '@/features/auth/api' import prisma from '@/lib/prisma' -import { WorkspaceRole } from 'db' +import { WorkspaceRole } from '@typebot.io/prisma' // TODO: Delete const handler = async (req: NextApiRequest, res: NextApiResponse) => { diff --git a/apps/builder/src/pages/api/stripe/subscription.ts b/apps/builder/src/pages/api/stripe/subscription.ts index 632db9bc8d9..76044b19e98 100644 --- a/apps/builder/src/pages/api/stripe/subscription.ts +++ b/apps/builder/src/pages/api/stripe/subscription.ts @@ -1,15 +1,15 @@ import { NextApiRequest, NextApiResponse } from 'next' -import { isDefined } from 'utils' +import { isDefined } from '@typebot.io/lib' import { badRequest, forbidden, methodNotAllowed, notAuthenticated, -} from 'utils/api' +} from '@typebot.io/lib/api' import Stripe from 'stripe' import { getAuthenticatedUser } from '@/features/auth/api' import prisma from '@/lib/prisma' -import { Plan, WorkspaceRole } from 'db' +import { Plan, WorkspaceRole } from '@typebot.io/prisma' // TODO: Delete const handler = async (req: NextApiRequest, res: NextApiResponse) => { diff --git a/apps/builder/src/pages/api/stripe/webhook.ts b/apps/builder/src/pages/api/stripe/webhook.ts index a08f6d4db07..2dd803505ab 100644 --- a/apps/builder/src/pages/api/stripe/webhook.ts +++ b/apps/builder/src/pages/api/stripe/webhook.ts @@ -1,12 +1,12 @@ import { NextApiRequest, NextApiResponse } from 'next' -import { methodNotAllowed } from 'utils/api' +import { methodNotAllowed } from '@typebot.io/lib/api' import Stripe from 'stripe' import Cors from 'micro-cors' import { buffer } from 'micro' import prisma from '@/lib/prisma' -import { Plan } from 'db' +import { Plan } from '@typebot.io/prisma' import { RequestHandler } from 'next/dist/server/next' -import { sendTelemetryEvents } from 'utils/telemetry/sendTelemetryEvent' +import { sendTelemetryEvents } from '@typebot.io/lib/telemetry/sendTelemetryEvent' if (!process.env.STRIPE_SECRET_KEY || !process.env.STRIPE_WEBHOOK_SECRET) throw new Error('STRIPE_SECRET_KEY or STRIPE_WEBHOOK_SECRET missing') diff --git a/apps/builder/src/pages/api/typebots.ts b/apps/builder/src/pages/api/typebots.ts index efff54977fe..485a581801f 100644 --- a/apps/builder/src/pages/api/typebots.ts +++ b/apps/builder/src/pages/api/typebots.ts @@ -1,4 +1,4 @@ -import { Plan } from 'db' +import { Plan } from '@typebot.io/prisma' import prisma from '@/lib/prisma' import { NextApiRequest, NextApiResponse } from 'next' import { @@ -6,12 +6,12 @@ import { methodNotAllowed, notAuthenticated, notFound, -} from 'utils/api' +} from '@typebot.io/lib/api' import { getAuthenticatedUser } from '@/features/auth/api' import { parseNewTypebot } from '@/features/dashboard' import { NewTypebotProps } from '@/features/dashboard/api/parseNewTypebot' -import { omit } from 'utils' -import { sendTelemetryEvents } from 'utils/telemetry/sendTelemetryEvent' +import { omit } from '@typebot.io/lib' +import { sendTelemetryEvents } from '@typebot.io/lib/telemetry/sendTelemetryEvent' const handler = async (req: NextApiRequest, res: NextApiResponse) => { const user = await getAuthenticatedUser(req) diff --git a/apps/builder/src/pages/api/typebots/[typebotId].ts b/apps/builder/src/pages/api/typebots/[typebotId].ts index 282b5c2215f..0c75ba466ad 100644 --- a/apps/builder/src/pages/api/typebots/[typebotId].ts +++ b/apps/builder/src/pages/api/typebots/[typebotId].ts @@ -1,11 +1,11 @@ -import { CollaborationType, Prisma } from 'db' +import { CollaborationType, Prisma } from '@typebot.io/prisma' import prisma from '@/lib/prisma' import { NextApiRequest, NextApiResponse } from 'next' -import { methodNotAllowed, notAuthenticated } from 'utils/api' +import { methodNotAllowed, notAuthenticated } from '@typebot.io/lib/api' import { getAuthenticatedUser } from '@/features/auth/api' import { archiveResults } from '@/features/results/api' -import { Typebot } from 'models' -import { omit } from 'utils' +import { Typebot } from '@typebot.io/schemas' +import { omit } from '@typebot.io/lib' import { getTypebot } from '@/features/typebot/api/utils/getTypebot' import { isReadTypebotForbidden } from '@/features/typebot/api/utils/isReadTypebotForbidden' import { removeTypebotOldProperties } from '@/features/typebot/api/utils/removeTypebotOldProperties' diff --git a/apps/builder/src/pages/api/typebots/[typebotId]/analytics/answersCount.ts b/apps/builder/src/pages/api/typebots/[typebotId]/analytics/answersCount.ts index 62d7526e6bd..92d9b06b59d 100644 --- a/apps/builder/src/pages/api/typebots/[typebotId]/analytics/answersCount.ts +++ b/apps/builder/src/pages/api/typebots/[typebotId]/analytics/answersCount.ts @@ -1,7 +1,7 @@ -import { PublicTypebot } from 'models' +import { PublicTypebot } from '@typebot.io/schemas' import prisma from '@/lib/prisma' import { NextApiRequest, NextApiResponse } from 'next' -import { methodNotAllowed, notAuthenticated } from 'utils/api' +import { methodNotAllowed, notAuthenticated } from '@typebot.io/lib/api' import { getAuthenticatedUser } from '@/features/auth/api' import { canReadTypebots } from '@/utils/api/dbRules' diff --git a/apps/builder/src/pages/api/typebots/[typebotId]/analytics/stats.ts b/apps/builder/src/pages/api/typebots/[typebotId]/analytics/stats.ts index 5516350e57f..ea2b1974c17 100644 --- a/apps/builder/src/pages/api/typebots/[typebotId]/analytics/stats.ts +++ b/apps/builder/src/pages/api/typebots/[typebotId]/analytics/stats.ts @@ -1,9 +1,9 @@ import prisma from '@/lib/prisma' -import { Stats } from 'models' +import { Stats } from '@typebot.io/schemas' import { NextApiRequest, NextApiResponse } from 'next' import { canReadTypebots } from '@/utils/api/dbRules' import { getAuthenticatedUser } from '@/features/auth/api' -import { methodNotAllowed, notAuthenticated } from 'utils/api' +import { methodNotAllowed, notAuthenticated } from '@typebot.io/lib/api' const handler = async (req: NextApiRequest, res: NextApiResponse) => { const user = await getAuthenticatedUser(req) diff --git a/apps/builder/src/pages/api/typebots/[typebotId]/blocks.ts b/apps/builder/src/pages/api/typebots/[typebotId]/blocks.ts index bf0ff6cd9b7..fac6600c391 100644 --- a/apps/builder/src/pages/api/typebots/[typebotId]/blocks.ts +++ b/apps/builder/src/pages/api/typebots/[typebotId]/blocks.ts @@ -2,7 +2,11 @@ import prisma from '@/lib/prisma' import { NextApiRequest, NextApiResponse } from 'next' import { canReadTypebots } from '@/utils/api/dbRules' import { getAuthenticatedUser } from '@/features/auth/api' -import { methodNotAllowed, notAuthenticated, notFound } from 'utils/api' +import { + methodNotAllowed, + notAuthenticated, + notFound, +} from '@typebot.io/lib/api' const handler = async (req: NextApiRequest, res: NextApiResponse) => { const user = await getAuthenticatedUser(req) diff --git a/apps/builder/src/pages/api/typebots/[typebotId]/collaborators.ts b/apps/builder/src/pages/api/typebots/[typebotId]/collaborators.ts index 2834fa768bd..08ac7b55ef1 100644 --- a/apps/builder/src/pages/api/typebots/[typebotId]/collaborators.ts +++ b/apps/builder/src/pages/api/typebots/[typebotId]/collaborators.ts @@ -2,7 +2,7 @@ import prisma from '@/lib/prisma' import { NextApiRequest, NextApiResponse } from 'next' import { canReadTypebots } from '@/utils/api/dbRules' import { getAuthenticatedUser } from '@/features/auth/api' -import { methodNotAllowed, notAuthenticated } from 'utils/api' +import { methodNotAllowed, notAuthenticated } from '@typebot.io/lib/api' const handler = async (req: NextApiRequest, res: NextApiResponse) => { const user = await getAuthenticatedUser(req) diff --git a/apps/builder/src/pages/api/typebots/[typebotId]/collaborators/[userId].ts b/apps/builder/src/pages/api/typebots/[typebotId]/collaborators/[userId].ts index 7f218df88ec..2aaa1e37141 100644 --- a/apps/builder/src/pages/api/typebots/[typebotId]/collaborators/[userId].ts +++ b/apps/builder/src/pages/api/typebots/[typebotId]/collaborators/[userId].ts @@ -2,7 +2,7 @@ import prisma from '@/lib/prisma' import { NextApiRequest, NextApiResponse } from 'next' import { canEditGuests } from '@/utils/api/dbRules' import { getAuthenticatedUser } from '@/features/auth/api' -import { methodNotAllowed, notAuthenticated } from 'utils/api' +import { methodNotAllowed, notAuthenticated } from '@typebot.io/lib/api' const handler = async (req: NextApiRequest, res: NextApiResponse) => { const user = await getAuthenticatedUser(req) diff --git a/apps/builder/src/pages/api/typebots/[typebotId]/invitations.ts b/apps/builder/src/pages/api/typebots/[typebotId]/invitations.ts index cef317f7a26..7ffb03abbbb 100644 --- a/apps/builder/src/pages/api/typebots/[typebotId]/invitations.ts +++ b/apps/builder/src/pages/api/typebots/[typebotId]/invitations.ts @@ -1,4 +1,4 @@ -import { CollaborationType, WorkspaceRole } from 'db' +import { CollaborationType, WorkspaceRole } from '@typebot.io/prisma' import prisma from '@/lib/prisma' import { NextApiRequest, NextApiResponse } from 'next' import { canReadTypebots, canWriteTypebots } from '@/utils/api/dbRules' @@ -7,10 +7,10 @@ import { forbidden, methodNotAllowed, notAuthenticated, -} from 'utils/api' +} from '@typebot.io/lib/api' import { getAuthenticatedUser } from '@/features/auth/api' -import { env } from 'utils' -import { sendGuestInvitationEmail } from 'emails' +import { env } from '@typebot.io/lib' +import { sendGuestInvitationEmail } from '@typebot.io/emails' const handler = async (req: NextApiRequest, res: NextApiResponse) => { const user = await getAuthenticatedUser(req) diff --git a/apps/builder/src/pages/api/typebots/[typebotId]/invitations/[email].ts b/apps/builder/src/pages/api/typebots/[typebotId]/invitations/[email].ts index 53d5d03903e..7f06f443088 100644 --- a/apps/builder/src/pages/api/typebots/[typebotId]/invitations/[email].ts +++ b/apps/builder/src/pages/api/typebots/[typebotId]/invitations/[email].ts @@ -1,9 +1,9 @@ -import { Invitation } from 'db' +import { Invitation } from '@typebot.io/prisma' import prisma from '@/lib/prisma' import { NextApiRequest, NextApiResponse } from 'next' import { canEditGuests } from '@/utils/api/dbRules' import { getAuthenticatedUser } from '@/features/auth/api' -import { methodNotAllowed, notAuthenticated } from 'utils/api' +import { methodNotAllowed, notAuthenticated } from '@typebot.io/lib/api' const handler = async (req: NextApiRequest, res: NextApiResponse) => { const user = await getAuthenticatedUser(req) diff --git a/apps/builder/src/pages/api/typebots/[typebotId]/webhooks.ts b/apps/builder/src/pages/api/typebots/[typebotId]/webhooks.ts index f91aeca27e6..65d7c88dfb5 100644 --- a/apps/builder/src/pages/api/typebots/[typebotId]/webhooks.ts +++ b/apps/builder/src/pages/api/typebots/[typebotId]/webhooks.ts @@ -1,8 +1,12 @@ import prisma from '@/lib/prisma' -import { defaultWebhookAttributes, Webhook } from 'models' +import { defaultWebhookAttributes, Webhook } from '@typebot.io/schemas' import { NextApiRequest, NextApiResponse } from 'next' import { getAuthenticatedUser } from '@/features/auth/api' -import { methodNotAllowed, notAuthenticated, notFound } from 'utils/api' +import { + methodNotAllowed, + notAuthenticated, + notFound, +} from '@typebot.io/lib/api' import { getTypebot } from '@/features/typebot/api/utils/getTypebot' const handler = async (req: NextApiRequest, res: NextApiResponse) => { diff --git a/apps/builder/src/pages/api/typebots/[typebotId]/webhooks/[webhookId].ts b/apps/builder/src/pages/api/typebots/[typebotId]/webhooks/[webhookId].ts index 43fed481af2..616b5b64493 100644 --- a/apps/builder/src/pages/api/typebots/[typebotId]/webhooks/[webhookId].ts +++ b/apps/builder/src/pages/api/typebots/[typebotId]/webhooks/[webhookId].ts @@ -1,5 +1,5 @@ import prisma from '@/lib/prisma' -import { Webhook } from 'models' +import { Webhook } from '@typebot.io/schemas' import { NextApiRequest, NextApiResponse } from 'next' import { getAuthenticatedUser } from '@/features/auth/api' import { @@ -8,9 +8,9 @@ import { methodNotAllowed, notAuthenticated, notFound, -} from 'utils/api' +} from '@typebot.io/lib/api' import { getTypebot } from '@/features/typebot/api/utils/getTypebot' -import { omit } from 'utils' +import { omit } from '@typebot.io/lib' const handler = async (req: NextApiRequest, res: NextApiResponse) => { const user = await getAuthenticatedUser(req) diff --git a/apps/builder/src/pages/api/users/[userId].ts b/apps/builder/src/pages/api/users/[userId].ts index eab9c30be34..2cdd8df5af4 100644 --- a/apps/builder/src/pages/api/users/[userId].ts +++ b/apps/builder/src/pages/api/users/[userId].ts @@ -1,8 +1,8 @@ import prisma from '@/lib/prisma' import { NextApiRequest, NextApiResponse } from 'next' import { getAuthenticatedUser } from '@/features/auth/api' -import { methodNotAllowed, notAuthenticated } from 'utils/api' -import { User } from 'db' +import { methodNotAllowed, notAuthenticated } from '@typebot.io/lib/api' +import { User } from '@typebot.io/prisma' const handler = async (req: NextApiRequest, res: NextApiResponse) => { const user = await getAuthenticatedUser(req) diff --git a/apps/builder/src/pages/api/users/[userId]/api-tokens.ts b/apps/builder/src/pages/api/users/[userId]/api-tokens.ts index add2cef2d59..1ff46cfac5d 100644 --- a/apps/builder/src/pages/api/users/[userId]/api-tokens.ts +++ b/apps/builder/src/pages/api/users/[userId]/api-tokens.ts @@ -1,8 +1,8 @@ import prisma from '@/lib/prisma' import { NextApiRequest, NextApiResponse } from 'next' import { getAuthenticatedUser } from '@/features/auth/api' -import { generateId } from 'utils' -import { methodNotAllowed, notAuthenticated } from 'utils/api' +import { generateId } from '@typebot.io/lib' +import { methodNotAllowed, notAuthenticated } from '@typebot.io/lib/api' const handler = async (req: NextApiRequest, res: NextApiResponse) => { const user = await getAuthenticatedUser(req) diff --git a/apps/builder/src/pages/api/users/[userId]/api-tokens/[tokenId].ts b/apps/builder/src/pages/api/users/[userId]/api-tokens/[tokenId].ts index 08538de1f46..db711dff81d 100644 --- a/apps/builder/src/pages/api/users/[userId]/api-tokens/[tokenId].ts +++ b/apps/builder/src/pages/api/users/[userId]/api-tokens/[tokenId].ts @@ -1,7 +1,7 @@ import prisma from '@/lib/prisma' import { NextApiRequest, NextApiResponse } from 'next' import { getAuthenticatedUser } from '@/features/auth/api' -import { methodNotAllowed, notAuthenticated } from 'utils/api' +import { methodNotAllowed, notAuthenticated } from '@typebot.io/lib/api' const handler = async (req: NextApiRequest, res: NextApiResponse) => { const user = await getAuthenticatedUser(req) diff --git a/apps/builder/src/pages/api/workspaces/[workspaceId]/invitations.ts b/apps/builder/src/pages/api/workspaces/[workspaceId]/invitations.ts index 1fed19f43e2..2843abf709e 100644 --- a/apps/builder/src/pages/api/workspaces/[workspaceId]/invitations.ts +++ b/apps/builder/src/pages/api/workspaces/[workspaceId]/invitations.ts @@ -1,11 +1,15 @@ -import { WorkspaceInvitation, WorkspaceRole } from 'db' +import { WorkspaceInvitation, WorkspaceRole } from '@typebot.io/prisma' import prisma from '@/lib/prisma' import { NextApiRequest, NextApiResponse } from 'next' -import { forbidden, methodNotAllowed, notAuthenticated } from 'utils/api' +import { + forbidden, + methodNotAllowed, + notAuthenticated, +} from '@typebot.io/lib/api' import { getAuthenticatedUser } from '@/features/auth/api' -import { sendWorkspaceMemberInvitationEmail } from 'emails' -import { env } from 'utils' -import { isSeatsLimitReached } from 'utils/pricing' +import { sendWorkspaceMemberInvitationEmail } from '@typebot.io/emails' +import { env } from '@typebot.io/lib' +import { isSeatsLimitReached } from '@typebot.io/lib/pricing' const handler = async (req: NextApiRequest, res: NextApiResponse) => { const user = await getAuthenticatedUser(req) diff --git a/apps/builder/src/pages/api/workspaces/[workspaceId]/invitations/[id].ts b/apps/builder/src/pages/api/workspaces/[workspaceId]/invitations/[id].ts index b567ca31ad1..e613e4c6daf 100644 --- a/apps/builder/src/pages/api/workspaces/[workspaceId]/invitations/[id].ts +++ b/apps/builder/src/pages/api/workspaces/[workspaceId]/invitations/[id].ts @@ -1,8 +1,8 @@ -import { WorkspaceInvitation, WorkspaceRole } from 'db' +import { WorkspaceInvitation, WorkspaceRole } from '@typebot.io/prisma' import prisma from '@/lib/prisma' import { NextApiRequest, NextApiResponse } from 'next' import { getAuthenticatedUser } from '@/features/auth/api' -import { methodNotAllowed, notAuthenticated } from 'utils/api' +import { methodNotAllowed, notAuthenticated } from '@typebot.io/lib/api' const handler = async (req: NextApiRequest, res: NextApiResponse) => { const user = await getAuthenticatedUser(req) diff --git a/apps/builder/src/pages/api/workspaces/[workspaceId]/members.ts b/apps/builder/src/pages/api/workspaces/[workspaceId]/members.ts index 9717bbb7817..eded4f16373 100644 --- a/apps/builder/src/pages/api/workspaces/[workspaceId]/members.ts +++ b/apps/builder/src/pages/api/workspaces/[workspaceId]/members.ts @@ -1,7 +1,11 @@ import prisma from '@/lib/prisma' import { NextApiRequest, NextApiResponse } from 'next' import { getAuthenticatedUser } from '@/features/auth/api' -import { methodNotAllowed, notAuthenticated, notFound } from 'utils/api' +import { + methodNotAllowed, + notAuthenticated, + notFound, +} from '@typebot.io/lib/api' const handler = async (req: NextApiRequest, res: NextApiResponse) => { const user = await getAuthenticatedUser(req) diff --git a/apps/builder/src/pages/api/workspaces/[workspaceId]/members/[id].ts b/apps/builder/src/pages/api/workspaces/[workspaceId]/members/[id].ts index 9162f445926..35a659bd9c9 100644 --- a/apps/builder/src/pages/api/workspaces/[workspaceId]/members/[id].ts +++ b/apps/builder/src/pages/api/workspaces/[workspaceId]/members/[id].ts @@ -1,8 +1,8 @@ -import { MemberInWorkspace, WorkspaceRole } from 'db' +import { MemberInWorkspace, WorkspaceRole } from '@typebot.io/prisma' import prisma from '@/lib/prisma' import { NextApiRequest, NextApiResponse } from 'next' import { getAuthenticatedUser } from '@/features/auth/api' -import { methodNotAllowed, notAuthenticated } from 'utils/api' +import { methodNotAllowed, notAuthenticated } from '@typebot.io/lib/api' const handler = async (req: NextApiRequest, res: NextApiResponse) => { const user = await getAuthenticatedUser(req) diff --git a/apps/builder/src/pages/api/workspaces/[workspaceId]/usage.ts b/apps/builder/src/pages/api/workspaces/[workspaceId]/usage.ts index 259c0220cb7..e03e0510837 100644 --- a/apps/builder/src/pages/api/workspaces/[workspaceId]/usage.ts +++ b/apps/builder/src/pages/api/workspaces/[workspaceId]/usage.ts @@ -1,7 +1,7 @@ import prisma from '@/lib/prisma' import { NextApiRequest, NextApiResponse } from 'next' import { getAuthenticatedUser } from '@/features/auth/api' -import { methodNotAllowed, notAuthenticated } from 'utils/api' +import { methodNotAllowed, notAuthenticated } from '@typebot.io/lib/api' // TODO: Delete const handler = async (req: NextApiRequest, res: NextApiResponse) => { diff --git a/apps/builder/src/pages/feedback.tsx b/apps/builder/src/pages/feedback.tsx index f49ed8433b0..a7f2a04c982 100644 --- a/apps/builder/src/pages/feedback.tsx +++ b/apps/builder/src/pages/feedback.tsx @@ -1,7 +1,7 @@ import { getSession } from 'next-auth/react' import { NextPageContext } from 'next' -import { User } from 'db' -import { isNotDefined } from 'utils' +import { User } from '@typebot.io/prisma' +import { isNotDefined } from '@typebot.io/lib' import { sign } from 'jsonwebtoken' export default function Page() { diff --git a/apps/builder/src/pages/feedback/[feedbackId].ts b/apps/builder/src/pages/feedback/[feedbackId].ts index 386545b5f2e..7122c3410db 100644 --- a/apps/builder/src/pages/feedback/[feedbackId].ts +++ b/apps/builder/src/pages/feedback/[feedbackId].ts @@ -1,7 +1,7 @@ import { getSession } from 'next-auth/react' import { NextPageContext } from 'next' -import { User } from 'db' -import { isNotDefined } from 'utils' +import { User } from '@typebot.io/prisma' +import { isNotDefined } from '@typebot.io/lib' import { sign } from 'jsonwebtoken' export default function Page() { diff --git a/apps/builder/src/test/utils/databaseActions.ts b/apps/builder/src/test/utils/databaseActions.ts index e9e3b310a1c..1370d4a1084 100644 --- a/apps/builder/src/test/utils/databaseActions.ts +++ b/apps/builder/src/test/utils/databaseActions.ts @@ -4,9 +4,9 @@ import { Prisma, PrismaClient, Workspace, -} from 'db' +} from '@typebot.io/prisma' import Stripe from 'stripe' -import { proWorkspaceId } from 'utils/playwright/databaseSetup' +import { proWorkspaceId } from '@typebot.io/lib/playwright/databaseSetup' const prisma = new PrismaClient() diff --git a/apps/builder/src/utils/api/dbRules.ts b/apps/builder/src/utils/api/dbRules.ts index cb67eb6bea9..c8092ff0789 100644 --- a/apps/builder/src/utils/api/dbRules.ts +++ b/apps/builder/src/utils/api/dbRules.ts @@ -1,8 +1,14 @@ -import { CollaborationType, Plan, Prisma, User, WorkspaceRole } from 'db' +import { + CollaborationType, + Plan, + Prisma, + User, + WorkspaceRole, +} from '@typebot.io/prisma' import prisma from '@/lib/prisma' import { NextApiResponse } from 'next' -import { env, isNotEmpty } from 'utils' -import { forbidden } from 'utils/api' +import { env, isNotEmpty } from '@typebot.io/lib' +import { forbidden } from '@typebot.io/lib/api' export const canWriteTypebots = ( typebotIds: string[] | string, diff --git a/apps/builder/src/utils/helpers.ts b/apps/builder/src/utils/helpers.ts index fa2bb627caf..3c6a2e07218 100644 --- a/apps/builder/src/utils/helpers.ts +++ b/apps/builder/src/utils/helpers.ts @@ -1,5 +1,5 @@ import imageCompression from 'browser-image-compression' -import { Block, Typebot } from 'models' +import { Block, Typebot } from '@typebot.io/schemas' export const fetcher = async (input: RequestInfo, init?: RequestInit) => { const res = await fetch(input, init) diff --git a/apps/builder/tsconfig.json b/apps/builder/tsconfig.json index 03b552ee6d3..84e4ae1b487 100644 --- a/apps/builder/tsconfig.json +++ b/apps/builder/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "tsconfig/nextjs.json", + "extends": "@typebot.io/tsconfig/nextjs.json", "compilerOptions": { "baseUrl": ".", "paths": { diff --git a/apps/docs/openapi/builder/_spec_.json b/apps/docs/openapi/builder/_spec_.json index 41325bbac03..c68f391850d 100644 --- a/apps/docs/openapi/builder/_spec_.json +++ b/apps/docs/openapi/builder/_spec_.json @@ -273,6 +273,12 @@ "properties": { "total": { "type": "number" + }, + "isFirstOfKind": { + "type": "boolean", + "enum": [ + true + ] } }, "required": [ diff --git a/apps/landing-page/components/Homepage/IntroducingChatApps.tsx b/apps/landing-page/components/Homepage/IntroducingChatApps.tsx index ad56c37592a..4e22ab94df0 100644 --- a/apps/landing-page/components/Homepage/IntroducingChatApps.tsx +++ b/apps/landing-page/components/Homepage/IntroducingChatApps.tsx @@ -11,8 +11,8 @@ import { Textarea, } from '@chakra-ui/react' import React, { useEffect, useState } from 'react' -import { PublicTypebot } from 'models' -import { sendRequest } from 'utils' +import { PublicTypebot } from '@typebot.io/schemas' +import { sendRequest } from '@typebot.io/lib' import { DontIcon } from 'assets/icons/DontIcon' import { DoIcon } from 'assets/icons/DoIcon' import { HandDrawnArrow } from 'assets/illustrations/HandDrawnArrow' diff --git a/apps/landing-page/components/Homepage/RealTimeResults.tsx b/apps/landing-page/components/Homepage/RealTimeResults.tsx index dc209ed3a61..786e6a1b04c 100644 --- a/apps/landing-page/components/Homepage/RealTimeResults.tsx +++ b/apps/landing-page/components/Homepage/RealTimeResults.tsx @@ -2,10 +2,10 @@ import { Flex, Stack, Heading, Text, Button, VStack } from '@chakra-ui/react' import { Standard } from '@typebot.io/react' import { ArrowRight } from 'assets/icons/ArrowRight' import { HandDrawnArrow } from 'assets/illustrations/HandDrawnArrow' -import { PublicTypebot, Typebot } from 'models' +import { PublicTypebot, Typebot } from '@typebot.io/schemas' import Link from 'next/link' import React, { useEffect, useRef, useState } from 'react' -import { sendRequest } from 'utils' +import { sendRequest } from '@typebot.io/lib' const nameBlockId = 'shuUtMDMw9P4iAHbz7B5SqJ' const messageBlockId = 'sqvXpT1YXE3Htp6BCPvVGv3' diff --git a/apps/landing-page/components/PricingPage/PlanComparisonTables.tsx b/apps/landing-page/components/PricingPage/PlanComparisonTables.tsx index 9176421b758..884cc4c35f3 100644 --- a/apps/landing-page/components/PricingPage/PlanComparisonTables.tsx +++ b/apps/landing-page/components/PricingPage/PlanComparisonTables.tsx @@ -17,10 +17,10 @@ import { } from '@chakra-ui/react' import { CheckIcon } from 'assets/icons/CheckIcon' import { HelpCircleIcon } from 'assets/icons/HelpCircleIcon' -import { Plan } from 'db' +import { Plan } from '@typebot.io/prisma' import Link from 'next/link' import React, { useEffect, useState } from 'react' -import { chatsLimit, formatPrice, storageLimit } from 'utils/pricing' +import { chatsLimit, formatPrice, storageLimit } from '@typebot.io/lib/pricing' type Props = { starterPrice: string diff --git a/apps/landing-page/components/PricingPage/PricingCard/index.tsx b/apps/landing-page/components/PricingPage/PricingCard/index.tsx index c6d7f7f8e88..01eb162f2fa 100644 --- a/apps/landing-page/components/PricingPage/PricingCard/index.tsx +++ b/apps/landing-page/components/PricingPage/PricingCard/index.tsx @@ -10,7 +10,7 @@ import { } from '@chakra-ui/react' import * as React from 'react' import { useEffect, useState } from 'react' -import { formatPrice } from 'utils/pricing' +import { formatPrice } from '@typebot.io/lib/pricing' import { CheckCircleIcon } from '../../../assets/icons/CheckCircleIcon' import { Card, CardProps } from './Card' diff --git a/apps/landing-page/components/PricingPage/ProPlanCard.tsx b/apps/landing-page/components/PricingPage/ProPlanCard.tsx index bcf0ab552ba..7d7b472fdbd 100644 --- a/apps/landing-page/components/PricingPage/ProPlanCard.tsx +++ b/apps/landing-page/components/PricingPage/ProPlanCard.tsx @@ -11,11 +11,11 @@ import { } from '@chakra-ui/react' import { ChevronDownIcon } from 'assets/icons/ChevronDownIcon' import { HelpCircleIcon } from 'assets/icons/HelpCircleIcon' -import { Plan } from 'db' +import { Plan } from '@typebot.io/prisma' import Link from 'next/link' import React, { useEffect, useState } from 'react' -import { parseNumberWithCommas } from 'utils' -import { chatsLimit, computePrice, storageLimit } from 'utils/pricing' +import { parseNumberWithCommas } from '@typebot.io/lib' +import { chatsLimit, computePrice, storageLimit } from '@typebot.io/lib/pricing' import { PricingCard } from './PricingCard' export const ProPlanCard = () => { diff --git a/apps/landing-page/components/PricingPage/StarterPlanCard.tsx b/apps/landing-page/components/PricingPage/StarterPlanCard.tsx index ef36374d38b..1c20e75b4ad 100644 --- a/apps/landing-page/components/PricingPage/StarterPlanCard.tsx +++ b/apps/landing-page/components/PricingPage/StarterPlanCard.tsx @@ -11,11 +11,11 @@ import { } from '@chakra-ui/react' import { ChevronDownIcon } from 'assets/icons/ChevronDownIcon' import { HelpCircleIcon } from 'assets/icons/HelpCircleIcon' -import { Plan } from 'db' +import { Plan } from '@typebot.io/prisma' import Link from 'next/link' import React, { useEffect, useState } from 'react' -import { parseNumberWithCommas } from 'utils' -import { chatsLimit, computePrice, storageLimit } from 'utils/pricing' +import { parseNumberWithCommas } from '@typebot.io/lib' +import { chatsLimit, computePrice, storageLimit } from '@typebot.io/lib/pricing' import { PricingCard } from './PricingCard' export const StarterPlanCard = () => { diff --git a/apps/landing-page/package.json b/apps/landing-page/package.json index 1db449a7a52..b5953105c11 100644 --- a/apps/landing-page/package.json +++ b/apps/landing-page/package.json @@ -2,10 +2,10 @@ "name": "landing-page", "version": "1.0.0", "scripts": { - "dev": "cross-env ENVSH_ENV=.env.local bash ../../env.sh next dev -p 3002", + "dev": "cross-env ENVSH_ENV=.env.local bash ../../scripts/env.sh next dev -p 3002", "start": "next start", "build": "next build", - "build:env": "cd ../.. && cross-env ENVSH_ENV=./apps/landing-page/.env.docker ENVSH_OUTPUT=./apps/landing-page/public/__env.js bash env.sh", + "build:env": "cd ../.. && cross-env ENVSH_ENV=./apps/landing-page/.env.docker ENVSH_OUTPUT=./apps/landing-page/public/__env.js bash scripts/env.sh", "lint": "next lint", "analyze": "cross-env ANALYZE=true next build" }, @@ -18,14 +18,14 @@ "@typebot.io/react": "workspace:*", "@typebot.io/js": "workspace:*", "aos": "2.3.4", - "db": "workspace:*", + "@typebot.io/prisma": "workspace:*", "focus-visible": "5.2.0", "framer-motion": "10.3.0", - "models": "workspace:*", + "@typebot.io/schemas": "workspace:*", "next": "13.2.4", "react": "18.2.0", "react-dom": "18.2.0", - "utils": "workspace:*" + "@typebot.io/lib": "workspace:*" }, "devDependencies": { "@babel/core": "7.21.0", @@ -41,7 +41,7 @@ "next-transpile-modules": "10.0.0", "postcss": "8.4.21", "prettier": "2.8.4", - "tsconfig": "workspace:*", + "@typebot.io/tsconfig": "workspace:*", "typescript": "4.9.5" } } diff --git a/apps/landing-page/pages/pricing.tsx b/apps/landing-page/pages/pricing.tsx index 9e00caa459c..c2f79998be1 100644 --- a/apps/landing-page/pages/pricing.tsx +++ b/apps/landing-page/pages/pricing.tsx @@ -19,7 +19,7 @@ import { SocialMetaTags } from 'components/common/SocialMetaTags' import { BackgroundPolygons } from 'components/Homepage/Hero/BackgroundPolygons' import { PlanComparisonTables } from 'components/PricingPage/PlanComparisonTables' import { useEffect, useState } from 'react' -import { formatPrice, prices } from 'utils/pricing' +import { formatPrice, prices } from '@typebot.io/lib/pricing' import { StripeClimateLogo } from 'assets/logos/StripeClimateLogo' import { FreePlanCard } from 'components/PricingPage/FreePlanCard' import { StarterPlanCard } from 'components/PricingPage/StarterPlanCard' diff --git a/apps/landing-page/tsconfig.json b/apps/landing-page/tsconfig.json index 03b552ee6d3..84e4ae1b487 100644 --- a/apps/landing-page/tsconfig.json +++ b/apps/landing-page/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "tsconfig/nextjs.json", + "extends": "@typebot.io/tsconfig/nextjs.json", "compilerOptions": { "baseUrl": ".", "paths": { diff --git a/apps/viewer/next.config.js b/apps/viewer/next.config.js index 38c0b5a7b4a..6627a0d2b31 100644 --- a/apps/viewer/next.config.js +++ b/apps/viewer/next.config.js @@ -1,20 +1,20 @@ const { withSentryConfig } = require('@sentry/nextjs') const path = require('path') -const withTM = require('next-transpile-modules')([ - 'utils', - 'models', - 'emails', - 'bot-engine', -]) /** @type {import('next').NextConfig} */ -const nextConfig = withTM({ +const nextConfig = { reactStrictMode: true, + transpilePackages: [ + '@typebot.io/lib', + '@typebot.io/schemas', + '@typebot.io/emails', + 'bot-engine', + ], output: 'standalone', experimental: { outputFileTracingRoot: path.join(__dirname, '../../'), }, -}) +} const sentryWebpackPluginOptions = { silent: true, diff --git a/apps/viewer/openapi.tsconfig.json b/apps/viewer/openapi.tsconfig.json index cf648d558b7..0c1791acc47 100644 --- a/apps/viewer/openapi.tsconfig.json +++ b/apps/viewer/openapi.tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "tsconfig/nextjs.json", + "extends": "@typebot.io/tsconfig/nextjs.json", "compilerOptions": { "jsx": "react-jsx", "baseUrl": ".", diff --git a/apps/viewer/package.json b/apps/viewer/package.json index af5f32662b2..eb7cb936f81 100644 --- a/apps/viewer/package.json +++ b/apps/viewer/package.json @@ -3,10 +3,10 @@ "license": "AGPL-3.0-or-later", "version": "0.1.0", "scripts": { - "dev": "cross-env ENVSH_ENV=.env.local bash ../../env.sh next dev -p 3001", - "build": "cross-env ENVSH_ENV=.env.local bash ../../env.sh next build", + "dev": "cross-env ENVSH_ENV=.env.local bash ../../scripts/env.sh next dev -p 3001", + "build": "cross-env ENVSH_ENV=.env.local bash ../../scripts/env.sh next build", "build:docker": "next build", - "build:env": "cd ../.. && cross-env ENVSH_ENV=./apps/viewer/.env.docker ENVSH_OUTPUT=./apps/viewer/public/__env.js bash env.sh", + "build:env": "cd ../.. && cross-env ENVSH_ENV=./apps/viewer/.env.docker ENVSH_OUTPUT=./apps/viewer/public/__env.js bash scripts/env.sh", "start": "next start -p 3001", "lint": "next lint", "test": "pnpm playwright test", @@ -20,7 +20,7 @@ "aws-sdk": "2.1334.0", "bot-engine": "workspace:*", "cors": "2.8.5", - "db": "workspace:*", + "@typebot.io/prisma": "workspace:*", "google-spreadsheet": "3.3.0", "got": "12.6.0", "libphonenumber-js": "1.10.21", @@ -48,18 +48,17 @@ "@types/react": "18.0.28", "@types/sanitize-html": "2.8.1", "dotenv": "16.0.3", - "emails": "workspace:*", + "@typebot.io/emails": "workspace:*", "eslint": "8.36.0", "eslint-config-custom": "workspace:*", "google-auth-library": "8.7.0", - "models": "workspace:*", - "next-transpile-modules": "10.0.0", + "@typebot.io/schemas": "workspace:*", "node-fetch": "3.3.1", "papaparse": "5.4.0", "superjson": "1.12.2", - "tsconfig": "workspace:*", + "@typebot.io/tsconfig": "workspace:*", "typescript": "4.9.5", - "utils": "workspace:*", + "@typebot.io/lib": "workspace:*", "zod": "3.21.4" } } diff --git a/apps/viewer/playwright.config.ts b/apps/viewer/playwright.config.ts index f08e0cf5e25..928c303fb51 100644 --- a/apps/viewer/playwright.config.ts +++ b/apps/viewer/playwright.config.ts @@ -1,6 +1,6 @@ import { PlaywrightTestConfig } from '@playwright/test' import path from 'path' -import { playwrightBaseConfig } from 'utils/playwright/baseConfig' +import { playwrightBaseConfig } from '@typebot.io/lib/playwright/baseConfig' const config: PlaywrightTestConfig = { ...playwrightBaseConfig, diff --git a/apps/viewer/src/components/ErrorPage.tsx b/apps/viewer/src/components/ErrorPage.tsx index 11dfa36d0af..42428710d8a 100644 --- a/apps/viewer/src/components/ErrorPage.tsx +++ b/apps/viewer/src/components/ErrorPage.tsx @@ -1,5 +1,5 @@ import React from 'react' -import { getViewerUrl, isEmpty } from 'utils' +import { getViewerUrl, isEmpty } from '@typebot.io/lib' export const ErrorPage = ({ error }: { error: Error }) => { return ( diff --git a/apps/viewer/src/components/Seo.tsx b/apps/viewer/src/components/Seo.tsx index 0b53a235939..96a95f7df9f 100644 --- a/apps/viewer/src/components/Seo.tsx +++ b/apps/viewer/src/components/Seo.tsx @@ -1,9 +1,9 @@ import { gtmHeadSnippet } from '@/lib/google-tag-manager' -import { Metadata } from 'models' +import { Metadata } from '@typebot.io/schemas' import Head from 'next/head' import Script from 'next/script' import React from 'react' -import { isNotEmpty } from 'utils' +import { isNotEmpty } from '@typebot.io/lib' type SEOProps = { url: string diff --git a/apps/viewer/src/components/TypebotPageV2.tsx b/apps/viewer/src/components/TypebotPageV2.tsx index 0805cd9e613..0f3b84d1d42 100644 --- a/apps/viewer/src/components/TypebotPageV2.tsx +++ b/apps/viewer/src/components/TypebotPageV2.tsx @@ -1,5 +1,10 @@ import { TypebotViewer } from 'bot-engine' -import { AnswerInput, PublicTypebot, Typebot, VariableWithValue } from 'models' +import { + AnswerInput, + PublicTypebot, + Typebot, + VariableWithValue, +} from '@typebot.io/schemas' import { useRouter } from 'next/router' import React, { useEffect, useState } from 'react' import { @@ -7,7 +12,7 @@ import { isDefined, isNotDefined, isNotEmpty, -} from 'utils' +} from '@typebot.io/lib' import { SEO } from './Seo' import { ErrorPage } from './ErrorPage' import { createResultQuery, updateResultQuery } from '@/features/results' diff --git a/apps/viewer/src/components/TypebotPageV3.tsx b/apps/viewer/src/components/TypebotPageV3.tsx index 67255c0ee11..df40d03b5fb 100644 --- a/apps/viewer/src/components/TypebotPageV3.tsx +++ b/apps/viewer/src/components/TypebotPageV3.tsx @@ -1,5 +1,5 @@ import { Standard } from '@typebot.io/react' -import { BackgroundType, Typebot } from 'models' +import { BackgroundType, Typebot } from '@typebot.io/schemas' import { useRouter } from 'next/router' import { SEO } from './Seo' diff --git a/apps/viewer/src/features/answers/queries/upsertAnswerQuery.ts b/apps/viewer/src/features/answers/queries/upsertAnswerQuery.ts index d2df48498a6..0405f28c1c4 100644 --- a/apps/viewer/src/features/answers/queries/upsertAnswerQuery.ts +++ b/apps/viewer/src/features/answers/queries/upsertAnswerQuery.ts @@ -1,5 +1,5 @@ -import { Answer, AnswerInput } from 'models' -import { sendRequest } from 'utils' +import { Answer, AnswerInput } from '@typebot.io/schemas' +import { sendRequest } from '@typebot.io/lib' export const upsertAnswerQuery = async ( answer: AnswerInput & { resultId: string } & { uploadedFiles?: boolean } diff --git a/apps/viewer/src/features/auth/api/authenticateUser.ts b/apps/viewer/src/features/auth/api/authenticateUser.ts index 43988b04798..a029b2e93f8 100644 --- a/apps/viewer/src/features/auth/api/authenticateUser.ts +++ b/apps/viewer/src/features/auth/api/authenticateUser.ts @@ -1,4 +1,4 @@ -import { User } from 'db' +import { User } from '@typebot.io/prisma' import { NextApiRequest } from 'next' import prisma from '@/lib/prisma' diff --git a/apps/viewer/src/features/blocks/inputs/buttons/api/utils/injectVariableValuesInButtonsInputBlock.ts b/apps/viewer/src/features/blocks/inputs/buttons/api/utils/injectVariableValuesInButtonsInputBlock.ts index a2ed7f4a955..d6178daccde 100644 --- a/apps/viewer/src/features/blocks/inputs/buttons/api/utils/injectVariableValuesInButtonsInputBlock.ts +++ b/apps/viewer/src/features/blocks/inputs/buttons/api/utils/injectVariableValuesInButtonsInputBlock.ts @@ -4,8 +4,8 @@ import { VariableWithValue, ChoiceInputBlock, ItemType, -} from 'models' -import { isDefined } from 'utils' +} from '@typebot.io/schemas' +import { isDefined } from '@typebot.io/lib' export const injectVariableValuesInButtonsInputBlock = (variables: SessionState['typebot']['variables']) => diff --git a/apps/viewer/src/features/blocks/inputs/fileUpload/fileUpload.spec.ts b/apps/viewer/src/features/blocks/inputs/fileUpload/fileUpload.spec.ts index c9c5f24514f..7850c5e759b 100644 --- a/apps/viewer/src/features/blocks/inputs/fileUpload/fileUpload.spec.ts +++ b/apps/viewer/src/features/blocks/inputs/fileUpload/fileUpload.spec.ts @@ -2,14 +2,14 @@ import test, { expect } from '@playwright/test' import { createId } from '@paralleldrive/cuid2' import { parse } from 'papaparse' import { readFileSync } from 'fs' -import { isDefined } from 'utils' +import { isDefined } from '@typebot.io/lib' import { createWorkspaces, importTypebotInDatabase, injectFakeResults, -} from 'utils/playwright/databaseActions' +} from '@typebot.io/lib/playwright/databaseActions' import { getTestAsset } from '@/test/utils/playwright' -import { Plan } from 'db' +import { Plan } from '@typebot.io/prisma' const THREE_GIGABYTES = 3 * 1024 * 1024 * 1024 diff --git a/apps/viewer/src/features/blocks/inputs/payment/api/utils/computePaymentInputRuntimeOptions.ts b/apps/viewer/src/features/blocks/inputs/payment/api/utils/computePaymentInputRuntimeOptions.ts index 3cdd5922809..a81d285c97c 100644 --- a/apps/viewer/src/features/blocks/inputs/payment/api/utils/computePaymentInputRuntimeOptions.ts +++ b/apps/viewer/src/features/blocks/inputs/payment/api/utils/computePaymentInputRuntimeOptions.ts @@ -6,9 +6,9 @@ import { PaymentInputRuntimeOptions, SessionState, StripeCredentials, -} from 'models' +} from '@typebot.io/schemas' import Stripe from 'stripe' -import { decrypt } from 'utils/api/encryption' +import { decrypt } from '@typebot.io/lib/api/encryption' export const computePaymentInputRuntimeOptions = (state: Pick) => diff --git a/apps/viewer/src/features/blocks/integrations/chatwoot/api/utils/executeChatwootBlock.ts b/apps/viewer/src/features/blocks/integrations/chatwoot/api/utils/executeChatwootBlock.ts index 445bc0b469d..d6bcd153b80 100644 --- a/apps/viewer/src/features/blocks/integrations/chatwoot/api/utils/executeChatwootBlock.ts +++ b/apps/viewer/src/features/blocks/integrations/chatwoot/api/utils/executeChatwootBlock.ts @@ -4,7 +4,11 @@ import { parseCorrectValueType, extractVariablesFromText, } from '@/features/variables' -import { ChatwootBlock, ChatwootOptions, SessionState } from 'models' +import { + ChatwootBlock, + ChatwootOptions, + SessionState, +} from '@typebot.io/schemas' const parseSetUserCode = (user: ChatwootOptions['user']) => ` window.$chatwoot.setUser("${user?.id ?? ''}", { diff --git a/apps/viewer/src/features/blocks/integrations/chatwoot/chatwoot.spec.ts b/apps/viewer/src/features/blocks/integrations/chatwoot/chatwoot.spec.ts index be21ca94dc7..bf61a2cca25 100644 --- a/apps/viewer/src/features/blocks/integrations/chatwoot/chatwoot.spec.ts +++ b/apps/viewer/src/features/blocks/integrations/chatwoot/chatwoot.spec.ts @@ -1,8 +1,11 @@ import test, { expect } from '@playwright/test' import { createId } from '@paralleldrive/cuid2' -import { createTypebots } from 'utils/playwright/databaseActions' -import { parseDefaultGroupWithBlock } from 'utils/playwright/databaseHelpers' -import { defaultChatwootOptions, IntegrationBlockType } from 'models' +import { createTypebots } from '@typebot.io/lib/playwright/databaseActions' +import { parseDefaultGroupWithBlock } from '@typebot.io/lib/playwright/databaseHelpers' +import { + defaultChatwootOptions, + IntegrationBlockType, +} from '@typebot.io/schemas' const typebotId = createId() diff --git a/apps/viewer/src/features/blocks/integrations/googleAnalytics/api/utils/executeGoogleAnalyticsBlock.ts b/apps/viewer/src/features/blocks/integrations/googleAnalytics/api/utils/executeGoogleAnalyticsBlock.ts index 2f5174479de..019c95b0bf3 100644 --- a/apps/viewer/src/features/blocks/integrations/googleAnalytics/api/utils/executeGoogleAnalyticsBlock.ts +++ b/apps/viewer/src/features/blocks/integrations/googleAnalytics/api/utils/executeGoogleAnalyticsBlock.ts @@ -1,6 +1,6 @@ import { ExecuteIntegrationResponse } from '@/features/chat' import { deepParseVariable } from '@/features/variables' -import { GoogleAnalyticsBlock, SessionState } from 'models' +import { GoogleAnalyticsBlock, SessionState } from '@typebot.io/schemas' export const executeGoogleAnalyticsBlock = ( { typebot: { variables } }: SessionState, diff --git a/apps/viewer/src/features/blocks/integrations/googleSheets/api/utils/executeGoogleSheetBlock.ts b/apps/viewer/src/features/blocks/integrations/googleSheets/api/utils/executeGoogleSheetBlock.ts index 3d020d58dad..9b82a0f4bd2 100644 --- a/apps/viewer/src/features/blocks/integrations/googleSheets/api/utils/executeGoogleSheetBlock.ts +++ b/apps/viewer/src/features/blocks/integrations/googleSheets/api/utils/executeGoogleSheetBlock.ts @@ -1,5 +1,9 @@ import { ExecuteIntegrationResponse } from '@/features/chat' -import { GoogleSheetsBlock, GoogleSheetsAction, SessionState } from 'models' +import { + GoogleSheetsBlock, + GoogleSheetsAction, + SessionState, +} from '@typebot.io/schemas' import { getRow } from './getRow' import { insertRow } from './insertRow' import { updateRow } from './updateRow' diff --git a/apps/viewer/src/features/blocks/integrations/googleSheets/api/utils/getRow.ts b/apps/viewer/src/features/blocks/integrations/googleSheets/api/utils/getRow.ts index 719e76b8869..8d12fb7a37c 100644 --- a/apps/viewer/src/features/blocks/integrations/googleSheets/api/utils/getRow.ts +++ b/apps/viewer/src/features/blocks/integrations/googleSheets/api/utils/getRow.ts @@ -5,11 +5,11 @@ import { ComparisonOperators, LogicalOperator, ReplyLog, -} from 'models' +} from '@typebot.io/schemas' import { saveErrorLog } from '@/features/logs/api' import { getAuthenticatedGoogleDoc } from './helpers' import { deepParseVariable, updateVariables } from '@/features/variables' -import { isNotEmpty, byId, isDefined } from 'utils' +import { isNotEmpty, byId, isDefined } from '@typebot.io/lib' import { ExecuteIntegrationResponse } from '@/features/chat' import type { GoogleSpreadsheetRow } from 'google-spreadsheet' diff --git a/apps/viewer/src/features/blocks/integrations/googleSheets/api/utils/helpers.ts b/apps/viewer/src/features/blocks/integrations/googleSheets/api/utils/helpers.ts index 1183d583227..41fb064e40a 100644 --- a/apps/viewer/src/features/blocks/integrations/googleSheets/api/utils/helpers.ts +++ b/apps/viewer/src/features/blocks/integrations/googleSheets/api/utils/helpers.ts @@ -2,7 +2,7 @@ import { parseVariables } from '@/features/variables' import { getAuthenticatedGoogleClient } from '@/lib/google-sheets' import { TRPCError } from '@trpc/server' import { GoogleSpreadsheet } from 'google-spreadsheet' -import { Variable, Cell } from 'models' +import { Variable, Cell } from '@typebot.io/schemas' export const parseCellValues = (variables: Variable[]) => diff --git a/apps/viewer/src/features/blocks/integrations/googleSheets/api/utils/insertRow.ts b/apps/viewer/src/features/blocks/integrations/googleSheets/api/utils/insertRow.ts index 3ca4cb50a72..14f18c5b14d 100644 --- a/apps/viewer/src/features/blocks/integrations/googleSheets/api/utils/insertRow.ts +++ b/apps/viewer/src/features/blocks/integrations/googleSheets/api/utils/insertRow.ts @@ -1,4 +1,8 @@ -import { SessionState, GoogleSheetsInsertRowOptions, ReplyLog } from 'models' +import { + SessionState, + GoogleSheetsInsertRowOptions, + ReplyLog, +} from '@typebot.io/schemas' import { saveErrorLog, saveSuccessLog } from '@/features/logs/api' import { getAuthenticatedGoogleDoc, parseCellValues } from './helpers' import { ExecuteIntegrationResponse } from '@/features/chat' diff --git a/apps/viewer/src/features/blocks/integrations/googleSheets/api/utils/updateRow.ts b/apps/viewer/src/features/blocks/integrations/googleSheets/api/utils/updateRow.ts index 6aebc4393f1..6701577127c 100644 --- a/apps/viewer/src/features/blocks/integrations/googleSheets/api/utils/updateRow.ts +++ b/apps/viewer/src/features/blocks/integrations/googleSheets/api/utils/updateRow.ts @@ -1,4 +1,8 @@ -import { SessionState, GoogleSheetsUpdateRowOptions, ReplyLog } from 'models' +import { + SessionState, + GoogleSheetsUpdateRowOptions, + ReplyLog, +} from '@typebot.io/schemas' import { saveErrorLog, saveSuccessLog } from '@/features/logs/api' import { getAuthenticatedGoogleDoc, parseCellValues } from './helpers' import { TRPCError } from '@trpc/server' diff --git a/apps/viewer/src/features/blocks/integrations/openai/createChatCompletionOpenAI.ts b/apps/viewer/src/features/blocks/integrations/openai/createChatCompletionOpenAI.ts index e1f26acbc78..7ffe28237cd 100644 --- a/apps/viewer/src/features/blocks/integrations/openai/createChatCompletionOpenAI.ts +++ b/apps/viewer/src/features/blocks/integrations/openai/createChatCompletionOpenAI.ts @@ -8,14 +8,14 @@ import { Variable, VariableWithUnknowValue, VariableWithValue, -} from 'models' +} from '@typebot.io/schemas' import { ChatCompletionOpenAIOptions, OpenAICredentials, -} from 'models/features/blocks/integrations/openai' +} from '@typebot.io/schemas/features/blocks/integrations/openai' import { OpenAIApi, Configuration, ChatCompletionRequestMessage } from 'openai' -import { isDefined, byId, isNotEmpty } from 'utils' -import { decrypt } from 'utils/api/encryption' +import { isDefined, byId, isNotEmpty } from '@typebot.io/lib' +import { decrypt } from '@typebot.io/lib/api/encryption' export const createChatCompletionOpenAI = async ( state: SessionState, diff --git a/apps/viewer/src/features/blocks/integrations/openai/executeOpenAIBlock.ts b/apps/viewer/src/features/blocks/integrations/openai/executeOpenAIBlock.ts index 937529dec72..377c478c4d0 100644 --- a/apps/viewer/src/features/blocks/integrations/openai/executeOpenAIBlock.ts +++ b/apps/viewer/src/features/blocks/integrations/openai/executeOpenAIBlock.ts @@ -1,6 +1,6 @@ import { ExecuteIntegrationResponse } from '@/features/chat/types' -import { SessionState } from 'models' -import { OpenAIBlock } from 'models/features/blocks/integrations/openai' +import { SessionState } from '@typebot.io/schemas' +import { OpenAIBlock } from '@typebot.io/schemas/features/blocks/integrations/openai' import { createChatCompletionOpenAI } from './createChatCompletionOpenAI' export const executeOpenAIBlock = async ( diff --git a/apps/viewer/src/features/blocks/integrations/sendEmail/api/utils/executeSendEmailBlock.tsx b/apps/viewer/src/features/blocks/integrations/sendEmail/api/utils/executeSendEmailBlock.tsx index ac8a7c1d4a2..e07a26c2bc2 100644 --- a/apps/viewer/src/features/blocks/integrations/sendEmail/api/utils/executeSendEmailBlock.tsx +++ b/apps/viewer/src/features/blocks/integrations/sendEmail/api/utils/executeSendEmailBlock.tsx @@ -3,7 +3,7 @@ import { saveErrorLog, saveSuccessLog } from '@/features/logs/api' import { parseVariables } from '@/features/variables' import prisma from '@/lib/prisma' import { render } from '@faire/mjml-react/utils/render' -import { DefaultBotNotificationEmail } from 'emails' +import { DefaultBotNotificationEmail } from '@typebot.io/emails' import { PublicTypebot, ResultInSession, @@ -11,12 +11,12 @@ import { SendEmailOptions, SessionState, SmtpCredentials, -} from 'models' +} from '@typebot.io/schemas' import { createTransport } from 'nodemailer' import Mail from 'nodemailer/lib/mailer' -import { byId, isEmpty, isNotDefined, omit } from 'utils' -import { parseAnswers } from 'utils/results' -import { decrypt } from 'utils/api' +import { byId, isEmpty, isNotDefined, omit } from '@typebot.io/lib' +import { parseAnswers } from '@typebot.io/lib/results' +import { decrypt } from '@typebot.io/lib/api' import { defaultFrom, defaultTransportOptions } from '../constants' export const executeSendEmailBlock = async ( diff --git a/apps/viewer/src/features/blocks/integrations/sendEmail/sendEmail.spec.ts b/apps/viewer/src/features/blocks/integrations/sendEmail/sendEmail.spec.ts index d7093b6135b..36e8a25f7e8 100644 --- a/apps/viewer/src/features/blocks/integrations/sendEmail/sendEmail.spec.ts +++ b/apps/viewer/src/features/blocks/integrations/sendEmail/sendEmail.spec.ts @@ -1,9 +1,9 @@ import test, { expect } from '@playwright/test' import { createSmtpCredentials } from '../../../../test/utils/databaseActions' import { createId } from '@paralleldrive/cuid2' -import { importTypebotInDatabase } from 'utils/playwright/databaseActions' +import { importTypebotInDatabase } from '@typebot.io/lib/playwright/databaseActions' import { getTestAsset } from '@/test/utils/playwright' -import { SmtpCredentials } from 'models' +import { SmtpCredentials } from '@typebot.io/schemas' export const mockSmtpCredentials: SmtpCredentials['data'] = { from: { diff --git a/apps/viewer/src/features/blocks/integrations/webhook/api/utils/executeWebhookBlock.ts b/apps/viewer/src/features/blocks/integrations/webhook/api/utils/executeWebhookBlock.ts index 32c1aa45711..6cd7d6d5718 100644 --- a/apps/viewer/src/features/blocks/integrations/webhook/api/utils/executeWebhookBlock.ts +++ b/apps/viewer/src/features/blocks/integrations/webhook/api/utils/executeWebhookBlock.ts @@ -20,10 +20,10 @@ import { KeyValue, ReplyLog, ResultInSession, -} from 'models' +} from '@typebot.io/schemas' import { stringify } from 'qs' -import { byId, omit } from 'utils' -import { parseAnswers } from 'utils/results' +import { byId, omit } from '@typebot.io/lib' +import { parseAnswers } from '@typebot.io/lib/results' import got, { Method, Headers, HTTPError } from 'got' import { parseSampleResult } from './parseSampleResult' diff --git a/apps/viewer/src/features/blocks/integrations/webhook/api/utils/parseSampleResult.ts b/apps/viewer/src/features/blocks/integrations/webhook/api/utils/parseSampleResult.ts index 2cdf99e21e3..b35e9f6fce1 100644 --- a/apps/viewer/src/features/blocks/integrations/webhook/api/utils/parseSampleResult.ts +++ b/apps/viewer/src/features/blocks/integrations/webhook/api/utils/parseSampleResult.ts @@ -8,9 +8,9 @@ import { Typebot, TypebotLinkBlock, Variable, -} from 'models' -import { isInputBlock, byId, isNotDefined } from 'utils' -import { parseResultHeader } from 'utils/results' +} from '@typebot.io/schemas' +import { isInputBlock, byId, isNotDefined } from '@typebot.io/lib' +import { parseResultHeader } from '@typebot.io/lib/results' export const parseSampleResult = ( diff --git a/apps/viewer/src/features/blocks/integrations/webhook/webhook.spec.ts b/apps/viewer/src/features/blocks/integrations/webhook/webhook.spec.ts index 01c28673473..c76121070f2 100644 --- a/apps/viewer/src/features/blocks/integrations/webhook/webhook.spec.ts +++ b/apps/viewer/src/features/blocks/integrations/webhook/webhook.spec.ts @@ -1,10 +1,10 @@ import test, { expect } from '@playwright/test' import { createId } from '@paralleldrive/cuid2' -import { HttpMethod } from 'models' +import { HttpMethod } from '@typebot.io/schemas' import { createWebhook, importTypebotInDatabase, -} from 'utils/playwright/databaseActions' +} from '@typebot.io/lib/playwright/databaseActions' import { getTestAsset } from '@/test/utils/playwright' const typebotId = createId() diff --git a/apps/viewer/src/features/blocks/logic/condition/api/utils/executeCondition.ts b/apps/viewer/src/features/blocks/logic/condition/api/utils/executeCondition.ts index f79cadd839f..29695ea8c9a 100644 --- a/apps/viewer/src/features/blocks/logic/condition/api/utils/executeCondition.ts +++ b/apps/viewer/src/features/blocks/logic/condition/api/utils/executeCondition.ts @@ -7,8 +7,8 @@ import { LogicalOperator, SessionState, Variable, -} from 'models' -import { isNotDefined, isDefined } from 'utils' +} from '@typebot.io/schemas' +import { isNotDefined, isDefined } from '@typebot.io/lib' export const executeCondition = ( { typebot: { variables } }: SessionState, diff --git a/apps/viewer/src/features/blocks/logic/jump/executeJumpBlock.ts b/apps/viewer/src/features/blocks/logic/jump/executeJumpBlock.ts index eadd36818da..16ddd6095be 100644 --- a/apps/viewer/src/features/blocks/logic/jump/executeJumpBlock.ts +++ b/apps/viewer/src/features/blocks/logic/jump/executeJumpBlock.ts @@ -4,8 +4,8 @@ import { createPortalEdge, } from '@/features/chat/api/utils/addEdgeToTypebot' import { TRPCError } from '@trpc/server' -import { SessionState } from 'models' -import { JumpBlock } from 'models/features/blocks/logic/jump' +import { SessionState } from '@typebot.io/schemas' +import { JumpBlock } from '@typebot.io/schemas/features/blocks/logic/jump' export const executeJumpBlock = ( state: SessionState, diff --git a/apps/viewer/src/features/blocks/logic/redirect/api/utils/executeRedirect.ts b/apps/viewer/src/features/blocks/logic/redirect/api/utils/executeRedirect.ts index 86af31bb6eb..8860e142a63 100644 --- a/apps/viewer/src/features/blocks/logic/redirect/api/utils/executeRedirect.ts +++ b/apps/viewer/src/features/blocks/logic/redirect/api/utils/executeRedirect.ts @@ -1,7 +1,7 @@ import { ExecuteLogicResponse } from '@/features/chat' import { parseVariables } from '@/features/variables' -import { RedirectBlock, SessionState } from 'models' -import { sanitizeUrl } from 'utils' +import { RedirectBlock, SessionState } from '@typebot.io/schemas' +import { sanitizeUrl } from '@typebot.io/lib' export const executeRedirect = ( { typebot: { variables } }: SessionState, diff --git a/apps/viewer/src/features/blocks/logic/script/executeScript.ts b/apps/viewer/src/features/blocks/logic/script/executeScript.ts index 427bb8bc31d..0557a5d3edf 100644 --- a/apps/viewer/src/features/blocks/logic/script/executeScript.ts +++ b/apps/viewer/src/features/blocks/logic/script/executeScript.ts @@ -4,7 +4,7 @@ import { parseCorrectValueType, extractVariablesFromText, } from '@/features/variables' -import { ScriptBlock, SessionState } from 'models' +import { ScriptBlock, SessionState } from '@typebot.io/schemas' export const executeScript = ( { typebot: { variables } }: SessionState, diff --git a/apps/viewer/src/features/blocks/logic/setVariable/api/utils/executeSetVariable.ts b/apps/viewer/src/features/blocks/logic/setVariable/api/utils/executeSetVariable.ts index ba07f257b57..781008c26ae 100644 --- a/apps/viewer/src/features/blocks/logic/setVariable/api/utils/executeSetVariable.ts +++ b/apps/viewer/src/features/blocks/logic/setVariable/api/utils/executeSetVariable.ts @@ -1,5 +1,5 @@ -import { SessionState, SetVariableBlock, Variable } from 'models' -import { byId } from 'utils' +import { SessionState, SetVariableBlock, Variable } from '@typebot.io/schemas' +import { byId } from '@typebot.io/lib' import { parseVariables, parseCorrectValueType, diff --git a/apps/viewer/src/features/blocks/logic/typebotLink/api/utils/executeTypebotLink.ts b/apps/viewer/src/features/blocks/logic/typebotLink/api/utils/executeTypebotLink.ts index cfddb034b01..4765422ff90 100644 --- a/apps/viewer/src/features/blocks/logic/typebotLink/api/utils/executeTypebotLink.ts +++ b/apps/viewer/src/features/blocks/logic/typebotLink/api/utils/executeTypebotLink.ts @@ -10,8 +10,8 @@ import { SessionState, TypebotInSession, Variable, -} from 'models' -import { byId } from 'utils' +} from '@typebot.io/schemas' +import { byId } from '@typebot.io/lib' export const executeTypebotLink = async ( state: SessionState, diff --git a/apps/viewer/src/features/blocks/logic/typebotLink/api/utils/getLinkedTypebots.ts b/apps/viewer/src/features/blocks/logic/typebotLink/api/utils/getLinkedTypebots.ts index 61878516195..8bf0070cbe6 100644 --- a/apps/viewer/src/features/blocks/logic/typebotLink/api/utils/getLinkedTypebots.ts +++ b/apps/viewer/src/features/blocks/logic/typebotLink/api/utils/getLinkedTypebots.ts @@ -1,5 +1,5 @@ import prisma from '@/lib/prisma' -import { PublicTypebot, Typebot } from 'models' +import { PublicTypebot, Typebot } from '@typebot.io/schemas' type Props = { isPreview: boolean diff --git a/apps/viewer/src/features/blocks/logic/typebotLink/api/utils/getLinkedTypebotsChildren.ts b/apps/viewer/src/features/blocks/logic/typebotLink/api/utils/getLinkedTypebotsChildren.ts index a95887db8a0..624f9fe54d2 100644 --- a/apps/viewer/src/features/blocks/logic/typebotLink/api/utils/getLinkedTypebotsChildren.ts +++ b/apps/viewer/src/features/blocks/logic/typebotLink/api/utils/getLinkedTypebotsChildren.ts @@ -1,13 +1,13 @@ import prisma from '@/lib/prisma' import { canReadTypebots } from '@/utils/api/dbRules' -import { User } from 'db' +import { User } from '@typebot.io/prisma' import { LogicBlockType, PublicTypebot, Typebot, TypebotLinkBlock, -} from 'models' -import { isDefined } from 'utils' +} from '@typebot.io/schemas' +import { isDefined } from '@typebot.io/lib' type Props = { typebots: Pick[] diff --git a/apps/viewer/src/features/blocks/logic/typebotLink/typebotLink.spec.ts b/apps/viewer/src/features/blocks/logic/typebotLink/typebotLink.spec.ts index d9179bd6e9f..c1e06e8881c 100644 --- a/apps/viewer/src/features/blocks/logic/typebotLink/typebotLink.spec.ts +++ b/apps/viewer/src/features/blocks/logic/typebotLink/typebotLink.spec.ts @@ -1,6 +1,6 @@ import { getTestAsset } from '@/test/utils/playwright' import test, { expect } from '@playwright/test' -import { importTypebotInDatabase } from 'utils/playwright/databaseActions' +import { importTypebotInDatabase } from '@typebot.io/lib/playwright/databaseActions' const typebotId = 'cl0ibhi7s0018n21aarlmg0cm' const linkedTypebotId = 'cl0ibhv8d0130n21aw8doxhj5' diff --git a/apps/viewer/src/features/blocks/logic/wait/api/utils/executeWait.ts b/apps/viewer/src/features/blocks/logic/wait/api/utils/executeWait.ts index fddd85cf893..61747383e9a 100644 --- a/apps/viewer/src/features/blocks/logic/wait/api/utils/executeWait.ts +++ b/apps/viewer/src/features/blocks/logic/wait/api/utils/executeWait.ts @@ -1,6 +1,6 @@ import { ExecuteLogicResponse } from '@/features/chat' import { parseVariables } from '@/features/variables' -import { SessionState, WaitBlock } from 'models' +import { SessionState, WaitBlock } from '@typebot.io/schemas' export const executeWait = async ( { typebot: { variables } }: SessionState, diff --git a/apps/viewer/src/features/chat/api/procedures/sendMessageProcedure.ts b/apps/viewer/src/features/chat/api/procedures/sendMessageProcedure.ts index 56fa7b4b367..034e1f3449f 100644 --- a/apps/viewer/src/features/chat/api/procedures/sendMessageProcedure.ts +++ b/apps/viewer/src/features/chat/api/procedures/sendMessageProcedure.ts @@ -8,7 +8,7 @@ import { import prisma from '@/lib/prisma' import { publicProcedure } from '@/utils/server/trpc' import { TRPCError } from '@trpc/server' -import { Prisma } from 'db' +import { Prisma } from '@typebot.io/prisma' import { ChatReply, chatReplySchema, @@ -22,14 +22,14 @@ import { Typebot, Variable, VariableWithValue, -} from 'models' +} from '@typebot.io/schemas' import { continueBotFlow, getSession, setResultAsCompleted, startBotFlow, } from '../utils' -import { env, isDefined, omit } from 'utils' +import { env, isDefined, omit } from '@typebot.io/lib' export const sendMessageProcedure = publicProcedure .meta({ diff --git a/apps/viewer/src/features/chat/api/utils/addEdgeToTypebot.ts b/apps/viewer/src/features/chat/api/utils/addEdgeToTypebot.ts index 5a381a472f0..a83489ca5e2 100644 --- a/apps/viewer/src/features/chat/api/utils/addEdgeToTypebot.ts +++ b/apps/viewer/src/features/chat/api/utils/addEdgeToTypebot.ts @@ -1,5 +1,5 @@ import { createId } from '@paralleldrive/cuid2' -import { SessionState, Edge } from 'models' +import { SessionState, Edge } from '@typebot.io/schemas' export const addEdgeToTypebot = ( state: SessionState, diff --git a/apps/viewer/src/features/chat/api/utils/continueBotFlow.ts b/apps/viewer/src/features/chat/api/utils/continueBotFlow.ts index bb1adf5e883..8043684ef8d 100644 --- a/apps/viewer/src/features/chat/api/utils/continueBotFlow.ts +++ b/apps/viewer/src/features/chat/api/utils/continueBotFlow.ts @@ -7,7 +7,7 @@ import { validateUrl } from '@/features/blocks/inputs/url/api' import { parseVariables, updateVariables } from '@/features/variables' import prisma from '@/lib/prisma' import { TRPCError } from '@trpc/server' -import { Prisma } from 'db' +import { Prisma } from '@typebot.io/prisma' import got from 'got' import { Block, @@ -18,8 +18,8 @@ import { InputBlockType, ResultInSession, SessionState, -} from 'models' -import { isInputBlock, isNotDefined } from 'utils' +} from '@typebot.io/schemas' +import { isInputBlock, isNotDefined } from '@typebot.io/lib' import { executeGroup } from './executeGroup' import { getNextGroup } from './getNextGroup' diff --git a/apps/viewer/src/features/chat/api/utils/executeGroup.ts b/apps/viewer/src/features/chat/api/utils/executeGroup.ts index 2e94cddd5c0..acf1c4a328f 100644 --- a/apps/viewer/src/features/chat/api/utils/executeGroup.ts +++ b/apps/viewer/src/features/chat/api/utils/executeGroup.ts @@ -8,14 +8,14 @@ import { InputBlockType, RuntimeOptions, SessionState, -} from 'models' +} from '@typebot.io/schemas' import { isBubbleBlock, isDefined, isInputBlock, isIntegrationBlock, isLogicBlock, -} from 'utils' +} from '@typebot.io/lib' import { executeLogic } from './executeLogic' import { getNextGroup } from './getNextGroup' import { executeIntegration } from './executeIntegration' diff --git a/apps/viewer/src/features/chat/api/utils/executeIntegration.ts b/apps/viewer/src/features/chat/api/utils/executeIntegration.ts index f5cd4a54683..64e575aa7b3 100644 --- a/apps/viewer/src/features/chat/api/utils/executeIntegration.ts +++ b/apps/viewer/src/features/chat/api/utils/executeIntegration.ts @@ -4,7 +4,11 @@ import { executeGoogleSheetBlock } from '@/features/blocks/integrations/googleSh import { executeOpenAIBlock } from '@/features/blocks/integrations/openai/executeOpenAIBlock' import { executeSendEmailBlock } from '@/features/blocks/integrations/sendEmail/api' import { executeWebhookBlock } from '@/features/blocks/integrations/webhook/api' -import { IntegrationBlock, IntegrationBlockType, SessionState } from 'models' +import { + IntegrationBlock, + IntegrationBlockType, + SessionState, +} from '@typebot.io/schemas' import { ExecuteIntegrationResponse } from '../../types' export const executeIntegration = diff --git a/apps/viewer/src/features/chat/api/utils/executeLogic.ts b/apps/viewer/src/features/chat/api/utils/executeLogic.ts index 97122fd9d46..4c0dd56f49d 100644 --- a/apps/viewer/src/features/chat/api/utils/executeLogic.ts +++ b/apps/viewer/src/features/chat/api/utils/executeLogic.ts @@ -3,7 +3,7 @@ import { executeRedirect } from '@/features/blocks/logic/redirect/api' import { executeSetVariable } from '@/features/blocks/logic/setVariable/api' import { executeTypebotLink } from '@/features/blocks/logic/typebotLink/api' import { executeWait } from '@/features/blocks/logic/wait/api/utils/executeWait' -import { LogicBlock, LogicBlockType, SessionState } from 'models' +import { LogicBlock, LogicBlockType, SessionState } from '@typebot.io/schemas' import { ExecuteLogicResponse } from '../../types' import { executeScript } from '@/features/blocks/logic/script/executeScript' import { executeJumpBlock } from '@/features/blocks/logic/jump/executeJumpBlock' diff --git a/apps/viewer/src/features/chat/api/utils/getNextGroup.ts b/apps/viewer/src/features/chat/api/utils/getNextGroup.ts index 44cc38aeee8..fd8747313d2 100644 --- a/apps/viewer/src/features/chat/api/utils/getNextGroup.ts +++ b/apps/viewer/src/features/chat/api/utils/getNextGroup.ts @@ -1,5 +1,5 @@ -import { byId } from 'utils' -import { Group, SessionState } from 'models' +import { byId } from '@typebot.io/lib' +import { Group, SessionState } from '@typebot.io/schemas' export type NextGroup = { group: Group diff --git a/apps/viewer/src/features/chat/api/utils/getSessionState.ts b/apps/viewer/src/features/chat/api/utils/getSessionState.ts index 11ff17cd6c3..2ac9d29c0d6 100644 --- a/apps/viewer/src/features/chat/api/utils/getSessionState.ts +++ b/apps/viewer/src/features/chat/api/utils/getSessionState.ts @@ -1,5 +1,5 @@ import prisma from '@/lib/prisma' -import { ChatSession } from 'models' +import { ChatSession } from '@typebot.io/schemas' export const getSession = async ( sessionId: string diff --git a/apps/viewer/src/features/chat/api/utils/startBotFlow.ts b/apps/viewer/src/features/chat/api/utils/startBotFlow.ts index 1065d182fd7..be8c5fdb466 100644 --- a/apps/viewer/src/features/chat/api/utils/startBotFlow.ts +++ b/apps/viewer/src/features/chat/api/utils/startBotFlow.ts @@ -1,5 +1,5 @@ import { TRPCError } from '@trpc/server' -import { ChatReply, SessionState } from 'models' +import { ChatReply, SessionState } from '@typebot.io/schemas' import { executeGroup } from './executeGroup' import { getNextGroup } from './getNextGroup' diff --git a/apps/viewer/src/features/chat/chat.spec.ts b/apps/viewer/src/features/chat/chat.spec.ts index 3b0d8500ac0..b2e1c784b14 100644 --- a/apps/viewer/src/features/chat/chat.spec.ts +++ b/apps/viewer/src/features/chat/chat.spec.ts @@ -2,13 +2,13 @@ import { getTestAsset } from '@/test/utils/playwright' import test, { expect } from '@playwright/test' import { createId } from '@paralleldrive/cuid2' import prisma from '@/lib/prisma' -import { HttpMethod, SendMessageInput } from 'models' +import { HttpMethod, SendMessageInput } from '@typebot.io/schemas' import { createWebhook, deleteTypebots, deleteWebhooks, importTypebotInDatabase, -} from 'utils/playwright/databaseActions' +} from '@typebot.io/lib/playwright/databaseActions' test.afterEach(async () => { await deleteWebhooks(['chat-webhook-id']) diff --git a/apps/viewer/src/features/chat/types.ts b/apps/viewer/src/features/chat/types.ts index 01df4a31a3e..4691080515d 100644 --- a/apps/viewer/src/features/chat/types.ts +++ b/apps/viewer/src/features/chat/types.ts @@ -1,4 +1,4 @@ -import { ChatReply, SessionState } from 'models' +import { ChatReply, SessionState } from '@typebot.io/schemas' export type EdgeId = string diff --git a/apps/viewer/src/features/logs/api/utils.ts b/apps/viewer/src/features/logs/api/utils.ts index 7b12085d83a..9b622e2a455 100644 --- a/apps/viewer/src/features/logs/api/utils.ts +++ b/apps/viewer/src/features/logs/api/utils.ts @@ -1,5 +1,5 @@ import prisma from '@/lib/prisma' -import { isNotDefined } from 'utils' +import { isNotDefined } from '@typebot.io/lib' export const saveLog = ( status: 'error' | 'success', diff --git a/apps/viewer/src/features/results/queries/createResultQuery.ts b/apps/viewer/src/features/results/queries/createResultQuery.ts index 21ba4eae569..cc990123d84 100644 --- a/apps/viewer/src/features/results/queries/createResultQuery.ts +++ b/apps/viewer/src/features/results/queries/createResultQuery.ts @@ -1,5 +1,5 @@ -import { Result } from 'models' -import { sendRequest } from 'utils' +import { Result } from '@typebot.io/schemas' +import { sendRequest } from '@typebot.io/lib' export const createResultQuery = async (typebotId: string) => { return sendRequest<{ result: Result; hasReachedLimit: boolean }>({ diff --git a/apps/viewer/src/features/results/queries/updateResultQuery.ts b/apps/viewer/src/features/results/queries/updateResultQuery.ts index 6e80e023cc0..d413b62a657 100644 --- a/apps/viewer/src/features/results/queries/updateResultQuery.ts +++ b/apps/viewer/src/features/results/queries/updateResultQuery.ts @@ -1,5 +1,5 @@ -import { Result } from 'models' -import { sendRequest } from 'utils' +import { Result } from '@typebot.io/schemas' +import { sendRequest } from '@typebot.io/lib' export const updateResultQuery = async ( resultId: string, diff --git a/apps/viewer/src/features/results/results.spec.ts b/apps/viewer/src/features/results/results.spec.ts index 299008e0f29..caf9b3d5a22 100644 --- a/apps/viewer/src/features/results/results.spec.ts +++ b/apps/viewer/src/features/results/results.spec.ts @@ -1,7 +1,7 @@ import { getTestAsset } from '@/test/utils/playwright' import test, { expect } from '@playwright/test' import { createId } from '@paralleldrive/cuid2' -import { importTypebotInDatabase } from 'utils/playwright/databaseActions' +import { importTypebotInDatabase } from '@typebot.io/lib/playwright/databaseActions' test('Big groups should work as expected', async ({ page }) => { const typebotId = createId() diff --git a/apps/viewer/src/features/settings/settings.spec.ts b/apps/viewer/src/features/settings/settings.spec.ts index ec286594a51..05cd8c1c763 100644 --- a/apps/viewer/src/features/settings/settings.spec.ts +++ b/apps/viewer/src/features/settings/settings.spec.ts @@ -5,9 +5,12 @@ import { defaultTextInputOptions, InputBlockType, Metadata, -} from 'models' -import { createTypebots, updateTypebot } from 'utils/playwright/databaseActions' -import { parseDefaultGroupWithBlock } from 'utils/playwright/databaseHelpers' +} from '@typebot.io/schemas' +import { + createTypebots, + updateTypebot, +} from '@typebot.io/lib/playwright/databaseActions' +import { parseDefaultGroupWithBlock } from '@typebot.io/lib/playwright/databaseHelpers' test('Result should be overwritten on page refresh', async ({ page }) => { const typebotId = createId() diff --git a/apps/viewer/src/features/usage/usage.spec.ts b/apps/viewer/src/features/usage/usage.spec.ts index 7993d28f687..294f5cc1fa8 100644 --- a/apps/viewer/src/features/usage/usage.spec.ts +++ b/apps/viewer/src/features/usage/usage.spec.ts @@ -1,13 +1,13 @@ import { getTestAsset } from '@/test/utils/playwright' import test, { expect } from '@playwright/test' import { createId } from '@paralleldrive/cuid2' -import { Plan } from 'db' -import { defaultSettings } from 'models' +import { Plan } from '@typebot.io/prisma' +import { defaultSettings } from '@typebot.io/schemas' import { createWorkspaces, importTypebotInDatabase, injectFakeResults, -} from 'utils/playwright/databaseActions' +} from '@typebot.io/lib/playwright/databaseActions' test('should not start if chat limit is reached', async ({ page, context }) => { await test.step('Free plan', async () => { diff --git a/apps/viewer/src/features/usage/utils/checkChatsUsage.ts b/apps/viewer/src/features/usage/utils/checkChatsUsage.ts index dd71f9c18de..16fbefa581c 100644 --- a/apps/viewer/src/features/usage/utils/checkChatsUsage.ts +++ b/apps/viewer/src/features/usage/utils/checkChatsUsage.ts @@ -1,12 +1,12 @@ import prisma from '@/lib/prisma' -import { WorkspaceRole } from 'db' +import { WorkspaceRole } from '@typebot.io/prisma' import { sendAlmostReachedChatsLimitEmail, sendReachedChatsLimitEmail, -} from 'emails' -import { Workspace } from 'models' -import { env, isDefined } from 'utils' -import { getChatsLimit } from 'utils/pricing' +} from '@typebot.io/emails' +import { Workspace } from '@typebot.io/schemas' +import { env, isDefined } from '@typebot.io/lib' +import { getChatsLimit } from '@typebot.io/lib/pricing' const LIMIT_EMAIL_TRIGGER_PERCENT = 0.8 diff --git a/apps/viewer/src/features/variables/transformVariablesToList.ts b/apps/viewer/src/features/variables/transformVariablesToList.ts index 11a50fc5847..4f46e12c8b6 100644 --- a/apps/viewer/src/features/variables/transformVariablesToList.ts +++ b/apps/viewer/src/features/variables/transformVariablesToList.ts @@ -1,5 +1,5 @@ -import { Variable, VariableWithValue } from 'models' -import { isNotDefined } from 'utils' +import { Variable, VariableWithValue } from '@typebot.io/schemas' +import { isNotDefined } from '@typebot.io/lib' export const transformStringVariablesToList = (variables: Variable[]) => diff --git a/apps/viewer/src/features/variables/utils.ts b/apps/viewer/src/features/variables/utils.ts index 232ef1c3835..9d986ca1ff8 100644 --- a/apps/viewer/src/features/variables/utils.ts +++ b/apps/viewer/src/features/variables/utils.ts @@ -7,8 +7,8 @@ import { Variable, VariableWithUnknowValue, VariableWithValue, -} from 'models' -import { isDefined, isNotDefined } from 'utils' +} from '@typebot.io/schemas' +import { isDefined, isNotDefined } from '@typebot.io/lib' export const stringContainsVariable = (str: string): boolean => /\{\{(.*?)\}\}/g.test(str) diff --git a/apps/viewer/src/features/variables/variables.spec.ts b/apps/viewer/src/features/variables/variables.spec.ts index d91de162853..ede8241deee 100644 --- a/apps/viewer/src/features/variables/variables.spec.ts +++ b/apps/viewer/src/features/variables/variables.spec.ts @@ -1,7 +1,7 @@ import { getTestAsset } from '@/test/utils/playwright' import test, { expect } from '@playwright/test' import { createId } from '@paralleldrive/cuid2' -import { importTypebotInDatabase } from 'utils/playwright/databaseActions' +import { importTypebotInDatabase } from '@typebot.io/lib/playwright/databaseActions' test('should correctly be injected', async ({ page }) => { const typebotId = createId() diff --git a/apps/viewer/src/lib/google-sheets.ts b/apps/viewer/src/lib/google-sheets.ts index a13b99e64ed..b3989d7191f 100644 --- a/apps/viewer/src/lib/google-sheets.ts +++ b/apps/viewer/src/lib/google-sheets.ts @@ -1,8 +1,8 @@ -import { Credentials as CredentialsFromDb } from 'db' +import { Credentials as CredentialsFromDb } from '@typebot.io/prisma' import { OAuth2Client, Credentials } from 'google-auth-library' -import { GoogleSheetsCredentials } from 'models' -import { isDefined } from 'utils' -import { decrypt, encrypt } from 'utils/api' +import { GoogleSheetsCredentials } from '@typebot.io/schemas' +import { isDefined } from '@typebot.io/lib' +import { decrypt, encrypt } from '@typebot.io/lib/api' import prisma from './prisma' export const getAuthenticatedGoogleClient = async ( diff --git a/apps/viewer/src/lib/prisma.ts b/apps/viewer/src/lib/prisma.ts index f4e31f5b4e2..093b1eaac67 100644 --- a/apps/viewer/src/lib/prisma.ts +++ b/apps/viewer/src/lib/prisma.ts @@ -1,4 +1,4 @@ -import { PrismaClient } from 'db' +import { PrismaClient } from '@typebot.io/prisma' declare const global: { prisma: PrismaClient } let prisma: PrismaClient diff --git a/apps/viewer/src/pages/[[...publicId]].tsx b/apps/viewer/src/pages/[[...publicId]].tsx index ccd9ae386d0..91af450161f 100644 --- a/apps/viewer/src/pages/[[...publicId]].tsx +++ b/apps/viewer/src/pages/[[...publicId]].tsx @@ -2,7 +2,13 @@ import { IncomingMessage } from 'http' import { ErrorPage } from '@/components/ErrorPage' import { NotFoundPage } from '@/components/NotFoundPage' import { GetServerSideProps, GetServerSidePropsContext } from 'next' -import { env, getViewerUrl, isDefined, isNotDefined, omit } from 'utils' +import { + env, + getViewerUrl, + isDefined, + isNotDefined, + omit, +} from '@typebot.io/lib' import prisma from '../lib/prisma' import { TypebotPageProps, TypebotPageV2 } from '@/components/TypebotPageV2' import { TypebotPageV3 } from '@/components/TypebotPageV3' diff --git a/apps/viewer/src/pages/api/integrations/google-sheets/spreadsheets/[spreadsheetId]/sheets/[sheetId].ts b/apps/viewer/src/pages/api/integrations/google-sheets/spreadsheets/[spreadsheetId]/sheets/[sheetId].ts index 89d361008bc..4904d60c08c 100644 --- a/apps/viewer/src/pages/api/integrations/google-sheets/spreadsheets/[spreadsheetId]/sheets/[sheetId].ts +++ b/apps/viewer/src/pages/api/integrations/google-sheets/spreadsheets/[spreadsheetId]/sheets/[sheetId].ts @@ -4,8 +4,8 @@ import { initMiddleware, methodNotAllowed, notFound, -} from 'utils/api' -import { hasValue, isDefined } from 'utils' +} from '@typebot.io/lib/api' +import { hasValue, isDefined } from '@typebot.io/lib' import { GoogleSpreadsheet, GoogleSpreadsheetRow } from 'google-spreadsheet' import { ComparisonOperators, @@ -14,7 +14,7 @@ import { GoogleSheetsInsertRowOptions, GoogleSheetsUpdateRowOptions, LogicalOperator, -} from 'models' +} from '@typebot.io/schemas' import Cors from 'cors' import { getAuthenticatedGoogleClient } from '@/lib/google-sheets' import { saveErrorLog, saveSuccessLog } from '@/features/logs/api' diff --git a/apps/viewer/src/pages/api/integrations/stripe/createPaymentIntent.ts b/apps/viewer/src/pages/api/integrations/stripe/createPaymentIntent.ts index a9f2db83583..30566b5f038 100644 --- a/apps/viewer/src/pages/api/integrations/stripe/createPaymentIntent.ts +++ b/apps/viewer/src/pages/api/integrations/stripe/createPaymentIntent.ts @@ -5,11 +5,15 @@ import { forbidden, initMiddleware, methodNotAllowed, -} from 'utils/api' +} from '@typebot.io/lib/api' import Stripe from 'stripe' import Cors from 'cors' -import { PaymentInputOptions, StripeCredentials, Variable } from 'models' +import { + PaymentInputOptions, + StripeCredentials, + Variable, +} from '@typebot.io/schemas' import prisma from '@/lib/prisma' import { parseVariables } from '@/features/variables' diff --git a/apps/viewer/src/pages/api/mock/fail.ts b/apps/viewer/src/pages/api/mock/fail.ts index 1b9b45adf2b..b70166876cf 100644 --- a/apps/viewer/src/pages/api/mock/fail.ts +++ b/apps/viewer/src/pages/api/mock/fail.ts @@ -1,5 +1,5 @@ import { NextApiRequest, NextApiResponse } from 'next' -import { methodNotAllowed } from 'utils/api' +import { methodNotAllowed } from '@typebot.io/lib/api' const handler = (req: NextApiRequest, res: NextApiResponse) => { if (req.method === 'POST') { diff --git a/apps/viewer/src/pages/api/mock/success.ts b/apps/viewer/src/pages/api/mock/success.ts index 72af52433bb..ca72248f590 100644 --- a/apps/viewer/src/pages/api/mock/success.ts +++ b/apps/viewer/src/pages/api/mock/success.ts @@ -1,5 +1,5 @@ import { NextApiRequest, NextApiResponse } from 'next' -import { methodNotAllowed } from 'utils/api' +import { methodNotAllowed } from '@typebot.io/lib/api' const handler = (req: NextApiRequest, res: NextApiResponse) => { if (req.method === 'POST') { diff --git a/apps/viewer/src/pages/api/publicTypebots/[typebotId].ts b/apps/viewer/src/pages/api/publicTypebots/[typebotId].ts index 434f7c38c06..c82075e0716 100644 --- a/apps/viewer/src/pages/api/publicTypebots/[typebotId].ts +++ b/apps/viewer/src/pages/api/publicTypebots/[typebotId].ts @@ -1,7 +1,7 @@ import prisma from '@/lib/prisma' import { NextApiRequest, NextApiResponse } from 'next' import Cors from 'cors' -import { initMiddleware, methodNotAllowed, notFound } from 'utils/api' +import { initMiddleware, methodNotAllowed, notFound } from '@typebot.io/lib/api' const cors = initMiddleware(Cors()) diff --git a/apps/viewer/src/pages/api/typebots.ts b/apps/viewer/src/pages/api/typebots.ts index f15ec2a783c..ade2fc2ae11 100644 --- a/apps/viewer/src/pages/api/typebots.ts +++ b/apps/viewer/src/pages/api/typebots.ts @@ -1,7 +1,7 @@ import { authenticateUser } from '@/features/auth/api' import prisma from '@/lib/prisma' import { NextApiRequest, NextApiResponse } from 'next' -import { methodNotAllowed } from 'utils/api' +import { methodNotAllowed } from '@typebot.io/lib/api' const handler = async (req: NextApiRequest, res: NextApiResponse) => { if (req.method === 'GET') { diff --git a/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/executeWebhook.ts b/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/executeWebhook.ts index b0106f8ca1e..d84d13d7f71 100644 --- a/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/executeWebhook.ts +++ b/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/executeWebhook.ts @@ -10,12 +10,12 @@ import { WebhookResponse, WebhookBlock, HttpMethod, -} from 'models' +} from '@typebot.io/schemas' import { NextApiRequest, NextApiResponse } from 'next' import got, { Method, Headers, HTTPError } from 'got' -import { byId, omit } from 'utils' -import { parseAnswers } from 'utils/results' -import { initMiddleware, methodNotAllowed, notFound } from 'utils/api' +import { byId, omit } from '@typebot.io/lib' +import { parseAnswers } from '@typebot.io/lib/results' +import { initMiddleware, methodNotAllowed, notFound } from '@typebot.io/lib/api' import { stringify } from 'qs' import Cors from 'cors' import prisma from '@/lib/prisma' diff --git a/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/sampleResult.ts b/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/sampleResult.ts index fcc473f9ce0..830f668e42a 100644 --- a/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/sampleResult.ts +++ b/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/sampleResult.ts @@ -2,9 +2,9 @@ import { authenticateUser } from '@/features/auth/api' import { getLinkedTypebotsChildren } from '@/features/blocks/logic/typebotLink/api' import { parseSampleResult } from '@/features/blocks/integrations/webhook/api' import prisma from '@/lib/prisma' -import { Typebot } from 'models' +import { Typebot } from '@typebot.io/schemas' import { NextApiRequest, NextApiResponse } from 'next' -import { methodNotAllowed } from 'utils/api' +import { methodNotAllowed } from '@typebot.io/lib/api' const handler = async (req: NextApiRequest, res: NextApiResponse) => { const user = await authenticateUser(req) diff --git a/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/steps/[stepId]/executeWebhook.ts b/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/steps/[stepId]/executeWebhook.ts index fe2015e381f..c84d654080d 100644 --- a/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/steps/[stepId]/executeWebhook.ts +++ b/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/steps/[stepId]/executeWebhook.ts @@ -7,10 +7,10 @@ import { Webhook, WebhookOptions, WebhookBlock, -} from 'models' +} from '@typebot.io/schemas' import { NextApiRequest, NextApiResponse } from 'next' -import { initMiddleware, methodNotAllowed, notFound } from 'utils/api' -import { byId } from 'utils' +import { initMiddleware, methodNotAllowed, notFound } from '@typebot.io/lib/api' +import { byId } from '@typebot.io/lib' import Cors from 'cors' import { executeWebhook } from '../../executeWebhook' diff --git a/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/steps/[stepId]/sampleResult.ts b/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/steps/[stepId]/sampleResult.ts index 3ff90179dd2..e9bfb91fe9c 100644 --- a/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/steps/[stepId]/sampleResult.ts +++ b/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/steps/[stepId]/sampleResult.ts @@ -2,9 +2,9 @@ import { authenticateUser } from '@/features/auth/api' import { getLinkedTypebotsChildren } from '@/features/blocks/logic/typebotLink/api' import { parseSampleResult } from '@/features/blocks/integrations/webhook/api' import prisma from '@/lib/prisma' -import { Typebot } from 'models' +import { Typebot } from '@typebot.io/schemas' import { NextApiRequest, NextApiResponse } from 'next' -import { methodNotAllowed } from 'utils/api' +import { methodNotAllowed } from '@typebot.io/lib/api' const handler = async (req: NextApiRequest, res: NextApiResponse) => { const user = await authenticateUser(req) diff --git a/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/steps/[stepId]/subscribeWebhook.ts b/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/steps/[stepId]/subscribeWebhook.ts index af58aab68c1..69edc174d01 100644 --- a/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/steps/[stepId]/subscribeWebhook.ts +++ b/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/steps/[stepId]/subscribeWebhook.ts @@ -1,7 +1,7 @@ -import { Typebot, WebhookBlock } from 'models' +import { Typebot, WebhookBlock } from '@typebot.io/schemas' import { NextApiRequest, NextApiResponse } from 'next' -import { methodNotAllowed } from 'utils/api' -import { byId } from 'utils' +import { methodNotAllowed } from '@typebot.io/lib/api' +import { byId } from '@typebot.io/lib' import { authenticateUser } from '@/features/auth/api' import prisma from '@/lib/prisma' diff --git a/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/steps/[stepId]/unsubscribeWebhook.ts b/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/steps/[stepId]/unsubscribeWebhook.ts index 20f8c81833b..9a80073a3fd 100644 --- a/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/steps/[stepId]/unsubscribeWebhook.ts +++ b/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/steps/[stepId]/unsubscribeWebhook.ts @@ -1,7 +1,7 @@ -import { Typebot, WebhookBlock } from 'models' +import { Typebot, WebhookBlock } from '@typebot.io/schemas' import { NextApiRequest, NextApiResponse } from 'next' -import { methodNotAllowed } from 'utils/api' -import { byId } from 'utils' +import { methodNotAllowed } from '@typebot.io/lib/api' +import { byId } from '@typebot.io/lib' import { authenticateUser } from '@/features/auth/api' import prisma from '@/lib/prisma' diff --git a/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/storage/upload-url.ts b/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/storage/upload-url.ts index 0834cb5a8b6..533fd83151a 100644 --- a/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/storage/upload-url.ts +++ b/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/storage/upload-url.ts @@ -1,14 +1,18 @@ import prisma from '@/lib/prisma' -import { InputBlockType, PublicTypebot } from 'models' +import { InputBlockType, PublicTypebot } from '@typebot.io/schemas' import { NextApiRequest, NextApiResponse } from 'next' -import { badRequest, generatePresignedUrl, methodNotAllowed } from 'utils/api' -import { byId, env, isDefined } from 'utils' -import { getStorageLimit } from 'utils/pricing' +import { + badRequest, + generatePresignedUrl, + methodNotAllowed, +} from '@typebot.io/lib/api' +import { byId, env, isDefined } from '@typebot.io/lib' +import { getStorageLimit } from '@typebot.io/lib/pricing' import { sendAlmostReachedStorageLimitEmail, sendReachedStorageLimitEmail, -} from 'emails' -import { WorkspaceRole } from 'db' +} from '@typebot.io/emails' +import { WorkspaceRole } from '@typebot.io/prisma' const LIMIT_EMAIL_TRIGGER_PERCENT = 0.8 diff --git a/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/subscribeWebhook.ts b/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/subscribeWebhook.ts index 443f87e5d5d..651b071b4f8 100644 --- a/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/subscribeWebhook.ts +++ b/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/subscribeWebhook.ts @@ -1,9 +1,9 @@ import { authenticateUser } from '@/features/auth/api' import prisma from '@/lib/prisma' -import { Typebot, WebhookBlock } from 'models' +import { Typebot, WebhookBlock } from '@typebot.io/schemas' import { NextApiRequest, NextApiResponse } from 'next' -import { byId } from 'utils' -import { methodNotAllowed } from 'utils/api' +import { byId } from '@typebot.io/lib' +import { methodNotAllowed } from '@typebot.io/lib/api' const handler = async (req: NextApiRequest, res: NextApiResponse) => { const user = await authenticateUser(req) diff --git a/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/unsubscribeWebhook.ts b/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/unsubscribeWebhook.ts index 6bc5432d08e..6b1da7d3535 100644 --- a/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/unsubscribeWebhook.ts +++ b/apps/viewer/src/pages/api/typebots/[typebotId]/blocks/[blockId]/unsubscribeWebhook.ts @@ -1,9 +1,9 @@ import { authenticateUser } from '@/features/auth/api' import prisma from '@/lib/prisma' -import { Typebot, WebhookBlock } from 'models' +import { Typebot, WebhookBlock } from '@typebot.io/schemas' import { NextApiRequest, NextApiResponse } from 'next' -import { byId } from 'utils' -import { methodNotAllowed } from 'utils/api' +import { byId } from '@typebot.io/lib' +import { methodNotAllowed } from '@typebot.io/lib/api' const handler = async (req: NextApiRequest, res: NextApiResponse) => { const user = await authenticateUser(req) diff --git a/apps/viewer/src/pages/api/typebots/[typebotId]/integrations/email.tsx b/apps/viewer/src/pages/api/typebots/[typebotId]/integrations/email.tsx index 77e6d55213a..86ccbbe2038 100644 --- a/apps/viewer/src/pages/api/typebots/[typebotId]/integrations/email.tsx +++ b/apps/viewer/src/pages/api/typebots/[typebotId]/integrations/email.tsx @@ -3,17 +3,17 @@ import { ResultValues, SendEmailOptions, SmtpCredentials, -} from 'models' +} from '@typebot.io/schemas' import { NextApiRequest, NextApiResponse } from 'next' import { createTransport, getTestMessageUrl } from 'nodemailer' -import { isDefined, isEmpty, isNotDefined, omit } from 'utils' -import { parseAnswers } from 'utils/results' -import { methodNotAllowed, initMiddleware, decrypt } from 'utils/api' +import { isDefined, isEmpty, isNotDefined, omit } from '@typebot.io/lib' +import { parseAnswers } from '@typebot.io/lib/results' +import { methodNotAllowed, initMiddleware, decrypt } from '@typebot.io/lib/api' import { saveErrorLog, saveSuccessLog } from '@/features/logs/api' import Cors from 'cors' import Mail from 'nodemailer/lib/mailer' -import { DefaultBotNotificationEmail } from 'emails' +import { DefaultBotNotificationEmail } from '@typebot.io/emails' import { render } from '@faire/mjml-react/utils/render' import prisma from '@/lib/prisma' import { getLinkedTypebotsChildren } from '@/features/blocks/logic/typebotLink/api' diff --git a/apps/viewer/src/pages/api/typebots/[typebotId]/results.ts b/apps/viewer/src/pages/api/typebots/[typebotId]/results.ts index d2972f44a1a..10618ad03b4 100644 --- a/apps/viewer/src/pages/api/typebots/[typebotId]/results.ts +++ b/apps/viewer/src/pages/api/typebots/[typebotId]/results.ts @@ -1,9 +1,9 @@ import { authenticateUser } from '@/features/auth/api' import { checkChatsUsage } from '@/features/usage' import prisma from '@/lib/prisma' -import { ResultWithAnswers } from 'models' +import { ResultWithAnswers } from '@typebot.io/schemas' import { NextApiRequest, NextApiResponse } from 'next' -import { methodNotAllowed } from 'utils/api' +import { methodNotAllowed } from '@typebot.io/lib/api' const handler = async (req: NextApiRequest, res: NextApiResponse) => { if (req.method === 'GET') { diff --git a/apps/viewer/src/pages/api/typebots/[typebotId]/results/[resultId].ts b/apps/viewer/src/pages/api/typebots/[typebotId]/results/[resultId].ts index 12ea4140417..2eb40adc260 100644 --- a/apps/viewer/src/pages/api/typebots/[typebotId]/results/[resultId].ts +++ b/apps/viewer/src/pages/api/typebots/[typebotId]/results/[resultId].ts @@ -1,7 +1,7 @@ import prisma from '@/lib/prisma' -import { Result } from 'models' +import { Result } from '@typebot.io/schemas' import { NextApiRequest, NextApiResponse } from 'next' -import { methodNotAllowed } from 'utils/api' +import { methodNotAllowed } from '@typebot.io/lib/api' const handler = async (req: NextApiRequest, res: NextApiResponse) => { if (req.method === 'PATCH') { diff --git a/apps/viewer/src/pages/api/typebots/[typebotId]/results/[resultId]/answers.ts b/apps/viewer/src/pages/api/typebots/[typebotId]/results/[resultId]/answers.ts index 0beab679338..9763cd5bb16 100644 --- a/apps/viewer/src/pages/api/typebots/[typebotId]/results/[resultId]/answers.ts +++ b/apps/viewer/src/pages/api/typebots/[typebotId]/results/[resultId]/answers.ts @@ -1,9 +1,9 @@ import prisma from '@/lib/prisma' -import { Answer } from 'db' +import { Answer } from '@typebot.io/prisma' import { got } from 'got' import { NextApiRequest, NextApiResponse } from 'next' -import { isNotDefined } from 'utils' -import { methodNotAllowed } from 'utils/api' +import { isNotDefined } from '@typebot.io/lib' +import { methodNotAllowed } from '@typebot.io/lib/api' const handler = async (req: NextApiRequest, res: NextApiResponse) => { if (req.method === 'PUT') { diff --git a/apps/viewer/src/pages/api/typebots/[typebotId]/webhookBlocks.ts b/apps/viewer/src/pages/api/typebots/[typebotId]/webhookBlocks.ts index aedde8ab405..1510d8a7f35 100644 --- a/apps/viewer/src/pages/api/typebots/[typebotId]/webhookBlocks.ts +++ b/apps/viewer/src/pages/api/typebots/[typebotId]/webhookBlocks.ts @@ -1,9 +1,9 @@ import { authenticateUser } from '@/features/auth/api' import prisma from '@/lib/prisma' -import { Group, WebhookBlock } from 'models' +import { Group, WebhookBlock } from '@typebot.io/schemas' import { NextApiRequest, NextApiResponse } from 'next' -import { byId, isWebhookBlock, parseGroupTitle } from 'utils' -import { methodNotAllowed } from 'utils/api' +import { byId, isWebhookBlock, parseGroupTitle } from '@typebot.io/lib' +import { methodNotAllowed } from '@typebot.io/lib/api' const handler = async (req: NextApiRequest, res: NextApiResponse) => { if (req.method === 'GET') { diff --git a/apps/viewer/src/pages/api/typebots/[typebotId]/webhookSteps.ts b/apps/viewer/src/pages/api/typebots/[typebotId]/webhookSteps.ts index 1bc25a7363b..e7e1f636d9c 100644 --- a/apps/viewer/src/pages/api/typebots/[typebotId]/webhookSteps.ts +++ b/apps/viewer/src/pages/api/typebots/[typebotId]/webhookSteps.ts @@ -1,9 +1,14 @@ import { authenticateUser } from '@/features/auth/api' import prisma from '@/lib/prisma' -import { Group, WebhookBlock } from 'models' +import { Group, WebhookBlock } from '@typebot.io/schemas' import { NextApiRequest, NextApiResponse } from 'next' -import { byId, isNotDefined, isWebhookBlock, parseGroupTitle } from 'utils' -import { methodNotAllowed } from 'utils/api' +import { + byId, + isNotDefined, + isWebhookBlock, + parseGroupTitle, +} from '@typebot.io/lib' +import { methodNotAllowed } from '@typebot.io/lib/api' const handler = async (req: NextApiRequest, res: NextApiResponse) => { if (req.method === 'GET') { diff --git a/apps/viewer/src/pages/api/users/me.ts b/apps/viewer/src/pages/api/users/me.ts index a74450d079a..3d7db033aaa 100644 --- a/apps/viewer/src/pages/api/users/me.ts +++ b/apps/viewer/src/pages/api/users/me.ts @@ -1,7 +1,7 @@ import { authenticateUser } from '@/features/auth/api' import { NextApiRequest, NextApiResponse } from 'next' -import { isNotDefined } from 'utils' -import { methodNotAllowed } from 'utils/api' +import { isNotDefined } from '@typebot.io/lib' +import { methodNotAllowed } from '@typebot.io/lib/api' const handler = async (req: NextApiRequest, res: NextApiResponse) => { if (req.method === 'GET') { diff --git a/apps/viewer/src/pages/old/[[...publicId]].tsx b/apps/viewer/src/pages/old/[[...publicId]].tsx index 27edf605c1c..083f94456e7 100644 --- a/apps/viewer/src/pages/old/[[...publicId]].tsx +++ b/apps/viewer/src/pages/old/[[...publicId]].tsx @@ -2,7 +2,7 @@ import { IncomingMessage } from 'http' import { ErrorPage } from '@/components/ErrorPage' import { NotFoundPage } from '@/components/NotFoundPage' import { GetServerSideProps, GetServerSidePropsContext } from 'next' -import { isDefined, isNotDefined, omit } from 'utils' +import { isDefined, isNotDefined, omit } from '@typebot.io/lib' import prisma from '../../lib/prisma' import { TypebotPageProps, TypebotPageV2 } from '@/components/TypebotPageV2' diff --git a/apps/viewer/src/test/utils/databaseActions.ts b/apps/viewer/src/test/utils/databaseActions.ts index e6172b7185f..884a6e0a92a 100644 --- a/apps/viewer/src/test/utils/databaseActions.ts +++ b/apps/viewer/src/test/utils/databaseActions.ts @@ -1,7 +1,7 @@ -import { PrismaClient } from 'db' -import { SmtpCredentials } from 'models' -import { encrypt } from 'utils/api' -import { proWorkspaceId } from 'utils/playwright/databaseSetup' +import { PrismaClient } from '@typebot.io/prisma' +import { SmtpCredentials } from '@typebot.io/schemas' +import { encrypt } from '@typebot.io/lib/api' +import { proWorkspaceId } from '@typebot.io/lib/playwright/databaseSetup' const prisma = new PrismaClient() diff --git a/apps/viewer/src/utils/api/dbRules.ts b/apps/viewer/src/utils/api/dbRules.ts index dc4c3ee89ba..aa9f32d6da2 100644 --- a/apps/viewer/src/utils/api/dbRules.ts +++ b/apps/viewer/src/utils/api/dbRules.ts @@ -1,5 +1,10 @@ -import { CollaborationType, Prisma, User, WorkspaceRole } from 'db' -import { env } from 'utils' +import { + CollaborationType, + Prisma, + User, + WorkspaceRole, +} from '@typebot.io/prisma' +import { env } from '@typebot.io/lib' const parseWhereFilter = ( typebotIds: string[] | string, diff --git a/apps/viewer/src/utils/server/context.ts b/apps/viewer/src/utils/server/context.ts index d89d9633f4a..13832f9394b 100644 --- a/apps/viewer/src/utils/server/context.ts +++ b/apps/viewer/src/utils/server/context.ts @@ -1,7 +1,7 @@ import prisma from '@/lib/prisma' import { inferAsyncReturnType } from '@trpc/server' import * as trpcNext from '@trpc/server/adapters/next' -import { User } from 'db' +import { User } from '@typebot.io/prisma' import { NextApiRequest } from 'next' export async function createContext(opts: trpcNext.CreateNextContextOptions) { diff --git a/apps/viewer/tsconfig.json b/apps/viewer/tsconfig.json index 03b552ee6d3..84e4ae1b487 100644 --- a/apps/viewer/tsconfig.json +++ b/apps/viewer/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "tsconfig/nextjs.json", + "extends": "@typebot.io/tsconfig/nextjs.json", "compilerOptions": { "baseUrl": ".", "paths": { diff --git a/entrypoint.sh b/entrypoint.sh deleted file mode 100644 index be84976f4fb..00000000000 --- a/entrypoint.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash - -# This entrypoint inject variables at runtime. -# See https://raphaelpralat.medium.com/system-environment-variables-in-next-js-with-docker-1f0754e04cde - -# no verbose -set +x - -# config -envFilename='./.env.production' -nextFolder='./.next/' - -function apply_path { - # read all config file - while read line; do - # no comment or not empty - if [ "${line:0:1}" == "#" ] || [ "${line}" == "" ]; then - continue - fi - - # split - configName="$(cut -d'=' -f1 <<<"$line")" - configValue="$(cut -d'=' -f2 <<<"$line")" # get system env - envValue=$(env | grep "^$configName=" | grep -oe '[^=]*$'); - - if [ -n "$configValue" ] && [ -n "$envValue" ]; then - echo "Injecting ${configName}..." - fi - # replace all - find $nextFolder \( -type d -name .git -prune \) -o -type f -print0 | xargs -0 sed -i "s#$configValue#$envValue#g" - done < $envFilename -} - -apply_path -exec "$@" \ No newline at end of file diff --git a/package.json b/package.json index 5acd1fb1a99..9ebf2d3b5e6 100644 --- a/package.json +++ b/package.json @@ -3,10 +3,6 @@ "name": "typebot-os", "private": true, "license": "AGPL-3.0-or-later", - "workspaces": [ - "packages/*", - "apps/*" - ], "scripts": { "prepare": "husky install", "docker:up": "docker compose -f docker-compose.dev.yml up -d && sleep 5", diff --git a/packages/bot-engine/src/features/blocks/inputs/payment/index.ts b/packages/bot-engine/src/features/blocks/inputs/payment/index.ts deleted file mode 100644 index ac2b041c9cb..00000000000 --- a/packages/bot-engine/src/features/blocks/inputs/payment/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { PaymentForm } from './components/PaymentForm/' diff --git a/packages/bot-engine/.eslintrc.js b/packages/deprecated/bot-engine/.eslintrc.js similarity index 100% rename from packages/bot-engine/.eslintrc.js rename to packages/deprecated/bot-engine/.eslintrc.js diff --git a/packages/bot-engine/README.md b/packages/deprecated/bot-engine/README.md similarity index 100% rename from packages/bot-engine/README.md rename to packages/deprecated/bot-engine/README.md diff --git a/packages/bot-engine/package.json b/packages/deprecated/bot-engine/package.json similarity index 84% rename from packages/bot-engine/package.json rename to packages/deprecated/bot-engine/package.json index 5cb9241deec..5e4f73dbf04 100644 --- a/packages/bot-engine/package.json +++ b/packages/deprecated/bot-engine/package.json @@ -1,5 +1,6 @@ { "name": "bot-engine", + "private": true, "license": "AGPL-3.0-or-later", "version": "0.1.0", "main": "dist/index.js", @@ -15,7 +16,6 @@ "@stripe/stripe-js": "1.46.0", "prop-types": "15.8.1", "qs": "6.11.0", - "react-frame-component": "5.2.6", "react-phone-number-input": "3.2.16", "react-scroll": "1.8.9", "react-transition-group": "4.4.5", @@ -29,24 +29,24 @@ "@types/react-scroll": "1.8.6", "@types/react-transition-group": "4.4.5", "autoprefixer": "10.4.13", - "db": "workspace:*", + "@typebot.io/prisma": "workspace:*", "esbuild": "^0.17.5", "eslint": "8.32.0", "eslint-config-custom": "workspace:*", - "models": "workspace:*", + "@typebot.io/schemas": "workspace:*", "postcss": "8.4.21", "prettier": "2.8.3", "react": "18.2.0", "react-dom": "18.2.0", "tailwindcss": "3.2.4", - "tsconfig": "workspace:*", + "@typebot.io/tsconfig": "workspace:*", "tsup": "6.5.0", "typebot-js": "workspace:*", "typescript": "4.9.4", - "utils": "workspace:*" + "@typebot.io/lib": "workspace:*" }, "peerDependencies": { - "db": "workspace:*", + "@typebot.io/prisma": "workspace:*", "react": "18.0.0", "react-dom": "18.0.0" } diff --git a/packages/bot-engine/postcss.config.js b/packages/deprecated/bot-engine/postcss.config.js similarity index 100% rename from packages/bot-engine/postcss.config.js rename to packages/deprecated/bot-engine/postcss.config.js diff --git a/packages/bot-engine/src/assets/importantStyles.css b/packages/deprecated/bot-engine/src/assets/importantStyles.css similarity index 100% rename from packages/bot-engine/src/assets/importantStyles.css rename to packages/deprecated/bot-engine/src/assets/importantStyles.css diff --git a/packages/bot-engine/src/assets/phone.css b/packages/deprecated/bot-engine/src/assets/phone.css similarity index 100% rename from packages/bot-engine/src/assets/phone.css rename to packages/deprecated/bot-engine/src/assets/phone.css diff --git a/packages/bot-engine/src/assets/style.css b/packages/deprecated/bot-engine/src/assets/style.css similarity index 100% rename from packages/bot-engine/src/assets/style.css rename to packages/deprecated/bot-engine/src/assets/style.css diff --git a/packages/bot-engine/src/components/ChatGroup/AvatarSideContainer.tsx b/packages/deprecated/bot-engine/src/components/ChatGroup/AvatarSideContainer.tsx similarity index 96% rename from packages/bot-engine/src/components/ChatGroup/AvatarSideContainer.tsx rename to packages/deprecated/bot-engine/src/components/ChatGroup/AvatarSideContainer.tsx index a114d10dfd1..3a25f4892e0 100644 --- a/packages/bot-engine/src/components/ChatGroup/AvatarSideContainer.tsx +++ b/packages/deprecated/bot-engine/src/components/ChatGroup/AvatarSideContainer.tsx @@ -7,7 +7,6 @@ import React, { useState, } from 'react' import { Avatar } from '../avatars/Avatar' -import { useFrame } from 'react-frame-component' import { CSSTransition } from 'react-transition-group' import { ResizeObserver } from 'resize-observer' @@ -17,7 +16,6 @@ export const AvatarSideContainer = forwardRef(function AvatarSideContainer( { hostAvatarSrc, keepShowing }: Props, ref: ForwardedRef ) { - const { document } = useFrame() const [show, setShow] = useState(false) const [avatarTopOffset, setAvatarTopOffset] = useState(0) diff --git a/packages/bot-engine/src/components/ChatGroup/ChatBlock/InputChatBlock.tsx b/packages/deprecated/bot-engine/src/components/ChatGroup/ChatBlock/InputChatBlock.tsx similarity index 97% rename from packages/bot-engine/src/components/ChatGroup/ChatBlock/InputChatBlock.tsx rename to packages/deprecated/bot-engine/src/components/ChatGroup/ChatBlock/InputChatBlock.tsx index 1b05d154b77..a77820c81c4 100644 --- a/packages/bot-engine/src/components/ChatGroup/ChatBlock/InputChatBlock.tsx +++ b/packages/deprecated/bot-engine/src/components/ChatGroup/ChatBlock/InputChatBlock.tsx @@ -1,8 +1,8 @@ import React, { useState } from 'react' import { useAnswers } from '../../../providers/AnswersProvider' -import { InputBlock, InputBlockType } from 'models' +import { InputBlock, InputBlockType } from '@typebot.io/schemas' import { GuestBubble } from './bubbles/GuestBubble' -import { byId } from 'utils' +import { byId } from '@typebot.io/lib' import { InputSubmitContent } from '@/types' import { useTypebot } from '@/providers/TypebotProvider' import { isInputValid } from '@/utils/inputs' diff --git a/packages/bot-engine/src/components/ChatGroup/ChatBlock/bubbles/GuestBubble.tsx b/packages/deprecated/bot-engine/src/components/ChatGroup/ChatBlock/bubbles/GuestBubble.tsx similarity index 100% rename from packages/bot-engine/src/components/ChatGroup/ChatBlock/bubbles/GuestBubble.tsx rename to packages/deprecated/bot-engine/src/components/ChatGroup/ChatBlock/bubbles/GuestBubble.tsx diff --git a/packages/bot-engine/src/components/ChatGroup/ChatBlock/bubbles/HostBubble.tsx b/packages/deprecated/bot-engine/src/components/ChatGroup/ChatBlock/bubbles/HostBubble.tsx similarity index 94% rename from packages/bot-engine/src/components/ChatGroup/ChatBlock/bubbles/HostBubble.tsx rename to packages/deprecated/bot-engine/src/components/ChatGroup/ChatBlock/bubbles/HostBubble.tsx index 6cb82296e6a..ffb9e04cbb5 100644 --- a/packages/bot-engine/src/components/ChatGroup/ChatBlock/bubbles/HostBubble.tsx +++ b/packages/deprecated/bot-engine/src/components/ChatGroup/ChatBlock/bubbles/HostBubble.tsx @@ -3,7 +3,7 @@ import { EmbedBubble } from '@/features/blocks/bubbles/embed' import { ImageBubble } from '@/features/blocks/bubbles/image' import { TextBubble } from '@/features/blocks/bubbles/textBubble' import { VideoBubble } from '@/features/blocks/bubbles/video' -import { BubbleBlock, BubbleBlockType } from 'models' +import { BubbleBlock, BubbleBlockType } from '@typebot.io/schemas' type Props = { block: BubbleBlock diff --git a/packages/bot-engine/src/components/ChatGroup/ChatGroup.tsx b/packages/deprecated/bot-engine/src/components/ChatGroup/ChatGroup.tsx similarity index 99% rename from packages/bot-engine/src/components/ChatGroup/ChatGroup.tsx rename to packages/deprecated/bot-engine/src/components/ChatGroup/ChatGroup.tsx index 9cfe847d88e..4e4756153f0 100644 --- a/packages/bot-engine/src/components/ChatGroup/ChatGroup.tsx +++ b/packages/deprecated/bot-engine/src/components/ChatGroup/ChatGroup.tsx @@ -11,14 +11,14 @@ import { isIntegrationBlock, isLogicBlock, byId, -} from 'utils' +} from '@typebot.io/lib' import { BubbleBlock, InputBlock, LogicBlockType, PublicTypebot, Block, -} from 'models' +} from '@typebot.io/schemas' import { HostBubble } from './ChatBlock/bubbles/HostBubble' import { InputChatBlock } from './ChatBlock/InputChatBlock' import { parseVariables } from '@/features/variables' diff --git a/packages/bot-engine/src/components/ChatGroup/index.tsx b/packages/deprecated/bot-engine/src/components/ChatGroup/index.tsx similarity index 100% rename from packages/bot-engine/src/components/ChatGroup/index.tsx rename to packages/deprecated/bot-engine/src/components/ChatGroup/index.tsx diff --git a/packages/bot-engine/src/components/ConversationContainer.tsx b/packages/deprecated/bot-engine/src/components/ConversationContainer.tsx similarity index 93% rename from packages/bot-engine/src/components/ConversationContainer.tsx rename to packages/deprecated/bot-engine/src/components/ConversationContainer.tsx index 015f4f454c6..c747c691ffd 100644 --- a/packages/bot-engine/src/components/ConversationContainer.tsx +++ b/packages/deprecated/bot-engine/src/components/ConversationContainer.tsx @@ -1,9 +1,14 @@ import React, { useEffect, useRef, useState } from 'react' import { ChatGroup } from './ChatGroup' -import { useFrame } from 'react-frame-component' import { useAnswers } from '../providers/AnswersProvider' -import { Group, Edge, PublicTypebot, Theme, VariableWithValue } from 'models' -import { byId, isDefined, isInputBlock, isNotDefined } from 'utils' +import { + Group, + Edge, + PublicTypebot, + Theme, + VariableWithValue, +} from '@typebot.io/schemas' +import { byId, isDefined, isInputBlock, isNotDefined } from '@typebot.io/lib' import { animateScroll as scroll } from 'react-scroll' import { LinkedTypebot, useTypebot } from '@/providers/TypebotProvider' import { setCssVariablesValue } from '@/features/theme' @@ -29,7 +34,6 @@ export const ConversationContainer = ({ linkedBotQueue, popEdgeIdFromLinkedTypebotQueue, } = useTypebot() - const { document: frameDocument } = useFrame() const [displayedGroups, setDisplayedGroups] = useState< { group: Group; startBlockIndex: number }[] >([]) @@ -122,9 +126,9 @@ export const ConversationContainer = ({ } useEffect(() => { - if (!frameDocument) return - setCssVariablesValue(theme, frameDocument.body.style) - }, [theme, frameDocument]) + if (!document) return + setCssVariablesValue(theme, document.body.style) + }, [theme]) const autoScrollToBottom = () => { if (!scrollableContainer.current) return diff --git a/packages/bot-engine/src/components/LiteBadge.tsx b/packages/deprecated/bot-engine/src/components/LiteBadge.tsx similarity index 93% rename from packages/bot-engine/src/components/LiteBadge.tsx rename to packages/deprecated/bot-engine/src/components/LiteBadge.tsx index e871229fe1b..f892671f455 100644 --- a/packages/bot-engine/src/components/LiteBadge.tsx +++ b/packages/deprecated/bot-engine/src/components/LiteBadge.tsx @@ -1,8 +1,6 @@ import React, { useEffect, useRef } from 'react' -import { useFrame } from 'react-frame-component' export const LiteBadge = () => { - const { document } = useFrame() const liteBadge = useRef(null) useEffect(() => { diff --git a/packages/bot-engine/src/components/PopupBlockedToast.tsx b/packages/deprecated/bot-engine/src/components/PopupBlockedToast.tsx similarity index 100% rename from packages/bot-engine/src/components/PopupBlockedToast.tsx rename to packages/deprecated/bot-engine/src/components/PopupBlockedToast.tsx diff --git a/packages/bot-engine/src/components/SendButton.tsx b/packages/deprecated/bot-engine/src/components/SendButton.tsx similarity index 100% rename from packages/bot-engine/src/components/SendButton.tsx rename to packages/deprecated/bot-engine/src/components/SendButton.tsx diff --git a/packages/bot-engine/src/components/TypebotViewer.tsx b/packages/deprecated/bot-engine/src/components/TypebotViewer.tsx similarity index 87% rename from packages/bot-engine/src/components/TypebotViewer.tsx rename to packages/deprecated/bot-engine/src/components/TypebotViewer.tsx index 811df5eead7..d42c2b86331 100644 --- a/packages/bot-engine/src/components/TypebotViewer.tsx +++ b/packages/deprecated/bot-engine/src/components/TypebotViewer.tsx @@ -1,6 +1,5 @@ import { CSSProperties, useMemo } from 'react' import { TypebotProvider } from '../providers/TypebotProvider' -import Frame from 'react-frame-component' import styles from '../assets/style.css' import importantStyles from '../assets/importantStyles.css' import phoneSyle from '../assets/phone.css' @@ -12,10 +11,10 @@ import { Edge, PublicTypebot, VariableWithValue, -} from 'models' -import { Log } from 'db' +} from '@typebot.io/schemas' +import { Log } from '@typebot.io/prisma' import { LiteBadge } from './LiteBadge' -import { getViewerUrl, isEmpty, isNotEmpty } from 'utils' +import { getViewerUrl, isEmpty, isNotEmpty } from '@typebot.io/lib' export type TypebotViewerProps = { typebot: Omit @@ -71,21 +70,13 @@ export const TypebotViewer = ({ if (isEmpty(apiHost)) return

process.env.NEXT_PUBLIC_VIEWER_URL is missing in env

return ( - - - - - - } - name="Typebot viewer" - style={{ width: '100%', height: '100%', border: 'none', ...style }} - > + <> + + + {isNotEmpty(typebot?.theme?.general?.font) && (