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 | 3032 ++++++++--------- pnpm-workspace.yaml | 2 + .../builder-entrypoint.sh | 4 +- env.sh => scripts/env.sh | 0 .../viewer-entrypoint.sh | 0 turbo.json | 16 +- 987 files changed, 2716 insertions(+), 2770 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 73ac1e08f..78426d7fe 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 6085ecb71..1ddeeba8d 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 c9c169e46..6310f42b5 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 bfc5e56ba..9e00557af 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 6a5e36555..b5361742f 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 6293e1101..ccb234107 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 4f672501c..2bf7e48b5 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 97fc3645b..f41ac3300 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 96a85215b..810a50226 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 45fa8adeb..a34c10bdf 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 831f32972..3e54009f9 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 b1f0c04ed..e0c36f341 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 917fdd864..c70eef447 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 75b9ddff8..42fc31607 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 68e5355d1..68b66f39d 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 64b633bf9..ffed13c17 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 4fa709a00..5af0712f1 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 f5b71e887..150c2633e 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 0e2fa6dc7..df9b56f19 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 0517890e4..27ad97799 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 e7c77dfa9..fba8971fa 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 8f92654d3..0de20aff9 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 a9a2b719b..2927551c9 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 bd3456dfa..fab8a3ea6 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 0c12925c3..b45db6df4 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 9ddf7da8c..16688ed16 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 63e0b4e69..f90c08ab3 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 7db6586cb..d52bf98d1 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 cac3babce..014d1c48f 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 b51e4e540..0332260bb 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 88ae51d12..1c6062614 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 c183e2afd..944815c5e 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 8b743d705..1518315ca 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 7da0db1ae..24b51db7c 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 1eaeeea50..1f9fb1dca 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 0d5466cba..bedb74187 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 029be2dd0..dd8dc0433 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 35a573e23..2a4b299e2 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 f9bcc2252..ec310dbd6 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 1ce163417..c8f80449f 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 682208166..1764ea85b 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 4b9108224..e7d1dddd5 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 119075e6f..6836e0b2c 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 705249839..3147d4d18 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 9e753a3d6..4861eb500 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 e27c5b87e..39a88bbac 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 cc9e33147..8ca1b2e2b 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 4781485c8..8b6a1711d 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 cf3311304..c4e4f171d 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 faf24e984..2dd802b58 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 8ffa88887..debacf61e 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 a94d5ad34..d400a6029 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 421d134ae..033a5a79e 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 e0ce94fdf..6698a11ba 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 d7a2f9c12..9ad1f75a9 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 2aabeb987..7d7c1b5df 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 f945cffc3..9b757759f 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 65df37320..e8d9db8d2 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 b917814e3..fc51f90fe 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 3df5c5cfe..9d1cc531f 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 302e04acb..b91ae548d 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 3fbcc4aed..7f0ea4e26 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 92877a7d5..7d2b238e5 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 15b53edfe..904481743 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 4a27cd5d0..e63bed04a 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 cc5ba4ac5..978e60be5 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 52b070af6..b82c4431d 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 c794ff7eb..2cbb3cdf7 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 bf5e7c937..c24003684 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 c6a87fec8..129bf17b0 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 04b30dbbe..e27cc6930 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 2aede252e..7a4d3e994 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 d6c857e0c..fab9b90fb 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 43faa2774..7e9aa4164 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 3b6550e64..a36b0c731 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 a0cfb8d29..55ab0efb8 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 49a20fb09..e0cb84b14 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 4f39b3d54..d68fa464c 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 11a3258c9..27a34b5ce 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 8d741ae96..62216d8fe 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 1a1e8bdc5..689fcfbc7 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 7b722897f..39568262a 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 e025d670c..633a11cc1 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 b5979d59e..ee3553873 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 842e5b047..deca49821 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 cc69d2f7d..ef49e6c9c 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 a6d054e5a..ae61cb894 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 3a83f82ea..27d9e9a3a 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 c1bf88faa..58e1cd6c8 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 9a315822e..a0674f087 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 6bb8c0971..a7d1b5b31 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 d94b89645..ae5e92f88 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 3256192f0..9d844aac9 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 0d2360bc5..a49abd6cd 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 651e3161b..0eff36ed0 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 adaed434f..38f8e4198 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 77f04547c..10c1a9bd8 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 6e3dabf9d..be98c91e9 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 a12f72e81..8b8c0a89b 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 91d2be5c3..39be503c0 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 0e66dee81..97b310c10 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 4a333ba06..b0d3006df 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 35326c26d..236c57e31 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 8d6886b64..a8b041c47 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 eadfc2599..452b738a2 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 3778ad4f2..110f8ccbb 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 d5723331b..5a6359127 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 d4ff9a99d..0c17c2e9f 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 6c2095547..e507cc0ae 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 2b58e1035..035becff3 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 fec290bd0..ff4284432 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 af386f63f..fa151a5f9 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 318ba2831..224fc5128 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 9f8b77c69..bd0289180 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 a077bd0a6..9d7278c61 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 1e35f2632..e8746ebd5 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 d1587e62b..f352bdda5 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 9db2fb3b7..0e8fc5a15 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 b3ec74e9c..ee19c6b78 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 d6258961e..64d7335b1 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 d005a90cb..490d5ddc9 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 c4b839452..066558262 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 9caa8964f..a2d4525c6 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 8e0c97530..266a0580b 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 50fd611da..b1508e085 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 89b01afb0..d26b070f5 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 bcc19f4af..4c39e2d62 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 89beb49d3..d3695e208 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 6ba92f170..96442176b 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 998979e76..bf47767be 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 2cedbb85c..a902e766b 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 c7a579f45..8b271947a 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 cc06411fd..5cb48b223 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 92564d307..013730ebb 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 fe434a68d..9f464cdee 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 b92588aae..a76d6360a 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 1d79ba7fa..b27842018 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 739484bab..d61bc20f6 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 d61ff16c6..b4bd4baed 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 65e7d4120..95fc7b2e2 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 3ab7dfa37..37212b487 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 a495ed8e4..34171efbf 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 5f9098f84..39dcd035d 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 580a4df26..bc2d9a276 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 6c509003d..ec61fc57e 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 fef99b4f3..397a4f674 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 78f680348..d9ded0d39 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 3bea66b74..9287d01da 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 92a24000c..5aafba32c 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 4eb05befd..fb56a55d2 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 3af45e725..f1107b7d9 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 481195e7e..b53de1802 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 f78aa7318..3ea5f04a3 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 fdcf64d46..8a19d14c3 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 8cc764c66..56e8b8df3 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 cfd4c2cf9..5c288ba11 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 c8793c6b7..e88447683 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 b23afcf27..5479c7a32 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 3b132038e..a13638575 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 d04e7cbd0..cb8c130a3 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 75905b4e4..8081b0437 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 23b99ccac..5cc8494f3 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 b829e409a..5a4b164a2 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 8dbf9f729..2c6c3c3c4 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 4e125c335..ac9fff144 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 5ca6ae3d4..4626f53ae 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 87be06b1a..2ee88db19 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 cbf86cee2..4fb04bc2c 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 25813059e..657158075 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 afb109101..535f3ace1 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 7f0c2d478..9bb8fa464 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 450c86866..d7cdc1a82 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 4f5ddc6bc..cf01b9244 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 aeac65353..b11a428d1 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 1aa517646..0d1133298 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 d892d75db..ccb3c823d 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 0dbe9f8d4..61e2a67b4 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 852b26a88..b905e947f 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 3d7ea2a39..f7bc9039a 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 8dcb2f999..da35fd274 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 dc0f9bd84..f1670604d 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 ae020ce90..78fe4319e 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 c13407af1..821ed9359 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 992c19cc8..ec53ec613 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 cf42ae842..0ff46d001 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 931920914..a67aa8378 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 a95c0e683..5aab1cd96 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 cd8ccc52a..7f521f106 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 484fd4e2f..dddda4f0a 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 c7bfeb532..1f1c3773a 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 6d8c354d2..45be8c065 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 892cc76ba..cacc106ec 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 39efe7178..d4b2a69dd 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 c041b68e1..a46c9bad2 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 3cc45a9dd..d0dc6931b 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 001569b57..025efd4f2 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 14fd57b41..cc88494fd 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 124c0c4a4..edb022d03 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 ca74f5b9a..bc3bd3371 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 c721c3ff2..70cedbf81 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 294687931..03029ea31 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 39887375e..ca577977d 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 b6a8600bc..69c3ae6a2 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 0d756939b..2ccedf7ba 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 3f4d82318..8a5e01ce9 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 550802a0b..99970931d 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 10b56f448..f5878952b 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 eba90bbae..991021106 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 22bd3d8ec..b45e06a07 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 25126bf77..ff4d0562e 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 002c2d96c..0371d76f6 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 05adb7f6a..cfd3eb556 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 86a1408eb..db113030c 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 54a725d64..db2d21b22 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 4ad7eaebc..877a1abfa 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 fe19f25e6..59f5d7e50 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 968785ea9..f9c6efd6a 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 df7a2dd9c..7e95cc98f 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 a85d0eb20..0130d21b4 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 6a93711e0..eb8f46d05 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 08ae2e978..eb6711fe6 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 de7ba9f71..153c3ffa4 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 41da67c5a..52eda26c1 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 829c97942..9d1ef099b 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 075e5217e..b03c82234 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 4430ba33e..d670a665c 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 0566c87f9..222f75f7e 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 c503ce8f1..98a35b2d0 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 30c1952f9..c5c10acb4 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 c04660190..a956be4e3 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 25f2130b8..16eccdffc 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 529bdfbea..89952079e 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 29f1a8b23..f5d41d5b8 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 dfa608280..0c8e43ffb 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 ede5f3fba..a597cc051 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 4ca75ce8d..1b54af610 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 781af961e..fe650ea3b 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 429ed0145..206c7a545 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 8acd54374..b04dc1b9c 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 f76da8f5c..912abb472 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 dab31bf6d..b71fe87ec 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 ac96a3dd9..baddcdfc4 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 029044c10..ac33f0b41 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 14148e85b..9eb218ba5 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 69c34a545..4cd4aae93 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 722a9c537..761084dd4 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 02f4207b6..6ade2f390 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 550b3b379..49f23cccf 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 38050f8fb..2c7d8871a 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 60bc5681e..658ad57c0 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 10fc205aa..3ee868c03 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 9a6621547..3481cb638 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 88b92e7dc..b70dc1746 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 74b445ad7..b3a27bb27 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 2e8dcb7a0..14421810e 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 017224657..6fa1d82ff 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 affadb5bd..4b0151606 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 dc4feec17..72b0f02d2 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 fa5773305..638a30495 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 1e62c555b..ac7d5983f 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 f21605178..487d68be5 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 801c19f48..03c7a06e0 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 334584e45..84eebb46b 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 75d24a7fb..3dce87290 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 3d4a74332..5f32d8291 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 c7e03f5e5..94b285816 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 d43574bf3..9b4b7f8b1 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 733e2b132..d19eb29a0 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 264ed46f9..99c8fae63 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 d81fb4b2c..6e9fac0c0 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 9af43c9be..e8136d37d 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 9329ced05..077b886c6 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 5e79e8516..307c6df6f 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 5ec1ae7c9..5868c12f8 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 d41f2de3e..dcdc1bebb 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 d45a10f49..be149c86f 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 296a764f5..b09a42ee9 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 bcccaf64d..9eae8769c 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 4736aa312..3db840879 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 0617e0616..d46361695 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 85257d6f8..b96149068 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 ab1974516..cdb897705 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 b4c3c900e..5f634806f 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 87bf516cc..b76bf3db0 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 6911cf56f..c580c8db7 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 9ee1dbd4c..fbfe013ef 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 e2427f942..05e7019a3 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 f687d8b49..7070bed79 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 3fc274df5..711e2615f 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 23e70273d..de4e532fe 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 3ee74b22c..6db5face2 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 d3d1f32c5..597dda1a4 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 15c193ce4..d48febd5c 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 39cbacc5b..0f29507e7 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 1a42c0579..411a01a8e 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 5e42d627d..57725db91 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 7b011f9a0..d6ddabdc4 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 12da7419c..3037d6b79 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 ebc18be8f..8f0be1766 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 2f921089e..00ffd0327 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 733ad6c5f..caabd5a47 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 041b80e4c..268c84238 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 eeadfe945..6c1df701f 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 f6867f812..9ee8b64ea 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 db3e2d6fa..ce34e5433 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 db0572970..9fd6f11a2 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 9d5642378..4c068073a 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 2f647f6c2..4fb2ba97f 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 16a689f9e..7cdee98f9 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 481e4195a..6450906f2 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 80dcac163..7213cc474 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 33c0fc5be..0d4f49873 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 91ef33486..5b96aa7d5 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 ed20f26df..eb672aa1c 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 e996a5134..60455e382 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 5c764a9c5..7c2604180 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 12d1c54e3..6a0bb7e68 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 15ba963cc..74105b11c 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 07f9ea92a..491d709ff 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 320f1319b..999285df0 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 e26665ddf..3b1b563e1 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 e775f0f19..20dae937b 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 c12918478..aa63c7542 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 11c82bca9..5697d0683 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 6cc2b4003..11f21d6a0 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 e7f94a68c..d548f01a9 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 960a5f942..010c20d0c 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 87f2597cb..56b40d0bc 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 33b1f7b78..618ef9fd1 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 42f76e9b3..fe1bff32c 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 7b9b7efb1..c9e234cad 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 594ea0cff..68d0afd8d 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 ae062e7cd..c4b699dc9 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 1f9e97365..442bf3f6b 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 8c25e94a6..8d6f1b017 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 e4f6a4f3f..6397dadc1 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 28b307215..33feef7d0 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 1896fc4d5..e71f79c1f 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 7fab529e3..13abf46c6 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 5279efa3e..c679369fc 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 a75b0d18e..95ef5426d 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 bef0c6e72..5eacb6052 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 50b04fb05..cb5e44bcf 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 b4083b5ee..29b8a6ba4 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 7fa455542..5a1ac0ff3 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 bad36cab1..a18e57033 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 058a12480..218b9f09c 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 6942d0d76..e082318cb 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 1fcf41574..d00c952bf 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 66224e357..d2aaa7b35 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 a90d3d3a5..cfcf22ae4 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 d0933eba0..bd809bd7f 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 a202b4155..ed60fa783 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 1acbf6157..1a3d7703f 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 e0faebd7d..785e59826 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 936c6a8e1..a331d7603 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 ebccc22d4..9c7c9340d 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 9276f5b5a..37af5af20 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 a69177670..e8a53adcf 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 08bfb9dca..6ec399d8d 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 f31bae079..391407308 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 a63b9494f..74f222b70 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 632db9bc8..76044b19e 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 a08f6d4db..2dd803505 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 efff54977..485a58180 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 282b5c221..0c75ba466 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 62d7526e6..92d9b06b5 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 5516350e5..ea2b1974c 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 bf0ff6cd9..fac6600c3 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 2834fa768..08ac7b55e 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 7f218df88..2aaa1e371 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 cef317f7a..7ffb03abb 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 53d5d0390..7f06f4430 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 f91aeca27..65d7c88df 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 43fed481a..616b5b644 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 eab9c30be..2cdd8df5a 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 add2cef2d..1ff46cfac 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 08538de1f..db711dff8 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 1fed19f43..2843abf70 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 b567ca31a..e613e4c6d 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 9717bbb78..eded4f163 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 9162f4459..35a659bd9 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 259c0220c..e03e05108 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 f49ed8433..a7f2a04c9 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 386545b5f..7122c3410 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 e9e3b310a..1370d4a10 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 cb67eb6be..c8092ff07 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 fa2bb627c..3c6a2e072 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 03b552ee6..84e4ae1b4 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 41325bbac..c68f39185 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 ad56c3759..4e22ab94d 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 dc209ed3a..786e6a1b0 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 9176421b7..884cc4c35 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 c6d7f7f8e..01eb162f2 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 bcf0ab552..7d7b472fd 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 ef36374d3..1c20e75b4 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 1db449a7a..b5953105c 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 9e00caa45..c2f79998b 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 03b552ee6..84e4ae1b4 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 38c0b5a7b..6627a0d2b 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 cf648d558..0c1791acc 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 af5f32662..eb7cb936f 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 f08e0cf5e..928c303fb 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 11dfa36d0..42428710d 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 0b53a2359..96a95f7df 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 0805cd9e6..0f3b84d1d 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 67255c0ee..df40d03b5 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 d2df48498..0405f28c1 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 43988b047..a029b2e93 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 a2ed7f4a9..d6178dacc 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 c9c5f2451..7850c5e75 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 3cdd59228..a81d285c9 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 445bc0b46..d6bcd153b 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 be21ca94d..bf61a2cca 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 2f5174479..019c95b0b 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 3d020d58d..9b82a0f4b 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 719e76b88..8d12fb7a3 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 1183d5832..41fb064e4 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 3ca4cb50a..14f18c5b1 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 6aebc4393..670157712 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 e1f26acbc..7ffe28237 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 937529dec..377c478c4 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 ac8a7c1d4..e07a26c2b 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 d7093b613..36e8a25f7 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 32c1aa457..6cd7d6d57 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 2cdf99e21..b35e9f6fc 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 01c286734..c76121070 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 f79cadd83..29695ea8c 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 eadd36818..16ddd6095 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 86af31bb6..8860e142a 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 427bb8bc3..0557a5d3e 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 ba07f257b..781008c26 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 cfddb034b..4765422ff 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 618785161..8bf0070cb 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 a95887db8..624f9fe54 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 d9179bd6e..c1e06e888 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 fddd85cf8..61747383e 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 56fa7b4b3..034e1f344 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 5a381a472..a83489ca5 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 bb1adf5e8..8043684ef 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 2e94cddd5..acf1c4a32 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 f5cd4a546..64e575aa7 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 97122fd9d..4c0dd56f4 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 44cc38aee..fd8747313 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 11ff17cd6..2ac9d29c0 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 1065d182f..be8c5fdb4 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 3b0d8500a..b2e1c784b 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 01df4a31a..469108051 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 7b12085d8..9b622e2a4 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 21ba4eae5..cc990123d 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 6e80e023c..d413b62a6 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 299008e0f..caf9b3d5a 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 ec286594a..05cd8c1c7 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 7993d28f6..294f5cc1f 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 dd71f9c18..16fbefa58 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 11a50fc58..4f46e12c8 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 232ef1c38..9d986ca1f 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 d91de1628..ede8241de 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 a13b99e64..b3989d719 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 f4e31f5b4..093b1eaac 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 ccd9ae386..91af45016 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 89d361008..4904d60c0 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 a9f2db835..30566b5f0 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 1b9b45adf..b70166876 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 72af52433..ca72248f5 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 434f7c38c..c82075e07 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 f15ec2a78..ade2fc2ae 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 b0106f8ca..d84d13d7f 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 fcc473f9c..830f668e4 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 fe2015e38..c84d65408 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 3ff90179d..e9bfb91fe 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 af58aab68..69edc174d 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 20f8c8183..9a80073a3 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 0834cb5a8..533fd8315 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 443f87e5d..651b071b4 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 6bc5432d0..6b1da7d35 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 77e6d5521..86ccbbe20 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 d2972f44a..10618ad03 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 12ea41404..2eb40adc2 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 0beab6793..9763cd5bb 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 aedde8ab4..1510d8a7f 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 1bc25a736..e7e1f636d 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 a74450d07..3d7db033a 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 27edf605c..083f94456 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 e6172b718..884a6e0a9 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 dc4c3ee89..aa9f32d6d 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 d89d9633f..13832f939 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 03b552ee6..84e4ae1b4 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 be84976f4..000000000 --- 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 5acd1fb1a..9ebf2d3b5 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 ac2b041c9..000000000 --- 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 5cb9241de..5e4f73dbf 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 a114d10df..3a25f4892 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 1b05d154b..a77820c81 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 6cb82296e..ffb9e04cb 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 9cfe847d8..4e4756153 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 015f4f454..c747c691f 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 e871229fe..f892671f4 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 811df5eea..d42c2b863 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) && (