From 0e69e0eaca66fe5da5c06a9906afc46b2d7ca4a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kayla=20=E3=81=AF=E3=81=AA?= Date: Wed, 25 Mar 2026 15:21:19 -0600 Subject: [PATCH] chore: modernize typescript api client/types imports (#23637) --- docs/about/contributing/frontend.md | 24 ----------- site/e2e/api.ts | 4 +- site/e2e/helpers.ts | 10 ++--- site/e2e/reporter.ts | 2 +- site/e2e/setup/addUsersAndLicense.spec.ts | 2 +- site/e2e/tests/deployment/general.spec.ts | 2 +- site/e2e/tests/deployment/network.spec.ts | 2 +- .../tests/deployment/observability.spec.ts | 2 +- site/e2e/tests/deployment/security.spec.ts | 2 +- site/e2e/tests/deployment/userAuth.spec.ts | 2 +- .../tests/deployment/workspaceProxies.spec.ts | 2 +- site/e2e/tests/externalAuth.spec.ts | 2 +- site/e2e/tests/groups/removeMember.spec.ts | 2 +- .../templates/updateTemplateSchedule.spec.ts | 2 +- site/jest.setup.ts | 2 +- site/src/@types/storybook.d.ts | 2 +- site/src/api/queries/appearance.ts | 4 +- site/src/api/queries/audits.ts | 4 +- site/src/api/queries/authCheck.ts | 6 +-- site/src/api/queries/buildInfo.ts | 4 +- site/src/api/queries/chats.test.ts | 4 +- site/src/api/queries/chats.ts | 4 +- site/src/api/queries/connectionlog.ts | 4 +- site/src/api/queries/debug.ts | 7 +++- site/src/api/queries/deployment.ts | 2 +- site/src/api/queries/entitlements.ts | 4 +- site/src/api/queries/experiments.ts | 4 +- site/src/api/queries/externalAuth.ts | 4 +- site/src/api/queries/files.ts | 2 +- site/src/api/queries/groups.ts | 10 ++--- site/src/api/queries/idpsync.ts | 4 +- site/src/api/queries/insights.ts | 8 +++- site/src/api/queries/notifications.ts | 6 +-- site/src/api/queries/oauth2.ts | 4 +- site/src/api/queries/organizations.ts | 30 +++++++------- site/src/api/queries/roles.ts | 4 +- site/src/api/queries/settings.ts | 6 +-- site/src/api/queries/sshKeys.ts | 4 +- site/src/api/queries/tasks.ts | 4 +- site/src/api/queries/templates.ts | 14 ++++--- site/src/api/queries/updateCheck.ts | 2 +- site/src/api/queries/users.ts | 28 ++++++------- site/src/api/queries/workspaceBuilds.ts | 6 +-- site/src/api/queries/workspaceQuota.ts | 2 +- site/src/api/queries/workspaceportsharing.ts | 4 +- site/src/api/queries/workspaces.ts | 32 +++++++-------- site/src/components/Alert/ErrorAlert.tsx | 2 +- site/src/components/BuildIcon/BuildIcon.tsx | 2 +- site/src/components/Filter/Filter.tsx | 8 ++-- site/src/components/Filter/UserFilter.tsx | 2 +- .../GitDeviceAuth/GitDeviceAuth.tsx | 4 +- site/src/components/Logs/LogLine.tsx | 2 +- .../OrganizationAutocomplete.tsx | 6 +-- .../PasswordField/PasswordField.stories.tsx | 2 +- .../PasswordField/PasswordField.tsx | 2 +- .../RichParameterInput.stories.tsx | 2 +- .../RichParameterInput/RichParameterInput.tsx | 2 +- .../UserAutocomplete/UserAutocomplete.tsx | 16 ++++---- .../tool/ProposePlanTool.stories.tsx | 2 +- .../ai-elements/tool/ProposePlanTool.tsx | 2 +- site/src/components/ai-elements/tool/Tool.tsx | 2 +- site/src/contexts/ProxyContext.test.tsx | 2 +- site/src/contexts/ProxyContext.tsx | 6 +-- site/src/contexts/ThemeProvider.tsx | 2 +- site/src/contexts/auth/AuthProvider.tsx | 20 ++++----- site/src/contexts/auth/RequireAuth.tsx | 4 +- site/src/contexts/useProxyLatency.ts | 4 +- site/src/contexts/useWebpushNotifications.ts | 6 +-- site/src/hooks/useEmbeddedMetadata.test.ts | 2 +- site/src/hooks/useEmbeddedMetadata.ts | 6 +-- site/src/hooks/useExternalAuth.ts | 2 +- site/src/hooks/useWorkspaceBuildLogs.ts | 4 +- site/src/modules/apps/AppStatusStateIcon.tsx | 2 +- site/src/modules/apps/apps.ts | 4 +- site/src/modules/apps/useAppLink.ts | 12 +++--- .../builds/BuildAvatar/BuildAvatar.tsx | 2 +- .../AnnouncementBanners.tsx | 2 +- .../modules/dashboard/DashboardProvider.tsx | 22 +++++----- .../DeploymentBanner/DeploymentBanner.tsx | 4 +- .../DeploymentBanner/DeploymentBannerView.tsx | 10 ++--- .../LicenseBannerView.stories.tsx | 2 +- .../LicenseBanner/LicenseBannerView.tsx | 8 ++-- .../modules/dashboard/Navbar/MobileMenu.tsx | 2 +- site/src/modules/dashboard/Navbar/Navbar.tsx | 4 +- .../dashboard/Navbar/NavbarView.stories.tsx | 2 +- .../modules/dashboard/Navbar/NavbarView.tsx | 4 +- .../dashboard/Navbar/ProxyMenu.stories.tsx | 2 +- .../modules/dashboard/Navbar/ProxyMenu.tsx | 2 +- .../Navbar/UserDropdown/UserDropdown.tsx | 2 +- .../UserDropdown/UserDropdownContent.tsx | 2 +- site/src/modules/dashboard/entitlements.ts | 2 +- .../modules/dashboard/useFeatureVisibility.ts | 2 +- site/src/modules/dashboard/useUpdateCheck.ts | 2 +- site/src/modules/groups.ts | 2 +- .../modules/hooks/useSyncFormParameters.ts | 4 +- .../management/DeploymentConfigProvider.tsx | 4 +- .../management/DeploymentSidebarView.tsx | 2 +- .../management/OrganizationSettingsLayout.tsx | 4 +- .../OrganizationSidebarView.stories.tsx | 2 +- .../management/OrganizationSidebarView.tsx | 2 +- .../NotificationsInbox/InboxAvatar.tsx | 12 +++--- .../NotificationsInbox/InboxItem.tsx | 2 +- .../NotificationsInbox/InboxPopover.tsx | 2 +- .../NotificationsInbox/NotificationsInbox.tsx | 12 +++--- site/src/modules/notifications/utils.tsx | 4 +- site/src/modules/permissions/index.ts | 2 +- site/src/modules/permissions/organizations.ts | 2 +- .../provisioners/JobStatusIndicator.tsx | 2 +- site/src/modules/provisioners/Provisioner.tsx | 2 +- .../ProvisionerTagsField.stories.tsx | 2 +- .../provisioners/ProvisionerTagsField.tsx | 2 +- .../modules/resources/AgentApps/AgentApps.tsx | 6 +-- .../AgentDevcontainerCard.stories.tsx | 2 +- .../resources/AgentDevcontainerCard.tsx | 26 ++++++------ site/src/modules/resources/AgentExternal.tsx | 4 +- site/src/modules/resources/AgentLatency.tsx | 2 +- .../modules/resources/AgentLogs/AgentLogs.tsx | 2 +- .../resources/AgentMetadata.stories.tsx | 2 +- site/src/modules/resources/AgentMetadata.tsx | 12 +++--- .../resources/AgentOutdatedTooltip.tsx | 2 +- .../modules/resources/AgentRow.stories.tsx | 4 +- site/src/modules/resources/AgentRow.tsx | 12 +++--- .../resources/AgentRowPreview.test.tsx | 2 +- .../src/modules/resources/AgentRowPreview.tsx | 2 +- site/src/modules/resources/AgentStatus.tsx | 6 +-- site/src/modules/resources/AgentVersion.tsx | 4 +- .../src/modules/resources/AppLink/AppLink.tsx | 2 +- .../modules/resources/AppLink/BaseIcon.tsx | 2 +- .../DownloadAgentLogsButton.stories.tsx | 4 +- .../resources/DownloadAgentLogsButton.tsx | 6 +-- .../modules/resources/PortForwardButton.tsx | 32 +++++++-------- site/src/modules/resources/ResourceAvatar.tsx | 2 +- .../modules/resources/ResourceCard.test.tsx | 2 +- site/src/modules/resources/ResourceCard.tsx | 2 +- site/src/modules/resources/Resources.tsx | 2 +- .../resources/SSHButton/SSHButton.stories.tsx | 2 +- .../modules/resources/SSHButton/SSHButton.tsx | 2 +- .../resources/SubAgentOutdatedTooltip.tsx | 6 +-- .../VSCodeDesktopButton.tsx | 4 +- .../VSCodeDevContainerButton.tsx | 4 +- .../resources/WildcardHostnameWarning.tsx | 2 +- .../resources/useAgentContainers.jest.tsx | 4 +- .../modules/resources/useAgentContainers.ts | 20 ++++----- .../modules/resources/useAgentLogs.jest.ts | 4 +- site/src/modules/resources/useAgentLogs.ts | 4 +- site/src/modules/tableFiltering/options.tsx | 3 +- .../TaskDeleteDialog.stories.tsx | 2 +- .../TaskDeleteDialog/TaskDeleteDialog.tsx | 6 +-- .../TaskFeedbackDialog.stories.tsx | 2 +- .../TaskFeedbackDialog/TaskFeedbackDialog.tsx | 10 ++--- .../tasks/TaskPrompt/TaskPrompt.stories.tsx | 6 +-- .../modules/tasks/TaskPrompt/TaskPrompt.tsx | 18 ++++---- .../TemplateVersionSelect.stories.tsx | 2 +- .../TaskPrompt/TemplateVersionSelect.tsx | 2 +- .../modules/tasks/TaskStatus/TaskStatus.tsx | 2 +- .../TasksSidebar/TasksSidebar.stories.tsx | 2 +- .../tasks/TasksSidebar/TasksSidebar.tsx | 8 ++-- .../TasksSidebar/UserCombobox.stories.tsx | 2 +- .../tasks/TasksSidebar/UserCombobox.tsx | 4 +- site/src/modules/tasks/apps.ts | 2 +- site/src/modules/tasks/taskActions.ts | 2 +- .../TemplateExampleCard.tsx | 2 +- .../TemplateResourcesTable.tsx | 2 +- .../modules/templates/useWatchVersionLogs.ts | 4 +- .../DynamicParameter.jest.tsx | 2 +- .../DynamicParameter/DynamicParameter.tsx | 12 +++--- .../EphemeralParametersDialog.tsx | 2 +- .../ErrorDialog/WorkspaceErrorDialog.tsx | 2 +- .../WorkspaceAppStatus/WorkspaceAppStatus.tsx | 2 +- .../WorkspaceBuildCancelDialog.tsx | 2 +- .../WorkspaceBuildData/WorkspaceBuildData.tsx | 2 +- .../WorkspaceBuildLogs/WorkspaceBuildLogs.tsx | 2 +- .../WorkspaceDormantBadge.tsx | 2 +- .../ChangeWorkspaceVersionDialog.stories.tsx | 2 +- .../ChangeWorkspaceVersionDialog.tsx | 4 +- .../DownloadLogsDialog.stories.tsx | 2 +- .../DownloadLogsDialog.tsx | 6 +-- .../UpdateBuildParametersDialog.tsx | 8 ++-- ...pdateBuildParametersDialogExperimental.tsx | 2 +- .../WorkspaceDeleteDialog.tsx | 8 ++-- .../WorkspaceMoreActions.tsx | 26 ++++++------ .../useWorkspaceDuplication.jest.tsx | 2 +- .../useWorkspaceDuplication.ts | 4 +- .../WorkspaceOutdatedTooltip.tsx | 6 +-- .../AddWorkspaceUserOrGroup.tsx | 14 +++---- .../UserOrGroupAutocomplete.tsx | 9 ++-- .../WorkspaceSharingForm.tsx | 12 +++--- .../useWorkspaceSharing.ts | 10 ++--- .../WorkspaceStatus/WorkspaceStatus.tsx | 2 +- .../WorkspaceStatusIndicator.stories.tsx | 2 +- .../WorkspaceStatusIndicator.tsx | 2 +- .../WorkspaceTiming/StagesChart.tsx | 2 +- .../WorkspaceTiming/WorkspaceTimings.tsx | 8 ++-- .../WorkspaceTiming/storybookData.ts | 2 +- .../workspaces/WorkspaceUpdateDialogs.tsx | 14 +++---- site/src/modules/workspaces/actions.ts | 2 +- site/src/modules/workspaces/activity.ts | 2 +- site/src/modules/workspaces/health.test.ts | 4 +- site/src/modules/workspaces/health.ts | 2 +- site/src/modules/workspaces/permissions.ts | 2 +- site/src/modules/workspaces/status.ts | 2 +- .../ListSessionsPage/ListSessionsPage.tsx | 2 +- .../ListSessionsPage/ListSessionsPageView.tsx | 2 +- .../ListSessionsPage/ListSessionsRow.tsx | 2 +- .../RequestLogsFilter/ModelFilter.tsx | 2 +- .../RequestLogsPage/RequestLogsPage.tsx | 2 +- .../RequestLogsPage/RequestLogsPageView.tsx | 2 +- .../RequestLogsRow/RequestLogsRow.tsx | 2 +- .../icons/AIBridgeClientIcon.tsx | 2 +- .../icons/AIBridgeProviderIcon.tsx | 2 +- .../SessionSummaryTable.tsx | 2 +- .../pages/AgentsPage/AgentAnalyticsPage.tsx | 2 +- .../AgentsPage/AgentAnalyticsPageView.tsx | 2 +- site/src/pages/AgentsPage/AgentCreatePage.tsx | 10 ++--- .../pages/AgentsPage/AgentDetail.stories.tsx | 22 +++++----- site/src/pages/AgentsPage/AgentDetail.tsx | 41 +++++++++---------- site/src/pages/AgentsPage/AgentEmbedPage.tsx | 2 +- .../AgentSettingsPageView.stories.tsx | 6 +-- .../AgentsPage/AgentSettingsPageView.tsx | 38 ++++++++--------- site/src/pages/AgentsPage/AgentsPage.tsx | 34 +++++++-------- .../AgentsPage/AgentsPageView.stories.tsx | 6 +-- site/src/pages/AgentsPage/AgentsPageView.tsx | 2 +- ...serCompactionThresholdSettings.stories.tsx | 4 +- .../UserCompactionThresholdSettings.tsx | 10 ++--- .../AgentDetail/ChatContext.test.tsx | 6 +-- .../components/AgentDetail/ChatContext.ts | 7 ++-- .../ConversationTimeline.stories.tsx | 2 +- .../AgentDetail/ConversationTimeline.tsx | 2 +- .../components/AgentDetail/LiveStreamTail.tsx | 2 +- .../components/AgentDetail/TopBar.tsx | 4 +- .../AgentDetail/chatHelpers.test.ts | 2 +- .../components/AgentDetail/chatHelpers.ts | 2 +- .../components/AgentDetail/chatStore.test.ts | 2 +- .../components/AgentDetail/messageParsing.ts | 2 +- .../components/AgentDetail/storyFixtures.ts | 2 +- .../components/AgentDetail/streamState.ts | 2 +- .../components/AgentDetail/types.ts | 2 +- .../useWorkspaceCreationWatcher.ts | 2 +- .../components/AgentDetailContent.tsx | 2 +- .../components/AgentDetailView.stories.tsx | 6 +-- .../AgentsPage/components/AgentDetailView.tsx | 4 +- .../ChatCostSummaryView.stories.tsx | 2 +- .../components/ChatCostSummaryView.tsx | 4 +- .../ChatModelAdminPanel.stories.tsx | 4 +- .../ChatModelAdminPanel.tsx | 10 ++--- .../ChatModelAdminPanel/ModelConfigFields.tsx | 8 ++-- .../ChatModelAdminPanel/ModelForm.tsx | 2 +- .../ModelsSection.stories.tsx | 2 +- .../ChatModelAdminPanel/ModelsSection.tsx | 2 +- .../ChatModelAdminPanel/ProviderForm.tsx | 2 +- .../ChatModelAdminPanel/ProvidersSection.tsx | 2 +- .../modelConfigFormLogic.test.ts | 2 +- .../modelConfigFormLogic.ts | 6 +-- .../ChatModelAdminPanel/pricingFields.test.ts | 2 +- .../ChatModelAdminPanel/pricingFields.ts | 2 +- .../components/DiffViewer/LocalDiffPanel.tsx | 2 +- .../components/DiffViewer/RemoteDiffPanel.tsx | 4 +- .../AgentsPage/components/EmbedContext.tsx | 8 ++-- .../components/GitPanel/GitPanel.stories.tsx | 6 +-- .../components/GitPanel/GitPanel.tsx | 8 ++-- .../AgentsPage/components/InsightsContent.tsx | 2 +- .../LimitsTab/DefaultLimitSection.tsx | 2 +- .../LimitsTab/GroupLimitsSection.stories.tsx | 2 +- .../LimitsTab/GroupLimitsSection.tsx | 4 +- .../components/LimitsTab/LimitsTab.tsx | 22 +++++----- .../LimitsTab/UserOverridesSection.tsx | 4 +- .../components/LimitsTab/limitsFormLogic.ts | 2 +- .../MCPServerAdminPanel.stories.tsx | 4 +- .../components/MCPServerAdminPanel.tsx | 14 +++---- .../components/MCPServerPicker.stories.tsx | 2 +- .../components/MCPServerPicker.test.ts | 2 +- .../AgentsPage/components/MCPServerPicker.tsx | 2 +- .../components/PRInsightsView.stories.tsx | 2 +- .../AgentsPage/components/PRInsightsView.tsx | 2 +- .../components/QueuedMessagesList.stories.tsx | 2 +- .../components/QueuedMessagesList.test.ts | 2 +- .../components/QueuedMessagesList.tsx | 2 +- .../Sidebar/AgentsSidebar.stories.tsx | 4 +- .../components/Sidebar/AgentsSidebar.test.tsx | 4 +- .../components/Sidebar/AgentsSidebar.tsx | 12 +++--- .../components/UsageIndicator.stories.tsx | 2 +- .../AgentsPage/components/UsageIndicator.tsx | 2 +- .../AgentsPage/components/WebPushButton.tsx | 2 +- .../hooks/useDesktopConnection.test.ts | 2 +- .../AgentsPage/hooks/useDesktopConnection.ts | 2 +- .../AgentsPage/hooks/useFileAttachments.ts | 4 +- .../AgentsPage/hooks/useGitWatcher.test.ts | 4 +- .../pages/AgentsPage/hooks/useGitWatcher.ts | 6 +-- .../AgentsPage/utils/modelOptions.test.ts | 2 +- .../pages/AgentsPage/utils/modelOptions.ts | 2 +- site/src/pages/AuditPage/AuditFilter.tsx | 2 +- .../AuditLogDescription.tsx | 2 +- .../BuildAuditDescription.tsx | 2 +- .../AuditLogRow/AuditLogDiff/AuditLogDiff.tsx | 2 +- .../AuditLogRow/AuditLogDiff/auditUtils.ts | 2 +- .../AuditPage/AuditLogRow/AuditLogRow.tsx | 2 +- site/src/pages/AuditPage/AuditPage.test.tsx | 4 +- site/src/pages/AuditPage/AuditPage.tsx | 2 +- site/src/pages/AuditPage/AuditPageView.tsx | 2 +- site/src/pages/CliAuthPage/CliAuthPage.tsx | 2 +- .../ConnectionLogPage/ConnectionLogFilter.tsx | 12 +++--- .../ConnectionLogPage.test.tsx | 2 +- .../ConnectionLogPage/ConnectionLogPage.tsx | 2 +- .../ConnectionLogPageView.tsx | 2 +- .../ConnectionLogDescription.tsx | 2 +- .../ConnectionLogRow/ConnectionLogRow.tsx | 2 +- .../CreateTemplateGalleryPage.tsx | 2 +- .../StarterTemplates.tsx | 2 +- .../BuildLogsDrawer.stories.tsx | 2 +- .../CreateTemplatePage/BuildLogsDrawer.tsx | 4 +- .../CreateTemplateForm.stories.tsx | 6 +-- .../CreateTemplatePage/CreateTemplateForm.tsx | 22 +++++----- .../CreateTemplatePage.jest.tsx | 2 +- .../CreateTemplatePage/CreateTemplatePage.tsx | 4 +- .../DuplicateTemplateView.tsx | 14 +++---- .../ImportStarterTemplateView.tsx | 10 ++--- .../CreateTemplatePage/UploadTemplateView.tsx | 14 +++---- .../CreateTemplatePage/VariableInput.tsx | 2 +- site/src/pages/CreateTemplatePage/types.ts | 2 +- site/src/pages/CreateTemplatePage/utils.ts | 6 +-- .../CreateTokenPage/CreateTokenPage.jest.tsx | 2 +- .../pages/CreateTokenPage/CreateTokenPage.tsx | 4 +- .../CreateUserPage/CreateUserForm.stories.tsx | 4 +- .../pages/CreateUserPage/CreateUserForm.tsx | 4 +- .../pages/CreateUserPage/CreateUserPage.tsx | 4 +- .../CreateWorkspacePage.jest.tsx | 4 +- .../CreateWorkspacePage.tsx | 34 +++++++-------- .../CreateWorkspacePageView.stories.tsx | 4 +- .../CreateWorkspacePageView.tsx | 7 +++- .../ExternalAuthButton.stories.tsx | 2 +- .../ExternalAuthButton.tsx | 2 +- .../CreateWorkspacePage/SelectedTemplate.tsx | 2 +- .../AIGovernanceSettingsPageView.tsx | 2 +- .../AnnouncementBannerDialog.tsx | 2 +- .../AnnouncementBannerItem.tsx | 2 +- .../AnnouncementBannerSettings.tsx | 2 +- .../AppearanceSettingsPage.tsx | 9 ++-- .../AppearanceSettingsPageView.tsx | 2 +- .../ExternalAuthSettingsPageView.tsx | 5 ++- .../IdpOrgSyncPage/ExportPolicyButton.tsx | 4 +- .../IdpOrgSyncPage/IdpOrgSyncPage.tsx | 12 +++--- .../IdpOrgSyncPage/IdpOrgSyncPageView.tsx | 8 ++-- .../AIGovernanceLicensing.ts | 4 +- ...overnanceUsersConsumptionChart.stories.tsx | 2 +- .../AIGovernanceUsersConsumptionChart.tsx | 4 +- .../AddNewLicensePage.tsx | 4 +- .../AddNewLicensePageView.tsx | 2 +- .../LicensesSettingsPage/LicenseCard.tsx | 4 +- .../LicensesSettingsPage.tsx | 8 ++-- .../LicensesSettingsPageView.stories.tsx | 2 +- .../LicensesSettingsPageView.tsx | 4 +- .../ManagedAgentsConsumption.tsx | 2 +- .../NetworkSettingsPageView.stories.tsx | 2 +- .../NetworkSettingsPageView.tsx | 2 +- .../NotificationEvents.stories.tsx | 6 +-- .../NotificationsPage/NotificationEvents.tsx | 12 +++--- .../NotificationsPage.stories.tsx | 4 +- .../NotificationsPage/NotificationsPage.tsx | 12 +++--- .../Troubleshooting.stories.tsx | 2 +- .../NotificationsPage/Troubleshooting.tsx | 4 +- .../NotificationsPage/storybookUtils.ts | 4 +- .../CreateOAuth2AppPage.tsx | 4 +- .../CreateOAuth2AppPageView.tsx | 2 +- .../EditOAuth2AppPage.tsx | 6 +-- .../EditOAuth2AppPageView.tsx | 2 +- .../OAuth2AppsSettingsPage/OAuth2AppForm.tsx | 4 +- .../OAuth2AppsSettingsPage.tsx | 2 +- .../OAuth2AppsSettingsPageView.tsx | 2 +- .../ObservabilitySettingsPageView.stories.tsx | 2 +- .../ObservabilitySettingsPageView.tsx | 2 +- .../DeploymentSettingsPage/OptionsTable.tsx | 2 +- .../OverviewPage/OverviewPage.tsx | 12 +++--- .../OverviewPage/OverviewPageView.tsx | 8 ++-- .../SecuritySettingsPageView.stories.tsx | 2 +- .../SecuritySettingsPageView.tsx | 2 +- .../UserAuthSettingsPageView.stories.tsx | 2 +- .../UserAuthSettingsPageView.tsx | 2 +- .../optionValue.test.ts | 2 +- .../DeploymentSettingsPage/optionValue.ts | 2 +- site/src/pages/EditUserPage/EditUserForm.tsx | 4 +- site/src/pages/EditUserPage/EditUserPage.tsx | 6 +-- .../ExternalAuthPage/ExternalAuthPage.tsx | 12 +++--- .../ExternalAuthPage/ExternalAuthPageView.tsx | 4 +- site/src/pages/GroupsPage/CreateGroupPage.tsx | 2 +- .../pages/GroupsPage/CreateGroupPageView.tsx | 4 +- .../src/pages/GroupsPage/GroupMembersPage.tsx | 14 +++---- .../pages/GroupsPage/GroupPage.stories.tsx | 14 +++---- site/src/pages/GroupsPage/GroupPage.tsx | 16 ++++---- .../pages/GroupsPage/GroupSettingsPage.tsx | 4 +- .../GroupsPage/GroupSettingsPageView.tsx | 2 +- site/src/pages/GroupsPage/GroupsPage.tsx | 6 +-- .../pages/GroupsPage/GroupsPageProvider.tsx | 2 +- site/src/pages/GroupsPage/GroupsPageView.tsx | 2 +- .../HealthPage/AccessURLPage.stories.tsx | 4 +- site/src/pages/HealthPage/AccessURLPage.tsx | 2 +- site/src/pages/HealthPage/Content.tsx | 2 +- site/src/pages/HealthPage/DERPPage.tsx | 10 ++--- site/src/pages/HealthPage/DERPRegionPage.tsx | 12 +++--- site/src/pages/HealthPage/DatabasePage.tsx | 2 +- .../pages/HealthPage/DismissWarningButton.tsx | 4 +- site/src/pages/HealthPage/HealthLayout.tsx | 4 +- .../HealthPage/ProvisionerDaemonsPage.tsx | 2 +- .../HealthPage/WebsocketPage.stories.tsx | 4 +- site/src/pages/HealthPage/WebsocketPage.tsx | 2 +- .../HealthPage/WorkspaceProxyPage.stories.tsx | 4 +- .../pages/HealthPage/WorkspaceProxyPage.tsx | 2 +- site/src/pages/HealthPage/healthyColor.ts | 2 +- site/src/pages/HealthPage/storybook.tsx | 5 ++- .../LoginOAuthDevicePage.tsx | 10 ++--- .../LoginOAuthDevicePageView.tsx | 4 +- site/src/pages/LoginPage/LoginPage.tsx | 4 +- site/src/pages/LoginPage/LoginPageView.tsx | 2 +- site/src/pages/LoginPage/OAuthSignInForm.tsx | 2 +- site/src/pages/LoginPage/SignInForm.tsx | 2 +- .../CreateOrganizationPage.tsx | 2 +- .../CreateOrganizationPageView.tsx | 4 +- .../CustomRolesPage/CreateEditRolePage.tsx | 14 +++---- .../CreateEditRolePageView.tsx | 18 ++++---- .../CustomRolesPage/CustomRolesPage.tsx | 6 +-- .../CustomRolesPage/CustomRolesPageView.tsx | 2 +- .../CustomRolesPage/PermissionPillsList.tsx | 2 +- .../DisableWorkspaceSharingDialog.tsx | 4 +- .../IdpSyncPage/ExportPolicyButton.tsx | 12 +++--- .../IdpSyncPage/IdpGroupSyncForm.tsx | 10 ++--- .../IdpSyncPage/IdpRoleSyncForm.tsx | 6 ++- .../IdpSyncPage/IdpSyncPage.tsx | 20 ++++----- .../IdpSyncPage/IdpSyncPageView.tsx | 4 +- .../OrganizationMembersPage.test.tsx | 2 +- .../OrganizationMembersPage.tsx | 23 ++++++----- .../OrganizationMembersPageView.tsx | 14 +++---- .../CancelJobButton.tsx | 2 +- .../CancelJobConfirmationDialog.stories.tsx | 2 +- .../CancelJobConfirmationDialog.tsx | 14 +++---- .../JobRow.tsx | 2 +- .../OrganizationProvisionerJobsPage.tsx | 2 +- ...izationProvisionerJobsPageView.stories.tsx | 2 +- .../OrganizationProvisionerJobsPageView.tsx | 10 ++--- .../OrganizationProvisionerKeysPage.tsx | 2 +- ...izationProvisionerKeysPageView.stories.tsx | 2 +- .../OrganizationProvisionerKeysPageView.tsx | 6 +-- .../ProvisionerKeyRow.tsx | 2 +- .../OrganizationProvisionersPage.tsx | 4 +- .../OrganizationProvisionersPageView.tsx | 2 +- .../ProvisionerKey.stories.tsx | 4 +- .../ProvisionerKey.tsx | 6 +-- .../ProvisionerRow.tsx | 8 ++-- .../OrganizationSettingsPage.tsx | 16 ++++---- .../OrganizationSettingsPageView.tsx | 12 +++--- .../UserTable/EditRolesButton.tsx | 2 +- .../UserTable/UserRoleCell.tsx | 2 +- .../ChangePasswordPage.stories.tsx | 2 +- .../ResetPasswordPage/ChangePasswordPage.tsx | 4 +- .../RequestOTPPage.stories.tsx | 2 +- .../ResetPasswordPage/RequestOTPPage.tsx | 2 +- site/src/pages/SetupPage/SetupPage.test.tsx | 2 +- site/src/pages/SetupPage/SetupPage.tsx | 4 +- site/src/pages/SetupPage/SetupPageView.tsx | 4 +- .../StarterTemplatePage.tsx | 2 +- .../StarterTemplatePageView.tsx | 2 +- site/src/pages/TaskPage/FollowUpDialog.tsx | 2 +- .../TaskPage/ModifyPromptDialog.stories.tsx | 6 +-- .../src/pages/TaskPage/ModifyPromptDialog.tsx | 8 ++-- site/src/pages/TaskPage/TaskAppIframe.tsx | 2 +- site/src/pages/TaskPage/TaskApps.stories.tsx | 2 +- site/src/pages/TaskPage/TaskApps.tsx | 2 +- site/src/pages/TaskPage/TaskPage.stories.tsx | 16 ++++---- site/src/pages/TaskPage/TaskPage.tsx | 32 +++++++-------- .../TaskPage/TaskStartupWarningButton.tsx | 2 +- site/src/pages/TaskPage/TaskTopbar.tsx | 2 +- .../TasksPage/BatchDeleteConfirmation.tsx | 2 +- .../src/pages/TasksPage/TasksPage.stories.tsx | 4 +- site/src/pages/TasksPage/TasksPage.tsx | 22 +++++----- site/src/pages/TasksPage/TasksTable.tsx | 6 +-- site/src/pages/TasksPage/UsersCombobox.tsx | 4 +- site/src/pages/TasksPage/batchActions.ts | 4 +- .../TemplateEmbedExperimentRouter.tsx | 2 +- .../TemplateEmbedPage.jest.tsx | 2 +- .../TemplateEmbedPage/TemplateEmbedPage.tsx | 4 +- .../TemplateEmbedPageExperimental.tsx | 18 ++++---- .../TemplateFilesPage/TemplateFilesPage.tsx | 5 ++- .../TemplateInsightsPage.tsx | 30 +++++++------- .../src/pages/TemplatePage/TemplateLayout.tsx | 6 +-- .../pages/TemplatePage/TemplatePageHeader.tsx | 16 ++++---- .../TemplatePrebuildsPage.tsx | 4 +- .../TemplatePrebuildsPageView.stories.tsx | 2 +- .../TemplateRedirectController.test.tsx | 2 +- .../TemplateRedirectController.tsx | 2 +- .../TemplateResourcesPage.tsx | 2 +- .../TemplateResourcesPageView.tsx | 2 +- site/src/pages/TemplatePage/TemplateStats.tsx | 2 +- .../TemplateVersionsPage.tsx | 12 +++--- .../TemplateVersionsPage/VersionRow.tsx | 2 +- .../TemplateVersionsPage/VersionsTable.tsx | 2 +- .../useDeletionDialogState.jest.ts | 2 +- .../TemplatePage/useDeletionDialogState.ts | 4 +- site/src/pages/TemplatePage/utils.ts | 2 +- .../pages/TemplateSettingsPage/Sidebar.tsx | 2 +- .../TemplateSettingsForm.tsx | 12 +++--- .../TemplateSettingsPage.jest.tsx | 4 +- .../TemplateSettingsPage.tsx | 8 ++-- .../TemplateSettingsPageView.tsx | 2 +- .../TemplatePermissionsPage.tsx | 8 +++- .../TemplatePermissionsPageView.tsx | 8 ++-- .../UserOrGroupAutocomplete.tsx | 4 +- .../AutostopRequirementHelperText.tsx | 2 +- .../TemplateScheduleForm.tsx | 2 +- .../TemplateSchedulePage.test.tsx | 2 +- .../TemplateSchedulePage.tsx | 6 +-- .../TemplateSchedulePageView.tsx | 2 +- .../TemplateSchedulePage/formHelpers.tsx | 2 +- .../useWorkspacesToBeDeleted.ts | 4 +- .../TemplateSettingsLayout.tsx | 6 +-- .../TemplateVariableField.tsx | 2 +- .../TemplateVariablesForm.tsx | 10 ++--- .../TemplateVariablesPage.jest.tsx | 2 +- .../TemplateVariablesPage.tsx | 22 +++++----- .../TemplateVariablesPageView.tsx | 4 +- .../MissingTemplateVariablesDialog.tsx | 6 +-- .../ProvisionerTagsPopover.tsx | 2 +- .../TemplateVersionEditor.tsx | 18 ++++---- .../TemplateVersionEditorPage.test.tsx | 6 +-- .../TemplateVersionEditorPage.tsx | 30 +++++++------- .../TemplateVersionStatusBadge.tsx | 2 +- .../TemplateVersionPage.tsx | 12 +++--- .../TemplateVersionPageView.tsx | 2 +- .../pages/TemplatesPage/EmptyTemplates.tsx | 2 +- .../pages/TemplatesPage/TemplatesFilter.tsx | 4 +- .../src/pages/TemplatesPage/TemplatesPage.tsx | 4 +- .../pages/TemplatesPage/TemplatesPageView.tsx | 4 +- .../src/pages/TerminalPage/TerminalAlerts.tsx | 2 +- .../pages/TerminalPage/TerminalPage.jest.tsx | 2 +- .../TerminalPage/TerminalPage.stories.tsx | 6 +-- site/src/pages/TerminalPage/TerminalPage.tsx | 12 +++--- .../AccountPage/AccountForm.test.tsx | 2 +- .../AccountPage/AccountForm.tsx | 2 +- .../AccountPage/AccountPage.test.tsx | 2 +- .../AccountPage/AccountPage.tsx | 2 +- .../AccountPage/AccountUserGroups.tsx | 4 +- .../AppearancePage/AppearanceForm.tsx | 10 ++--- .../AppearancePage/AppearancePage.test.tsx | 2 +- .../AppearancePage/AppearancePage.tsx | 8 ++-- .../ExternalAuthPage/ExternalAuthPage.tsx | 12 +++--- .../ExternalAuthPage/ExternalAuthPageView.tsx | 12 +++--- .../NotificationsPage.stories.tsx | 8 ++-- .../NotificationsPage/NotificationsPage.tsx | 30 +++++++------- .../OAuth2ProviderPage/OAuth2ProviderPage.tsx | 4 +- .../OAuth2ProviderPageView.tsx | 2 +- .../SSHKeysPage/SSHKeysPage.test.tsx | 2 +- .../SSHKeysPage/SSHKeysPage.tsx | 4 +- .../SSHKeysPage/SSHKeysPageView.tsx | 2 +- .../SchedulePage/ScheduleForm.tsx | 8 ++-- .../SchedulePage/SchedulePage.test.tsx | 2 +- .../SchedulePage/SchedulePage.tsx | 10 ++--- .../SecurityPage/SecurityPage.jest.tsx | 4 +- .../SecurityPage/SecurityPage.tsx | 4 +- .../SecurityPage/SingleSignOnSection.tsx | 14 +++---- site/src/pages/UserSettingsPage/Sidebar.tsx | 2 +- .../TokensPage/ConfirmDeleteDialog.tsx | 4 +- .../TokensPage/TokensPage.tsx | 2 +- .../TokensPage/TokensPageView.tsx | 2 +- .../UserSettingsPage/TokensPage/hooks.ts | 4 +- .../WorkspaceProxyPage/WorkspaceProxyRow.tsx | 2 +- .../WorkspaceProxyPage/WorkspaceProxyView.tsx | 2 +- .../pages/UsersPage/ResetPasswordDialog.tsx | 2 +- .../src/pages/UsersPage/UsersPage.stories.tsx | 12 +++--- site/src/pages/UsersPage/UsersPage.tsx | 28 ++++++------- site/src/pages/UsersPage/UsersPageView.tsx | 4 +- .../UsersPage/UsersTable/UserGroupsCell.tsx | 2 +- .../pages/UsersPage/UsersTable/UsersTable.tsx | 4 +- .../UsersPage/UsersTable/UsersTableBody.tsx | 4 +- .../pages/UsersPage/storybookData/groups.ts | 2 +- .../pages/UsersPage/storybookData/roles.ts | 2 +- .../pages/UsersPage/storybookData/users.ts | 2 +- .../WorkspaceBuildPage.jest.tsx | 2 +- .../WorkspaceBuildPage/WorkspaceBuildPage.tsx | 4 +- .../WorkspaceBuildPageView.tsx | 10 ++--- .../WorkspacePage/AppStatuses.stories.tsx | 2 +- site/src/pages/WorkspacePage/AppStatuses.tsx | 12 +++--- .../pages/WorkspacePage/HistorySidebar.tsx | 4 +- .../pages/WorkspacePage/ResourceMetadata.tsx | 2 +- .../pages/WorkspacePage/ResourcesSidebar.tsx | 2 +- .../pages/WorkspacePage/Workspace.stories.tsx | 2 +- site/src/pages/WorkspacePage/Workspace.tsx | 2 +- .../BuildParametersPopover.tsx | 14 +++---- .../WorkspaceActions/Buttons.tsx | 2 +- .../WorkspaceActions/DebugButton.stories.tsx | 4 +- .../WorkspaceActions/DebugButton.tsx | 2 +- .../WorkspaceActions/RetryButton.stories.tsx | 4 +- .../WorkspaceActions/RetryButton.tsx | 2 +- .../WorkspaceActions/ShareButton.tsx | 2 +- .../WorkspaceActions.stories.tsx | 4 +- .../WorkspaceActions/WorkspaceActions.tsx | 4 +- .../WorkspaceBuildLogsSection.tsx | 2 +- .../WorkspacePage/WorkspaceBuildProgress.tsx | 14 ++++--- .../WorkspaceNotifications.stories.tsx | 4 +- .../WorkspaceNotifications.tsx | 14 +++---- .../WorkspacePage/WorkspacePage.jest.tsx | 4 +- .../src/pages/WorkspacePage/WorkspacePage.tsx | 16 ++++---- .../WorkspacePage/WorkspaceReadyPage.tsx | 36 ++++++++-------- .../WorkspaceScheduleControls.test.tsx | 4 +- .../WorkspaceScheduleControls.tsx | 12 +++--- .../WorkspacePage/WorkspaceTopbar.stories.tsx | 4 +- .../pages/WorkspacePage/WorkspaceTopbar.tsx | 4 +- .../WorkspacePage/useResourcesNav.test.tsx | 2 +- .../pages/WorkspacePage/useResourcesNav.ts | 2 +- .../WorkspaceParametersForm.tsx | 10 ++--- .../WorkspaceParametersPage.test.tsx | 2 +- .../WorkspaceParametersPage.tsx | 20 ++++----- .../WorkspaceParametersPageExperimental.tsx | 16 ++++---- ...orkspaceParametersPageViewExperimental.tsx | 10 ++--- .../WorkspaceScheduleForm.test.tsx | 2 +- .../WorkspaceScheduleForm.tsx | 2 +- .../WorkspaceSchedulePage.stories.tsx | 6 +-- .../WorkspaceSchedulePage.tsx | 10 ++--- .../WorkspaceSchedulePage/formToRequest.ts | 2 +- .../WorkspaceSettingsForm.tsx | 10 ++--- .../WorkspaceSettingsLayout.tsx | 8 ++-- .../WorkspaceSettingsPage.test.tsx | 2 +- .../WorkspaceSettingsPage.tsx | 2 +- .../WorkspaceSettingsPageView.tsx | 2 +- .../WorkspaceSharingPage.tsx | 2 +- .../WorkspaceSharingPageView.stories.tsx | 4 +- .../WorkspaceSharingPageView.tsx | 10 ++--- site/src/serviceWorker.test.ts | 2 +- site/src/serviceWorker.ts | 2 +- site/src/testHelpers/entities.ts | 14 +++---- site/src/testHelpers/handlers.ts | 2 +- site/src/testHelpers/storybook.tsx | 8 ++-- site/src/theme/constants.ts | 2 +- site/src/utils/buildInfo.ts | 2 +- site/src/utils/connection.ts | 2 +- site/src/utils/deployOptions.ts | 2 +- site/src/utils/dormant.test.ts | 2 +- site/src/utils/dormant.ts | 2 +- site/src/utils/formUtils.ts | 2 +- site/src/utils/portForward.ts | 2 +- site/src/utils/provisionerJob.ts | 2 +- site/src/utils/richParameters.test.ts | 2 +- site/src/utils/richParameters.ts | 4 +- site/src/utils/schedule.test.ts | 2 +- site/src/utils/schedule.tsx | 2 +- site/src/utils/starterTemplates.ts | 2 +- site/src/utils/telemetry.ts | 2 +- site/src/utils/terminal.ts | 2 +- site/src/utils/workspace.test.ts | 2 +- site/src/utils/workspace.tsx | 2 +- 646 files changed, 1708 insertions(+), 1689 deletions(-) diff --git a/docs/about/contributing/frontend.md b/docs/about/contributing/frontend.md index e4274738b5..a9f90756cc 100644 --- a/docs/about/contributing/frontend.md +++ b/docs/about/contributing/frontend.md @@ -341,27 +341,3 @@ user.click(screen.getByRole("button")); const form = screen.getByTestId("form"); user.click(within(form).getByRole("button")); ``` - -❌ Does not work - -```ts -import { getUpdateCheck } from "api/api" - -createMachine({ ... }, { - services: { - getUpdateCheck, - }, -}) -``` - -✅ It works - -```ts -import { getUpdateCheck } from "api/api" - -createMachine({ ... }, { - services: { - getUpdateCheck: () => getUpdateCheck(), - }, -}) -``` diff --git a/site/e2e/api.ts b/site/e2e/api.ts index 92469aa2f1..04e54dc18d 100644 --- a/site/e2e/api.ts +++ b/site/e2e/api.ts @@ -1,10 +1,10 @@ import type { Page } from "@playwright/test"; import { expect } from "@playwright/test"; -import { API, type DeploymentConfig } from "api/api"; -import type { SerpentOption } from "api/typesGenerated"; import dayjs from "dayjs"; import duration from "dayjs/plugin/duration"; import relativeTime from "dayjs/plugin/relativeTime"; +import { API, type DeploymentConfig } from "#/api/api"; +import type { SerpentOption } from "#/api/typesGenerated"; dayjs.extend(duration); dayjs.extend(relativeTime); diff --git a/site/e2e/helpers.ts b/site/e2e/helpers.ts index 06b55a5c92..5b1376359b 100644 --- a/site/e2e/helpers.ts +++ b/site/e2e/helpers.ts @@ -4,15 +4,15 @@ import net from "node:net"; import path from "node:path"; import { Duplex } from "node:stream"; import { type BrowserContext, expect, type Page, test } from "@playwright/test"; -import { API } from "api/api"; -import type { - UpdateTemplateMeta, - WorkspaceBuildParameter, -} from "api/typesGenerated"; import express from "express"; import capitalize from "lodash/capitalize"; import * as ssh from "ssh2"; import { TarWriter } from "utils/tar"; +import { API } from "#/api/api"; +import type { + UpdateTemplateMeta, + WorkspaceBuildParameter, +} from "#/api/typesGenerated"; import { agentPProfPort, coderBinary, diff --git a/site/e2e/reporter.ts b/site/e2e/reporter.ts index 40383ce355..5479b5eeb3 100644 --- a/site/e2e/reporter.ts +++ b/site/e2e/reporter.ts @@ -1,6 +1,6 @@ import * as fs from "node:fs/promises"; import type { Reporter, TestCase, TestResult } from "@playwright/test/reporter"; -import { API } from "api/api"; +import { API } from "#/api/api"; import { coderdPProfPort } from "./constants"; class CoderReporter implements Reporter { diff --git a/site/e2e/setup/addUsersAndLicense.spec.ts b/site/e2e/setup/addUsersAndLicense.spec.ts index 1d7de905a4..03a6afeb11 100644 --- a/site/e2e/setup/addUsersAndLicense.spec.ts +++ b/site/e2e/setup/addUsersAndLicense.spec.ts @@ -1,5 +1,5 @@ import { expect, test } from "@playwright/test"; -import { API } from "api/api"; +import { API } from "#/api/api"; import { coderPort, license, premiumTestsRequired, users } from "../constants"; import { expectUrl } from "../expectUrl"; import { createUser } from "../helpers"; diff --git a/site/e2e/tests/deployment/general.spec.ts b/site/e2e/tests/deployment/general.spec.ts index a1dca0a820..e4f570bb66 100644 --- a/site/e2e/tests/deployment/general.spec.ts +++ b/site/e2e/tests/deployment/general.spec.ts @@ -1,5 +1,5 @@ import { expect, test } from "@playwright/test"; -import { API } from "api/api"; +import { API } from "#/api/api"; import { setupApiCalls } from "../../api"; import { e2eFakeExperiment1, e2eFakeExperiment2 } from "../../constants"; import { login } from "../../helpers"; diff --git a/site/e2e/tests/deployment/network.spec.ts b/site/e2e/tests/deployment/network.spec.ts index d4898ea3e8..c87a8c7e3b 100644 --- a/site/e2e/tests/deployment/network.spec.ts +++ b/site/e2e/tests/deployment/network.spec.ts @@ -1,5 +1,5 @@ import { test } from "@playwright/test"; -import { API } from "api/api"; +import { API } from "#/api/api"; import { setupApiCalls, verifyConfigFlagArray, diff --git a/site/e2e/tests/deployment/observability.spec.ts b/site/e2e/tests/deployment/observability.spec.ts index ec807a67e2..834ee9d787 100644 --- a/site/e2e/tests/deployment/observability.spec.ts +++ b/site/e2e/tests/deployment/observability.spec.ts @@ -1,5 +1,5 @@ import { test } from "@playwright/test"; -import { API } from "api/api"; +import { API } from "#/api/api"; import { setupApiCalls, verifyConfigFlagArray, diff --git a/site/e2e/tests/deployment/security.spec.ts b/site/e2e/tests/deployment/security.spec.ts index 3f5e9a9b5c..17720e201b 100644 --- a/site/e2e/tests/deployment/security.spec.ts +++ b/site/e2e/tests/deployment/security.spec.ts @@ -1,6 +1,6 @@ import type { Page } from "@playwright/test"; import { expect, test } from "@playwright/test"; -import { API, type DeploymentConfig } from "api/api"; +import { API, type DeploymentConfig } from "#/api/api"; import { findConfigOption, setupApiCalls, diff --git a/site/e2e/tests/deployment/userAuth.spec.ts b/site/e2e/tests/deployment/userAuth.spec.ts index 1f97ce90df..7e505fe519 100644 --- a/site/e2e/tests/deployment/userAuth.spec.ts +++ b/site/e2e/tests/deployment/userAuth.spec.ts @@ -1,5 +1,5 @@ import { test } from "@playwright/test"; -import { API } from "api/api"; +import { API } from "#/api/api"; import { setupApiCalls, verifyConfigFlagArray, diff --git a/site/e2e/tests/deployment/workspaceProxies.spec.ts b/site/e2e/tests/deployment/workspaceProxies.spec.ts index 94604de293..81188c2121 100644 --- a/site/e2e/tests/deployment/workspaceProxies.spec.ts +++ b/site/e2e/tests/deployment/workspaceProxies.spec.ts @@ -1,5 +1,5 @@ import { expect, type Page, test } from "@playwright/test"; -import { API } from "api/api"; +import { API } from "#/api/api"; import { setupApiCalls } from "../../api"; import { coderPort, workspaceProxyPort } from "../../constants"; import { login, randomName, requiresLicense } from "../../helpers"; diff --git a/site/e2e/tests/externalAuth.spec.ts b/site/e2e/tests/externalAuth.spec.ts index 712fc8f1ef..f5c429dd53 100644 --- a/site/e2e/tests/externalAuth.spec.ts +++ b/site/e2e/tests/externalAuth.spec.ts @@ -1,6 +1,6 @@ import type { Endpoints } from "@octokit/types"; import { test } from "@playwright/test"; -import type { ExternalAuthDevice } from "api/typesGenerated"; +import type { ExternalAuthDevice } from "#/api/typesGenerated"; import { gitAuth } from "../constants"; import { Awaiter, diff --git a/site/e2e/tests/groups/removeMember.spec.ts b/site/e2e/tests/groups/removeMember.spec.ts index 1462fe6919..4f85e9d228 100644 --- a/site/e2e/tests/groups/removeMember.spec.ts +++ b/site/e2e/tests/groups/removeMember.spec.ts @@ -1,5 +1,5 @@ import { expect, test } from "@playwright/test"; -import { API } from "api/api"; +import { API } from "#/api/api"; import { createGroup, createUser, diff --git a/site/e2e/tests/templates/updateTemplateSchedule.spec.ts b/site/e2e/tests/templates/updateTemplateSchedule.spec.ts index 21de419251..38ec3ea00c 100644 --- a/site/e2e/tests/templates/updateTemplateSchedule.spec.ts +++ b/site/e2e/tests/templates/updateTemplateSchedule.spec.ts @@ -1,5 +1,5 @@ import { expect, test } from "@playwright/test"; -import { API } from "api/api"; +import { API } from "#/api/api"; import { getCurrentOrgId, setupApiCalls } from "../../api"; import { users } from "../../constants"; import { login } from "../../helpers"; diff --git a/site/jest.setup.ts b/site/jest.setup.ts index f0f252afd4..8a37ac8c91 100644 --- a/site/jest.setup.ts +++ b/site/jest.setup.ts @@ -3,9 +3,9 @@ import "jest-location-mock"; import { server } from "testHelpers/server"; import crypto from "node:crypto"; import { cleanup } from "@testing-library/react"; -import type { Region } from "api/typesGenerated"; import type { ProxyLatencyReport } from "contexts/useProxyLatency"; import { useMemo } from "react"; +import type { Region } from "#/api/typesGenerated"; // useProxyLatency does some http requests to determine latency. // This would fail unit testing, or at least make it very slow with diff --git a/site/src/@types/storybook.d.ts b/site/src/@types/storybook.d.ts index f15e7761ad..6bba446782 100644 --- a/site/src/@types/storybook.d.ts +++ b/site/src/@types/storybook.d.ts @@ -5,7 +5,7 @@ import type { Organization, SerpentOption, User, -} from "api/typesGenerated"; +} from "#/api/typesGenerated"; import type { Permissions } from "modules/permissions"; import type { QueryKey } from "react-query"; import type { ReactRouterAddonStoryParameters } from "storybook-addon-remix-react-router"; diff --git a/site/src/api/queries/appearance.ts b/site/src/api/queries/appearance.ts index ddc248ccfa..6a41723684 100644 --- a/site/src/api/queries/appearance.ts +++ b/site/src/api/queries/appearance.ts @@ -1,7 +1,7 @@ -import { API } from "api/api"; -import type { AppearanceConfig } from "api/typesGenerated"; import type { MetadataState } from "hooks/useEmbeddedMetadata"; import type { QueryClient } from "react-query"; +import { API } from "#/api/api"; +import type { AppearanceConfig } from "#/api/typesGenerated"; import { cachedQuery } from "./util"; export const appearanceConfigKey = ["appearance"] as const; diff --git a/site/src/api/queries/audits.ts b/site/src/api/queries/audits.ts index 4a7cfeb53b..b0bc78a6cf 100644 --- a/site/src/api/queries/audits.ts +++ b/site/src/api/queries/audits.ts @@ -1,6 +1,6 @@ -import { API } from "api/api"; -import type { AuditLogResponse } from "api/typesGenerated"; import type { UsePaginatedQueryOptions } from "hooks/usePaginatedQuery"; +import { API } from "#/api/api"; +import type { AuditLogResponse } from "#/api/typesGenerated"; import { useFilterParamsKey } from "#/components/Filter/Filter"; export function paginatedAudits( diff --git a/site/src/api/queries/authCheck.ts b/site/src/api/queries/authCheck.ts index d8aaf339b8..826d6395cd 100644 --- a/site/src/api/queries/authCheck.ts +++ b/site/src/api/queries/authCheck.ts @@ -1,9 +1,9 @@ -import { API } from "api/api"; +import type { MetadataState, MetadataValue } from "hooks/useEmbeddedMetadata"; +import { API } from "#/api/api"; import type { AuthorizationRequest, AuthorizationResponse, -} from "api/typesGenerated"; -import type { MetadataState, MetadataValue } from "hooks/useEmbeddedMetadata"; +} from "#/api/typesGenerated"; import { disabledRefetchOptions } from "./util"; const AUTHORIZATION_KEY = "authorization"; diff --git a/site/src/api/queries/buildInfo.ts b/site/src/api/queries/buildInfo.ts index 1b2d9b118c..a754d7717f 100644 --- a/site/src/api/queries/buildInfo.ts +++ b/site/src/api/queries/buildInfo.ts @@ -1,6 +1,6 @@ -import { API } from "api/api"; -import type { BuildInfoResponse } from "api/typesGenerated"; import type { MetadataState } from "hooks/useEmbeddedMetadata"; +import { API } from "#/api/api"; +import type { BuildInfoResponse } from "#/api/typesGenerated"; import { cachedQuery } from "./util"; const buildInfoKey = ["buildInfo"] as const; diff --git a/site/src/api/queries/chats.test.ts b/site/src/api/queries/chats.test.ts index 0534ffa83c..39f1458ef2 100644 --- a/site/src/api/queries/chats.test.ts +++ b/site/src/api/queries/chats.test.ts @@ -1,7 +1,7 @@ -import { API } from "api/api"; -import type * as TypesGen from "api/typesGenerated"; import { QueryClient } from "react-query"; import { describe, expect, it, vi } from "vitest"; +import { API } from "#/api/api"; +import type * as TypesGen from "#/api/typesGenerated"; import { archiveChat, cancelChatListQueries, diff --git a/site/src/api/queries/chats.ts b/site/src/api/queries/chats.ts index edb66c00d6..6aaff8efc3 100644 --- a/site/src/api/queries/chats.ts +++ b/site/src/api/queries/chats.ts @@ -1,6 +1,6 @@ -import { API } from "api/api"; -import type * as TypesGen from "api/typesGenerated"; import type { QueryClient, UseInfiniteQueryOptions } from "react-query"; +import { API } from "#/api/api"; +import type * as TypesGen from "#/api/typesGenerated"; export const chatsKey = ["chats"] as const; export const chatKey = (chatId: string) => ["chats", chatId] as const; diff --git a/site/src/api/queries/connectionlog.ts b/site/src/api/queries/connectionlog.ts index 30fc724844..ac8ed4aa34 100644 --- a/site/src/api/queries/connectionlog.ts +++ b/site/src/api/queries/connectionlog.ts @@ -1,6 +1,6 @@ -import { API } from "api/api"; -import type { ConnectionLogResponse } from "api/typesGenerated"; import type { UsePaginatedQueryOptions } from "hooks/usePaginatedQuery"; +import { API } from "#/api/api"; +import type { ConnectionLogResponse } from "#/api/typesGenerated"; import { useFilterParamsKey } from "#/components/Filter/Filter"; export function paginatedConnectionLogs( diff --git a/site/src/api/queries/debug.ts b/site/src/api/queries/debug.ts index 06f5cc0a16..320a35d361 100644 --- a/site/src/api/queries/debug.ts +++ b/site/src/api/queries/debug.ts @@ -1,6 +1,9 @@ -import { API } from "api/api"; -import type { HealthSettings, UpdateHealthSettings } from "api/typesGenerated"; import type { QueryClient, UseMutationOptions } from "react-query"; +import { API } from "#/api/api"; +import type { + HealthSettings, + UpdateHealthSettings, +} from "#/api/typesGenerated"; export const HEALTH_QUERY_KEY = ["health"]; export const HEALTH_QUERY_SETTINGS_KEY = ["health", "settings"]; diff --git a/site/src/api/queries/deployment.ts b/site/src/api/queries/deployment.ts index 17777bf09c..e17f2c6b08 100644 --- a/site/src/api/queries/deployment.ts +++ b/site/src/api/queries/deployment.ts @@ -1,4 +1,4 @@ -import { API } from "api/api"; +import { API } from "#/api/api"; import { disabledRefetchOptions } from "./util"; export const deploymentConfigQueryKey = ["deployment", "config"]; diff --git a/site/src/api/queries/entitlements.ts b/site/src/api/queries/entitlements.ts index cf06cf4af3..4086f8f7ea 100644 --- a/site/src/api/queries/entitlements.ts +++ b/site/src/api/queries/entitlements.ts @@ -1,7 +1,7 @@ -import { API } from "api/api"; -import type { Entitlements } from "api/typesGenerated"; import type { MetadataState } from "hooks/useEmbeddedMetadata"; import type { QueryClient } from "react-query"; +import { API } from "#/api/api"; +import type { Entitlements } from "#/api/typesGenerated"; import { cachedQuery } from "./util"; const entitlementsQueryKey = ["entitlements"] as const; diff --git a/site/src/api/queries/experiments.ts b/site/src/api/queries/experiments.ts index fe7e3419a7..304687c12d 100644 --- a/site/src/api/queries/experiments.ts +++ b/site/src/api/queries/experiments.ts @@ -1,6 +1,6 @@ -import { API } from "api/api"; -import { type Experiment, Experiments } from "api/typesGenerated"; import type { MetadataState } from "hooks/useEmbeddedMetadata"; +import { API } from "#/api/api"; +import { type Experiment, Experiments } from "#/api/typesGenerated"; import { cachedQuery } from "./util"; const experimentsKey = ["experiments"] as const; diff --git a/site/src/api/queries/externalAuth.ts b/site/src/api/queries/externalAuth.ts index 8a45791ab6..b0cd753cda 100644 --- a/site/src/api/queries/externalAuth.ts +++ b/site/src/api/queries/externalAuth.ts @@ -1,6 +1,6 @@ -import { API } from "api/api"; -import type { ExternalAuth } from "api/typesGenerated"; import type { QueryClient, UseMutationOptions } from "react-query"; +import { API } from "#/api/api"; +import type { ExternalAuth } from "#/api/typesGenerated"; // Returns all configured external auths for a given user. export const externalAuths = () => { diff --git a/site/src/api/queries/files.ts b/site/src/api/queries/files.ts index 0b1f107326..e65ce42dc4 100644 --- a/site/src/api/queries/files.ts +++ b/site/src/api/queries/files.ts @@ -1,4 +1,4 @@ -import { API } from "api/api"; +import { API } from "#/api/api"; export const uploadFile = () => { return { diff --git a/site/src/api/queries/groups.ts b/site/src/api/queries/groups.ts index 516fb20b6f..a6fbb93cde 100644 --- a/site/src/api/queries/groups.ts +++ b/site/src/api/queries/groups.ts @@ -1,4 +1,7 @@ -import { API } from "api/api"; +import type { UsePaginatedQueryOptions } from "hooks/usePaginatedQuery"; +import type { QueryClient, UseQueryOptions } from "react-query"; +import { prepareQuery } from "utils/filters"; +import { API } from "#/api/api"; import type { CreateGroupRequest, Group, @@ -6,10 +9,7 @@ import type { GroupRequest, PatchGroupRequest, UsersRequest, -} from "api/typesGenerated"; -import type { UsePaginatedQueryOptions } from "hooks/usePaginatedQuery"; -import type { QueryClient, UseQueryOptions } from "react-query"; -import { prepareQuery } from "utils/filters"; +} from "#/api/typesGenerated"; type GroupSortOrder = "asc" | "desc"; diff --git a/site/src/api/queries/idpsync.ts b/site/src/api/queries/idpsync.ts index be465ba96f..efc4175b1d 100644 --- a/site/src/api/queries/idpsync.ts +++ b/site/src/api/queries/idpsync.ts @@ -1,6 +1,6 @@ -import { API } from "api/api"; -import type { OrganizationSyncSettings } from "api/typesGenerated"; import type { QueryClient } from "react-query"; +import { API } from "#/api/api"; +import type { OrganizationSyncSettings } from "#/api/typesGenerated"; const getOrganizationIdpSyncSettingsKey = () => ["organizationIdpSyncSettings"]; diff --git a/site/src/api/queries/insights.ts b/site/src/api/queries/insights.ts index ac61860dd8..8a49a5aa5a 100644 --- a/site/src/api/queries/insights.ts +++ b/site/src/api/queries/insights.ts @@ -1,6 +1,10 @@ -import { API, type InsightsParams, type InsightsTemplateParams } from "api/api"; -import type { GetUserStatusCountsResponse } from "api/typesGenerated"; import type { UseQueryOptions } from "react-query"; +import { + API, + type InsightsParams, + type InsightsTemplateParams, +} from "#/api/api"; +import type { GetUserStatusCountsResponse } from "#/api/typesGenerated"; export const insightsTemplate = (params: InsightsTemplateParams) => { return { diff --git a/site/src/api/queries/notifications.ts b/site/src/api/queries/notifications.ts index 86d8ead105..1a1cfc9066 100644 --- a/site/src/api/queries/notifications.ts +++ b/site/src/api/queries/notifications.ts @@ -1,11 +1,11 @@ -import { API } from "api/api"; +import type { QueryClient, UseMutationOptions } from "react-query"; +import { API } from "#/api/api"; import type { NotificationPreference, NotificationTemplate, UpdateNotificationTemplateMethod, UpdateUserNotificationPreferences, -} from "api/typesGenerated"; -import type { QueryClient, UseMutationOptions } from "react-query"; +} from "#/api/typesGenerated"; export const userNotificationPreferencesKey = (userId: string) => [ "users", diff --git a/site/src/api/queries/oauth2.ts b/site/src/api/queries/oauth2.ts index a124dbd032..2704754122 100644 --- a/site/src/api/queries/oauth2.ts +++ b/site/src/api/queries/oauth2.ts @@ -1,6 +1,6 @@ -import { API } from "api/api"; -import type * as TypesGen from "api/typesGenerated"; import type { QueryClient } from "react-query"; +import { API } from "#/api/api"; +import type * as TypesGen from "#/api/typesGenerated"; const appsKey = ["oauth2-provider", "apps"]; const userAppsKey = (userId: string) => appsKey.concat(userId); diff --git a/site/src/api/queries/organizations.ts b/site/src/api/queries/organizations.ts index af6ea6a5e6..d4959da468 100644 --- a/site/src/api/queries/organizations.ts +++ b/site/src/api/queries/organizations.ts @@ -1,18 +1,3 @@ -import { - API, - type GetProvisionerDaemonsParams, - type GetProvisionerJobsParams, -} from "api/api"; -import type { - CreateOrganizationRequest, - GroupSyncSettings, - Organization, - PaginatedMembersRequest, - PaginatedMembersResponse, - RoleSyncSettings, - UpdateOrganizationRequest, - UpdateWorkspaceSharingSettingsRequest, -} from "api/typesGenerated"; import type { MetadataState } from "hooks/useEmbeddedMetadata"; import type { UsePaginatedQueryOptions } from "hooks/usePaginatedQuery"; import { @@ -26,6 +11,21 @@ import { workspacePermissionChecks, } from "modules/permissions/workspaces"; import type { QueryClient, UseQueryOptions } from "react-query"; +import { + API, + type GetProvisionerDaemonsParams, + type GetProvisionerJobsParams, +} from "#/api/api"; +import type { + CreateOrganizationRequest, + GroupSyncSettings, + Organization, + PaginatedMembersRequest, + PaginatedMembersResponse, + RoleSyncSettings, + UpdateOrganizationRequest, + UpdateWorkspaceSharingSettingsRequest, +} from "#/api/typesGenerated"; import { meKey } from "./users"; import { cachedQuery } from "./util"; diff --git a/site/src/api/queries/roles.ts b/site/src/api/queries/roles.ts index c7444a0c0c..e4bdf8cf2b 100644 --- a/site/src/api/queries/roles.ts +++ b/site/src/api/queries/roles.ts @@ -1,6 +1,6 @@ -import { API } from "api/api"; -import type { Role } from "api/typesGenerated"; import type { QueryClient } from "react-query"; +import { API } from "#/api/api"; +import type { Role } from "#/api/typesGenerated"; const getRoleQueryKey = (organizationId: string, roleName: string) => [ "organization", diff --git a/site/src/api/queries/settings.ts b/site/src/api/queries/settings.ts index d4f8923e4c..9a5cbc9fb6 100644 --- a/site/src/api/queries/settings.ts +++ b/site/src/api/queries/settings.ts @@ -1,9 +1,9 @@ -import { API } from "api/api"; +import type { QueryClient, QueryOptions } from "react-query"; +import { API } from "#/api/api"; import type { UpdateUserQuietHoursScheduleRequest, UserQuietHoursScheduleResponse, -} from "api/typesGenerated"; -import type { QueryClient, QueryOptions } from "react-query"; +} from "#/api/typesGenerated"; const userQuietHoursScheduleKey = (userId: string) => [ "settings", diff --git a/site/src/api/queries/sshKeys.ts b/site/src/api/queries/sshKeys.ts index f782756c7b..a0c0a086a3 100644 --- a/site/src/api/queries/sshKeys.ts +++ b/site/src/api/queries/sshKeys.ts @@ -1,6 +1,6 @@ -import { API } from "api/api"; -import type { GitSSHKey } from "api/typesGenerated"; import type { QueryClient } from "react-query"; +import { API } from "#/api/api"; +import type { GitSSHKey } from "#/api/typesGenerated"; const getUserSSHKeyQueryKey = (userId: string) => [userId, "sshKey"]; diff --git a/site/src/api/queries/tasks.ts b/site/src/api/queries/tasks.ts index 9f99d8440e..4902862c86 100644 --- a/site/src/api/queries/tasks.ts +++ b/site/src/api/queries/tasks.ts @@ -1,6 +1,6 @@ -import { API } from "api/api"; -import type { Task } from "api/typesGenerated"; import type { QueryClient } from "react-query"; +import { API } from "#/api/api"; +import type { Task } from "#/api/typesGenerated"; export const taskLogsKey = (user: string, taskId: string) => [ "tasks", diff --git a/site/src/api/queries/templates.ts b/site/src/api/queries/templates.ts index 6cf943007f..92137e1552 100644 --- a/site/src/api/queries/templates.ts +++ b/site/src/api/queries/templates.ts @@ -1,4 +1,11 @@ -import { API, type GetTemplatesOptions, type GetTemplatesQuery } from "api/api"; +import type { MutationOptions, QueryClient, QueryOptions } from "react-query"; +import { delay } from "utils/delay"; +import { getTemplateVersionFiles } from "utils/templateVersion"; +import { + API, + type GetTemplatesOptions, + type GetTemplatesQuery, +} from "#/api/api"; import type { CreateTemplateRequest, CreateTemplateVersionRequest, @@ -8,10 +15,7 @@ import type { TemplateRole, TemplateVersion, UsersRequest, -} from "api/typesGenerated"; -import type { MutationOptions, QueryClient, QueryOptions } from "react-query"; -import { delay } from "utils/delay"; -import { getTemplateVersionFiles } from "utils/templateVersion"; +} from "#/api/typesGenerated"; const templateKey = (templateId: string) => ["template", templateId]; diff --git a/site/src/api/queries/updateCheck.ts b/site/src/api/queries/updateCheck.ts index c697f070a9..b0724d9a1e 100644 --- a/site/src/api/queries/updateCheck.ts +++ b/site/src/api/queries/updateCheck.ts @@ -1,4 +1,4 @@ -import { API } from "api/api"; +import { API } from "#/api/api"; export const updateCheck = () => { return { diff --git a/site/src/api/queries/users.ts b/site/src/api/queries/users.ts index fc875f3d10..bccbe4c660 100644 --- a/site/src/api/queries/users.ts +++ b/site/src/api/queries/users.ts @@ -1,4 +1,16 @@ -import { API } from "api/api"; +import { + defaultMetadataManager, + type MetadataState, +} from "hooks/useEmbeddedMetadata"; +import type { UsePaginatedQueryOptions } from "hooks/usePaginatedQuery"; +import type { + MutationOptions, + QueryClient, + UseMutationOptions, + UseQueryOptions, +} from "react-query"; +import { prepareQuery } from "utils/filters"; +import { API } from "#/api/api"; import type { AuthorizationRequest, GenerateAPIKeyResponse, @@ -13,19 +25,7 @@ import type { UserAppearanceSettings, UserPreferenceSettings, UsersRequest, -} from "api/typesGenerated"; -import { - defaultMetadataManager, - type MetadataState, -} from "hooks/useEmbeddedMetadata"; -import type { UsePaginatedQueryOptions } from "hooks/usePaginatedQuery"; -import type { - MutationOptions, - QueryClient, - UseMutationOptions, - UseQueryOptions, -} from "react-query"; -import { prepareQuery } from "utils/filters"; +} from "#/api/typesGenerated"; import { getAuthorizationKey } from "./authCheck"; import { cachedQuery } from "./util"; diff --git a/site/src/api/queries/workspaceBuilds.ts b/site/src/api/queries/workspaceBuilds.ts index 4617d988e3..de6ef8408f 100644 --- a/site/src/api/queries/workspaceBuilds.ts +++ b/site/src/api/queries/workspaceBuilds.ts @@ -1,10 +1,10 @@ -import { API } from "api/api"; +import type { QueryOptions, UseInfiniteQueryOptions } from "react-query"; +import { API } from "#/api/api"; import type { WorkspaceBuild, WorkspaceBuildParameter, WorkspaceBuildsRequest, -} from "api/typesGenerated"; -import type { QueryOptions, UseInfiniteQueryOptions } from "react-query"; +} from "#/api/typesGenerated"; export function workspaceBuildParametersKey(workspaceBuildId: string) { return ["workspaceBuilds", workspaceBuildId, "parameters"] as const; diff --git a/site/src/api/queries/workspaceQuota.ts b/site/src/api/queries/workspaceQuota.ts index 17b39463d6..a262c8c328 100644 --- a/site/src/api/queries/workspaceQuota.ts +++ b/site/src/api/queries/workspaceQuota.ts @@ -1,4 +1,4 @@ -import { API } from "api/api"; +import { API } from "#/api/api"; export const getWorkspaceQuotaQueryKey = ( organizationName: string, diff --git a/site/src/api/queries/workspaceportsharing.ts b/site/src/api/queries/workspaceportsharing.ts index 30b01df0e5..cea0eb4980 100644 --- a/site/src/api/queries/workspaceportsharing.ts +++ b/site/src/api/queries/workspaceportsharing.ts @@ -1,8 +1,8 @@ -import { API } from "api/api"; +import { API } from "#/api/api"; import type { DeleteWorkspaceAgentPortShareRequest, UpsertWorkspaceAgentPortShareRequest, -} from "api/typesGenerated"; +} from "#/api/typesGenerated"; export const workspacePortShares = (workspaceId: string) => { return { diff --git a/site/src/api/queries/workspaces.ts b/site/src/api/queries/workspaces.ts index 237fed6a2f..b005201548 100644 --- a/site/src/api/queries/workspaces.ts +++ b/site/src/api/queries/workspaces.ts @@ -1,5 +1,18 @@ -import { API, type DeleteWorkspaceOptions } from "api/api"; -import { DetailedError, isApiValidationError } from "api/errors"; +import type { Dayjs } from "dayjs"; +import { + type WorkspacePermissions, + workspaceChecks, +} from "modules/workspaces/permissions"; +import type { ConnectionStatus } from "pages/TerminalPage/types"; +import type { + MutationOptions, + QueryClient, + QueryOptions, + UseMutationOptions, + UseQueryOptions, +} from "react-query"; +import { API, type DeleteWorkspaceOptions } from "#/api/api"; +import { DetailedError, isApiValidationError } from "#/api/errors"; import type { CreateWorkspaceRequest, ProvisionerLogLevel, @@ -15,20 +28,7 @@ import type { WorkspaceRole, WorkspacesRequest, WorkspacesResponse, -} from "api/typesGenerated"; -import type { Dayjs } from "dayjs"; -import { - type WorkspacePermissions, - workspaceChecks, -} from "modules/workspaces/permissions"; -import type { ConnectionStatus } from "pages/TerminalPage/types"; -import type { - MutationOptions, - QueryClient, - QueryOptions, - UseMutationOptions, - UseQueryOptions, -} from "react-query"; +} from "#/api/typesGenerated"; import { checkAuthorization } from "./authCheck"; import { disabledRefetchOptions } from "./util"; import { workspaceBuildsKey } from "./workspaceBuilds"; diff --git a/site/src/components/Alert/ErrorAlert.tsx b/site/src/components/Alert/ErrorAlert.tsx index 0ca883b985..dded4acb65 100644 --- a/site/src/components/Alert/ErrorAlert.tsx +++ b/site/src/components/Alert/ErrorAlert.tsx @@ -1,6 +1,6 @@ -import { getErrorDetail, getErrorMessage, getErrorStatus } from "api/errors"; import { isAxiosError } from "axios"; import type { FC } from "react"; +import { getErrorDetail, getErrorMessage, getErrorStatus } from "#/api/errors"; import { Link } from "../Link/Link"; import { Alert, AlertDescription, type AlertProps, AlertTitle } from "./Alert"; diff --git a/site/src/components/BuildIcon/BuildIcon.tsx b/site/src/components/BuildIcon/BuildIcon.tsx index 43f7f2f603..8e72d8a1ab 100644 --- a/site/src/components/BuildIcon/BuildIcon.tsx +++ b/site/src/components/BuildIcon/BuildIcon.tsx @@ -1,6 +1,6 @@ -import type { WorkspaceTransition } from "api/typesGenerated"; import { PlayIcon, SquareIcon, TrashIcon } from "lucide-react"; import type { ComponentProps } from "react"; +import type { WorkspaceTransition } from "#/api/typesGenerated"; type SVGIcon = typeof PlayIcon; diff --git a/site/src/components/Filter/Filter.tsx b/site/src/components/Filter/Filter.tsx index 84cb8cee59..3a71622c8d 100644 --- a/site/src/components/Filter/Filter.tsx +++ b/site/src/components/Filter/Filter.tsx @@ -1,14 +1,14 @@ import { useTheme } from "@emotion/react"; import Skeleton, { type SkeletonProps } from "@mui/material/Skeleton"; import type { Breakpoint } from "@mui/system/createTheme"; +import { useDebouncedFunction } from "hooks/debounce"; +import { ExternalLinkIcon, SlidersHorizontal } from "lucide-react"; +import { type FC, type ReactNode, useEffect, useRef, useState } from "react"; import { getValidationErrorMessage, hasError, isApiValidationError, -} from "api/errors"; -import { useDebouncedFunction } from "hooks/debounce"; -import { ExternalLinkIcon, SlidersHorizontal } from "lucide-react"; -import { type FC, type ReactNode, useEffect, useRef, useState } from "react"; +} from "#/api/errors"; import { Button } from "#/components/Button/Button"; import { DropdownMenu, diff --git a/site/src/components/Filter/UserFilter.tsx b/site/src/components/Filter/UserFilter.tsx index 8c7dd310ba..ff03f059a7 100644 --- a/site/src/components/Filter/UserFilter.tsx +++ b/site/src/components/Filter/UserFilter.tsx @@ -1,6 +1,6 @@ -import { API } from "api/api"; import { useAuthenticated } from "hooks"; import type { FC } from "react"; +import { API } from "#/api/api"; import { Avatar } from "#/components/Avatar/Avatar"; import { ComboboxInput } from "#/components/Combobox/Combobox"; import { diff --git a/site/src/components/GitDeviceAuth/GitDeviceAuth.tsx b/site/src/components/GitDeviceAuth/GitDeviceAuth.tsx index 619237acf6..3effedbb88 100644 --- a/site/src/components/GitDeviceAuth/GitDeviceAuth.tsx +++ b/site/src/components/GitDeviceAuth/GitDeviceAuth.tsx @@ -1,11 +1,11 @@ import type { Interpolation, Theme } from "@emotion/react"; import CircularProgress from "@mui/material/CircularProgress"; import Link from "@mui/material/Link"; -import type { ApiErrorResponse } from "api/errors"; -import type { ExternalAuthDevice } from "api/typesGenerated"; import { isAxiosError } from "axios"; import { ExternalLinkIcon } from "lucide-react"; import type { FC } from "react"; +import type { ApiErrorResponse } from "#/api/errors"; +import type { ExternalAuthDevice } from "#/api/typesGenerated"; import { Alert, AlertDescription, AlertTitle } from "#/components/Alert/Alert"; import { CopyButton } from "#/components/CopyButton/CopyButton"; diff --git a/site/src/components/Logs/LogLine.tsx b/site/src/components/Logs/LogLine.tsx index 7c2e56f190..8fc977c430 100644 --- a/site/src/components/Logs/LogLine.tsx +++ b/site/src/components/Logs/LogLine.tsx @@ -1,7 +1,7 @@ import type { Interpolation, Theme } from "@emotion/react"; -import type { LogLevel } from "api/typesGenerated"; import type { FC, HTMLAttributes } from "react"; import { MONOSPACE_FONT_FAMILY } from "theme/constants"; +import type { LogLevel } from "#/api/typesGenerated"; const DEFAULT_LOG_LINE_SIDE_PADDING = 24; diff --git a/site/src/components/OrganizationAutocomplete/OrganizationAutocomplete.tsx b/site/src/components/OrganizationAutocomplete/OrganizationAutocomplete.tsx index 16e4cd35c9..fd0ca26741 100644 --- a/site/src/components/OrganizationAutocomplete/OrganizationAutocomplete.tsx +++ b/site/src/components/OrganizationAutocomplete/OrganizationAutocomplete.tsx @@ -1,9 +1,9 @@ -import { checkAuthorization } from "api/queries/authCheck"; -import { organizations } from "api/queries/organizations"; -import type { AuthorizationCheck, Organization } from "api/typesGenerated"; import { Check } from "lucide-react"; import { type FC, useEffect, useState } from "react"; import { useQuery } from "react-query"; +import { checkAuthorization } from "#/api/queries/authCheck"; +import { organizations } from "#/api/queries/organizations"; +import type { AuthorizationCheck, Organization } from "#/api/typesGenerated"; import { ChevronDownIcon } from "#/components/AnimatedIcons/ChevronDown"; import { Avatar } from "#/components/Avatar/Avatar"; import { Button } from "#/components/Button/Button"; diff --git a/site/src/components/PasswordField/PasswordField.stories.tsx b/site/src/components/PasswordField/PasswordField.stories.tsx index ae860b442b..a69b376128 100644 --- a/site/src/components/PasswordField/PasswordField.stories.tsx +++ b/site/src/components/PasswordField/PasswordField.stories.tsx @@ -1,7 +1,7 @@ import type { Meta, StoryObj } from "@storybook/react-vite"; -import { API } from "api/api"; import { useState } from "react"; import { expect, spyOn, userEvent, waitFor, within } from "storybook/test"; +import { API } from "#/api/api"; import { PasswordField } from "./PasswordField"; const meta: Meta = { diff --git a/site/src/components/PasswordField/PasswordField.tsx b/site/src/components/PasswordField/PasswordField.tsx index e33b6cb478..45eef2934f 100644 --- a/site/src/components/PasswordField/PasswordField.tsx +++ b/site/src/components/PasswordField/PasswordField.tsx @@ -1,8 +1,8 @@ import TextField, { type TextFieldProps } from "@mui/material/TextField"; -import { API } from "api/api"; import { useDebouncedValue } from "hooks/debounce"; import type { FC } from "react"; import { keepPreviousData, useQuery } from "react-query"; +import { API } from "#/api/api"; // TODO: @BrunoQuaresma: Unable to integrate Yup + Formik for validation. The // validation was triggering on the onChange event, but the form.errors were not diff --git a/site/src/components/RichParameterInput/RichParameterInput.stories.tsx b/site/src/components/RichParameterInput/RichParameterInput.stories.tsx index cf44c8fec8..e3638ba343 100644 --- a/site/src/components/RichParameterInput/RichParameterInput.stories.tsx +++ b/site/src/components/RichParameterInput/RichParameterInput.stories.tsx @@ -1,6 +1,6 @@ import { chromatic } from "testHelpers/chromatic"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import type { TemplateVersionParameter } from "api/typesGenerated"; +import type { TemplateVersionParameter } from "#/api/typesGenerated"; import { RichParameterInput } from "./RichParameterInput"; const meta: Meta = { diff --git a/site/src/components/RichParameterInput/RichParameterInput.tsx b/site/src/components/RichParameterInput/RichParameterInput.tsx index 732ffde302..f564d0f399 100644 --- a/site/src/components/RichParameterInput/RichParameterInput.tsx +++ b/site/src/components/RichParameterInput/RichParameterInput.tsx @@ -5,13 +5,13 @@ import type { InputBaseComponentProps } from "@mui/material/InputBase"; import Radio from "@mui/material/Radio"; import RadioGroup from "@mui/material/RadioGroup"; import TextField, { type TextFieldProps } from "@mui/material/TextField"; -import type { TemplateVersionParameter } from "api/typesGenerated"; import { CircleAlertIcon, SettingsIcon } from "lucide-react"; import { type FC, type ReactNode, useState } from "react"; import type { AutofillBuildParameter, AutofillSource, } from "utils/richParameters"; +import type { TemplateVersionParameter } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { ExternalImage } from "#/components/ExternalImage/ExternalImage"; import { MemoizedMarkdown } from "#/components/Markdown/Markdown"; diff --git a/site/src/components/UserAutocomplete/UserAutocomplete.tsx b/site/src/components/UserAutocomplete/UserAutocomplete.tsx index 8ba253a23c..e990acf13b 100644 --- a/site/src/components/UserAutocomplete/UserAutocomplete.tsx +++ b/site/src/components/UserAutocomplete/UserAutocomplete.tsx @@ -1,16 +1,16 @@ -import { getErrorMessage } from "api/errors"; -import { organizationMembers } from "api/queries/organizations"; -import { users, workspaceAvailableUsers } from "api/queries/users"; -import type { - MinimalUser, - OrganizationMemberWithUserData, - User, -} from "api/typesGenerated"; import { useDebouncedFunction, useDebouncedValue } from "hooks/debounce"; import { type FC, useId, useState } from "react"; import { keepPreviousData, useQuery } from "react-query"; import { cn } from "utils/cn"; import { prepareQuery } from "utils/filters"; +import { getErrorMessage } from "#/api/errors"; +import { organizationMembers } from "#/api/queries/organizations"; +import { users, workspaceAvailableUsers } from "#/api/queries/users"; +import type { + MinimalUser, + OrganizationMemberWithUserData, + User, +} from "#/api/typesGenerated"; import { ChevronDownIcon } from "#/components/AnimatedIcons/ChevronDown"; import { Avatar } from "#/components/Avatar/Avatar"; import { AvatarData } from "#/components/Avatar/AvatarData"; diff --git a/site/src/components/ai-elements/tool/ProposePlanTool.stories.tsx b/site/src/components/ai-elements/tool/ProposePlanTool.stories.tsx index 054712bc9c..386d6ed563 100644 --- a/site/src/components/ai-elements/tool/ProposePlanTool.stories.tsx +++ b/site/src/components/ai-elements/tool/ProposePlanTool.stories.tsx @@ -1,7 +1,7 @@ import type { Meta, StoryObj } from "@storybook/react-vite"; -import { API } from "api/api"; import { expect, spyOn, within } from "storybook/test"; import { reactRouterParameters } from "storybook-addon-remix-react-router"; +import { API } from "#/api/api"; import { Tool } from "./Tool"; const samplePlan = [ diff --git a/site/src/components/ai-elements/tool/ProposePlanTool.tsx b/site/src/components/ai-elements/tool/ProposePlanTool.tsx index 9fdcf489c8..0380d392a5 100644 --- a/site/src/components/ai-elements/tool/ProposePlanTool.tsx +++ b/site/src/components/ai-elements/tool/ProposePlanTool.tsx @@ -1,8 +1,8 @@ -import { API } from "api/api"; import { LoaderIcon, TriangleAlertIcon } from "lucide-react"; import type React from "react"; import { useQuery } from "react-query"; import { cn } from "utils/cn"; +import { API } from "#/api/api"; import { Tooltip, TooltipContent, diff --git a/site/src/components/ai-elements/tool/Tool.tsx b/site/src/components/ai-elements/tool/Tool.tsx index 85db384ee4..0c583167e0 100644 --- a/site/src/components/ai-elements/tool/Tool.tsx +++ b/site/src/components/ai-elements/tool/Tool.tsx @@ -1,9 +1,9 @@ import { useTheme } from "@emotion/react"; import { FileDiff, File as FileViewer } from "@pierre/diffs/react"; -import type * as TypesGen from "api/typesGenerated"; import { LoaderIcon, TriangleAlertIcon } from "lucide-react"; import { type ComponentPropsWithRef, type FC, memo } from "react"; import { cn } from "utils/cn"; +import type * as TypesGen from "#/api/typesGenerated"; import { ScrollArea } from "#/components/ScrollArea/ScrollArea"; import { Tooltip, diff --git a/site/src/contexts/ProxyContext.test.tsx b/site/src/contexts/ProxyContext.test.tsx index 02ef54f407..8bfcb62a5d 100644 --- a/site/src/contexts/ProxyContext.test.tsx +++ b/site/src/contexts/ProxyContext.test.tsx @@ -12,8 +12,8 @@ import { import { server } from "testHelpers/server"; import { screen } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; -import type { Region } from "api/typesGenerated"; import { HttpResponse, http } from "msw"; +import type { Region } from "#/api/typesGenerated"; import { getPreferredProxy, ProxyProvider, diff --git a/site/src/contexts/ProxyContext.tsx b/site/src/contexts/ProxyContext.tsx index d4aeb9d3fe..4d5e512009 100644 --- a/site/src/contexts/ProxyContext.tsx +++ b/site/src/contexts/ProxyContext.tsx @@ -1,6 +1,3 @@ -import { API } from "api/api"; -import { cachedQuery } from "api/queries/util"; -import type { Region, WorkspaceProxy } from "api/typesGenerated"; import { useAuthenticated } from "hooks"; import { useEmbeddedMetadata } from "hooks/useEmbeddedMetadata"; import { @@ -13,6 +10,9 @@ import { useState, } from "react"; import { useQuery } from "react-query"; +import { API } from "#/api/api"; +import { cachedQuery } from "#/api/queries/util"; +import type { Region, WorkspaceProxy } from "#/api/typesGenerated"; import { type ProxyLatencyReport, useProxyLatency } from "./useProxyLatency"; export type Proxies = readonly Region[] | readonly WorkspaceProxy[]; diff --git a/site/src/contexts/ThemeProvider.tsx b/site/src/contexts/ThemeProvider.tsx index 5939a90787..2090ce6fcb 100644 --- a/site/src/contexts/ThemeProvider.tsx +++ b/site/src/contexts/ThemeProvider.tsx @@ -11,7 +11,6 @@ import { ThemeProvider as MuiThemeProvider, StyledEngineProvider, } from "@mui/material/styles"; -import { appearanceSettings } from "api/queries/users"; import { useEmbeddedMetadata } from "hooks/useEmbeddedMetadata"; import { type FC, @@ -23,6 +22,7 @@ import { } from "react"; import { useQuery } from "react-query"; import themes, { DEFAULT_THEME, type Theme } from "theme"; +import { appearanceSettings } from "#/api/queries/users"; /** * diff --git a/site/src/contexts/auth/AuthProvider.tsx b/site/src/contexts/auth/AuthProvider.tsx index 83cec2c1f9..928e64d3bb 100644 --- a/site/src/contexts/auth/AuthProvider.tsx +++ b/site/src/contexts/auth/AuthProvider.tsx @@ -1,13 +1,3 @@ -import { isApiError } from "api/errors"; -import { checkAuthorization } from "api/queries/authCheck"; -import { - hasFirstUser, - login, - logout, - me, - updateProfile as updateProfileOptions, -} from "api/queries/users"; -import type { UpdateUserProfileRequest, User } from "api/typesGenerated"; import { useEmbeddedMetadata } from "hooks/useEmbeddedMetadata"; import { type Permissions, permissionChecks } from "modules/permissions"; import { @@ -19,6 +9,16 @@ import { } from "react"; import { useMutation, useQuery, useQueryClient } from "react-query"; import { toast } from "sonner"; +import { isApiError } from "#/api/errors"; +import { checkAuthorization } from "#/api/queries/authCheck"; +import { + hasFirstUser, + login, + logout, + me, + updateProfile as updateProfileOptions, +} from "#/api/queries/users"; +import type { UpdateUserProfileRequest, User } from "#/api/typesGenerated"; export type AuthContextValue = { isLoading: boolean; diff --git a/site/src/contexts/auth/RequireAuth.tsx b/site/src/contexts/auth/RequireAuth.tsx index e04e828856..c69ac2af76 100644 --- a/site/src/contexts/auth/RequireAuth.tsx +++ b/site/src/contexts/auth/RequireAuth.tsx @@ -1,10 +1,10 @@ -import { API } from "api/api"; -import { isApiError } from "api/errors"; import { ProxyProvider as ProductionProxyProvider } from "contexts/ProxyContext"; import { DashboardProvider as ProductionDashboardProvider } from "modules/dashboard/DashboardProvider"; import { type FC, useEffect } from "react"; import { Navigate, Outlet, useLocation } from "react-router"; import { embedRedirect } from "utils/redirect"; +import { API } from "#/api/api"; +import { isApiError } from "#/api/errors"; import { Loader } from "#/components/Loader/Loader"; import { useAuthContext } from "./AuthProvider"; diff --git a/site/src/contexts/useProxyLatency.ts b/site/src/contexts/useProxyLatency.ts index ed661c319b..4399edb787 100644 --- a/site/src/contexts/useProxyLatency.ts +++ b/site/src/contexts/useProxyLatency.ts @@ -1,7 +1,7 @@ -import { API } from "api/api"; -import type { Region } from "api/typesGenerated"; import { useEffect, useReducer, useState } from "react"; import { generateRandomString } from "utils/random"; +import { API } from "#/api/api"; +import type { Region } from "#/api/typesGenerated"; const proxyIntervalSeconds = 30; // seconds diff --git a/site/src/contexts/useWebpushNotifications.ts b/site/src/contexts/useWebpushNotifications.ts index 2dcc2236ef..a268aa16da 100644 --- a/site/src/contexts/useWebpushNotifications.ts +++ b/site/src/contexts/useWebpushNotifications.ts @@ -1,9 +1,9 @@ -import { API } from "api/api"; -import { buildInfo } from "api/queries/buildInfo"; -import { experiments } from "api/queries/experiments"; import { useEmbeddedMetadata } from "hooks/useEmbeddedMetadata"; import { useEffect, useState } from "react"; import { useQuery } from "react-query"; +import { API } from "#/api/api"; +import { buildInfo } from "#/api/queries/buildInfo"; +import { experiments } from "#/api/queries/experiments"; interface WebpushNotifications { readonly enabled: boolean; diff --git a/site/src/hooks/useEmbeddedMetadata.test.ts b/site/src/hooks/useEmbeddedMetadata.test.ts index eb1485ba30..22bdd3b456 100644 --- a/site/src/hooks/useEmbeddedMetadata.test.ts +++ b/site/src/hooks/useEmbeddedMetadata.test.ts @@ -11,7 +11,7 @@ import { MockUserOwner, } from "testHelpers/entities"; import { act, renderHook } from "@testing-library/react"; -import type { Region, User } from "api/typesGenerated"; +import type { Region, User } from "#/api/typesGenerated"; import { DEFAULT_METADATA_KEY, type MetadataKey, diff --git a/site/src/hooks/useEmbeddedMetadata.ts b/site/src/hooks/useEmbeddedMetadata.ts index 79a3118b24..1f1e61d3ae 100644 --- a/site/src/hooks/useEmbeddedMetadata.ts +++ b/site/src/hooks/useEmbeddedMetadata.ts @@ -1,3 +1,5 @@ +import type { Permissions } from "modules/permissions"; +import { useMemo, useSyncExternalStore } from "react"; import type { AppearanceConfig, BuildInfoResponse, @@ -7,9 +9,7 @@ import type { Region, User, UserAppearanceSettings, -} from "api/typesGenerated"; -import type { Permissions } from "modules/permissions"; -import { useMemo, useSyncExternalStore } from "react"; +} from "#/api/typesGenerated"; export const DEFAULT_METADATA_KEY = "property"; /** diff --git a/site/src/hooks/useExternalAuth.ts b/site/src/hooks/useExternalAuth.ts index 0419723528..8a421c024b 100644 --- a/site/src/hooks/useExternalAuth.ts +++ b/site/src/hooks/useExternalAuth.ts @@ -1,6 +1,6 @@ -import { templateVersionExternalAuth } from "api/queries/templates"; import { useCallback, useEffect, useState } from "react"; import { useQuery } from "react-query"; +import { templateVersionExternalAuth } from "#/api/queries/templates"; export type ExternalAuthPollingState = "idle" | "polling" | "abandoned"; diff --git a/site/src/hooks/useWorkspaceBuildLogs.ts b/site/src/hooks/useWorkspaceBuildLogs.ts index 14cac81023..9565918ab9 100644 --- a/site/src/hooks/useWorkspaceBuildLogs.ts +++ b/site/src/hooks/useWorkspaceBuildLogs.ts @@ -1,7 +1,7 @@ -import { watchBuildLogsByBuildId } from "api/api"; -import type { ProvisionerJobLog } from "api/typesGenerated"; import { useEffect, useRef, useState } from "react"; import { toast } from "sonner"; +import { watchBuildLogsByBuildId } from "#/api/api"; +import type { ProvisionerJobLog } from "#/api/typesGenerated"; export const useWorkspaceBuildLogs = ( // buildId is optional because sometimes the build is not loaded yet diff --git a/site/src/modules/apps/AppStatusStateIcon.tsx b/site/src/modules/apps/AppStatusStateIcon.tsx index febdb40bb4..96a9c981cb 100644 --- a/site/src/modules/apps/AppStatusStateIcon.tsx +++ b/site/src/modules/apps/AppStatusStateIcon.tsx @@ -1,4 +1,3 @@ -import type { WorkspaceAppStatusState } from "api/typesGenerated"; import { BanIcon, CircleAlertIcon, @@ -9,6 +8,7 @@ import { } from "lucide-react"; import type { FC } from "react"; import { cn } from "utils/cn"; +import type { WorkspaceAppStatusState } from "#/api/typesGenerated"; import { Spinner } from "#/components/Spinner/Spinner"; type AppStatusStateIconProps = { diff --git a/site/src/modules/apps/apps.ts b/site/src/modules/apps/apps.ts index da6df2432e..0cdf3f091c 100644 --- a/site/src/modules/apps/apps.ts +++ b/site/src/modules/apps/apps.ts @@ -1,9 +1,9 @@ +import { toast } from "sonner"; import type { Workspace, WorkspaceAgent, WorkspaceApp, -} from "api/typesGenerated"; -import { toast } from "sonner"; +} from "#/api/typesGenerated"; // This is a magic undocumented string that is replaced // with a brand-new session token from the backend. diff --git a/site/src/modules/apps/useAppLink.ts b/site/src/modules/apps/useAppLink.ts index c3d0a550eb..c10b1fc2fe 100644 --- a/site/src/modules/apps/useAppLink.ts +++ b/site/src/modules/apps/useAppLink.ts @@ -1,13 +1,13 @@ -import { apiKey } from "api/queries/users"; -import type { - Workspace, - WorkspaceAgent, - WorkspaceApp, -} from "api/typesGenerated"; import { useProxy } from "contexts/ProxyContext"; import type React from "react"; import { useQuery } from "react-query"; import { toast } from "sonner"; +import { apiKey } from "#/api/queries/users"; +import type { + Workspace, + WorkspaceAgent, + WorkspaceApp, +} from "#/api/typesGenerated"; import { getAppHref, isExternalApp, diff --git a/site/src/modules/builds/BuildAvatar/BuildAvatar.tsx b/site/src/modules/builds/BuildAvatar/BuildAvatar.tsx index ac9b14840f..6dca1839eb 100644 --- a/site/src/modules/builds/BuildAvatar/BuildAvatar.tsx +++ b/site/src/modules/builds/BuildAvatar/BuildAvatar.tsx @@ -1,8 +1,8 @@ import { useTheme } from "@emotion/react"; -import type { WorkspaceBuild } from "api/typesGenerated"; import { useClassName } from "hooks/useClassName"; import type { FC } from "react"; import { getDisplayWorkspaceBuildStatus } from "utils/workspace"; +import type { WorkspaceBuild } from "#/api/typesGenerated"; import { Avatar, type AvatarProps } from "#/components/Avatar/Avatar"; import { BuildIcon } from "#/components/BuildIcon/BuildIcon"; diff --git a/site/src/modules/dashboard/AnnouncementBanners/AnnouncementBanners.tsx b/site/src/modules/dashboard/AnnouncementBanners/AnnouncementBanners.tsx index 1e4411edf7..84f7d25fdc 100644 --- a/site/src/modules/dashboard/AnnouncementBanners/AnnouncementBanners.tsx +++ b/site/src/modules/dashboard/AnnouncementBanners/AnnouncementBanners.tsx @@ -1,6 +1,6 @@ -import type { BannerConfig } from "api/typesGenerated"; import { useDashboard } from "modules/dashboard/useDashboard"; import type { FC } from "react"; +import type { BannerConfig } from "#/api/typesGenerated"; import { AnnouncementBannerView } from "./AnnouncementBannerView"; export const AnnouncementBanners: FC = () => { diff --git a/site/src/modules/dashboard/DashboardProvider.tsx b/site/src/modules/dashboard/DashboardProvider.tsx index 887e008747..631a0a5971 100644 --- a/site/src/modules/dashboard/DashboardProvider.tsx +++ b/site/src/modules/dashboard/DashboardProvider.tsx @@ -1,20 +1,20 @@ -import { appearance } from "api/queries/appearance"; -import { buildInfo } from "api/queries/buildInfo"; -import { entitlements } from "api/queries/entitlements"; -import { experiments } from "api/queries/experiments"; -import { organizations } from "api/queries/organizations"; +import { useAuthenticated } from "hooks"; +import { useEmbeddedMetadata } from "hooks/useEmbeddedMetadata"; +import { canViewAnyOrganization } from "modules/permissions"; +import { createContext, type FC, type PropsWithChildren } from "react"; +import { useQuery } from "react-query"; +import { appearance } from "#/api/queries/appearance"; +import { buildInfo } from "#/api/queries/buildInfo"; +import { entitlements } from "#/api/queries/entitlements"; +import { experiments } from "#/api/queries/experiments"; +import { organizations } from "#/api/queries/organizations"; import type { AppearanceConfig, BuildInfoResponse, Entitlements, Experiment, Organization, -} from "api/typesGenerated"; -import { useAuthenticated } from "hooks"; -import { useEmbeddedMetadata } from "hooks/useEmbeddedMetadata"; -import { canViewAnyOrganization } from "modules/permissions"; -import { createContext, type FC, type PropsWithChildren } from "react"; -import { useQuery } from "react-query"; +} from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Loader } from "#/components/Loader/Loader"; import { selectFeatureVisibility } from "./entitlements"; diff --git a/site/src/modules/dashboard/DeploymentBanner/DeploymentBanner.tsx b/site/src/modules/dashboard/DeploymentBanner/DeploymentBanner.tsx index 46a08d6dd6..bf3847fcf2 100644 --- a/site/src/modules/dashboard/DeploymentBanner/DeploymentBanner.tsx +++ b/site/src/modules/dashboard/DeploymentBanner/DeploymentBanner.tsx @@ -1,9 +1,9 @@ -import { health } from "api/queries/debug"; -import { deploymentStats } from "api/queries/deployment"; import { useAuthenticated } from "hooks"; import type { FC } from "react"; import { useQuery } from "react-query"; import { useLocation } from "react-router"; +import { health } from "#/api/queries/debug"; +import { deploymentStats } from "#/api/queries/deployment"; import { DeploymentBannerView } from "./DeploymentBannerView"; const HIDE_DEPLOYMENT_BANNER_PATHS = [ diff --git a/site/src/modules/dashboard/DeploymentBanner/DeploymentBannerView.tsx b/site/src/modules/dashboard/DeploymentBanner/DeploymentBannerView.tsx index a3662bad5a..885845528b 100644 --- a/site/src/modules/dashboard/DeploymentBanner/DeploymentBannerView.tsx +++ b/site/src/modules/dashboard/DeploymentBanner/DeploymentBannerView.tsx @@ -1,8 +1,3 @@ -import type { - DeploymentStats, - HealthcheckReport, - WorkspaceStatus, -} from "api/typesGenerated"; import dayjs from "dayjs"; import { AppWindowIcon, @@ -24,6 +19,11 @@ import { } from "react"; import { Link as RouterLink } from "react-router"; import { getDisplayWorkspaceStatus } from "utils/workspace"; +import type { + DeploymentStats, + HealthcheckReport, + WorkspaceStatus, +} from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { HelpTooltipTitle } from "#/components/HelpTooltip/HelpTooltip"; import { JetBrainsIcon } from "#/components/Icons/JetBrainsIcon"; diff --git a/site/src/modules/dashboard/LicenseBanner/LicenseBannerView.stories.tsx b/site/src/modules/dashboard/LicenseBanner/LicenseBannerView.stories.tsx index e8e6981152..423447cfb9 100644 --- a/site/src/modules/dashboard/LicenseBanner/LicenseBannerView.stories.tsx +++ b/site/src/modules/dashboard/LicenseBanner/LicenseBannerView.stories.tsx @@ -1,6 +1,6 @@ import { chromatic } from "testHelpers/chromatic"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { LicenseManagedAgentLimitExceededWarningText } from "api/typesGenerated"; +import { LicenseManagedAgentLimitExceededWarningText } from "#/api/typesGenerated"; import { LicenseBannerView } from "./LicenseBannerView"; const meta: Meta = { diff --git a/site/src/modules/dashboard/LicenseBanner/LicenseBannerView.tsx b/site/src/modules/dashboard/LicenseBanner/LicenseBannerView.tsx index d99e0c6b7a..9b055e1f15 100644 --- a/site/src/modules/dashboard/LicenseBanner/LicenseBannerView.tsx +++ b/site/src/modules/dashboard/LicenseBanner/LicenseBannerView.tsx @@ -1,10 +1,10 @@ -import { - LicenseManagedAgentLimitExceededWarningText, - LicenseTelemetryRequiredErrorText, -} from "api/typesGenerated"; import { useState } from "react"; import { cn } from "utils/cn"; import { docs } from "utils/docs"; +import { + LicenseManagedAgentLimitExceededWarningText, + LicenseTelemetryRequiredErrorText, +} from "#/api/typesGenerated"; import { Expander } from "#/components/Expander/Expander"; import { Link } from "#/components/Link/Link"; import { Pill } from "#/components/Pill/Pill"; diff --git a/site/src/modules/dashboard/Navbar/MobileMenu.tsx b/site/src/modules/dashboard/Navbar/MobileMenu.tsx index 2762b7a8ea..ac9b5ae116 100644 --- a/site/src/modules/dashboard/Navbar/MobileMenu.tsx +++ b/site/src/modules/dashboard/Navbar/MobileMenu.tsx @@ -1,4 +1,3 @@ -import type * as TypesGen from "api/typesGenerated"; import type { ProxyContextValue } from "contexts/ProxyContext"; import { ChevronRightIcon, @@ -10,6 +9,7 @@ import { type FC, useState } from "react"; import { Link } from "react-router"; import { toast } from "sonner"; import { cn } from "utils/cn"; +import type * as TypesGen from "#/api/typesGenerated"; import { Avatar } from "#/components/Avatar/Avatar"; import { Button } from "#/components/Button/Button"; import { diff --git a/site/src/modules/dashboard/Navbar/Navbar.tsx b/site/src/modules/dashboard/Navbar/Navbar.tsx index 82d7d8c040..781ddd6b26 100644 --- a/site/src/modules/dashboard/Navbar/Navbar.tsx +++ b/site/src/modules/dashboard/Navbar/Navbar.tsx @@ -1,5 +1,3 @@ -import { buildInfo } from "api/queries/buildInfo"; -import type { LinkConfig } from "api/typesGenerated"; import { useProxy } from "contexts/ProxyContext"; import { useAuthenticated } from "hooks"; import { useEmbeddedMetadata } from "hooks/useEmbeddedMetadata"; @@ -7,6 +5,8 @@ import { useDashboard } from "modules/dashboard/useDashboard"; import { canViewDeploymentSettings } from "modules/permissions"; import type { FC } from "react"; import { useQuery } from "react-query"; +import { buildInfo } from "#/api/queries/buildInfo"; +import type { LinkConfig } from "#/api/typesGenerated"; import { useFeatureVisibility } from "../useFeatureVisibility"; import { NavbarView } from "./NavbarView"; diff --git a/site/src/modules/dashboard/Navbar/NavbarView.stories.tsx b/site/src/modules/dashboard/Navbar/NavbarView.stories.tsx index 6c06241411..6549209d62 100644 --- a/site/src/modules/dashboard/Navbar/NavbarView.stories.tsx +++ b/site/src/modules/dashboard/Navbar/NavbarView.stories.tsx @@ -2,8 +2,8 @@ import { chromaticWithTablet } from "testHelpers/chromatic"; import { MockTasks, MockUserMember, MockUserOwner } from "testHelpers/entities"; import { withDashboardProvider } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import type { TasksFilter } from "api/typesGenerated"; import { userEvent, within } from "storybook/test"; +import type { TasksFilter } from "#/api/typesGenerated"; import { NavbarView } from "./NavbarView"; const tasksFilter: TasksFilter = { diff --git a/site/src/modules/dashboard/Navbar/NavbarView.tsx b/site/src/modules/dashboard/Navbar/NavbarView.tsx index 011dc6088c..ab631ffdd5 100644 --- a/site/src/modules/dashboard/Navbar/NavbarView.tsx +++ b/site/src/modules/dashboard/Navbar/NavbarView.tsx @@ -1,5 +1,3 @@ -import { API } from "api/api"; -import type * as TypesGen from "api/typesGenerated"; import type { ProxyContextValue } from "contexts/ProxyContext"; import { useEmbeddedMetadata } from "hooks/useEmbeddedMetadata"; import { useDashboard } from "modules/dashboard/useDashboard"; @@ -9,6 +7,8 @@ import { useQuery } from "react-query"; import { NavLink, useLocation } from "react-router"; import { isDevBuild } from "utils/buildInfo"; import { cn } from "utils/cn"; +import { API } from "#/api/api"; +import type * as TypesGen from "#/api/typesGenerated"; import { Badge } from "#/components/Badge/Badge"; import { Button } from "#/components/Button/Button"; import { ExternalImage } from "#/components/ExternalImage/ExternalImage"; diff --git a/site/src/modules/dashboard/Navbar/ProxyMenu.stories.tsx b/site/src/modules/dashboard/Navbar/ProxyMenu.stories.tsx index 0adaef25eb..627aaa71e7 100644 --- a/site/src/modules/dashboard/Navbar/ProxyMenu.stories.tsx +++ b/site/src/modules/dashboard/Navbar/ProxyMenu.stories.tsx @@ -7,11 +7,11 @@ import { } from "testHelpers/entities"; import { withDesktopViewport } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { getAuthorizationKey } from "api/queries/authCheck"; import { AuthProvider } from "contexts/auth/AuthProvider"; import { getPreferredProxy } from "contexts/ProxyContext"; import { permissionChecks } from "modules/permissions"; import { fn, userEvent, within } from "storybook/test"; +import { getAuthorizationKey } from "#/api/queries/authCheck"; import { ProxyMenu } from "./ProxyMenu"; const defaultProxyContextValue = { diff --git a/site/src/modules/dashboard/Navbar/ProxyMenu.tsx b/site/src/modules/dashboard/Navbar/ProxyMenu.tsx index d0cae902ff..f698005472 100644 --- a/site/src/modules/dashboard/Navbar/ProxyMenu.tsx +++ b/site/src/modules/dashboard/Navbar/ProxyMenu.tsx @@ -1,10 +1,10 @@ import Skeleton from "@mui/material/Skeleton"; -import type * as TypesGen from "api/typesGenerated"; import type { ProxyContextValue } from "contexts/ProxyContext"; import { useAuthenticated } from "hooks"; import { type FC, useState } from "react"; import { Link } from "react-router"; import { toast } from "sonner"; +import type * as TypesGen from "#/api/typesGenerated"; import { Abbr } from "#/components/Abbr/Abbr"; import { ChevronDownIcon } from "#/components/AnimatedIcons/ChevronDown"; import { Button } from "#/components/Button/Button"; diff --git a/site/src/modules/dashboard/Navbar/UserDropdown/UserDropdown.tsx b/site/src/modules/dashboard/Navbar/UserDropdown/UserDropdown.tsx index 35a7d6b213..1fb1fce0dc 100644 --- a/site/src/modules/dashboard/Navbar/UserDropdown/UserDropdown.tsx +++ b/site/src/modules/dashboard/Navbar/UserDropdown/UserDropdown.tsx @@ -1,5 +1,5 @@ -import type * as TypesGen from "api/typesGenerated"; import type { FC } from "react"; +import type * as TypesGen from "#/api/typesGenerated"; import { Avatar } from "#/components/Avatar/Avatar"; import { DropdownMenu, diff --git a/site/src/modules/dashboard/Navbar/UserDropdown/UserDropdownContent.tsx b/site/src/modules/dashboard/Navbar/UserDropdown/UserDropdownContent.tsx index 66bf9dd389..c35ae3315f 100644 --- a/site/src/modules/dashboard/Navbar/UserDropdown/UserDropdownContent.tsx +++ b/site/src/modules/dashboard/Navbar/UserDropdown/UserDropdownContent.tsx @@ -1,4 +1,3 @@ -import type * as TypesGen from "api/typesGenerated"; import { useClipboard } from "hooks/useClipboard"; import { CircleUserIcon, @@ -9,6 +8,7 @@ import { } from "lucide-react"; import type { FC } from "react"; import { Link } from "react-router"; +import type * as TypesGen from "#/api/typesGenerated"; import { CheckIcon } from "#/components/AnimatedIcons/Check"; import { DropdownMenuItem, diff --git a/site/src/modules/dashboard/entitlements.ts b/site/src/modules/dashboard/entitlements.ts index 601f2d6000..cd567bc3f6 100644 --- a/site/src/modules/dashboard/entitlements.ts +++ b/site/src/modules/dashboard/entitlements.ts @@ -1,4 +1,4 @@ -import type { Entitlements, Feature, FeatureName } from "api/typesGenerated"; +import type { Entitlements, Feature, FeatureName } from "#/api/typesGenerated"; /** * @param hasLicense true if Enterprise edition diff --git a/site/src/modules/dashboard/useFeatureVisibility.ts b/site/src/modules/dashboard/useFeatureVisibility.ts index 23790dda64..75b2b21b1c 100644 --- a/site/src/modules/dashboard/useFeatureVisibility.ts +++ b/site/src/modules/dashboard/useFeatureVisibility.ts @@ -1,4 +1,4 @@ -import type { FeatureName } from "api/typesGenerated"; +import type { FeatureName } from "#/api/typesGenerated"; import { selectFeatureVisibility } from "./entitlements"; import { useDashboard } from "./useDashboard"; diff --git a/site/src/modules/dashboard/useUpdateCheck.ts b/site/src/modules/dashboard/useUpdateCheck.ts index a8f3fe241c..8c153ba9f9 100644 --- a/site/src/modules/dashboard/useUpdateCheck.ts +++ b/site/src/modules/dashboard/useUpdateCheck.ts @@ -1,6 +1,6 @@ -import { updateCheck } from "api/queries/updateCheck"; import { useMemo, useState } from "react"; import { useQuery } from "react-query"; +import { updateCheck } from "#/api/queries/updateCheck"; export const useUpdateCheck = (enabled: boolean) => { const [dismissedVersion, setDismissedVersion] = useState(() => diff --git a/site/src/modules/groups.ts b/site/src/modules/groups.ts index 24accf4604..ef58ea459b 100644 --- a/site/src/modules/groups.ts +++ b/site/src/modules/groups.ts @@ -4,7 +4,7 @@ import type { ReducedUser, User, WorkspaceUser, -} from "api/typesGenerated"; +} from "#/api/typesGenerated"; /** * Union of all user-like types that can be distinguished from Group. diff --git a/site/src/modules/hooks/useSyncFormParameters.ts b/site/src/modules/hooks/useSyncFormParameters.ts index b48dcbcd2b..3843b1139b 100644 --- a/site/src/modules/hooks/useSyncFormParameters.ts +++ b/site/src/modules/hooks/useSyncFormParameters.ts @@ -1,6 +1,6 @@ -import type * as TypesGen from "api/typesGenerated"; -import type { PreviewParameter } from "api/typesGenerated"; import { useEffect, useRef } from "react"; +import type * as TypesGen from "#/api/typesGenerated"; +import type { PreviewParameter } from "#/api/typesGenerated"; type UseSyncFormParametersProps = { parameters: readonly PreviewParameter[]; diff --git a/site/src/modules/management/DeploymentConfigProvider.tsx b/site/src/modules/management/DeploymentConfigProvider.tsx index f6384b7174..f0a17db515 100644 --- a/site/src/modules/management/DeploymentConfigProvider.tsx +++ b/site/src/modules/management/DeploymentConfigProvider.tsx @@ -1,8 +1,8 @@ -import type { DeploymentConfig } from "api/api"; -import { deploymentConfig } from "api/queries/deployment"; import { createContext, type FC, useContext } from "react"; import { useQuery } from "react-query"; import { Outlet } from "react-router"; +import type { DeploymentConfig } from "#/api/api"; +import { deploymentConfig } from "#/api/queries/deployment"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Loader } from "#/components/Loader/Loader"; diff --git a/site/src/modules/management/DeploymentSidebarView.tsx b/site/src/modules/management/DeploymentSidebarView.tsx index 5e846e0fc3..341f59acdc 100644 --- a/site/src/modules/management/DeploymentSidebarView.tsx +++ b/site/src/modules/management/DeploymentSidebarView.tsx @@ -1,8 +1,8 @@ -import type { BuildInfoResponse, Experiment } from "api/typesGenerated"; import { ArrowUpRight } from "lucide-react"; import type { Permissions } from "modules/permissions"; import type { FC } from "react"; import { isDevBuild } from "utils/buildInfo"; +import type { BuildInfoResponse, Experiment } from "#/api/typesGenerated"; import { Sidebar as BaseSidebar, SettingsSidebarNavItem as SidebarNavItem, diff --git a/site/src/modules/management/OrganizationSettingsLayout.tsx b/site/src/modules/management/OrganizationSettingsLayout.tsx index 7b21128ee1..f8d723eeab 100644 --- a/site/src/modules/management/OrganizationSettingsLayout.tsx +++ b/site/src/modules/management/OrganizationSettingsLayout.tsx @@ -1,5 +1,3 @@ -import { organizationsPermissions } from "api/queries/organizations"; -import type { Organization } from "api/typesGenerated"; import { useDashboard } from "modules/dashboard/useDashboard"; import { canViewOrganization, @@ -9,6 +7,8 @@ import NotFoundPage from "pages/404Page/404Page"; import { createContext, type FC, Suspense, useContext } from "react"; import { useQuery } from "react-query"; import { Outlet, useParams } from "react-router"; +import { organizationsPermissions } from "#/api/queries/organizations"; +import type { Organization } from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Avatar } from "#/components/Avatar/Avatar"; import { diff --git a/site/src/modules/management/OrganizationSidebarView.stories.tsx b/site/src/modules/management/OrganizationSidebarView.stories.tsx index 039b93406a..df77f770a9 100644 --- a/site/src/modules/management/OrganizationSidebarView.stories.tsx +++ b/site/src/modules/management/OrganizationSidebarView.stories.tsx @@ -8,8 +8,8 @@ import { } from "testHelpers/entities"; import { withDashboardProvider } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import type { Organization } from "api/typesGenerated"; import { expect, userEvent, waitFor, within } from "storybook/test"; +import type { Organization } from "#/api/typesGenerated"; import { OrganizationSidebarView } from "./OrganizationSidebarView"; const meta: Meta = { diff --git a/site/src/modules/management/OrganizationSidebarView.tsx b/site/src/modules/management/OrganizationSidebarView.tsx index d0f3bfe817..1b42047352 100644 --- a/site/src/modules/management/OrganizationSidebarView.tsx +++ b/site/src/modules/management/OrganizationSidebarView.tsx @@ -1,9 +1,9 @@ -import type { Organization } from "api/typesGenerated"; import { Check, Plus } from "lucide-react"; import type { Permissions } from "modules/permissions"; import type { OrganizationPermissions } from "modules/permissions/organizations"; import { type FC, useState } from "react"; import { useNavigate } from "react-router"; +import type { Organization } from "#/api/typesGenerated"; import { ChevronDownIcon } from "#/components/AnimatedIcons/ChevronDown"; import { Avatar } from "#/components/Avatar/Avatar"; import { Button } from "#/components/Button/Button"; diff --git a/site/src/modules/notifications/NotificationsInbox/InboxAvatar.tsx b/site/src/modules/notifications/NotificationsInbox/InboxAvatar.tsx index 9c3310be76..b2d4ae71e1 100644 --- a/site/src/modules/notifications/NotificationsInbox/InboxAvatar.tsx +++ b/site/src/modules/notifications/NotificationsInbox/InboxAvatar.tsx @@ -1,9 +1,3 @@ -import { - InboxNotificationFallbackIconAccount, - InboxNotificationFallbackIconOther, - InboxNotificationFallbackIconTemplate, - InboxNotificationFallbackIconWorkspace, -} from "api/typesGenerated"; import { InfoIcon, LaptopIcon, @@ -12,6 +6,12 @@ import { } from "lucide-react"; import type React from "react"; import type { FC } from "react"; +import { + InboxNotificationFallbackIconAccount, + InboxNotificationFallbackIconOther, + InboxNotificationFallbackIconTemplate, + InboxNotificationFallbackIconWorkspace, +} from "#/api/typesGenerated"; import { Avatar } from "#/components/Avatar/Avatar"; const InboxNotificationFallbackIcons = [ diff --git a/site/src/modules/notifications/NotificationsInbox/InboxItem.tsx b/site/src/modules/notifications/NotificationsInbox/InboxItem.tsx index c401f09c87..4df4013c48 100644 --- a/site/src/modules/notifications/NotificationsInbox/InboxItem.tsx +++ b/site/src/modules/notifications/NotificationsInbox/InboxItem.tsx @@ -1,9 +1,9 @@ -import type { InboxNotification } from "api/typesGenerated"; import { SquareCheckBig } from "lucide-react"; import type { FC } from "react"; import Markdown from "react-markdown"; import { Link as RouterLink } from "react-router"; import { relativeTime } from "utils/time"; +import type { InboxNotification } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { Link } from "#/components/Link/Link"; import { InboxAvatar } from "./InboxAvatar"; diff --git a/site/src/modules/notifications/NotificationsInbox/InboxPopover.tsx b/site/src/modules/notifications/NotificationsInbox/InboxPopover.tsx index e502129225..5d90d95ace 100644 --- a/site/src/modules/notifications/NotificationsInbox/InboxPopover.tsx +++ b/site/src/modules/notifications/NotificationsInbox/InboxPopover.tsx @@ -1,8 +1,8 @@ -import type { InboxNotification } from "api/typesGenerated"; import { RefreshCwIcon, SettingsIcon } from "lucide-react"; import { type FC, useState } from "react"; import { Link as RouterLink } from "react-router"; import { cn } from "utils/cn"; +import type { InboxNotification } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { Popover, diff --git a/site/src/modules/notifications/NotificationsInbox/NotificationsInbox.tsx b/site/src/modules/notifications/NotificationsInbox/NotificationsInbox.tsx index 8937796c6e..ca1794ae05 100644 --- a/site/src/modules/notifications/NotificationsInbox/NotificationsInbox.tsx +++ b/site/src/modules/notifications/NotificationsInbox/NotificationsInbox.tsx @@ -1,13 +1,13 @@ -import { watchInboxNotifications } from "api/api"; -import { getErrorDetail, getErrorMessage } from "api/errors"; -import type { - ListInboxNotificationsResponse, - UpdateInboxNotificationReadStatusResponse, -} from "api/typesGenerated"; import { useEffectEvent } from "hooks/hookPolyfills"; import { type FC, useEffect } from "react"; import { useMutation, useQuery, useQueryClient } from "react-query"; import { toast } from "sonner"; +import { watchInboxNotifications } from "#/api/api"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; +import type { + ListInboxNotificationsResponse, + UpdateInboxNotificationReadStatusResponse, +} from "#/api/typesGenerated"; import { InboxPopover } from "./InboxPopover"; const NOTIFICATIONS_QUERY_KEY = ["notifications"]; diff --git a/site/src/modules/notifications/utils.tsx b/site/src/modules/notifications/utils.tsx index 5e435d5a75..757bd12d5a 100644 --- a/site/src/modules/notifications/utils.tsx +++ b/site/src/modules/notifications/utils.tsx @@ -1,8 +1,8 @@ +import { MailIcon, WebhookIcon } from "lucide-react"; import type { NotificationPreference, NotificationTemplate, -} from "api/typesGenerated"; -import { MailIcon, WebhookIcon } from "lucide-react"; +} from "#/api/typesGenerated"; // TODO: This should be provided by the auto generated types from codersdk const notificationMethods = ["smtp", "webhook"] as const; diff --git a/site/src/modules/permissions/index.ts b/site/src/modules/permissions/index.ts index c9ff5b4002..1dccce7b62 100644 --- a/site/src/modules/permissions/index.ts +++ b/site/src/modules/permissions/index.ts @@ -1,4 +1,4 @@ -import type { AuthorizationCheck } from "api/typesGenerated"; +import type { AuthorizationCheck } from "#/api/typesGenerated"; import permissionChecksData from "../../../permissions.json"; export type Permissions = { diff --git a/site/src/modules/permissions/organizations.ts b/site/src/modules/permissions/organizations.ts index 0a7cb505c2..81ffb2f850 100644 --- a/site/src/modules/permissions/organizations.ts +++ b/site/src/modules/permissions/organizations.ts @@ -1,4 +1,4 @@ -import type { AuthorizationCheck } from "api/typesGenerated"; +import type { AuthorizationCheck } from "#/api/typesGenerated"; export type OrganizationPermissions = { [k in OrganizationPermissionName]: boolean; diff --git a/site/src/modules/provisioners/JobStatusIndicator.tsx b/site/src/modules/provisioners/JobStatusIndicator.tsx index ae56e3677e..8ef5e9c3b8 100644 --- a/site/src/modules/provisioners/JobStatusIndicator.tsx +++ b/site/src/modules/provisioners/JobStatusIndicator.tsx @@ -1,6 +1,6 @@ -import type { ProvisionerJobStatus } from "api/typesGenerated"; import { TriangleAlertIcon } from "lucide-react"; import type { FC } from "react"; +import type { ProvisionerJobStatus } from "#/api/typesGenerated"; import { StatusIndicator, StatusIndicatorDot, diff --git a/site/src/modules/provisioners/Provisioner.tsx b/site/src/modules/provisioners/Provisioner.tsx index b9f4645d4e..0bdbf565ed 100644 --- a/site/src/modules/provisioners/Provisioner.tsx +++ b/site/src/modules/provisioners/Provisioner.tsx @@ -1,8 +1,8 @@ import { useTheme } from "@emotion/react"; -import type { HealthMessage, ProvisionerDaemon } from "api/typesGenerated"; import { Building2Icon, UserIcon } from "lucide-react"; import type { FC } from "react"; import { createDayString } from "utils/createDayString"; +import type { HealthMessage, ProvisionerDaemon } from "#/api/typesGenerated"; import { Pill } from "#/components/Pill/Pill"; import { Tooltip, diff --git a/site/src/modules/provisioners/ProvisionerTagsField.stories.tsx b/site/src/modules/provisioners/ProvisionerTagsField.stories.tsx index ec96d45ddb..a1a891c254 100644 --- a/site/src/modules/provisioners/ProvisionerTagsField.stories.tsx +++ b/site/src/modules/provisioners/ProvisionerTagsField.stories.tsx @@ -1,7 +1,7 @@ import type { Meta, StoryObj } from "@storybook/react-vite"; -import type { ProvisionerDaemon } from "api/typesGenerated"; import { type FC, useState } from "react"; import { expect, userEvent, within } from "storybook/test"; +import type { ProvisionerDaemon } from "#/api/typesGenerated"; import { ProvisionerTagsField } from "./ProvisionerTagsField"; const meta: Meta = { diff --git a/site/src/modules/provisioners/ProvisionerTagsField.tsx b/site/src/modules/provisioners/ProvisionerTagsField.tsx index 699e14a0ec..4723385358 100644 --- a/site/src/modules/provisioners/ProvisionerTagsField.tsx +++ b/site/src/modules/provisioners/ProvisionerTagsField.tsx @@ -1,9 +1,9 @@ import TextField from "@mui/material/TextField"; -import type { ProvisionerDaemon } from "api/typesGenerated"; import { PlusIcon } from "lucide-react"; import { ProvisionerTag } from "modules/provisioners/ProvisionerTag"; import { type FC, useRef, useState } from "react"; import * as Yup from "yup"; +import type { ProvisionerDaemon } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; // Users can't delete these tags diff --git a/site/src/modules/resources/AgentApps/AgentApps.tsx b/site/src/modules/resources/AgentApps/AgentApps.tsx index 60c7c93b1e..c15dea2f35 100644 --- a/site/src/modules/resources/AgentApps/AgentApps.tsx +++ b/site/src/modules/resources/AgentApps/AgentApps.tsx @@ -1,10 +1,10 @@ +import { Folder } from "lucide-react"; +import type { FC } from "react"; import type { Workspace, WorkspaceAgent, WorkspaceApp, -} from "api/typesGenerated"; -import { Folder } from "lucide-react"; -import type { FC } from "react"; +} from "#/api/typesGenerated"; import { DropdownMenu, DropdownMenuContent, diff --git a/site/src/modules/resources/AgentDevcontainerCard.stories.tsx b/site/src/modules/resources/AgentDevcontainerCard.stories.tsx index df6f030cb9..dc9f8feec5 100644 --- a/site/src/modules/resources/AgentDevcontainerCard.stories.tsx +++ b/site/src/modules/resources/AgentDevcontainerCard.stories.tsx @@ -18,9 +18,9 @@ import { withProxyProvider, } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { API } from "api/api"; import { getPreferredProxy } from "contexts/ProxyContext"; import { screen, spyOn, userEvent, within } from "storybook/test"; +import { API } from "#/api/api"; import { AgentDevcontainerCard } from "./AgentDevcontainerCard"; const meta: Meta = { diff --git a/site/src/modules/resources/AgentDevcontainerCard.tsx b/site/src/modules/resources/AgentDevcontainerCard.tsx index 3118ae59b7..edad63f662 100644 --- a/site/src/modules/resources/AgentDevcontainerCard.tsx +++ b/site/src/modules/resources/AgentDevcontainerCard.tsx @@ -1,17 +1,4 @@ import Skeleton from "@mui/material/Skeleton"; -import { API } from "api/api"; -import { getErrorDetail, getErrorMessage } from "api/errors"; -import { - deleteWorkspaceAgentDevcontainer, - workspaceAgentContainersKey, -} from "api/queries/workspaces"; -import type { - Template, - Workspace, - WorkspaceAgent, - WorkspaceAgentDevcontainer, - WorkspaceAgentListContainersResponse, -} from "api/typesGenerated"; import { useProxy } from "contexts/ProxyContext"; import { Container, ExternalLinkIcon } from "lucide-react"; import { useFeatureVisibility } from "modules/dashboard/useFeatureVisibility"; @@ -21,6 +8,19 @@ import { useMutation, useQueryClient } from "react-query"; import { toast } from "sonner"; import { cn } from "utils/cn"; import { portForwardURL } from "utils/portForward"; +import { API } from "#/api/api"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; +import { + deleteWorkspaceAgentDevcontainer, + workspaceAgentContainersKey, +} from "#/api/queries/workspaces"; +import type { + Template, + Workspace, + WorkspaceAgent, + WorkspaceAgentDevcontainer, + WorkspaceAgentListContainersResponse, +} from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { Dialog, diff --git a/site/src/modules/resources/AgentExternal.tsx b/site/src/modules/resources/AgentExternal.tsx index 64ff5c7066..b1f53418b0 100644 --- a/site/src/modules/resources/AgentExternal.tsx +++ b/site/src/modules/resources/AgentExternal.tsx @@ -1,7 +1,7 @@ -import { workspaceAgentCredentials } from "api/queries/workspaces"; -import type { Workspace, WorkspaceAgent } from "api/typesGenerated"; import type { FC } from "react"; import { useQuery } from "react-query"; +import { workspaceAgentCredentials } from "#/api/queries/workspaces"; +import type { Workspace, WorkspaceAgent } from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { CodeExample } from "#/components/CodeExample/CodeExample"; import { Loader } from "#/components/Loader/Loader"; diff --git a/site/src/modules/resources/AgentLatency.tsx b/site/src/modules/resources/AgentLatency.tsx index b6d9695553..c5e5a1b205 100644 --- a/site/src/modules/resources/AgentLatency.tsx +++ b/site/src/modules/resources/AgentLatency.tsx @@ -1,7 +1,7 @@ -import type { DERPRegion, WorkspaceAgent } from "api/typesGenerated"; import type { FC } from "react"; import { cn } from "utils/cn"; import { getLatencyColor } from "utils/latency"; +import type { DERPRegion, WorkspaceAgent } from "#/api/typesGenerated"; import { HelpTooltip, HelpTooltipContent, diff --git a/site/src/modules/resources/AgentLogs/AgentLogs.tsx b/site/src/modules/resources/AgentLogs/AgentLogs.tsx index c903565876..0f3f76b77b 100644 --- a/site/src/modules/resources/AgentLogs/AgentLogs.tsx +++ b/site/src/modules/resources/AgentLogs/AgentLogs.tsx @@ -1,7 +1,7 @@ -import type { WorkspaceAgentLogSource } from "api/typesGenerated"; import type { JSX } from "react"; import { FixedSizeList as List } from "react-window"; import { cn } from "utils/cn"; +import type { WorkspaceAgentLogSource } from "#/api/typesGenerated"; import { Badge } from "#/components/Badge/Badge"; import type { Line } from "#/components/Logs/LogLine"; import { diff --git a/site/src/modules/resources/AgentMetadata.stories.tsx b/site/src/modules/resources/AgentMetadata.stories.tsx index 525c09f0bd..1a221fdab5 100644 --- a/site/src/modules/resources/AgentMetadata.stories.tsx +++ b/site/src/modules/resources/AgentMetadata.stories.tsx @@ -2,7 +2,7 @@ import type { Meta, StoryObj } from "@storybook/react-vite"; import type { WorkspaceAgentMetadataDescription, WorkspaceAgentMetadataResult, -} from "api/typesGenerated"; +} from "#/api/typesGenerated"; import { AgentMetadataView } from "./AgentMetadata"; const meta: Meta = { diff --git a/site/src/modules/resources/AgentMetadata.tsx b/site/src/modules/resources/AgentMetadata.tsx index cf9f298ab7..c001b66827 100644 --- a/site/src/modules/resources/AgentMetadata.tsx +++ b/site/src/modules/resources/AgentMetadata.tsx @@ -1,10 +1,4 @@ import Skeleton from "@mui/material/Skeleton"; -import { watchAgentMetadata } from "api/api"; -import type { - ServerSentEvent, - WorkspaceAgent, - WorkspaceAgentMetadata, -} from "api/typesGenerated"; import dayjs from "dayjs"; import { type FC, @@ -17,6 +11,12 @@ import { import { toast } from "sonner"; import { cn } from "utils/cn"; import type { OneWayWebSocket } from "utils/OneWayWebSocket"; +import { watchAgentMetadata } from "#/api/api"; +import type { + ServerSentEvent, + WorkspaceAgent, + WorkspaceAgentMetadata, +} from "#/api/typesGenerated"; import { Stack } from "#/components/Stack/Stack"; import { Tooltip, diff --git a/site/src/modules/resources/AgentOutdatedTooltip.tsx b/site/src/modules/resources/AgentOutdatedTooltip.tsx index cd97d0906f..1c84bef957 100644 --- a/site/src/modules/resources/AgentOutdatedTooltip.tsx +++ b/site/src/modules/resources/AgentOutdatedTooltip.tsx @@ -1,6 +1,6 @@ -import type { WorkspaceAgent } from "api/typesGenerated"; import { RotateCcwIcon } from "lucide-react"; import { type FC, useState } from "react"; +import type { WorkspaceAgent } from "#/api/typesGenerated"; import { HelpTooltip, HelpTooltipAction, diff --git a/site/src/modules/resources/AgentRow.stories.tsx b/site/src/modules/resources/AgentRow.stories.tsx index 49a8abe4b5..0d45be20cf 100644 --- a/site/src/modules/resources/AgentRow.stories.tsx +++ b/site/src/modules/resources/AgentRow.stories.tsx @@ -6,10 +6,10 @@ import { withWebSocket, } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { API } from "api/api"; -import { workspaceAgentContainersKey } from "api/queries/workspaces"; import { getPreferredProxy } from "contexts/ProxyContext"; import { spyOn, userEvent, within } from "storybook/test"; +import { API } from "#/api/api"; +import { workspaceAgentContainersKey } from "#/api/queries/workspaces"; import { AgentRow } from "./AgentRow"; const defaultAgentMetadata = [ diff --git a/site/src/modules/resources/AgentRow.tsx b/site/src/modules/resources/AgentRow.tsx index ce8c56f013..fe01b59e1a 100644 --- a/site/src/modules/resources/AgentRow.tsx +++ b/site/src/modules/resources/AgentRow.tsx @@ -1,12 +1,6 @@ import Collapse from "@mui/material/Collapse"; import Divider from "@mui/material/Divider"; import Skeleton from "@mui/material/Skeleton"; -import type { - Template, - Workspace, - WorkspaceAgent, - WorkspaceAgentMetadata, -} from "api/typesGenerated"; import { useProxy } from "contexts/ProxyContext"; import { SquareCheckBigIcon } from "lucide-react"; import { useFeatureVisibility } from "modules/dashboard/useFeatureVisibility"; @@ -23,6 +17,12 @@ import { Link as RouterLink } from "react-router"; import AutoSizer from "react-virtualized-auto-sizer"; import type { FixedSizeList as List, ListOnScrollProps } from "react-window"; import { cn } from "utils/cn"; +import type { + Template, + Workspace, + WorkspaceAgent, + WorkspaceAgentMetadata, +} from "#/api/typesGenerated"; import { ChevronDownIcon } from "#/components/AnimatedIcons/ChevronDown"; import { Button } from "#/components/Button/Button"; import { AgentApps, organizeAgentApps } from "./AgentApps/AgentApps"; diff --git a/site/src/modules/resources/AgentRowPreview.test.tsx b/site/src/modules/resources/AgentRowPreview.test.tsx index 23b34dc8c7..1306ff24bc 100644 --- a/site/src/modules/resources/AgentRowPreview.test.tsx +++ b/site/src/modules/resources/AgentRowPreview.test.tsx @@ -5,7 +5,7 @@ import { type DisplayApp, DisplayApps, type WorkspaceAgent, -} from "api/typesGenerated"; +} from "#/api/typesGenerated"; import { AgentRowPreview } from "./AgentRowPreview"; import { DisplayAppNameMap } from "./AppLink/AppLink"; diff --git a/site/src/modules/resources/AgentRowPreview.tsx b/site/src/modules/resources/AgentRowPreview.tsx index a21c3accb0..3ec5a8d3c4 100644 --- a/site/src/modules/resources/AgentRowPreview.tsx +++ b/site/src/modules/resources/AgentRowPreview.tsx @@ -1,6 +1,6 @@ import type { Interpolation, Theme } from "@emotion/react"; -import type { WorkspaceAgent } from "api/typesGenerated"; import type { FC } from "react"; +import type { WorkspaceAgent } from "#/api/typesGenerated"; import { TerminalIcon } from "#/components/Icons/TerminalIcon"; import { VSCodeIcon } from "#/components/Icons/VSCodeIcon"; import { Stack } from "#/components/Stack/Stack"; diff --git a/site/src/modules/resources/AgentStatus.tsx b/site/src/modules/resources/AgentStatus.tsx index 478d1aa59f..2f6fc98fc5 100644 --- a/site/src/modules/resources/AgentStatus.tsx +++ b/site/src/modules/resources/AgentStatus.tsx @@ -1,11 +1,11 @@ import type { Interpolation, Theme } from "@emotion/react"; import Link from "@mui/material/Link"; +import { TriangleAlertIcon } from "lucide-react"; +import type { FC } from "react"; import type { WorkspaceAgent, WorkspaceAgentDevcontainer, -} from "api/typesGenerated"; -import { TriangleAlertIcon } from "lucide-react"; -import type { FC } from "react"; +} from "#/api/typesGenerated"; import { ChooseOne, Cond } from "#/components/Conditionals/ChooseOne"; import { HelpTooltip, diff --git a/site/src/modules/resources/AgentVersion.tsx b/site/src/modules/resources/AgentVersion.tsx index 0111bdde1f..4118b3f2e1 100644 --- a/site/src/modules/resources/AgentVersion.tsx +++ b/site/src/modules/resources/AgentVersion.tsx @@ -1,9 +1,9 @@ -import { buildInfo } from "api/queries/buildInfo"; -import type { WorkspaceAgent } from "api/typesGenerated"; import { useEmbeddedMetadata } from "hooks/useEmbeddedMetadata"; import type { FC } from "react"; import { useQuery } from "react-query"; import { agentVersionStatus, getDisplayVersionStatus } from "utils/workspace"; +import { buildInfo } from "#/api/queries/buildInfo"; +import type { WorkspaceAgent } from "#/api/typesGenerated"; import { AgentOutdatedTooltip } from "./AgentOutdatedTooltip"; interface AgentVersionProps { diff --git a/site/src/modules/resources/AppLink/AppLink.tsx b/site/src/modules/resources/AppLink/AppLink.tsx index d158369b90..3f977e33ac 100644 --- a/site/src/modules/resources/AppLink/AppLink.tsx +++ b/site/src/modules/resources/AppLink/AppLink.tsx @@ -1,4 +1,3 @@ -import type * as TypesGen from "api/typesGenerated"; import { useProxy } from "contexts/ProxyContext"; import { Building2Icon, @@ -11,6 +10,7 @@ import { import { isExternalApp, needsSessionToken } from "modules/apps/apps"; import { useAppLink } from "modules/apps/useAppLink"; import { type FC, type ReactNode, useState } from "react"; +import type * as TypesGen from "#/api/typesGenerated"; import { DropdownMenuItem } from "#/components/DropdownMenu/DropdownMenu"; import { Link } from "#/components/Link/Link"; import { Markdown } from "#/components/Markdown/Markdown"; diff --git a/site/src/modules/resources/AppLink/BaseIcon.tsx b/site/src/modules/resources/AppLink/BaseIcon.tsx index b976ba7378..1541f930cb 100644 --- a/site/src/modules/resources/AppLink/BaseIcon.tsx +++ b/site/src/modules/resources/AppLink/BaseIcon.tsx @@ -1,6 +1,6 @@ -import type { WorkspaceApp } from "api/typesGenerated"; import { LaptopIcon } from "lucide-react"; import type { FC } from "react"; +import type { WorkspaceApp } from "#/api/typesGenerated"; import { ExternalImage } from "#/components/ExternalImage/ExternalImage"; interface BaseIconProps { diff --git a/site/src/modules/resources/DownloadAgentLogsButton.stories.tsx b/site/src/modules/resources/DownloadAgentLogsButton.stories.tsx index bd3d823b7b..171f8296ff 100644 --- a/site/src/modules/resources/DownloadAgentLogsButton.stories.tsx +++ b/site/src/modules/resources/DownloadAgentLogsButton.stories.tsx @@ -1,8 +1,8 @@ import { MockWorkspaceAgent } from "testHelpers/entities"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { agentLogsKey } from "api/queries/workspaces"; -import type { WorkspaceAgentLog } from "api/typesGenerated"; import { expect, fn, userEvent, waitFor, within } from "storybook/test"; +import { agentLogsKey } from "#/api/queries/workspaces"; +import type { WorkspaceAgentLog } from "#/api/typesGenerated"; import { DownloadAgentLogsButton } from "./DownloadAgentLogsButton"; const meta: Meta = { diff --git a/site/src/modules/resources/DownloadAgentLogsButton.tsx b/site/src/modules/resources/DownloadAgentLogsButton.tsx index ed36bcf2b7..6850578897 100644 --- a/site/src/modules/resources/DownloadAgentLogsButton.tsx +++ b/site/src/modules/resources/DownloadAgentLogsButton.tsx @@ -1,11 +1,11 @@ -import { getErrorDetail } from "api/errors"; -import { agentLogs } from "api/queries/workspaces"; -import type { WorkspaceAgent, WorkspaceAgentLog } from "api/typesGenerated"; import { saveAs } from "file-saver"; import { DownloadIcon } from "lucide-react"; import { type FC, useState } from "react"; import { useQueryClient } from "react-query"; import { toast } from "sonner"; +import { getErrorDetail } from "#/api/errors"; +import { agentLogs } from "#/api/queries/workspaces"; +import type { WorkspaceAgent, WorkspaceAgentLog } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; type DownloadAgentLogsButtonProps = { diff --git a/site/src/modules/resources/PortForwardButton.tsx b/site/src/modules/resources/PortForwardButton.tsx index 15d33528ed..961ebb77c6 100644 --- a/site/src/modules/resources/PortForwardButton.tsx +++ b/site/src/modules/resources/PortForwardButton.tsx @@ -5,22 +5,6 @@ import MenuItem from "@mui/material/MenuItem"; import Select from "@mui/material/Select"; import Stack from "@mui/material/Stack"; import TextField from "@mui/material/TextField"; -import { API } from "api/api"; -import { - deleteWorkspacePortShare, - upsertWorkspacePortShare, - workspacePortShares, -} from "api/queries/workspaceportsharing"; -import { - type Template, - type Workspace, - type WorkspaceAgent, - type WorkspaceAgentListeningPort, - type WorkspaceAgentPortShare, - type WorkspaceAgentPortShareLevel, - type WorkspaceAgentPortShareProtocol, - WorkspaceAppSharingLevels, -} from "api/typesGenerated"; import { useFormik } from "formik"; import { BuildingIcon, @@ -42,6 +26,22 @@ import { saveWorkspaceListeningPortsProtocol, } from "utils/portForward"; import * as Yup from "yup"; +import { API } from "#/api/api"; +import { + deleteWorkspacePortShare, + upsertWorkspacePortShare, + workspacePortShares, +} from "#/api/queries/workspaceportsharing"; +import { + type Template, + type Workspace, + type WorkspaceAgent, + type WorkspaceAgentListeningPort, + type WorkspaceAgentPortShare, + type WorkspaceAgentPortShareLevel, + type WorkspaceAgentPortShareProtocol, + WorkspaceAppSharingLevels, +} from "#/api/typesGenerated"; import { ChevronDownIcon } from "#/components/AnimatedIcons/ChevronDown"; import { Button } from "#/components/Button/Button"; import { diff --git a/site/src/modules/resources/ResourceAvatar.tsx b/site/src/modules/resources/ResourceAvatar.tsx index 505d9e0bf2..167707b8c6 100644 --- a/site/src/modules/resources/ResourceAvatar.tsx +++ b/site/src/modules/resources/ResourceAvatar.tsx @@ -1,6 +1,6 @@ -import type { WorkspaceResource } from "api/typesGenerated"; import type { FC } from "react"; import { getResourceIconPath } from "utils/workspace"; +import type { WorkspaceResource } from "#/api/typesGenerated"; import { Avatar } from "#/components/Avatar/Avatar"; type ResourceAvatarProps = { resource: WorkspaceResource }; diff --git a/site/src/modules/resources/ResourceCard.test.tsx b/site/src/modules/resources/ResourceCard.test.tsx index f9fd887d8e..dc787b4c35 100644 --- a/site/src/modules/resources/ResourceCard.test.tsx +++ b/site/src/modules/resources/ResourceCard.test.tsx @@ -1,7 +1,7 @@ import { MockWorkspaceResource } from "testHelpers/entities"; import { render } from "testHelpers/renderHelpers"; import { screen } from "@testing-library/react"; -import type { WorkspaceResourceMetadata } from "api/typesGenerated"; +import type { WorkspaceResourceMetadata } from "#/api/typesGenerated"; import { ResourceCard } from "./ResourceCard"; describe("Resource Card", () => { diff --git a/site/src/modules/resources/ResourceCard.tsx b/site/src/modules/resources/ResourceCard.tsx index f03d7df08c..12870509b1 100644 --- a/site/src/modules/resources/ResourceCard.tsx +++ b/site/src/modules/resources/ResourceCard.tsx @@ -1,7 +1,7 @@ import type { Interpolation, Theme } from "@emotion/react"; import IconButton from "@mui/material/IconButton"; -import type { WorkspaceAgent, WorkspaceResource } from "api/typesGenerated"; import { Children, type FC, type JSX, useState } from "react"; +import type { WorkspaceAgent, WorkspaceResource } from "#/api/typesGenerated"; import { ChevronDownIcon } from "#/components/AnimatedIcons/ChevronDown"; import { CopyableValue } from "#/components/CopyableValue/CopyableValue"; import { MemoizedInlineMarkdown } from "#/components/Markdown/Markdown"; diff --git a/site/src/modules/resources/Resources.tsx b/site/src/modules/resources/Resources.tsx index 98a40e38bf..090243fd66 100644 --- a/site/src/modules/resources/Resources.tsx +++ b/site/src/modules/resources/Resources.tsx @@ -1,5 +1,5 @@ -import type { WorkspaceAgent, WorkspaceResource } from "api/typesGenerated"; import { type FC, type JSX, useState } from "react"; +import type { WorkspaceAgent, WorkspaceResource } from "#/api/typesGenerated"; import { ChevronDownIcon } from "#/components/AnimatedIcons/ChevronDown"; import { Button } from "#/components/Button/Button"; import { Stack } from "#/components/Stack/Stack"; diff --git a/site/src/modules/resources/SSHButton/SSHButton.stories.tsx b/site/src/modules/resources/SSHButton/SSHButton.stories.tsx index 2f57bfe461..187a63db5d 100644 --- a/site/src/modules/resources/SSHButton/SSHButton.stories.tsx +++ b/site/src/modules/resources/SSHButton/SSHButton.stories.tsx @@ -5,8 +5,8 @@ import { } from "testHelpers/entities"; import { withDesktopViewport } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { API } from "api/api"; import { spyOn, userEvent, within } from "storybook/test"; +import { API } from "#/api/api"; import { AgentSSHButton } from "./SSHButton"; const meta: Meta = { diff --git a/site/src/modules/resources/SSHButton/SSHButton.tsx b/site/src/modules/resources/SSHButton/SSHButton.tsx index ef82203b07..d0e6241340 100644 --- a/site/src/modules/resources/SSHButton/SSHButton.tsx +++ b/site/src/modules/resources/SSHButton/SSHButton.tsx @@ -1,7 +1,7 @@ -import { deploymentSSHConfig } from "api/queries/deployment"; import type { FC } from "react"; import { useQuery } from "react-query"; import { docs } from "utils/docs"; +import { deploymentSSHConfig } from "#/api/queries/deployment"; import { ChevronDownIcon } from "#/components/AnimatedIcons/ChevronDown"; import { Button } from "#/components/Button/Button"; import { CodeExample } from "#/components/CodeExample/CodeExample"; diff --git a/site/src/modules/resources/SubAgentOutdatedTooltip.tsx b/site/src/modules/resources/SubAgentOutdatedTooltip.tsx index 152b32c61a..89bd5c149a 100644 --- a/site/src/modules/resources/SubAgentOutdatedTooltip.tsx +++ b/site/src/modules/resources/SubAgentOutdatedTooltip.tsx @@ -1,9 +1,9 @@ +import { RotateCcwIcon } from "lucide-react"; +import type { FC } from "react"; import type { WorkspaceAgent, WorkspaceAgentDevcontainer, -} from "api/typesGenerated"; -import { RotateCcwIcon } from "lucide-react"; -import type { FC } from "react"; +} from "#/api/typesGenerated"; import { HelpTooltip, HelpTooltipAction, diff --git a/site/src/modules/resources/VSCodeDesktopButton/VSCodeDesktopButton.tsx b/site/src/modules/resources/VSCodeDesktopButton/VSCodeDesktopButton.tsx index 975d59a58f..bd645d2b9f 100644 --- a/site/src/modules/resources/VSCodeDesktopButton/VSCodeDesktopButton.tsx +++ b/site/src/modules/resources/VSCodeDesktopButton/VSCodeDesktopButton.tsx @@ -1,9 +1,9 @@ import Menu from "@mui/material/Menu"; import MenuItem from "@mui/material/MenuItem"; -import { API } from "api/api"; -import type { DisplayApp } from "api/typesGenerated"; import { getVSCodeHref } from "modules/apps/apps"; import { type FC, useRef, useState } from "react"; +import { API } from "#/api/api"; +import type { DisplayApp } from "#/api/typesGenerated"; import { ChevronDownIcon } from "#/components/AnimatedIcons/ChevronDown"; import { VSCodeIcon } from "#/components/Icons/VSCodeIcon"; import { VSCodeInsidersIcon } from "#/components/Icons/VSCodeInsidersIcon"; diff --git a/site/src/modules/resources/VSCodeDevContainerButton/VSCodeDevContainerButton.tsx b/site/src/modules/resources/VSCodeDevContainerButton/VSCodeDevContainerButton.tsx index ec2a9f6668..ded325b2c8 100644 --- a/site/src/modules/resources/VSCodeDevContainerButton/VSCodeDevContainerButton.tsx +++ b/site/src/modules/resources/VSCodeDevContainerButton/VSCodeDevContainerButton.tsx @@ -1,8 +1,8 @@ import Menu from "@mui/material/Menu"; import MenuItem from "@mui/material/MenuItem"; -import { API } from "api/api"; -import type { DisplayApp } from "api/typesGenerated"; import { type FC, useRef, useState } from "react"; +import { API } from "#/api/api"; +import type { DisplayApp } from "#/api/typesGenerated"; import { ChevronDownIcon } from "#/components/AnimatedIcons/ChevronDown"; import { VSCodeIcon } from "#/components/Icons/VSCodeIcon"; import { VSCodeInsidersIcon } from "#/components/Icons/VSCodeInsidersIcon"; diff --git a/site/src/modules/resources/WildcardHostnameWarning.tsx b/site/src/modules/resources/WildcardHostnameWarning.tsx index 877ffa9f15..795d600074 100644 --- a/site/src/modules/resources/WildcardHostnameWarning.tsx +++ b/site/src/modules/resources/WildcardHostnameWarning.tsx @@ -1,8 +1,8 @@ -import type { WorkspaceResource } from "api/typesGenerated"; import { useProxy } from "contexts/ProxyContext"; import { useAuthenticated } from "hooks/useAuthenticated"; import type { FC } from "react"; import { docs } from "utils/docs"; +import type { WorkspaceResource } from "#/api/typesGenerated"; import { Alert, AlertDescription, AlertTitle } from "#/components/Alert/Alert"; import { Link } from "#/components/Link/Link"; diff --git a/site/src/modules/resources/useAgentContainers.jest.tsx b/site/src/modules/resources/useAgentContainers.jest.tsx index 51925862c6..682f79d13f 100644 --- a/site/src/modules/resources/useAgentContainers.jest.tsx +++ b/site/src/modules/resources/useAgentContainers.jest.tsx @@ -5,14 +5,14 @@ import { import { createTestQueryClient } from "testHelpers/renderHelpers"; import { server } from "testHelpers/server"; import { renderHook, waitFor } from "@testing-library/react"; -import * as API from "api/api"; -import type { WorkspaceAgentListContainersResponse } from "api/typesGenerated"; import { HttpResponse, http } from "msw"; import type { FC, PropsWithChildren } from "react"; import { act } from "react"; import { QueryClientProvider } from "react-query"; import { toast } from "sonner"; import type { OneWayWebSocket } from "utils/OneWayWebSocket"; +import * as API from "#/api/api"; +import type { WorkspaceAgentListContainersResponse } from "#/api/typesGenerated"; import { useAgentContainers } from "./useAgentContainers"; const createWrapper = (): FC => { diff --git a/site/src/modules/resources/useAgentContainers.ts b/site/src/modules/resources/useAgentContainers.ts index 16f49da019..31e4b42474 100644 --- a/site/src/modules/resources/useAgentContainers.ts +++ b/site/src/modules/resources/useAgentContainers.ts @@ -1,17 +1,17 @@ -import { watchAgentContainers } from "api/api"; -import { - workspaceAgentContainers, - workspaceAgentContainersKey, -} from "api/queries/workspaces"; -import type { - WorkspaceAgent, - WorkspaceAgentDevcontainer, - WorkspaceAgentListContainersResponse, -} from "api/typesGenerated"; import { useEffectEvent } from "hooks/hookPolyfills"; import { useEffect } from "react"; import { useQuery, useQueryClient } from "react-query"; import { toast } from "sonner"; +import { watchAgentContainers } from "#/api/api"; +import { + workspaceAgentContainers, + workspaceAgentContainersKey, +} from "#/api/queries/workspaces"; +import type { + WorkspaceAgent, + WorkspaceAgentDevcontainer, + WorkspaceAgentListContainersResponse, +} from "#/api/typesGenerated"; export function useAgentContainers( agent: WorkspaceAgent, diff --git a/site/src/modules/resources/useAgentLogs.jest.ts b/site/src/modules/resources/useAgentLogs.jest.ts index 6e5b09136d..0b8ad003eb 100644 --- a/site/src/modules/resources/useAgentLogs.jest.ts +++ b/site/src/modules/resources/useAgentLogs.jest.ts @@ -4,11 +4,11 @@ import { type MockWebSocketServer, } from "testHelpers/websockets"; import { renderHook, waitFor } from "@testing-library/react"; -import * as apiModule from "api/api"; -import type { WorkspaceAgentLog } from "api/typesGenerated"; import { act } from "react"; import { toast } from "sonner"; import { OneWayWebSocket } from "utils/OneWayWebSocket"; +import * as apiModule from "#/api/api"; +import type { WorkspaceAgentLog } from "#/api/typesGenerated"; import { useAgentLogs } from "./useAgentLogs"; const millisecondsInOneMinute = 60_000; diff --git a/site/src/modules/resources/useAgentLogs.ts b/site/src/modules/resources/useAgentLogs.ts index 399fed7f11..30d0f91f52 100644 --- a/site/src/modules/resources/useAgentLogs.ts +++ b/site/src/modules/resources/useAgentLogs.ts @@ -1,7 +1,7 @@ -import { watchWorkspaceAgentLogs } from "api/api"; -import type { WorkspaceAgentLog } from "api/typesGenerated"; import { useEffect, useState } from "react"; import { toast } from "sonner"; +import { watchWorkspaceAgentLogs } from "#/api/api"; +import type { WorkspaceAgentLog } from "#/api/typesGenerated"; type UseAgentLogsOptions = Readonly<{ agentId: string; diff --git a/site/src/modules/tableFiltering/options.tsx b/site/src/modules/tableFiltering/options.tsx index 82078bfef9..26b3411272 100644 --- a/site/src/modules/tableFiltering/options.tsx +++ b/site/src/modules/tableFiltering/options.tsx @@ -7,8 +7,9 @@ * centralizing the logic). We currently have two separate implementations for * the workspaces and audits page that have a risk of getting out of sync. */ -import { API } from "api/api"; + import type { FC } from "react"; +import { API } from "#/api/api"; import { Avatar } from "#/components/Avatar/Avatar"; import { ComboboxInput } from "#/components/Combobox/Combobox"; import { diff --git a/site/src/modules/tasks/TaskDeleteDialog/TaskDeleteDialog.stories.tsx b/site/src/modules/tasks/TaskDeleteDialog/TaskDeleteDialog.stories.tsx index dd1d6a2d0c..795f3d9992 100644 --- a/site/src/modules/tasks/TaskDeleteDialog/TaskDeleteDialog.stories.tsx +++ b/site/src/modules/tasks/TaskDeleteDialog/TaskDeleteDialog.stories.tsx @@ -1,8 +1,8 @@ import { MockTask } from "testHelpers/entities"; import { withToaster } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { API } from "api/api"; import { expect, spyOn, userEvent, waitFor, within } from "storybook/test"; +import { API } from "#/api/api"; import { TaskDeleteDialog } from "./TaskDeleteDialog"; const meta: Meta = { diff --git a/site/src/modules/tasks/TaskDeleteDialog/TaskDeleteDialog.tsx b/site/src/modules/tasks/TaskDeleteDialog/TaskDeleteDialog.tsx index ba2a09a68e..a7aefaa9ca 100644 --- a/site/src/modules/tasks/TaskDeleteDialog/TaskDeleteDialog.tsx +++ b/site/src/modules/tasks/TaskDeleteDialog/TaskDeleteDialog.tsx @@ -1,9 +1,9 @@ -import { API } from "api/api"; -import { getErrorDetail, getErrorMessage } from "api/errors"; -import type { Task } from "api/typesGenerated"; import type { FC } from "react"; import { QueryClient, useMutation } from "react-query"; import { toast } from "sonner"; +import { API } from "#/api/api"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; +import type { Task } from "#/api/typesGenerated"; import { ConfirmDialog } from "#/components/Dialogs/ConfirmDialog/ConfirmDialog"; type TaskDeleteDialogProps = { diff --git a/site/src/modules/tasks/TaskFeedbackDialog/TaskFeedbackDialog.stories.tsx b/site/src/modules/tasks/TaskFeedbackDialog/TaskFeedbackDialog.stories.tsx index f651fd6706..0dec67b19b 100644 --- a/site/src/modules/tasks/TaskFeedbackDialog/TaskFeedbackDialog.stories.tsx +++ b/site/src/modules/tasks/TaskFeedbackDialog/TaskFeedbackDialog.stories.tsx @@ -1,8 +1,8 @@ import { MockTask, mockApiError } from "testHelpers/entities"; import { withToaster } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { API } from "api/api"; import { expect, spyOn, userEvent, within } from "storybook/test"; +import { API } from "#/api/api"; import { TaskFeedbackDialog } from "./TaskFeedbackDialog"; const meta: Meta = { diff --git a/site/src/modules/tasks/TaskFeedbackDialog/TaskFeedbackDialog.tsx b/site/src/modules/tasks/TaskFeedbackDialog/TaskFeedbackDialog.tsx index 3ed2359103..42ce4ab432 100644 --- a/site/src/modules/tasks/TaskFeedbackDialog/TaskFeedbackDialog.tsx +++ b/site/src/modules/tasks/TaskFeedbackDialog/TaskFeedbackDialog.tsx @@ -1,13 +1,13 @@ -import { - API, - type CreateTaskFeedbackRequest, - type TaskFeedbackRating, -} from "api/api"; import { useFormik } from "formik"; import { FrownIcon, MehIcon, SmileIcon } from "lucide-react"; import type { FC, HTMLProps, ReactNode } from "react"; import { useMutation } from "react-query"; import { toast } from "sonner"; +import { + API, + type CreateTaskFeedbackRequest, + type TaskFeedbackRating, +} from "#/api/api"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Button } from "#/components/Button/Button"; import { diff --git a/site/src/modules/tasks/TaskPrompt/TaskPrompt.stories.tsx b/site/src/modules/tasks/TaskPrompt/TaskPrompt.stories.tsx index 84c25ff53b..2e6c6827fc 100644 --- a/site/src/modules/tasks/TaskPrompt/TaskPrompt.stories.tsx +++ b/site/src/modules/tasks/TaskPrompt/TaskPrompt.stories.tsx @@ -12,10 +12,10 @@ import { } from "testHelpers/entities"; import { withAuthProvider, withToaster } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { API } from "api/api"; -import { templateVersionPresetsKey } from "api/queries/templates"; -import type { Task } from "api/typesGenerated"; import { expect, spyOn, userEvent, waitFor, within } from "storybook/test"; +import { API } from "#/api/api"; +import { templateVersionPresetsKey } from "#/api/queries/templates"; +import type { Task } from "#/api/typesGenerated"; import type TasksPage from "../../../pages/TasksPage/TasksPage"; import { TaskPrompt } from "./TaskPrompt"; diff --git a/site/src/modules/tasks/TaskPrompt/TaskPrompt.tsx b/site/src/modules/tasks/TaskPrompt/TaskPrompt.tsx index fbc7568db3..01301adb68 100644 --- a/site/src/modules/tasks/TaskPrompt/TaskPrompt.tsx +++ b/site/src/modules/tasks/TaskPrompt/TaskPrompt.tsx @@ -1,12 +1,3 @@ -import { API } from "api/api"; -import { getErrorDetail, getErrorMessage } from "api/errors"; -import { templateVersionPresets } from "api/queries/templates"; -import type { - Preset, - Task, - Template, - TemplateVersionExternalAuth, -} from "api/typesGenerated"; import { useAuthenticated } from "hooks/useAuthenticated"; import { useExternalAuth } from "hooks/useExternalAuth"; import { ArrowUpIcon, InfoIcon, RedoIcon, RotateCcwIcon } from "lucide-react"; @@ -19,6 +10,15 @@ import TextareaAutosize, { import { toast } from "sonner"; import { docs } from "utils/docs"; import { getOSKey } from "utils/platform"; +import { API } from "#/api/api"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; +import { templateVersionPresets } from "#/api/queries/templates"; +import type { + Preset, + Task, + Template, + TemplateVersionExternalAuth, +} from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Badge } from "#/components/Badge/Badge"; import { Button } from "#/components/Button/Button"; diff --git a/site/src/modules/tasks/TaskPrompt/TemplateVersionSelect.stories.tsx b/site/src/modules/tasks/TaskPrompt/TemplateVersionSelect.stories.tsx index 8c37edc301..d2adee39d7 100644 --- a/site/src/modules/tasks/TaskPrompt/TemplateVersionSelect.stories.tsx +++ b/site/src/modules/tasks/TaskPrompt/TemplateVersionSelect.stories.tsx @@ -1,9 +1,9 @@ import { MockTemplate, MockTemplateVersion } from "testHelpers/entities"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { API } from "api/api"; import { useState } from "react"; import { spyOn, userEvent, within } from "storybook/test"; import { daysAgo } from "utils/time"; +import { API } from "#/api/api"; import { TemplateVersionSelect } from "./TemplateVersionSelect"; const meta: Meta = { diff --git a/site/src/modules/tasks/TaskPrompt/TemplateVersionSelect.tsx b/site/src/modules/tasks/TaskPrompt/TemplateVersionSelect.tsx index c4645c94cb..dfeb695d25 100644 --- a/site/src/modules/tasks/TaskPrompt/TemplateVersionSelect.tsx +++ b/site/src/modules/tasks/TaskPrompt/TemplateVersionSelect.tsx @@ -1,6 +1,6 @@ -import { templateVersions } from "api/queries/templates"; import type { FC } from "react"; import { useQuery } from "react-query"; +import { templateVersions } from "#/api/queries/templates"; import { Badge } from "#/components/Badge/Badge"; import { Select, diff --git a/site/src/modules/tasks/TaskStatus/TaskStatus.tsx b/site/src/modules/tasks/TaskStatus/TaskStatus.tsx index c70b2eb2f0..bae371e93e 100644 --- a/site/src/modules/tasks/TaskStatus/TaskStatus.tsx +++ b/site/src/modules/tasks/TaskStatus/TaskStatus.tsx @@ -1,5 +1,5 @@ -import type * as TypesGen from "api/typesGenerated"; import type { FC } from "react"; +import type * as TypesGen from "#/api/typesGenerated"; import { StatusIndicator, StatusIndicatorDot, diff --git a/site/src/modules/tasks/TasksSidebar/TasksSidebar.stories.tsx b/site/src/modules/tasks/TasksSidebar/TasksSidebar.stories.tsx index c4b55b2f39..e79dab1d38 100644 --- a/site/src/modules/tasks/TasksSidebar/TasksSidebar.stories.tsx +++ b/site/src/modules/tasks/TasksSidebar/TasksSidebar.stories.tsx @@ -7,10 +7,10 @@ import { } from "testHelpers/entities"; import { withAuthProvider } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { API } from "api/api"; import { MockUsers } from "pages/UsersPage/storybookData/users"; import { spyOn, userEvent, within } from "storybook/test"; import { reactRouterParameters } from "storybook-addon-remix-react-router"; +import { API } from "#/api/api"; import { TasksSidebar } from "./TasksSidebar"; const meta: Meta = { diff --git a/site/src/modules/tasks/TasksSidebar/TasksSidebar.tsx b/site/src/modules/tasks/TasksSidebar/TasksSidebar.tsx index 3e204d00fb..c3bf147882 100644 --- a/site/src/modules/tasks/TasksSidebar/TasksSidebar.tsx +++ b/site/src/modules/tasks/TasksSidebar/TasksSidebar.tsx @@ -1,7 +1,3 @@ -import { API } from "api/api"; -import { getErrorDetail, getErrorMessage } from "api/errors"; -import { pauseTask, resumeTask } from "api/queries/tasks"; -import type { Task, TasksFilter } from "api/typesGenerated"; import { useAuthenticated } from "hooks"; import { useSearchParamsKey } from "hooks/useSearchParamsKey"; import { @@ -17,6 +13,10 @@ import { useMutation, useQuery, useQueryClient } from "react-query"; import { Link as RouterLink, useNavigate, useParams } from "react-router"; import { toast } from "sonner"; import { cn } from "utils/cn"; +import { API } from "#/api/api"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; +import { pauseTask, resumeTask } from "#/api/queries/tasks"; +import type { Task, TasksFilter } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { DropdownMenu, diff --git a/site/src/modules/tasks/TasksSidebar/UserCombobox.stories.tsx b/site/src/modules/tasks/TasksSidebar/UserCombobox.stories.tsx index 00acf7ee9d..a2dc91670e 100644 --- a/site/src/modules/tasks/TasksSidebar/UserCombobox.stories.tsx +++ b/site/src/modules/tasks/TasksSidebar/UserCombobox.stories.tsx @@ -2,10 +2,10 @@ import { MockUserOwner } from "testHelpers/entities"; import { withAuthProvider } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; import { waitFor } from "@testing-library/react"; -import { API } from "api/api"; import { MockUsers } from "pages/UsersPage/storybookData/users"; import { useState } from "react"; import { expect, spyOn, userEvent, within } from "storybook/test"; +import { API } from "#/api/api"; import { UserCombobox } from "./UserCombobox"; const meta: Meta = { diff --git a/site/src/modules/tasks/TasksSidebar/UserCombobox.tsx b/site/src/modules/tasks/TasksSidebar/UserCombobox.tsx index 7a58160cd0..6583717fc8 100644 --- a/site/src/modules/tasks/TasksSidebar/UserCombobox.tsx +++ b/site/src/modules/tasks/TasksSidebar/UserCombobox.tsx @@ -1,11 +1,11 @@ -import { users } from "api/queries/users"; -import type { User } from "api/typesGenerated"; import { useAuthenticated } from "hooks"; import { useDebouncedValue } from "hooks/debounce"; import { CheckIcon, ChevronsUpDownIcon } from "lucide-react"; import { type FC, useState } from "react"; import { keepPreviousData, useQuery } from "react-query"; import { cn } from "utils/cn"; +import { users } from "#/api/queries/users"; +import type { User } from "#/api/typesGenerated"; import { Avatar } from "#/components/Avatar/Avatar"; import { Button } from "#/components/Button/Button"; import { diff --git a/site/src/modules/tasks/apps.ts b/site/src/modules/tasks/apps.ts index 99aba32cc4..52200819b4 100644 --- a/site/src/modules/tasks/apps.ts +++ b/site/src/modules/tasks/apps.ts @@ -2,7 +2,7 @@ import type { Workspace, WorkspaceAgent, WorkspaceApp, -} from "api/typesGenerated"; +} from "#/api/typesGenerated"; export type WorkspaceAppWithAgent = WorkspaceApp & { agent: WorkspaceAgent; diff --git a/site/src/modules/tasks/taskActions.ts b/site/src/modules/tasks/taskActions.ts index 6e3ce61f4e..eb4a226522 100644 --- a/site/src/modules/tasks/taskActions.ts +++ b/site/src/modules/tasks/taskActions.ts @@ -1,4 +1,4 @@ -import type { TaskStatus } from "api/typesGenerated"; +import type { TaskStatus } from "#/api/typesGenerated"; /** * Task statuses that allow pausing. diff --git a/site/src/modules/templates/TemplateExampleCard/TemplateExampleCard.tsx b/site/src/modules/templates/TemplateExampleCard/TemplateExampleCard.tsx index e29a6b7776..61b7089643 100644 --- a/site/src/modules/templates/TemplateExampleCard/TemplateExampleCard.tsx +++ b/site/src/modules/templates/TemplateExampleCard/TemplateExampleCard.tsx @@ -1,8 +1,8 @@ import type { Interpolation, Theme } from "@emotion/react"; import Link from "@mui/material/Link"; -import type { TemplateExample } from "api/typesGenerated"; import type { FC, HTMLAttributes } from "react"; import { Link as RouterLink } from "react-router"; +import type { TemplateExample } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { ExternalImage } from "#/components/ExternalImage/ExternalImage"; import { Pill } from "#/components/Pill/Pill"; diff --git a/site/src/modules/templates/TemplateResourcesTable/TemplateResourcesTable.tsx b/site/src/modules/templates/TemplateResourcesTable/TemplateResourcesTable.tsx index 4be48b044e..995466c6ac 100644 --- a/site/src/modules/templates/TemplateResourcesTable/TemplateResourcesTable.tsx +++ b/site/src/modules/templates/TemplateResourcesTable/TemplateResourcesTable.tsx @@ -1,7 +1,7 @@ -import type { WorkspaceResource } from "api/typesGenerated"; import { AgentRowPreview } from "modules/resources/AgentRowPreview"; import { Resources } from "modules/resources/Resources"; import type { FC } from "react"; +import type { WorkspaceResource } from "#/api/typesGenerated"; interface TemplateResourcesProps { resources: WorkspaceResource[]; diff --git a/site/src/modules/templates/useWatchVersionLogs.ts b/site/src/modules/templates/useWatchVersionLogs.ts index e1c9666ea6..3e22560cc6 100644 --- a/site/src/modules/templates/useWatchVersionLogs.ts +++ b/site/src/modules/templates/useWatchVersionLogs.ts @@ -1,7 +1,7 @@ -import { watchBuildLogsByTemplateVersionId } from "api/api"; -import type { ProvisionerJobLog, TemplateVersion } from "api/typesGenerated"; import { useEffectEvent } from "hooks/hookPolyfills"; import { useEffect, useState } from "react"; +import { watchBuildLogsByTemplateVersionId } from "#/api/api"; +import type { ProvisionerJobLog, TemplateVersion } from "#/api/typesGenerated"; export const useWatchVersionLogs = ( templateVersion: TemplateVersion | undefined, options?: { onDone: () => Promise }, diff --git a/site/src/modules/workspaces/DynamicParameter/DynamicParameter.jest.tsx b/site/src/modules/workspaces/DynamicParameter/DynamicParameter.jest.tsx index f5e9d370f3..9ff7e64199 100644 --- a/site/src/modules/workspaces/DynamicParameter/DynamicParameter.jest.tsx +++ b/site/src/modules/workspaces/DynamicParameter/DynamicParameter.jest.tsx @@ -1,7 +1,7 @@ import { render } from "testHelpers/renderHelpers"; import { act, fireEvent, screen, waitFor } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; -import type { PreviewParameter } from "api/typesGenerated"; +import type { PreviewParameter } from "#/api/typesGenerated"; import { DynamicParameter } from "./DynamicParameter"; const createMockParameter = ( diff --git a/site/src/modules/workspaces/DynamicParameter/DynamicParameter.tsx b/site/src/modules/workspaces/DynamicParameter/DynamicParameter.tsx index 0ed98057ea..939ba6fc50 100644 --- a/site/src/modules/workspaces/DynamicParameter/DynamicParameter.tsx +++ b/site/src/modules/workspaces/DynamicParameter/DynamicParameter.tsx @@ -1,9 +1,3 @@ -import type { - NullHCLString, - PreviewParameter, - PreviewParameterOption, - WorkspaceBuildParameter, -} from "api/typesGenerated"; import { CircleAlert, Eye, @@ -18,6 +12,12 @@ import { type FC, useId, useRef, useState } from "react"; import { cn } from "utils/cn"; import type { AutofillBuildParameter } from "utils/richParameters"; import * as Yup from "yup"; +import type { + NullHCLString, + PreviewParameter, + PreviewParameterOption, + WorkspaceBuildParameter, +} from "#/api/typesGenerated"; import { Badge } from "#/components/Badge/Badge"; import { Button } from "#/components/Button/Button"; import { Checkbox } from "#/components/Checkbox/Checkbox"; diff --git a/site/src/modules/workspaces/EphemeralParametersDialog/EphemeralParametersDialog.tsx b/site/src/modules/workspaces/EphemeralParametersDialog/EphemeralParametersDialog.tsx index f2d456eaed..2c119d104f 100644 --- a/site/src/modules/workspaces/EphemeralParametersDialog/EphemeralParametersDialog.tsx +++ b/site/src/modules/workspaces/EphemeralParametersDialog/EphemeralParametersDialog.tsx @@ -1,6 +1,6 @@ -import type { TemplateVersionParameter } from "api/typesGenerated"; import type { FC } from "react"; import { useNavigate } from "react-router"; +import type { TemplateVersionParameter } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { Dialog, diff --git a/site/src/modules/workspaces/ErrorDialog/WorkspaceErrorDialog.tsx b/site/src/modules/workspaces/ErrorDialog/WorkspaceErrorDialog.tsx index c24e05f3af..7f7ce6696d 100644 --- a/site/src/modules/workspaces/ErrorDialog/WorkspaceErrorDialog.tsx +++ b/site/src/modules/workspaces/ErrorDialog/WorkspaceErrorDialog.tsx @@ -1,6 +1,6 @@ -import { getErrorDetail, getErrorMessage, isApiError } from "api/errors"; import type { FC } from "react"; import { useNavigate } from "react-router"; +import { getErrorDetail, getErrorMessage, isApiError } from "#/api/errors"; import { Button } from "#/components/Button/Button"; import { Dialog, diff --git a/site/src/modules/workspaces/WorkspaceAppStatus/WorkspaceAppStatus.tsx b/site/src/modules/workspaces/WorkspaceAppStatus/WorkspaceAppStatus.tsx index d101744d51..f69bd27bcf 100644 --- a/site/src/modules/workspaces/WorkspaceAppStatus/WorkspaceAppStatus.tsx +++ b/site/src/modules/workspaces/WorkspaceAppStatus/WorkspaceAppStatus.tsx @@ -1,6 +1,6 @@ -import type { WorkspaceAppStatus as APIWorkspaceAppStatus } from "api/typesGenerated"; import capitalize from "lodash/capitalize"; import { AppStatusStateIcon } from "modules/apps/AppStatusStateIcon"; +import type { WorkspaceAppStatus as APIWorkspaceAppStatus } from "#/api/typesGenerated"; import { Tooltip, TooltipContent, diff --git a/site/src/modules/workspaces/WorkspaceBuildCancelDialog/WorkspaceBuildCancelDialog.tsx b/site/src/modules/workspaces/WorkspaceBuildCancelDialog/WorkspaceBuildCancelDialog.tsx index b28c166798..2885d31ad4 100644 --- a/site/src/modules/workspaces/WorkspaceBuildCancelDialog/WorkspaceBuildCancelDialog.tsx +++ b/site/src/modules/workspaces/WorkspaceBuildCancelDialog/WorkspaceBuildCancelDialog.tsx @@ -1,5 +1,5 @@ -import type { Workspace } from "api/typesGenerated"; import type { FC } from "react"; +import type { Workspace } from "#/api/typesGenerated"; import { ConfirmDialog } from "#/components/Dialogs/ConfirmDialog/ConfirmDialog"; interface WorkspaceBuildCancelDialogProps { diff --git a/site/src/modules/workspaces/WorkspaceBuildData/WorkspaceBuildData.tsx b/site/src/modules/workspaces/WorkspaceBuildData/WorkspaceBuildData.tsx index 1f2b8b2d88..ae6bd5a119 100644 --- a/site/src/modules/workspaces/WorkspaceBuildData/WorkspaceBuildData.tsx +++ b/site/src/modules/workspaces/WorkspaceBuildData/WorkspaceBuildData.tsx @@ -1,6 +1,5 @@ import { type Interpolation, type Theme, useTheme } from "@emotion/react"; import Skeleton from "@mui/material/Skeleton"; -import type { WorkspaceBuild } from "api/typesGenerated"; import { InfoIcon } from "lucide-react"; import { createDayString } from "utils/createDayString"; import { @@ -9,6 +8,7 @@ import { getDisplayWorkspaceBuildStatus, systemBuildReasons, } from "utils/workspace"; +import type { WorkspaceBuild } from "#/api/typesGenerated"; import { BuildIcon } from "#/components/BuildIcon/BuildIcon"; import { Tooltip, diff --git a/site/src/modules/workspaces/WorkspaceBuildLogs/WorkspaceBuildLogs.tsx b/site/src/modules/workspaces/WorkspaceBuildLogs/WorkspaceBuildLogs.tsx index 22770a6cef..92a1e58c3c 100644 --- a/site/src/modules/workspaces/WorkspaceBuildLogs/WorkspaceBuildLogs.tsx +++ b/site/src/modules/workspaces/WorkspaceBuildLogs/WorkspaceBuildLogs.tsx @@ -1,5 +1,4 @@ import type { Interpolation, Theme } from "@emotion/react"; -import type { ProvisionerJobLog, WorkspaceBuild } from "api/typesGenerated"; import dayjs from "dayjs"; import { type FC, @@ -10,6 +9,7 @@ import { } from "react"; import { BODY_FONT_FAMILY } from "theme/constants"; import { cn } from "utils/cn"; +import type { ProvisionerJobLog, WorkspaceBuild } from "#/api/typesGenerated"; import type { Line } from "#/components/Logs/LogLine"; import { DEFAULT_LOG_LINE_SIDE_PADDING, Logs } from "#/components/Logs/Logs"; diff --git a/site/src/modules/workspaces/WorkspaceDormantBadge/WorkspaceDormantBadge.tsx b/site/src/modules/workspaces/WorkspaceDormantBadge/WorkspaceDormantBadge.tsx index 1f0144aff8..081c056c67 100644 --- a/site/src/modules/workspaces/WorkspaceDormantBadge/WorkspaceDormantBadge.tsx +++ b/site/src/modules/workspaces/WorkspaceDormantBadge/WorkspaceDormantBadge.tsx @@ -1,10 +1,10 @@ -import type { Workspace } from "api/typesGenerated"; import type { FC } from "react"; import { DATE_FORMAT, formatDateTime, relativeTimeWithoutSuffix, } from "utils/time"; +import type { Workspace } from "#/api/typesGenerated"; import { Badge } from "#/components/Badge/Badge"; import { Tooltip, diff --git a/site/src/modules/workspaces/WorkspaceMoreActions/ChangeWorkspaceVersionDialog.stories.tsx b/site/src/modules/workspaces/WorkspaceMoreActions/ChangeWorkspaceVersionDialog.stories.tsx index 7ff35868d0..5aba014fb1 100644 --- a/site/src/modules/workspaces/WorkspaceMoreActions/ChangeWorkspaceVersionDialog.stories.tsx +++ b/site/src/modules/workspaces/WorkspaceMoreActions/ChangeWorkspaceVersionDialog.stories.tsx @@ -4,7 +4,7 @@ import { MockWorkspace, } from "testHelpers/entities"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { templateVersionsQueryKey } from "api/queries/templates"; +import { templateVersionsQueryKey } from "#/api/queries/templates"; import { ChangeWorkspaceVersionDialog } from "./ChangeWorkspaceVersionDialog"; const noMessage = { diff --git a/site/src/modules/workspaces/WorkspaceMoreActions/ChangeWorkspaceVersionDialog.tsx b/site/src/modules/workspaces/WorkspaceMoreActions/ChangeWorkspaceVersionDialog.tsx index 007cfb080f..3e355ecae4 100644 --- a/site/src/modules/workspaces/WorkspaceMoreActions/ChangeWorkspaceVersionDialog.tsx +++ b/site/src/modules/workspaces/WorkspaceMoreActions/ChangeWorkspaceVersionDialog.tsx @@ -2,13 +2,13 @@ import { css } from "@emotion/css"; import Autocomplete from "@mui/material/Autocomplete"; import CircularProgress from "@mui/material/CircularProgress"; import TextField from "@mui/material/TextField"; -import { templateVersions } from "api/queries/templates"; -import type { TemplateVersion, Workspace } from "api/typesGenerated"; import { InfoIcon } from "lucide-react"; import { TemplateUpdateMessage } from "modules/templates/TemplateUpdateMessage"; import { type FC, useState } from "react"; import { useQuery } from "react-query"; import { createDayString } from "utils/createDayString"; +import { templateVersions } from "#/api/queries/templates"; +import type { TemplateVersion, Workspace } from "#/api/typesGenerated"; import { Alert, AlertTitle } from "#/components/Alert/Alert"; import { Avatar } from "#/components/Avatar/Avatar"; import { AvatarData } from "#/components/Avatar/AvatarData"; diff --git a/site/src/modules/workspaces/WorkspaceMoreActions/DownloadLogsDialog.stories.tsx b/site/src/modules/workspaces/WorkspaceMoreActions/DownloadLogsDialog.stories.tsx index 447a812399..f84aa47331 100644 --- a/site/src/modules/workspaces/WorkspaceMoreActions/DownloadLogsDialog.stories.tsx +++ b/site/src/modules/workspaces/WorkspaceMoreActions/DownloadLogsDialog.stories.tsx @@ -1,8 +1,8 @@ import { MockWorkspace, MockWorkspaceAgent } from "testHelpers/entities"; import { withDesktopViewport } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { agentLogsKey, buildLogsKey } from "api/queries/workspaces"; import { expect, fn, userEvent, waitFor, within } from "storybook/test"; +import { agentLogsKey, buildLogsKey } from "#/api/queries/workspaces"; import { DownloadLogsDialog } from "./DownloadLogsDialog"; const meta: Meta = { diff --git a/site/src/modules/workspaces/WorkspaceMoreActions/DownloadLogsDialog.tsx b/site/src/modules/workspaces/WorkspaceMoreActions/DownloadLogsDialog.tsx index f8325a77da..1705b7c04f 100644 --- a/site/src/modules/workspaces/WorkspaceMoreActions/DownloadLogsDialog.tsx +++ b/site/src/modules/workspaces/WorkspaceMoreActions/DownloadLogsDialog.tsx @@ -1,13 +1,13 @@ import { type Interpolation, type Theme, useTheme } from "@emotion/react"; import Skeleton from "@mui/material/Skeleton"; -import { getErrorDetail } from "api/errors"; -import { agentLogs, buildLogs } from "api/queries/workspaces"; -import type { Workspace, WorkspaceAgent } from "api/typesGenerated"; import { saveAs } from "file-saver"; import JSZip from "jszip"; import { type FC, useEffect, useMemo, useRef, useState } from "react"; import { useQueries, useQuery } from "react-query"; import { toast } from "sonner"; +import { getErrorDetail } from "#/api/errors"; +import { agentLogs, buildLogs } from "#/api/queries/workspaces"; +import type { Workspace, WorkspaceAgent } from "#/api/typesGenerated"; import { Alert } from "#/components/Alert/Alert"; import { ConfirmDialog, diff --git a/site/src/modules/workspaces/WorkspaceMoreActions/UpdateBuildParametersDialog.tsx b/site/src/modules/workspaces/WorkspaceMoreActions/UpdateBuildParametersDialog.tsx index a0656d35ba..64f9cee8da 100644 --- a/site/src/modules/workspaces/WorkspaceMoreActions/UpdateBuildParametersDialog.tsx +++ b/site/src/modules/workspaces/WorkspaceMoreActions/UpdateBuildParametersDialog.tsx @@ -5,10 +5,6 @@ import DialogActions from "@mui/material/DialogActions"; import DialogContent from "@mui/material/DialogContent"; import DialogContentText from "@mui/material/DialogContentText"; import DialogTitle from "@mui/material/DialogTitle"; -import type { - TemplateVersionParameter, - WorkspaceBuildParameter, -} from "api/typesGenerated"; import { useFormik } from "formik"; import type { FC } from "react"; import { getFormHelpers } from "utils/formUtils"; @@ -17,6 +13,10 @@ import { useValidationSchemaForRichParameters, } from "utils/richParameters"; import * as Yup from "yup"; +import type { + TemplateVersionParameter, + WorkspaceBuildParameter, +} from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import type { DialogProps } from "#/components/Dialogs/Dialog"; import { FormFields, VerticalForm } from "#/components/Form/Form"; diff --git a/site/src/modules/workspaces/WorkspaceMoreActions/UpdateBuildParametersDialogExperimental.tsx b/site/src/modules/workspaces/WorkspaceMoreActions/UpdateBuildParametersDialogExperimental.tsx index 86ee5019ae..72e4afc046 100644 --- a/site/src/modules/workspaces/WorkspaceMoreActions/UpdateBuildParametersDialogExperimental.tsx +++ b/site/src/modules/workspaces/WorkspaceMoreActions/UpdateBuildParametersDialogExperimental.tsx @@ -1,6 +1,6 @@ -import type { FieldError } from "api/errors"; import type { FC } from "react"; import { useNavigate } from "react-router"; +import type { FieldError } from "#/api/errors"; import { Button } from "#/components/Button/Button"; import { Dialog, diff --git a/site/src/modules/workspaces/WorkspaceMoreActions/WorkspaceDeleteDialog.tsx b/site/src/modules/workspaces/WorkspaceMoreActions/WorkspaceDeleteDialog.tsx index b7c3673c6a..0cca493f58 100644 --- a/site/src/modules/workspaces/WorkspaceMoreActions/WorkspaceDeleteDialog.tsx +++ b/site/src/modules/workspaces/WorkspaceMoreActions/WorkspaceDeleteDialog.tsx @@ -2,13 +2,13 @@ import type { Interpolation, Theme } from "@emotion/react"; import Checkbox from "@mui/material/Checkbox"; import Link from "@mui/material/Link"; import TextField from "@mui/material/TextField"; -import type { - CreateWorkspaceBuildRequest, - Workspace, -} from "api/typesGenerated"; import dayjs from "dayjs"; import { type FC, type FormEvent, useId, useState } from "react"; import { docs } from "utils/docs"; +import type { + CreateWorkspaceBuildRequest, + Workspace, +} from "#/api/typesGenerated"; import { ConfirmDialog } from "#/components/Dialogs/ConfirmDialog/ConfirmDialog"; interface WorkspaceDeleteDialogProps { diff --git a/site/src/modules/workspaces/WorkspaceMoreActions/WorkspaceMoreActions.tsx b/site/src/modules/workspaces/WorkspaceMoreActions/WorkspaceMoreActions.tsx index 258d47d81b..f917facd87 100644 --- a/site/src/modules/workspaces/WorkspaceMoreActions/WorkspaceMoreActions.tsx +++ b/site/src/modules/workspaces/WorkspaceMoreActions/WorkspaceMoreActions.tsx @@ -1,16 +1,3 @@ -import { MissingBuildParameters, ParameterValidationError } from "api/api"; -import { - type ApiError, - getErrorDetail, - getErrorMessage, - isApiError, -} from "api/errors"; -import { - changeVersion, - deleteWorkspace, - workspacePermissions, -} from "api/queries/workspaces"; -import type { Workspace } from "api/typesGenerated"; import { CopyIcon, DownloadIcon, @@ -24,6 +11,19 @@ import { type FC, useEffect, useState } from "react"; import { useMutation, useQuery, useQueryClient } from "react-query"; import { Link as RouterLink } from "react-router"; import { toast } from "sonner"; +import { MissingBuildParameters, ParameterValidationError } from "#/api/api"; +import { + type ApiError, + getErrorDetail, + getErrorMessage, + isApiError, +} from "#/api/errors"; +import { + changeVersion, + deleteWorkspace, + workspacePermissions, +} from "#/api/queries/workspaces"; +import type { Workspace } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { DropdownMenu, diff --git a/site/src/modules/workspaces/WorkspaceMoreActions/useWorkspaceDuplication.jest.tsx b/site/src/modules/workspaces/WorkspaceMoreActions/useWorkspaceDuplication.jest.tsx index c2a4d56f33..199f49f214 100644 --- a/site/src/modules/workspaces/WorkspaceMoreActions/useWorkspaceDuplication.jest.tsx +++ b/site/src/modules/workspaces/WorkspaceMoreActions/useWorkspaceDuplication.jest.tsx @@ -4,8 +4,8 @@ import { renderHookWithAuth, } from "testHelpers/hooks"; import { act, waitFor } from "@testing-library/react"; -import type { Workspace } from "api/typesGenerated"; import CreateWorkspacePage from "pages/CreateWorkspacePage/CreateWorkspacePage"; +import type { Workspace } from "#/api/typesGenerated"; import { useWorkspaceDuplication } from "./useWorkspaceDuplication"; function render(workspace?: Workspace) { diff --git a/site/src/modules/workspaces/WorkspaceMoreActions/useWorkspaceDuplication.ts b/site/src/modules/workspaces/WorkspaceMoreActions/useWorkspaceDuplication.ts index 6a7b1dc8b4..2c625792a6 100644 --- a/site/src/modules/workspaces/WorkspaceMoreActions/useWorkspaceDuplication.ts +++ b/site/src/modules/workspaces/WorkspaceMoreActions/useWorkspaceDuplication.ts @@ -1,10 +1,10 @@ -import { workspaceBuildParameters } from "api/queries/workspaceBuilds"; -import type { Workspace, WorkspaceBuildParameter } from "api/typesGenerated"; import { linkToTemplate, useLinks } from "modules/navigation"; import type { CreateWorkspaceMode } from "pages/CreateWorkspacePage/CreateWorkspacePage"; import { useCallback } from "react"; import { useQuery } from "react-query"; import { useNavigate } from "react-router"; +import { workspaceBuildParameters } from "#/api/queries/workspaceBuilds"; +import type { Workspace, WorkspaceBuildParameter } from "#/api/typesGenerated"; function getDuplicationUrlParams( workspaceParams: readonly WorkspaceBuildParameter[], diff --git a/site/src/modules/workspaces/WorkspaceOutdatedTooltip/WorkspaceOutdatedTooltip.tsx b/site/src/modules/workspaces/WorkspaceOutdatedTooltip/WorkspaceOutdatedTooltip.tsx index 3ce44afdba..4484b20fa2 100644 --- a/site/src/modules/workspaces/WorkspaceOutdatedTooltip/WorkspaceOutdatedTooltip.tsx +++ b/site/src/modules/workspaces/WorkspaceOutdatedTooltip/WorkspaceOutdatedTooltip.tsx @@ -1,14 +1,14 @@ import { type Interpolation, type Theme, useTheme } from "@emotion/react"; import Link from "@mui/material/Link"; import Skeleton from "@mui/material/Skeleton"; -import { getErrorDetail, getErrorMessage } from "api/errors"; -import { templateVersion } from "api/queries/templates"; -import type { Workspace } from "api/typesGenerated"; import { InfoIcon, RotateCcwIcon } from "lucide-react"; import { linkToTemplate, useLinks } from "modules/navigation"; import { type FC, type ReactNode, useState } from "react"; import { useQuery } from "react-query"; import { toast } from "sonner"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; +import { templateVersion } from "#/api/queries/templates"; +import type { Workspace } from "#/api/typesGenerated"; import { HelpTooltip, HelpTooltipAction, diff --git a/site/src/modules/workspaces/WorkspaceSharingForm/AddWorkspaceUserOrGroup.tsx b/site/src/modules/workspaces/WorkspaceSharingForm/AddWorkspaceUserOrGroup.tsx index e8e0efda04..274c352f21 100644 --- a/site/src/modules/workspaces/WorkspaceSharingForm/AddWorkspaceUserOrGroup.tsx +++ b/site/src/modules/workspaces/WorkspaceSharingForm/AddWorkspaceUserOrGroup.tsx @@ -1,10 +1,3 @@ -import type { - Group, - User, - WorkspaceACL, - WorkspaceRole, - WorkspaceUser, -} from "api/typesGenerated"; import { UserOrGroupAutocomplete, type UserOrGroupAutocompleteValue, @@ -14,6 +7,13 @@ import { RoleSelectField, } from "modules/workspaces/WorkspaceSharingForm/WorkspaceSharingForm"; import { type FC, useState } from "react"; +import type { + Group, + User, + WorkspaceACL, + WorkspaceRole, + WorkspaceUser, +} from "#/api/typesGenerated"; type AddWorkspaceUserOrGroupProps = { organizationID: string; diff --git a/site/src/modules/workspaces/WorkspaceSharingForm/UserOrGroupAutocomplete.tsx b/site/src/modules/workspaces/WorkspaceSharingForm/UserOrGroupAutocomplete.tsx index 6267217222..c8db04e127 100644 --- a/site/src/modules/workspaces/WorkspaceSharingForm/UserOrGroupAutocomplete.tsx +++ b/site/src/modules/workspaces/WorkspaceSharingForm/UserOrGroupAutocomplete.tsx @@ -1,10 +1,13 @@ -import { groupsByOrganization } from "api/queries/groups"; -import { organizationMembers } from "api/queries/organizations"; -import type { Group, OrganizationMemberWithUserData } from "api/typesGenerated"; import { Check } from "lucide-react"; import { getGroupSubtitle, isGroup } from "modules/groups"; import { type FC, useState } from "react"; import { keepPreviousData, useQuery } from "react-query"; +import { groupsByOrganization } from "#/api/queries/groups"; +import { organizationMembers } from "#/api/queries/organizations"; +import type { + Group, + OrganizationMemberWithUserData, +} from "#/api/typesGenerated"; import { Autocomplete } from "#/components/Autocomplete/Autocomplete"; import { AvatarData } from "#/components/Avatar/AvatarData"; diff --git a/site/src/modules/workspaces/WorkspaceSharingForm/WorkspaceSharingForm.tsx b/site/src/modules/workspaces/WorkspaceSharingForm/WorkspaceSharingForm.tsx index a4b5437b7f..7bb2456592 100644 --- a/site/src/modules/workspaces/WorkspaceSharingForm/WorkspaceSharingForm.tsx +++ b/site/src/modules/workspaces/WorkspaceSharingForm/WorkspaceSharingForm.tsx @@ -1,15 +1,15 @@ -import { workspaceSharingSettings } from "api/queries/organizations"; +import { EllipsisVertical, UserPlusIcon } from "lucide-react"; +import { getGroupSubtitle } from "modules/groups"; +import type { FC, ReactNode } from "react"; +import { useQuery } from "react-query"; +import { workspaceSharingSettings } from "#/api/queries/organizations"; import type { Group, WorkspaceACL, WorkspaceGroup, WorkspaceRole, WorkspaceUser, -} from "api/typesGenerated"; -import { EllipsisVertical, UserPlusIcon } from "lucide-react"; -import { getGroupSubtitle } from "modules/groups"; -import type { FC, ReactNode } from "react"; -import { useQuery } from "react-query"; +} from "#/api/typesGenerated"; import { Alert } from "#/components/Alert/Alert"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Avatar } from "#/components/Avatar/Avatar"; diff --git a/site/src/modules/workspaces/WorkspaceSharingForm/useWorkspaceSharing.ts b/site/src/modules/workspaces/WorkspaceSharingForm/useWorkspaceSharing.ts index e339fe34e6..7be70909c6 100644 --- a/site/src/modules/workspaces/WorkspaceSharingForm/useWorkspaceSharing.ts +++ b/site/src/modules/workspaces/WorkspaceSharingForm/useWorkspaceSharing.ts @@ -1,18 +1,18 @@ +import { useState } from "react"; +import { useMutation, useQuery, useQueryClient } from "react-query"; +import { toast } from "sonner"; import { setWorkspaceGroupRole, setWorkspaceUserRole, workspaceACL, -} from "api/queries/workspaces"; +} from "#/api/queries/workspaces"; import type { Group, Workspace, WorkspaceGroup, WorkspaceRole, WorkspaceUser, -} from "api/typesGenerated"; -import { useState } from "react"; -import { useMutation, useQuery, useQueryClient } from "react-query"; -import { toast } from "sonner"; +} from "#/api/typesGenerated"; /** * Encapsulates all data fetching and mutations for workspace sharing. diff --git a/site/src/modules/workspaces/WorkspaceStatus/WorkspaceStatus.tsx b/site/src/modules/workspaces/WorkspaceStatus/WorkspaceStatus.tsx index 7888b1c77e..6e551acfe2 100644 --- a/site/src/modules/workspaces/WorkspaceStatus/WorkspaceStatus.tsx +++ b/site/src/modules/workspaces/WorkspaceStatus/WorkspaceStatus.tsx @@ -1,6 +1,6 @@ -import type { Workspace } from "api/typesGenerated"; import type { FC } from "react"; import { lastUsedMessage } from "utils/workspace"; +import type { Workspace } from "#/api/typesGenerated"; import { WorkspaceDormantBadge } from "../WorkspaceDormantBadge/WorkspaceDormantBadge"; import { WorkspaceStatusIndicator } from "../WorkspaceStatusIndicator/WorkspaceStatusIndicator"; diff --git a/site/src/modules/workspaces/WorkspaceStatusIndicator/WorkspaceStatusIndicator.stories.tsx b/site/src/modules/workspaces/WorkspaceStatusIndicator/WorkspaceStatusIndicator.stories.tsx index 04a7fa5cdb..0c0792eae3 100644 --- a/site/src/modules/workspaces/WorkspaceStatusIndicator/WorkspaceStatusIndicator.stories.tsx +++ b/site/src/modules/workspaces/WorkspaceStatusIndicator/WorkspaceStatusIndicator.stories.tsx @@ -4,7 +4,7 @@ import { MockWorkspaceResource, } from "testHelpers/entities"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import type { Workspace, WorkspaceStatus } from "api/typesGenerated"; +import type { Workspace, WorkspaceStatus } from "#/api/typesGenerated"; import { WorkspaceStatusIndicator } from "./WorkspaceStatusIndicator"; const meta: Meta = { diff --git a/site/src/modules/workspaces/WorkspaceStatusIndicator/WorkspaceStatusIndicator.tsx b/site/src/modules/workspaces/WorkspaceStatusIndicator/WorkspaceStatusIndicator.tsx index dd56839726..9e90b7e7d4 100644 --- a/site/src/modules/workspaces/WorkspaceStatusIndicator/WorkspaceStatusIndicator.tsx +++ b/site/src/modules/workspaces/WorkspaceStatusIndicator/WorkspaceStatusIndicator.tsx @@ -1,4 +1,3 @@ -import type { Workspace } from "api/typesGenerated"; import { getAgentHealthIssue } from "modules/workspaces/health"; import type React from "react"; import type { FC } from "react"; @@ -6,6 +5,7 @@ import { type DisplayWorkspaceStatusType, getDisplayWorkspaceStatus, } from "utils/workspace"; +import type { Workspace } from "#/api/typesGenerated"; import { StatusIndicator, StatusIndicatorDot, diff --git a/site/src/modules/workspaces/WorkspaceTiming/StagesChart.tsx b/site/src/modules/workspaces/WorkspaceTiming/StagesChart.tsx index 764bfd4eaa..a15d81197e 100644 --- a/site/src/modules/workspaces/WorkspaceTiming/StagesChart.tsx +++ b/site/src/modules/workspaces/WorkspaceTiming/StagesChart.tsx @@ -1,7 +1,7 @@ import type { Interpolation, Theme } from "@emotion/react"; -import type { TimingStage } from "api/typesGenerated"; import { CircleAlertIcon, InfoIcon } from "lucide-react"; import type { FC } from "react"; +import type { TimingStage } from "#/api/typesGenerated"; import { Tooltip, TooltipContent, diff --git a/site/src/modules/workspaces/WorkspaceTiming/WorkspaceTimings.tsx b/site/src/modules/workspaces/WorkspaceTiming/WorkspaceTimings.tsx index 17be79b1a4..14d38e25c7 100644 --- a/site/src/modules/workspaces/WorkspaceTiming/WorkspaceTimings.tsx +++ b/site/src/modules/workspaces/WorkspaceTiming/WorkspaceTimings.tsx @@ -1,14 +1,14 @@ import type { Interpolation, Theme } from "@emotion/react"; import Collapse from "@mui/material/Collapse"; import Skeleton from "@mui/material/Skeleton"; +import sortBy from "lodash/sortBy"; +import uniqBy from "lodash/uniqBy"; +import { type FC, useState } from "react"; import type { AgentConnectionTiming, AgentScriptTiming, ProvisionerTiming, -} from "api/typesGenerated"; -import sortBy from "lodash/sortBy"; -import uniqBy from "lodash/uniqBy"; -import { type FC, useState } from "react"; +} from "#/api/typesGenerated"; import { ChevronDownIcon } from "#/components/AnimatedIcons/ChevronDown"; import { Button } from "#/components/Button/Button"; import { diff --git a/site/src/modules/workspaces/WorkspaceTiming/storybookData.ts b/site/src/modules/workspaces/WorkspaceTiming/storybookData.ts index c45b56ec5a..ae43a4ed59 100644 --- a/site/src/modules/workspaces/WorkspaceTiming/storybookData.ts +++ b/site/src/modules/workspaces/WorkspaceTiming/storybookData.ts @@ -1,4 +1,4 @@ -import type { WorkspaceBuildTimings } from "api/typesGenerated"; +import type { WorkspaceBuildTimings } from "#/api/typesGenerated"; export const WorkspaceTimingsResponse: WorkspaceBuildTimings = { provisioner_timings: [ diff --git a/site/src/modules/workspaces/WorkspaceUpdateDialogs.tsx b/site/src/modules/workspaces/WorkspaceUpdateDialogs.tsx index f20cdcf093..a5a365ce63 100644 --- a/site/src/modules/workspaces/WorkspaceUpdateDialogs.tsx +++ b/site/src/modules/workspaces/WorkspaceUpdateDialogs.tsx @@ -1,15 +1,15 @@ -import { MissingBuildParameters, ParameterValidationError } from "api/api"; -import { updateWorkspace } from "api/queries/workspaces"; +import { UpdateBuildParametersDialog } from "modules/workspaces/WorkspaceMoreActions/UpdateBuildParametersDialog"; +import { UpdateBuildParametersDialogExperimental } from "modules/workspaces/WorkspaceMoreActions/UpdateBuildParametersDialogExperimental"; +import { type FC, useState } from "react"; +import { useMutation, useQueryClient } from "react-query"; +import { MissingBuildParameters, ParameterValidationError } from "#/api/api"; +import { updateWorkspace } from "#/api/queries/workspaces"; import type { TemplateVersion, Workspace, WorkspaceBuild, WorkspaceBuildParameter, -} from "api/typesGenerated"; -import { UpdateBuildParametersDialog } from "modules/workspaces/WorkspaceMoreActions/UpdateBuildParametersDialog"; -import { UpdateBuildParametersDialogExperimental } from "modules/workspaces/WorkspaceMoreActions/UpdateBuildParametersDialogExperimental"; -import { type FC, useState } from "react"; -import { useMutation, useQueryClient } from "react-query"; +} from "#/api/typesGenerated"; import { ConfirmDialog } from "#/components/Dialogs/ConfirmDialog/ConfirmDialog"; import { MemoizedInlineMarkdown } from "#/components/Markdown/Markdown"; diff --git a/site/src/modules/workspaces/actions.ts b/site/src/modules/workspaces/actions.ts index 533cf981ed..ea00bf3774 100644 --- a/site/src/modules/workspaces/actions.ts +++ b/site/src/modules/workspaces/actions.ts @@ -1,4 +1,4 @@ -import type { Workspace } from "api/typesGenerated"; +import type { Workspace } from "#/api/typesGenerated"; /** * An iterable of all action types supported by the workspace UI diff --git a/site/src/modules/workspaces/activity.ts b/site/src/modules/workspaces/activity.ts index 3f688efffc..811b74e272 100644 --- a/site/src/modules/workspaces/activity.ts +++ b/site/src/modules/workspaces/activity.ts @@ -1,5 +1,5 @@ -import type { Workspace } from "api/typesGenerated"; import dayjs from "dayjs"; +import type { Workspace } from "#/api/typesGenerated"; export type WorkspaceActivityStatus = | "ready" diff --git a/site/src/modules/workspaces/health.test.ts b/site/src/modules/workspaces/health.test.ts index eba567cb78..2b06104d12 100644 --- a/site/src/modules/workspaces/health.test.ts +++ b/site/src/modules/workspaces/health.test.ts @@ -4,12 +4,12 @@ import { MockWorkspaceBuild, MockWorkspaceResource, } from "testHelpers/entities"; +import { describe, expect, it } from "vitest"; import type { Workspace, WorkspaceAgentLifecycle, WorkspaceAgentStatus, -} from "api/typesGenerated"; -import { describe, expect, it } from "vitest"; +} from "#/api/typesGenerated"; import { getAgentHealthIssue } from "./health"; interface AgentOverrides { diff --git a/site/src/modules/workspaces/health.ts b/site/src/modules/workspaces/health.ts index 3b4dd43365..29bd9a1862 100644 --- a/site/src/modules/workspaces/health.ts +++ b/site/src/modules/workspaces/health.ts @@ -1,4 +1,4 @@ -import type { Workspace, WorkspaceAgentStatus } from "api/typesGenerated"; +import type { Workspace, WorkspaceAgentStatus } from "#/api/typesGenerated"; interface AgentHealthIssue { title: string; diff --git a/site/src/modules/workspaces/permissions.ts b/site/src/modules/workspaces/permissions.ts index 0b79581d36..40bded7048 100644 --- a/site/src/modules/workspaces/permissions.ts +++ b/site/src/modules/workspaces/permissions.ts @@ -1,4 +1,4 @@ -import type { AuthorizationCheck, Workspace } from "api/typesGenerated"; +import type { AuthorizationCheck, Workspace } from "#/api/typesGenerated"; export const workspaceChecks = (workspace: Workspace) => ({ diff --git a/site/src/modules/workspaces/status.ts b/site/src/modules/workspaces/status.ts index 308d6e0cc7..007b549e21 100644 --- a/site/src/modules/workspaces/status.ts +++ b/site/src/modules/workspaces/status.ts @@ -1,4 +1,4 @@ -import type { WorkspaceStatus } from "api/typesGenerated"; +import type { WorkspaceStatus } from "#/api/typesGenerated"; /** * The set of all workspace statuses that indicate that the state for a diff --git a/site/src/pages/AIBridgePage/ListSessionsPage/ListSessionsPage.tsx b/site/src/pages/AIBridgePage/ListSessionsPage/ListSessionsPage.tsx index 6282a0016a..994be0025c 100644 --- a/site/src/pages/AIBridgePage/ListSessionsPage/ListSessionsPage.tsx +++ b/site/src/pages/AIBridgePage/ListSessionsPage/ListSessionsPage.tsx @@ -1,4 +1,3 @@ -import { paginatedSessions } from "api/queries/aiBridge"; import { useFilter } from "components/Filter/Filter"; import { useUserFilterMenu } from "components/Filter/UserFilter"; import { useAuthenticated } from "hooks"; @@ -8,6 +7,7 @@ import { RequirePermission } from "modules/permissions/RequirePermission"; import type { FC } from "react"; import { useNavigate, useSearchParams } from "react-router"; import { pageTitle } from "utils/page"; +import { paginatedSessions } from "#/api/queries/aiBridge"; import { useProviderFilterMenu } from "../RequestLogsPage/RequestLogsFilter/ProviderFilter"; import { ListSessionsPageView } from "./ListSessionsPageView"; diff --git a/site/src/pages/AIBridgePage/ListSessionsPage/ListSessionsPageView.tsx b/site/src/pages/AIBridgePage/ListSessionsPage/ListSessionsPageView.tsx index 9086406cd7..95630c6e88 100644 --- a/site/src/pages/AIBridgePage/ListSessionsPage/ListSessionsPageView.tsx +++ b/site/src/pages/AIBridgePage/ListSessionsPage/ListSessionsPageView.tsx @@ -1,4 +1,3 @@ -import type { AIBridgeSession } from "api/typesGenerated"; import { Alert, AlertDescription, AlertTitle } from "components/Alert/Alert"; import { Link } from "components/Link/Link"; import { @@ -25,6 +24,7 @@ import { InfoIcon } from "lucide-react"; import type { ComponentProps, FC, PropsWithChildren } from "react"; import { docs } from "utils/docs"; import { DATE_FORMAT, formatDateTime } from "utils/time"; +import type { AIBridgeSession } from "#/api/typesGenerated"; import { ListSessionsFilter } from "./ListSessionsFilter"; import { ListSessionsRow } from "./ListSessionsRow"; diff --git a/site/src/pages/AIBridgePage/ListSessionsPage/ListSessionsRow.tsx b/site/src/pages/AIBridgePage/ListSessionsPage/ListSessionsRow.tsx index 8c5fd8005e..980a206cca 100644 --- a/site/src/pages/AIBridgePage/ListSessionsPage/ListSessionsRow.tsx +++ b/site/src/pages/AIBridgePage/ListSessionsPage/ListSessionsRow.tsx @@ -1,4 +1,3 @@ -import type { AIBridgeSession } from "api/typesGenerated"; import { Avatar } from "components/Avatar/Avatar"; import { Badge } from "components/Badge/Badge"; import { TableCell, TableRow } from "components/Table/Table"; @@ -13,6 +12,7 @@ import { AIBridgeClientIcon } from "pages/AIBridgePage/RequestLogsPage/icons/AIB import { AIBridgeProviderIcon } from "pages/AIBridgePage/RequestLogsPage/icons/AIBridgeProviderIcon"; import type { FC } from "react"; import { DATE_FORMAT, formatDateTime } from "utils/time"; +import type { AIBridgeSession } from "#/api/typesGenerated"; import { getProviderDisplayName, getProviderIconName, diff --git a/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsFilter/ModelFilter.tsx b/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsFilter/ModelFilter.tsx index 15ee1dd6d0..2060e11e3f 100644 --- a/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsFilter/ModelFilter.tsx +++ b/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsFilter/ModelFilter.tsx @@ -1,5 +1,5 @@ -import { API } from "api/api"; import type { FC } from "react"; +import { API } from "#/api/api"; import { ComboboxInput } from "#/components/Combobox/Combobox"; import { type UseFilterMenuOptions, diff --git a/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsPage.tsx b/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsPage.tsx index c5cc8e732a..7faff8528e 100644 --- a/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsPage.tsx +++ b/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsPage.tsx @@ -1,4 +1,3 @@ -import { paginatedInterceptions } from "api/queries/aiBridge"; import { useAuthenticated } from "hooks"; import { usePaginatedQuery } from "hooks/usePaginatedQuery"; import { useDashboard } from "modules/dashboard/useDashboard"; @@ -6,6 +5,7 @@ import { RequirePermission } from "modules/permissions/RequirePermission"; import type { FC } from "react"; import { useSearchParams } from "react-router"; import { pageTitle } from "utils/page"; +import { paginatedInterceptions } from "#/api/queries/aiBridge"; import { useFilter } from "#/components/Filter/Filter"; import { useUserFilterMenu } from "#/components/Filter/UserFilter"; import { useModelFilterMenu } from "./RequestLogsFilter/ModelFilter"; diff --git a/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsPageView.tsx b/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsPageView.tsx index cf727de675..bcfcce2f12 100644 --- a/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsPageView.tsx +++ b/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsPageView.tsx @@ -1,6 +1,6 @@ -import type { AIBridgeInterception } from "api/typesGenerated"; import type { ComponentProps, FC } from "react"; import { docs } from "utils/docs"; +import type { AIBridgeInterception } from "#/api/typesGenerated"; import { Alert, AlertDescription, AlertTitle } from "#/components/Alert/Alert"; import { Link } from "#/components/Link/Link"; import { diff --git a/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsRow/RequestLogsRow.tsx b/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsRow/RequestLogsRow.tsx index 3924f9ec47..32391c99a6 100644 --- a/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsRow/RequestLogsRow.tsx +++ b/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsRow/RequestLogsRow.tsx @@ -1,8 +1,8 @@ -import type { AIBridgeInterception } from "api/typesGenerated"; import { ArrowDownIcon, ArrowUpIcon, ChevronRightIcon } from "lucide-react"; import { type FC, Fragment, useState } from "react"; import { cn } from "utils/cn"; import { formatDate, humanDuration } from "utils/time"; +import type { AIBridgeInterception } from "#/api/typesGenerated"; import { Avatar } from "#/components/Avatar/Avatar"; import { Badge } from "#/components/Badge/Badge"; import { TableCell, TableRow } from "#/components/Table/Table"; diff --git a/site/src/pages/AIBridgePage/RequestLogsPage/icons/AIBridgeClientIcon.tsx b/site/src/pages/AIBridgePage/RequestLogsPage/icons/AIBridgeClientIcon.tsx index 0666ed0bb7..836007009a 100644 --- a/site/src/pages/AIBridgePage/RequestLogsPage/icons/AIBridgeClientIcon.tsx +++ b/site/src/pages/AIBridgePage/RequestLogsPage/icons/AIBridgeClientIcon.tsx @@ -1,6 +1,6 @@ -import type { AIBridgeInterception } from "api/typesGenerated"; import { CircleQuestionMarkIcon } from "lucide-react"; import { cn } from "utils/cn"; +import type { AIBridgeInterception } from "#/api/typesGenerated"; import { ExternalImage } from "#/components/ExternalImage/ExternalImage"; export const AIBridgeClientIcon = ({ diff --git a/site/src/pages/AIBridgePage/RequestLogsPage/icons/AIBridgeProviderIcon.tsx b/site/src/pages/AIBridgePage/RequestLogsPage/icons/AIBridgeProviderIcon.tsx index f0d7866722..4d8d950a38 100644 --- a/site/src/pages/AIBridgePage/RequestLogsPage/icons/AIBridgeProviderIcon.tsx +++ b/site/src/pages/AIBridgePage/RequestLogsPage/icons/AIBridgeProviderIcon.tsx @@ -1,6 +1,6 @@ -import type { AIBridgeInterception } from "api/typesGenerated"; import { CircleQuestionMarkIcon } from "lucide-react"; import { cn } from "utils/cn"; +import type { AIBridgeInterception } from "#/api/typesGenerated"; import { ExternalImage } from "#/components/ExternalImage/ExternalImage"; export const AIBridgeProviderIcon = ({ diff --git a/site/src/pages/AIBridgePage/SessionThreadsPage/SessionSummaryTable.tsx b/site/src/pages/AIBridgePage/SessionThreadsPage/SessionSummaryTable.tsx index 469b4eebe9..7c11ae5b2b 100644 --- a/site/src/pages/AIBridgePage/SessionThreadsPage/SessionSummaryTable.tsx +++ b/site/src/pages/AIBridgePage/SessionThreadsPage/SessionSummaryTable.tsx @@ -1,9 +1,9 @@ -import type { MinimalUser } from "api/typesGenerated"; import { Avatar } from "components/Avatar/Avatar"; import { Badge } from "components/Badge/Badge"; import { AIBridgeClientIcon } from "pages/AIBridgePage/RequestLogsPage/icons/AIBridgeClientIcon"; import { AIBridgeProviderIcon } from "pages/AIBridgePage/RequestLogsPage/icons/AIBridgeProviderIcon"; import { formatDateTime } from "utils/time"; +import type { MinimalUser } from "#/api/typesGenerated"; import { TokenBadges } from "../TokenBadges"; import { getProviderDisplayName, getProviderIconName } from "../utils"; diff --git a/site/src/pages/AgentsPage/AgentAnalyticsPage.tsx b/site/src/pages/AgentsPage/AgentAnalyticsPage.tsx index 6b9c3d4442..0aaf5c2bf2 100644 --- a/site/src/pages/AgentsPage/AgentAnalyticsPage.tsx +++ b/site/src/pages/AgentsPage/AgentAnalyticsPage.tsx @@ -1,8 +1,8 @@ -import { chatCostSummary } from "api/queries/chats"; import { useAuthContext } from "contexts/auth/AuthProvider"; import dayjs, { type Dayjs } from "dayjs"; import { type FC, useState } from "react"; import { useQuery } from "react-query"; +import { chatCostSummary } from "#/api/queries/chats"; import { AgentAnalyticsPageView } from "./AgentAnalyticsPageView"; import { AgentPageHeader } from "./components/AgentPageHeader"; diff --git a/site/src/pages/AgentsPage/AgentAnalyticsPageView.tsx b/site/src/pages/AgentsPage/AgentAnalyticsPageView.tsx index b36022764c..37985aa061 100644 --- a/site/src/pages/AgentsPage/AgentAnalyticsPageView.tsx +++ b/site/src/pages/AgentsPage/AgentAnalyticsPageView.tsx @@ -1,6 +1,6 @@ -import type { ChatCostSummary } from "api/typesGenerated"; import { BarChart3Icon } from "lucide-react"; import type { FC } from "react"; +import type { ChatCostSummary } from "#/api/typesGenerated"; import { ChatCostSummaryView } from "./components/ChatCostSummaryView"; import { SectionHeader } from "./components/SectionHeader"; diff --git a/site/src/pages/AgentsPage/AgentCreatePage.tsx b/site/src/pages/AgentsPage/AgentCreatePage.tsx index c540f47490..35ab9960d2 100644 --- a/site/src/pages/AgentsPage/AgentCreatePage.tsx +++ b/site/src/pages/AgentsPage/AgentCreatePage.tsx @@ -1,13 +1,13 @@ +import type { FC } from "react"; +import { useMutation, useQuery, useQueryClient } from "react-query"; +import { useNavigate } from "react-router"; import { chatModelConfigs, chatModels, createChat, mcpServerConfigs, -} from "api/queries/chats"; -import type * as TypesGen from "api/typesGenerated"; -import type { FC } from "react"; -import { useMutation, useQuery, useQueryClient } from "react-query"; -import { useNavigate } from "react-router"; +} from "#/api/queries/chats"; +import type * as TypesGen from "#/api/typesGenerated"; import { AgentCreateForm, type CreateChatOptions, diff --git a/site/src/pages/AgentsPage/AgentDetail.stories.tsx b/site/src/pages/AgentsPage/AgentDetail.stories.tsx index 44b9e01047..d1f2bcc6f7 100644 --- a/site/src/pages/AgentsPage/AgentDetail.stories.tsx +++ b/site/src/pages/AgentsPage/AgentDetail.stories.tsx @@ -10,7 +10,14 @@ import { withWebSocket, } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { API } from "api/api"; +import type { FC } from "react"; +import { Outlet } from "react-router"; +import { expect, spyOn, userEvent, waitFor, within } from "storybook/test"; +import { + reactRouterOutlet, + reactRouterParameters, +} from "storybook-addon-remix-react-router"; +import { API } from "#/api/api"; import { chatDiffContentsKey, chatKey, @@ -19,16 +26,9 @@ import { chatModelsKey, chatsKey, mcpServerConfigsKey, -} from "api/queries/chats"; -import { workspaceByIdKey } from "api/queries/workspaces"; -import type * as TypesGen from "api/typesGenerated"; -import type { FC } from "react"; -import { Outlet } from "react-router"; -import { expect, spyOn, userEvent, waitFor, within } from "storybook/test"; -import { - reactRouterOutlet, - reactRouterParameters, -} from "storybook-addon-remix-react-router"; +} from "#/api/queries/chats"; +import { workspaceByIdKey } from "#/api/queries/workspaces"; +import type * as TypesGen from "#/api/typesGenerated"; import AgentDetail, { RIGHT_PANEL_OPEN_KEY } from "./AgentDetail"; import type { AgentsOutletContext } from "./AgentsPage"; diff --git a/site/src/pages/AgentsPage/AgentDetail.tsx b/site/src/pages/AgentsPage/AgentDetail.tsx index 5585409474..8ac16e693f 100644 --- a/site/src/pages/AgentsPage/AgentDetail.tsx +++ b/site/src/pages/AgentsPage/AgentDetail.tsx @@ -1,24 +1,3 @@ -import { API, watchWorkspace } from "api/api"; - -import { isApiError } from "api/errors"; -import { - chat, - chatDesktopEnabled, - chatMessagesForInfiniteScroll, - chatModelConfigs, - chatModels, - createChatMessage, - deleteChatQueuedMessage, - editChatMessage, - interruptChat, - mcpServerConfigs, - promoteChatQueuedMessage, - userCompactionThresholds, -} from "api/queries/chats"; -import { deploymentSSHConfig } from "api/queries/deployment"; -import { workspaceById, workspaceByIdKey } from "api/queries/workspaces"; -import type * as TypesGen from "api/typesGenerated"; -import type { ChatMessagePart } from "api/typesGenerated"; import { useProxy } from "contexts/ProxyContext"; import { getTerminalHref, @@ -38,6 +17,26 @@ import type { UrlTransform } from "streamdown"; import { isMobileViewport } from "utils/mobile"; import { pageTitle } from "utils/page"; import { rewriteLocalhostURL } from "utils/portForward"; +import { API, watchWorkspace } from "#/api/api"; +import { isApiError } from "#/api/errors"; +import { + chat, + chatDesktopEnabled, + chatMessagesForInfiniteScroll, + chatModelConfigs, + chatModels, + createChatMessage, + deleteChatQueuedMessage, + editChatMessage, + interruptChat, + mcpServerConfigs, + promoteChatQueuedMessage, + userCompactionThresholds, +} from "#/api/queries/chats"; +import { deploymentSSHConfig } from "#/api/queries/deployment"; +import { workspaceById, workspaceByIdKey } from "#/api/queries/workspaces"; +import type * as TypesGen from "#/api/typesGenerated"; +import type { ChatMessagePart } from "#/api/typesGenerated"; import type { AgentsOutletContext } from "./AgentsPage"; import type { ChatMessageInputRef } from "./components/AgentChatInput"; import { diff --git a/site/src/pages/AgentsPage/AgentEmbedPage.tsx b/site/src/pages/AgentsPage/AgentEmbedPage.tsx index 1506317d71..a10e2c2c45 100644 --- a/site/src/pages/AgentsPage/AgentEmbedPage.tsx +++ b/site/src/pages/AgentsPage/AgentEmbedPage.tsx @@ -1,4 +1,3 @@ -import { getErrorMessage } from "api/errors"; import { useAuthContext } from "contexts/auth/AuthProvider"; import { ProxyProvider } from "contexts/ProxyContext"; import { DashboardProvider } from "modules/dashboard/DashboardProvider"; @@ -6,6 +5,7 @@ import { permissionChecks } from "modules/permissions"; import { type FC, useEffect, useRef, useState } from "react"; import { useMutation, useQueryClient } from "react-query"; import { Outlet, useParams } from "react-router"; +import { getErrorMessage } from "#/api/errors"; import { Button } from "#/components/Button/Button"; import { Loader } from "#/components/Loader/Loader"; import type { AgentsOutletContext } from "./AgentsPage"; diff --git a/site/src/pages/AgentsPage/AgentSettingsPageView.stories.tsx b/site/src/pages/AgentsPage/AgentSettingsPageView.stories.tsx index 8fcfe30149..1be968782b 100644 --- a/site/src/pages/AgentsPage/AgentSettingsPageView.stories.tsx +++ b/site/src/pages/AgentsPage/AgentSettingsPageView.stories.tsx @@ -1,11 +1,11 @@ import { MockTemplate, MockUserOwner } from "testHelpers/entities"; import { withAuthProvider, withDashboardProvider } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { API } from "api/api"; -import { userKey } from "api/queries/users"; -import type * as TypesGen from "api/typesGenerated"; import dayjs from "dayjs"; import { expect, spyOn, userEvent, waitFor, within } from "storybook/test"; +import { API } from "#/api/api"; +import { userKey } from "#/api/queries/users"; +import type * as TypesGen from "#/api/typesGenerated"; import { AgentSettingsPageView } from "./AgentSettingsPageView"; // ── Usage mock helpers ───────────────────────────────────────── diff --git a/site/src/pages/AgentsPage/AgentSettingsPageView.tsx b/site/src/pages/AgentsPage/AgentSettingsPageView.tsx index 1120f8cce5..2d18196531 100644 --- a/site/src/pages/AgentsPage/AgentSettingsPageView.tsx +++ b/site/src/pages/AgentsPage/AgentSettingsPageView.tsx @@ -1,22 +1,3 @@ -import { getErrorMessage } from "api/errors"; -import { - chatCostSummary, - chatCostUsers, - chatDesktopEnabled, - chatModelConfigs, - chatSystemPrompt, - chatTemplateAllowlist, - chatUserCustomPrompt, - chatWorkspaceTTL, - updateChatDesktopEnabled, - updateChatSystemPrompt, - updateChatTemplateAllowlist, - updateChatWorkspaceTTL, - updateUserChatCustomPrompt, -} from "api/queries/chats"; -import { templates } from "api/queries/templates"; -import { user } from "api/queries/users"; -import type * as TypesGen from "api/typesGenerated"; import dayjs from "dayjs"; import { useDebouncedValue } from "hooks/debounce"; import { useClickableTableRow } from "hooks/useClickableTableRow"; @@ -34,6 +15,25 @@ import { formatTokenCount } from "utils/analytics"; import { cn } from "utils/cn"; import { formatCostMicros } from "utils/currency"; import { countInvisibleCharacters } from "utils/invisibleUnicode"; +import { getErrorMessage } from "#/api/errors"; +import { + chatCostSummary, + chatCostUsers, + chatDesktopEnabled, + chatModelConfigs, + chatSystemPrompt, + chatTemplateAllowlist, + chatUserCustomPrompt, + chatWorkspaceTTL, + updateChatDesktopEnabled, + updateChatSystemPrompt, + updateChatTemplateAllowlist, + updateChatWorkspaceTTL, + updateUserChatCustomPrompt, +} from "#/api/queries/chats"; +import { templates } from "#/api/queries/templates"; +import { user } from "#/api/queries/users"; +import type * as TypesGen from "#/api/typesGenerated"; import { Alert } from "#/components/Alert/Alert"; import { AvatarData } from "#/components/Avatar/AvatarData"; import { Button } from "#/components/Button/Button"; diff --git a/site/src/pages/AgentsPage/AgentsPage.tsx b/site/src/pages/AgentsPage/AgentsPage.tsx index 58de22f7f9..bb0f18614e 100644 --- a/site/src/pages/AgentsPage/AgentsPage.tsx +++ b/site/src/pages/AgentsPage/AgentsPage.tsx @@ -1,5 +1,17 @@ -import { API, watchChats } from "api/api"; -import { getErrorMessage } from "api/errors"; +import { useAuthenticated } from "hooks"; +import { useDashboard } from "modules/dashboard/useDashboard"; +import { type FC, useEffect, useRef, useState } from "react"; +import { + useInfiniteQuery, + useMutation, + useQuery, + useQueryClient, +} from "react-query"; +import { useNavigate, useParams } from "react-router"; +import { toast } from "sonner"; +import { createReconnectingWebSocket } from "utils/reconnectingWebSocket"; +import { API, watchChats } from "#/api/api"; +import { getErrorMessage } from "#/api/errors"; import { archiveChat, cancelChatListQueries, @@ -13,21 +25,9 @@ import { readInfiniteChatsCache, unarchiveChat, updateInfiniteChatsCache, -} from "api/queries/chats"; -import { workspaceById } from "api/queries/workspaces"; -import type * as TypesGen from "api/typesGenerated"; -import { useAuthenticated } from "hooks"; -import { useDashboard } from "modules/dashboard/useDashboard"; -import { type FC, useEffect, useRef, useState } from "react"; -import { - useInfiniteQuery, - useMutation, - useQuery, - useQueryClient, -} from "react-query"; -import { useNavigate, useParams } from "react-router"; -import { toast } from "sonner"; -import { createReconnectingWebSocket } from "utils/reconnectingWebSocket"; +} from "#/api/queries/chats"; +import { workspaceById } from "#/api/queries/workspaces"; +import type * as TypesGen from "#/api/typesGenerated"; import { DeleteDialog } from "#/components/Dialogs/DeleteDialog/DeleteDialog"; import { AgentsPageView } from "./AgentsPageView"; import { emptyInputStorageKey } from "./components/AgentCreateForm"; diff --git a/site/src/pages/AgentsPage/AgentsPageView.stories.tsx b/site/src/pages/AgentsPage/AgentsPageView.stories.tsx index e454535b09..ef3ee1830b 100644 --- a/site/src/pages/AgentsPage/AgentsPageView.stories.tsx +++ b/site/src/pages/AgentsPage/AgentsPageView.stories.tsx @@ -5,9 +5,6 @@ import { } from "testHelpers/entities"; import { withAuthProvider, withDashboardProvider } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { API } from "api/api"; -import type * as TypesGen from "api/typesGenerated"; -import type { Chat } from "api/typesGenerated"; import dayjs from "dayjs"; import { useState } from "react"; import { @@ -20,6 +17,9 @@ import { within, } from "storybook/test"; import { reactRouterParameters } from "storybook-addon-remix-react-router"; +import { API } from "#/api/api"; +import type * as TypesGen from "#/api/typesGenerated"; +import type { Chat } from "#/api/typesGenerated"; import type { ModelSelectorOption } from "#/components/ai-elements"; import { DeleteDialog } from "#/components/Dialogs/DeleteDialog/DeleteDialog"; import AgentAnalyticsPage from "./AgentAnalyticsPage"; diff --git a/site/src/pages/AgentsPage/AgentsPageView.tsx b/site/src/pages/AgentsPage/AgentsPageView.tsx index 542c2219e7..76e44045da 100644 --- a/site/src/pages/AgentsPage/AgentsPageView.tsx +++ b/site/src/pages/AgentsPage/AgentsPageView.tsx @@ -1,8 +1,8 @@ -import type * as TypesGen from "api/typesGenerated"; import type { FC } from "react"; import { Outlet, useLocation } from "react-router"; import { cn } from "utils/cn"; import { pageTitle } from "utils/page"; +import type * as TypesGen from "#/api/typesGenerated"; import type { ModelSelectorOption } from "#/components/ai-elements"; import { AgentsSidebar, diff --git a/site/src/pages/AgentsPage/UserCompactionThresholdSettings.stories.tsx b/site/src/pages/AgentsPage/UserCompactionThresholdSettings.stories.tsx index 3e9f6d37d7..9594b83f83 100644 --- a/site/src/pages/AgentsPage/UserCompactionThresholdSettings.stories.tsx +++ b/site/src/pages/AgentsPage/UserCompactionThresholdSettings.stories.tsx @@ -1,9 +1,9 @@ import { MockUserOwner } from "testHelpers/entities"; import { withAuthProvider, withDashboardProvider } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { API } from "api/api"; -import type * as TypesGen from "api/typesGenerated"; import { expect, spyOn, userEvent, waitFor, within } from "storybook/test"; +import { API } from "#/api/api"; +import type * as TypesGen from "#/api/typesGenerated"; import { UserCompactionThresholdSettings } from "./UserCompactionThresholdSettings"; const mockModelConfigs: TypesGen.ChatModelConfig[] = [ diff --git a/site/src/pages/AgentsPage/UserCompactionThresholdSettings.tsx b/site/src/pages/AgentsPage/UserCompactionThresholdSettings.tsx index 3e75de0ea2..27d7a3616d 100644 --- a/site/src/pages/AgentsPage/UserCompactionThresholdSettings.tsx +++ b/site/src/pages/AgentsPage/UserCompactionThresholdSettings.tsx @@ -1,12 +1,12 @@ -import { getErrorMessage } from "api/errors"; +import { type FC, useState } from "react"; +import { useMutation, useQuery, useQueryClient } from "react-query"; +import { getErrorMessage } from "#/api/errors"; import { deleteUserCompactionThreshold, updateUserCompactionThreshold, userCompactionThresholds, -} from "api/queries/chats"; -import type * as TypesGen from "api/typesGenerated"; -import { type FC, useState } from "react"; -import { useMutation, useQuery, useQueryClient } from "react-query"; +} from "#/api/queries/chats"; +import type * as TypesGen from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { Input } from "#/components/Input/Input"; import { Spinner } from "#/components/Spinner/Spinner"; diff --git a/site/src/pages/AgentsPage/components/AgentDetail/ChatContext.test.tsx b/site/src/pages/AgentsPage/components/AgentDetail/ChatContext.test.tsx index 5d4b080062..782cfed194 100644 --- a/site/src/pages/AgentsPage/components/AgentDetail/ChatContext.test.tsx +++ b/site/src/pages/AgentsPage/components/AgentDetail/ChatContext.test.tsx @@ -1,6 +1,6 @@ import { act, render, renderHook, waitFor } from "@testing-library/react"; -import { watchChat } from "api/api"; -import { chatMessagesKey, chatsKey } from "api/queries/chats"; +import { watchChat } from "#/api/api"; +import { chatMessagesKey, chatsKey } from "#/api/queries/chats"; // The infinite query key used by useInfiniteQuery(infiniteChats()) // is [...chatsKey, undefined] = ["chats", undefined]. @@ -30,11 +30,11 @@ const readInfiniteChats = ( return data?.pages.flat(); }; -import type * as TypesGen from "api/typesGenerated"; import type { FC, PropsWithChildren } from "react"; import { QueryClient, QueryClientProvider } from "react-query"; import type { OneWayMessageEvent } from "utils/OneWayWebSocket"; import { afterEach, describe, expect, it, vi } from "vitest"; +import type * as TypesGen from "#/api/typesGenerated"; import { selectChatStatus, selectOrderedMessageIDs, diff --git a/site/src/pages/AgentsPage/components/AgentDetail/ChatContext.ts b/site/src/pages/AgentsPage/components/AgentDetail/ChatContext.ts index 18bd3f7a86..3776fc277f 100644 --- a/site/src/pages/AgentsPage/components/AgentDetail/ChatContext.ts +++ b/site/src/pages/AgentsPage/components/AgentDetail/ChatContext.ts @@ -1,12 +1,11 @@ -import { watchChat } from "api/api"; -import { chatMessagesKey, updateInfiniteChatsCache } from "api/queries/chats"; -import type * as TypesGen from "api/typesGenerated"; import { asNumber, asString } from "components/ai-elements/runtimeTypeUtils"; - import { useEffect, useRef, useState, useSyncExternalStore } from "react"; import { type InfiniteData, useQueryClient } from "react-query"; import type { OneWayMessageEvent } from "utils/OneWayWebSocket"; import { createReconnectingWebSocket } from "utils/reconnectingWebSocket"; +import { watchChat } from "#/api/api"; +import { chatMessagesKey, updateInfiniteChatsCache } from "#/api/queries/chats"; +import type * as TypesGen from "#/api/typesGenerated"; import { type ChatDetailError, chatDetailErrorsEqual, diff --git a/site/src/pages/AgentsPage/components/AgentDetail/ConversationTimeline.stories.tsx b/site/src/pages/AgentsPage/components/AgentDetail/ConversationTimeline.stories.tsx index 9cd8424657..c05ded9b69 100644 --- a/site/src/pages/AgentsPage/components/AgentDetail/ConversationTimeline.stories.tsx +++ b/site/src/pages/AgentsPage/components/AgentDetail/ConversationTimeline.stories.tsx @@ -1,6 +1,6 @@ import type { Meta, StoryObj } from "@storybook/react-vite"; -import type * as TypesGen from "api/typesGenerated"; import { expect, spyOn, userEvent, within } from "storybook/test"; +import type * as TypesGen from "#/api/typesGenerated"; import { ConversationTimeline } from "./ConversationTimeline"; import { parseMessagesWithMergedTools } from "./messageParsing"; diff --git a/site/src/pages/AgentsPage/components/AgentDetail/ConversationTimeline.tsx b/site/src/pages/AgentsPage/components/AgentDetail/ConversationTimeline.tsx index 73b4f33309..114c016281 100644 --- a/site/src/pages/AgentsPage/components/AgentDetail/ConversationTimeline.tsx +++ b/site/src/pages/AgentsPage/components/AgentDetail/ConversationTimeline.tsx @@ -1,4 +1,3 @@ -import type * as TypesGen from "api/typesGenerated"; import { FileTextIcon, PencilIcon } from "lucide-react"; import { type FC, @@ -12,6 +11,7 @@ import { } from "react"; import type { UrlTransform } from "streamdown"; import { cn } from "utils/cn"; +import type * as TypesGen from "#/api/typesGenerated"; import { ConversationItem, Message, diff --git a/site/src/pages/AgentsPage/components/AgentDetail/LiveStreamTail.tsx b/site/src/pages/AgentsPage/components/AgentDetail/LiveStreamTail.tsx index c5cc1f5512..3b8404d347 100644 --- a/site/src/pages/AgentsPage/components/AgentDetail/LiveStreamTail.tsx +++ b/site/src/pages/AgentsPage/components/AgentDetail/LiveStreamTail.tsx @@ -1,6 +1,6 @@ -import type * as TypesGen from "api/typesGenerated"; import { Link } from "react-router"; import type { UrlTransform } from "streamdown"; +import type * as TypesGen from "#/api/typesGenerated"; import { Alert } from "#/components/Alert/Alert"; import { Button } from "#/components/Button/Button"; import type { ChatDetailError } from "../../utils/usageLimitMessage"; diff --git a/site/src/pages/AgentsPage/components/AgentDetail/TopBar.tsx b/site/src/pages/AgentsPage/components/AgentDetail/TopBar.tsx index 2e9f63c5b0..43c896b050 100644 --- a/site/src/pages/AgentsPage/components/AgentDetail/TopBar.tsx +++ b/site/src/pages/AgentsPage/components/AgentDetail/TopBar.tsx @@ -1,5 +1,3 @@ -import type * as TypesGen from "api/typesGenerated"; -import type { ChatDiffStatus } from "api/typesGenerated"; import { ArchiveIcon, ArchiveRestoreIcon, @@ -19,6 +17,8 @@ import type { FC } from "react"; import { Link } from "react-router"; import { toast } from "sonner"; import { cn } from "utils/cn"; +import type * as TypesGen from "#/api/typesGenerated"; +import type { ChatDiffStatus } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { DropdownMenu, diff --git a/site/src/pages/AgentsPage/components/AgentDetail/chatHelpers.test.ts b/site/src/pages/AgentsPage/components/AgentDetail/chatHelpers.test.ts index fe74de2124..0578e72882 100644 --- a/site/src/pages/AgentsPage/components/AgentDetail/chatHelpers.test.ts +++ b/site/src/pages/AgentsPage/components/AgentDetail/chatHelpers.test.ts @@ -1,5 +1,5 @@ -import type * as TypesGen from "api/typesGenerated"; import { describe, expect, it } from "vitest"; +import type * as TypesGen from "#/api/typesGenerated"; import type { ModelSelectorOption } from "#/components/ai-elements"; import { extractContextUsageFromMessage, diff --git a/site/src/pages/AgentsPage/components/AgentDetail/chatHelpers.ts b/site/src/pages/AgentsPage/components/AgentDetail/chatHelpers.ts index 39d4ab66de..8d9f5bc398 100644 --- a/site/src/pages/AgentsPage/components/AgentDetail/chatHelpers.ts +++ b/site/src/pages/AgentsPage/components/AgentDetail/chatHelpers.ts @@ -1,4 +1,4 @@ -import type * as TypesGen from "api/typesGenerated"; +import type * as TypesGen from "#/api/typesGenerated"; import type { ModelSelectorOption } from "#/components/ai-elements"; import { asString } from "#/components/ai-elements/runtimeTypeUtils"; import type { AgentContextUsage } from "../AgentChatInput"; diff --git a/site/src/pages/AgentsPage/components/AgentDetail/chatStore.test.ts b/site/src/pages/AgentsPage/components/AgentDetail/chatStore.test.ts index d6582997f5..4ad2db6bbc 100644 --- a/site/src/pages/AgentsPage/components/AgentDetail/chatStore.test.ts +++ b/site/src/pages/AgentsPage/components/AgentDetail/chatStore.test.ts @@ -1,5 +1,5 @@ -import type * as TypesGen from "api/typesGenerated"; import { describe, expect, it } from "vitest"; +import type * as TypesGen from "#/api/typesGenerated"; import { createChatStore } from "./ChatContext"; // --------------------------------------------------------------------------- diff --git a/site/src/pages/AgentsPage/components/AgentDetail/messageParsing.ts b/site/src/pages/AgentsPage/components/AgentDetail/messageParsing.ts index af488dde87..df4f3e134a 100644 --- a/site/src/pages/AgentsPage/components/AgentDetail/messageParsing.ts +++ b/site/src/pages/AgentsPage/components/AgentDetail/messageParsing.ts @@ -1,4 +1,4 @@ -import type * as TypesGen from "api/typesGenerated"; +import type * as TypesGen from "#/api/typesGenerated"; import { asRecord, asString } from "#/components/ai-elements/runtimeTypeUtils"; import { appendTextBlock } from "./blockUtils"; import type { diff --git a/site/src/pages/AgentsPage/components/AgentDetail/storyFixtures.ts b/site/src/pages/AgentsPage/components/AgentDetail/storyFixtures.ts index b448098ae2..515cedcca2 100644 --- a/site/src/pages/AgentsPage/components/AgentDetail/storyFixtures.ts +++ b/site/src/pages/AgentsPage/components/AgentDetail/storyFixtures.ts @@ -1,4 +1,4 @@ -import type * as TypesGen from "api/typesGenerated"; +import type * as TypesGen from "#/api/typesGenerated"; import { type DeriveLiveStatusParams, deriveLiveStatus, diff --git a/site/src/pages/AgentsPage/components/AgentDetail/streamState.ts b/site/src/pages/AgentsPage/components/AgentDetail/streamState.ts index f538a18aa2..5598441963 100644 --- a/site/src/pages/AgentsPage/components/AgentDetail/streamState.ts +++ b/site/src/pages/AgentsPage/components/AgentDetail/streamState.ts @@ -1,4 +1,4 @@ -import type * as TypesGen from "api/typesGenerated"; +import type * as TypesGen from "#/api/typesGenerated"; import { appendTextBlock } from "./blockUtils"; import { ensureToolBlock, parseToolResultIsError } from "./messageParsing"; import { mergeStreamPayload } from "./streamingJson"; diff --git a/site/src/pages/AgentsPage/components/AgentDetail/types.ts b/site/src/pages/AgentsPage/components/AgentDetail/types.ts index c258458973..55463e3be2 100644 --- a/site/src/pages/AgentsPage/components/AgentDetail/types.ts +++ b/site/src/pages/AgentsPage/components/AgentDetail/types.ts @@ -1,5 +1,5 @@ -import type * as TypesGen from "api/typesGenerated"; import type { ReconnectSchedule } from "utils/reconnectingWebSocket"; +import type * as TypesGen from "#/api/typesGenerated"; export type ParsedToolCall = { id: string; diff --git a/site/src/pages/AgentsPage/components/AgentDetail/useWorkspaceCreationWatcher.ts b/site/src/pages/AgentsPage/components/AgentDetail/useWorkspaceCreationWatcher.ts index 9b0ad717f7..a697de2342 100644 --- a/site/src/pages/AgentsPage/components/AgentDetail/useWorkspaceCreationWatcher.ts +++ b/site/src/pages/AgentsPage/components/AgentDetail/useWorkspaceCreationWatcher.ts @@ -1,6 +1,6 @@ -import { chatKey } from "api/queries/chats"; import { useEffect, useRef } from "react"; import { useQueryClient } from "react-query"; +import { chatKey } from "#/api/queries/chats"; import { useChatSelector } from "./ChatContext"; import type { StreamState } from "./types"; diff --git a/site/src/pages/AgentsPage/components/AgentDetailContent.tsx b/site/src/pages/AgentsPage/components/AgentDetailContent.tsx index d4ca29d0ba..8d9bf9d8e2 100644 --- a/site/src/pages/AgentsPage/components/AgentDetailContent.tsx +++ b/site/src/pages/AgentsPage/components/AgentDetailContent.tsx @@ -1,8 +1,8 @@ -import type * as TypesGen from "api/typesGenerated"; import { useDashboard } from "modules/dashboard/useDashboard"; import { type FC, Profiler, useEffect } from "react"; import { toast } from "sonner"; import type { UrlTransform } from "streamdown"; +import type * as TypesGen from "#/api/typesGenerated"; import type { ModelSelectorOption } from "#/components/ai-elements"; import { useFileAttachments } from "../hooks/useFileAttachments"; import type { ChatDetailError } from "../utils/usageLimitMessage"; diff --git a/site/src/pages/AgentsPage/components/AgentDetailView.stories.tsx b/site/src/pages/AgentsPage/components/AgentDetailView.stories.tsx index 327ddb4f36..d4a0058afe 100644 --- a/site/src/pages/AgentsPage/components/AgentDetailView.stories.tsx +++ b/site/src/pages/AgentsPage/components/AgentDetailView.stories.tsx @@ -1,12 +1,12 @@ import { MockUserOwner } from "testHelpers/entities"; import { withAuthProvider, withDashboardProvider } from "testHelpers/storybook"; import type { Decorator, Meta, StoryObj } from "@storybook/react-vite"; -import { API } from "api/api"; -import type * as TypesGen from "api/typesGenerated"; -import type { ChatDiffStatus, ChatMessagePart } from "api/typesGenerated"; import type { ComponentProps, FC } from "react"; import { expect, fn, spyOn, userEvent, waitFor, within } from "storybook/test"; import { reactRouterParameters } from "storybook-addon-remix-react-router"; +import { API } from "#/api/api"; +import type * as TypesGen from "#/api/typesGenerated"; +import type { ChatDiffStatus, ChatMessagePart } from "#/api/typesGenerated"; import type { ModelSelectorOption } from "#/components/ai-elements"; import type { ChatDetailError } from "../utils/usageLimitMessage"; import { createChatStore } from "./AgentDetail/ChatContext"; diff --git a/site/src/pages/AgentsPage/components/AgentDetailView.tsx b/site/src/pages/AgentsPage/components/AgentDetailView.tsx index 3db8c57597..b1e4dc8eb6 100644 --- a/site/src/pages/AgentsPage/components/AgentDetailView.tsx +++ b/site/src/pages/AgentsPage/components/AgentDetailView.tsx @@ -1,10 +1,10 @@ -import type * as TypesGen from "api/typesGenerated"; -import type { ChatDiffStatus, ChatMessagePart } from "api/typesGenerated"; import { ArchiveIcon, ArrowDownIcon } from "lucide-react"; import { type FC, type RefObject, useEffect, useRef, useState } from "react"; import type { UrlTransform } from "streamdown"; import { cn } from "utils/cn"; import { pageTitle } from "utils/page"; +import type * as TypesGen from "#/api/typesGenerated"; +import type { ChatDiffStatus, ChatMessagePart } from "#/api/typesGenerated"; import type { ModelSelectorOption } from "#/components/ai-elements"; import { Button } from "#/components/Button/Button"; import type { ChatDetailError } from "../utils/usageLimitMessage"; diff --git a/site/src/pages/AgentsPage/components/ChatCostSummaryView.stories.tsx b/site/src/pages/AgentsPage/components/ChatCostSummaryView.stories.tsx index b3ac829136..e08be17284 100644 --- a/site/src/pages/AgentsPage/components/ChatCostSummaryView.stories.tsx +++ b/site/src/pages/AgentsPage/components/ChatCostSummaryView.stories.tsx @@ -1,6 +1,6 @@ import type { Meta, StoryObj } from "@storybook/react-vite"; -import type * as TypesGen from "api/typesGenerated"; import { fn } from "storybook/test"; +import type * as TypesGen from "#/api/typesGenerated"; import { ChatCostSummaryView } from "./ChatCostSummaryView"; const buildSummary = ( diff --git a/site/src/pages/AgentsPage/components/ChatCostSummaryView.tsx b/site/src/pages/AgentsPage/components/ChatCostSummaryView.tsx index 063024afe8..29c0952b66 100644 --- a/site/src/pages/AgentsPage/components/ChatCostSummaryView.tsx +++ b/site/src/pages/AgentsPage/components/ChatCostSummaryView.tsx @@ -1,10 +1,10 @@ -import { getErrorMessage } from "api/errors"; -import type * as TypesGen from "api/typesGenerated"; import dayjs from "dayjs"; import { TriangleAlertIcon } from "lucide-react"; import type { FC } from "react"; import { formatTokenCount } from "utils/analytics"; import { formatCostMicros } from "utils/currency"; +import { getErrorMessage } from "#/api/errors"; +import type * as TypesGen from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { Spinner } from "#/components/Spinner/Spinner"; import { diff --git a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ChatModelAdminPanel.stories.tsx b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ChatModelAdminPanel.stories.tsx index 3b656ce79f..4aaa768a14 100644 --- a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ChatModelAdminPanel.stories.tsx +++ b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ChatModelAdminPanel.stories.tsx @@ -1,7 +1,7 @@ import type { Meta, StoryObj } from "@storybook/react-vite"; -import { API } from "api/api"; -import type * as TypesGen from "api/typesGenerated"; import { expect, spyOn, userEvent, waitFor, within } from "storybook/test"; +import { API } from "#/api/api"; +import type * as TypesGen from "#/api/typesGenerated"; import { ChatModelAdminPanel, type ChatModelAdminSection, diff --git a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ChatModelAdminPanel.tsx b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ChatModelAdminPanel.tsx index 14207b719d..9aba99756c 100644 --- a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ChatModelAdminPanel.tsx +++ b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ChatModelAdminPanel.tsx @@ -1,3 +1,6 @@ +import { type FC, type ReactNode, useState } from "react"; +import { useMutation, useQuery, useQueryClient } from "react-query"; +import { cn } from "utils/cn"; import { chatModelConfigs, chatModels, @@ -8,11 +11,8 @@ import { deleteChatProviderConfig as deleteChatProviderConfigMutation, updateChatModelConfig as updateChatModelConfigMutation, updateChatProviderConfig as updateChatProviderConfigMutation, -} from "api/queries/chats"; -import type * as TypesGen from "api/typesGenerated"; -import { type FC, type ReactNode, useState } from "react"; -import { useMutation, useQuery, useQueryClient } from "react-query"; -import { cn } from "utils/cn"; +} from "#/api/queries/chats"; +import type * as TypesGen from "#/api/typesGenerated"; import { Alert, AlertDescription, AlertTitle } from "#/components/Alert/Alert"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Spinner } from "#/components/Spinner/Spinner"; diff --git a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ModelConfigFields.tsx b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ModelConfigFields.tsx index 6a01a75595..c9ca687971 100644 --- a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ModelConfigFields.tsx +++ b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ModelConfigFields.tsx @@ -1,3 +1,6 @@ +import { type FormikContextType, getIn } from "formik"; +import type { FC } from "react"; +import { cn } from "utils/cn"; import { type FieldSchema, getVisibleGeneralFields, @@ -5,10 +8,7 @@ import { resolveProvider, snakeToCamel, toFormFieldKey, -} from "api/chatModelOptions"; -import { type FormikContextType, getIn } from "formik"; -import type { FC } from "react"; -import { cn } from "utils/cn"; +} from "#/api/chatModelOptions"; import { Input } from "#/components/Input/Input"; import { Label } from "#/components/Label/Label"; import { diff --git a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ModelForm.tsx b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ModelForm.tsx index bbc1a5dfba..b97bc89bce 100644 --- a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ModelForm.tsx +++ b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ModelForm.tsx @@ -1,4 +1,3 @@ -import type * as TypesGen from "api/typesGenerated"; import { useFormik } from "formik"; import { ChevronDownIcon, @@ -9,6 +8,7 @@ import { type FC, useState } from "react"; import { cn } from "utils/cn"; import { getFormHelpers } from "utils/formUtils"; import * as Yup from "yup"; +import type * as TypesGen from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { Input } from "#/components/Input/Input"; import { Label } from "#/components/Label/Label"; diff --git a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ModelsSection.stories.tsx b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ModelsSection.stories.tsx index b1fe45435c..4515b269b9 100644 --- a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ModelsSection.stories.tsx +++ b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ModelsSection.stories.tsx @@ -1,6 +1,6 @@ import type { Meta, StoryObj } from "@storybook/react-vite"; -import type * as TypesGen from "api/typesGenerated"; import { expect, fn, within } from "storybook/test"; +import type * as TypesGen from "#/api/typesGenerated"; import { TooltipProvider } from "#/components/Tooltip/Tooltip"; import type { ProviderState } from "./ChatModelAdminPanel"; import { ModelsSection } from "./ModelsSection"; diff --git a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ModelsSection.tsx b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ModelsSection.tsx index 977b6f86d5..de33ba174f 100644 --- a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ModelsSection.tsx +++ b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ModelsSection.tsx @@ -1,4 +1,3 @@ -import type * as TypesGen from "api/typesGenerated"; import { ChevronDownIcon, ChevronRightIcon, @@ -9,6 +8,7 @@ import { import type { FC, ReactNode } from "react"; import { useLocation, useNavigate, useSearchParams } from "react-router"; import { cn } from "utils/cn"; +import type * as TypesGen from "#/api/typesGenerated"; import { Badge } from "#/components/Badge/Badge"; import { Button } from "#/components/Button/Button"; import { diff --git a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ProviderForm.tsx b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ProviderForm.tsx index 9bfe9b4506..c79193e372 100644 --- a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ProviderForm.tsx +++ b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ProviderForm.tsx @@ -1,6 +1,6 @@ -import type * as TypesGen from "api/typesGenerated"; import { ChevronLeftIcon, InfoIcon } from "lucide-react"; import { type FC, type FormEvent, useId, useState } from "react"; +import type * as TypesGen from "#/api/typesGenerated"; import { Alert, AlertDescription, AlertTitle } from "#/components/Alert/Alert"; import { Button } from "#/components/Button/Button"; import { Input } from "#/components/Input/Input"; diff --git a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ProvidersSection.tsx b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ProvidersSection.tsx index 1345ae07ee..448841f2ae 100644 --- a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ProvidersSection.tsx +++ b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ProvidersSection.tsx @@ -1,8 +1,8 @@ -import type * as TypesGen from "api/typesGenerated"; import { CheckCircleIcon, ChevronRightIcon, CircleIcon } from "lucide-react"; import type { FC, ReactNode } from "react"; import { useLocation, useNavigate, useSearchParams } from "react-router"; import { cn } from "utils/cn"; +import type * as TypesGen from "#/api/typesGenerated"; import { SectionHeader } from "../SectionHeader"; import type { ProviderState } from "./ChatModelAdminPanel"; import { ProviderForm } from "./ProviderForm"; diff --git a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/modelConfigFormLogic.test.ts b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/modelConfigFormLogic.test.ts index 39ce81cba1..8305cadcad 100644 --- a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/modelConfigFormLogic.test.ts +++ b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/modelConfigFormLogic.test.ts @@ -1,5 +1,5 @@ -import type * as TypesGen from "api/typesGenerated"; import { describe, expect, it } from "vitest"; +import type * as TypesGen from "#/api/typesGenerated"; import { buildModelConfigFromForm, emptyModelConfigFormState, diff --git a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/modelConfigFormLogic.ts b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/modelConfigFormLogic.ts index da63035435..c0cc20857d 100644 --- a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/modelConfigFormLogic.ts +++ b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/modelConfigFormLogic.ts @@ -1,3 +1,4 @@ +import * as Yup from "yup"; import { type FieldSchema, getGeneralFields, @@ -5,9 +6,8 @@ import { getProviderNames, resolveProvider, snakeToCamel, -} from "api/chatModelOptions"; -import type * as TypesGen from "api/typesGenerated"; -import * as Yup from "yup"; +} from "#/api/chatModelOptions"; +import type * as TypesGen from "#/api/typesGenerated"; import { pricingFieldNames } from "./pricingFields"; // ── Preserved public types ───────────────────────────────────── diff --git a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/pricingFields.test.ts b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/pricingFields.test.ts index 4edd1cfa54..87b0671548 100644 --- a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/pricingFields.test.ts +++ b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/pricingFields.test.ts @@ -1,5 +1,5 @@ -import type * as TypesGen from "api/typesGenerated"; import { describe, expect, it } from "vitest"; +import type * as TypesGen from "#/api/typesGenerated"; import { getDefaultPricingForField, getPricingPlaceholderForField, diff --git a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/pricingFields.ts b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/pricingFields.ts index ff8467578b..89914e3b21 100644 --- a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/pricingFields.ts +++ b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/pricingFields.ts @@ -1,4 +1,4 @@ -import type * as TypesGen from "api/typesGenerated"; +import type * as TypesGen from "#/api/typesGenerated"; // Single source of truth for the model config fields that belong in the // Pricing section and require non-negative validation. diff --git a/site/src/pages/AgentsPage/components/DiffViewer/LocalDiffPanel.tsx b/site/src/pages/AgentsPage/components/DiffViewer/LocalDiffPanel.tsx index 338277d01e..204b3d3c0f 100644 --- a/site/src/pages/AgentsPage/components/DiffViewer/LocalDiffPanel.tsx +++ b/site/src/pages/AgentsPage/components/DiffViewer/LocalDiffPanel.tsx @@ -1,6 +1,6 @@ import { parsePatchFiles } from "@pierre/diffs"; -import type { WorkspaceAgentRepoChanges } from "api/typesGenerated"; import type { FC, RefObject } from "react"; +import type { WorkspaceAgentRepoChanges } from "#/api/typesGenerated"; import type { ChatMessageInputRef } from "../AgentChatInput"; import { CommentableDiffViewer } from "../DiffViewer/CommentableDiffViewer"; import type { DiffStyle } from "../DiffViewer/DiffViewer"; diff --git a/site/src/pages/AgentsPage/components/DiffViewer/RemoteDiffPanel.tsx b/site/src/pages/AgentsPage/components/DiffViewer/RemoteDiffPanel.tsx index 7ba00551f7..09b0254c4e 100644 --- a/site/src/pages/AgentsPage/components/DiffViewer/RemoteDiffPanel.tsx +++ b/site/src/pages/AgentsPage/components/DiffViewer/RemoteDiffPanel.tsx @@ -1,7 +1,5 @@ import type { FileDiffMetadata } from "@pierre/diffs"; import { parsePatchFiles } from "@pierre/diffs"; -import { chatDiffContents } from "api/queries/chats"; -import type * as TypesGen from "api/typesGenerated"; import { ArrowLeftIcon, ExternalLinkIcon, @@ -14,6 +12,8 @@ import { import { type FC, type RefObject, useEffect, useState } from "react"; import { useQuery } from "react-query"; import { cn } from "utils/cn"; +import { chatDiffContents } from "#/api/queries/chats"; +import type * as TypesGen from "#/api/typesGenerated"; import { parsePullRequestUrl } from "../../utils/pullRequest"; import type { ChatMessageInputRef } from "../AgentChatInput"; import { CommentableDiffViewer } from "../DiffViewer/CommentableDiffViewer"; diff --git a/site/src/pages/AgentsPage/components/EmbedContext.tsx b/site/src/pages/AgentsPage/components/EmbedContext.tsx index f3c329d4cf..2161e14be7 100644 --- a/site/src/pages/AgentsPage/components/EmbedContext.tsx +++ b/site/src/pages/AgentsPage/components/EmbedContext.tsx @@ -1,9 +1,9 @@ -import { API } from "api/api"; -import { getAuthorizationKey } from "api/queries/authCheck"; -import { meKey } from "api/queries/users"; -import type { AuthorizationRequest } from "api/typesGenerated"; import { createContext, useContext } from "react"; import type { QueryClient } from "react-query"; +import { API } from "#/api/api"; +import { getAuthorizationKey } from "#/api/queries/authCheck"; +import { meKey } from "#/api/queries/users"; +import type { AuthorizationRequest } from "#/api/typesGenerated"; interface EmbedContextValue { isEmbedded: boolean; diff --git a/site/src/pages/AgentsPage/components/GitPanel/GitPanel.stories.tsx b/site/src/pages/AgentsPage/components/GitPanel/GitPanel.stories.tsx index 0bf4a544fe..9d6ed5e647 100644 --- a/site/src/pages/AgentsPage/components/GitPanel/GitPanel.stories.tsx +++ b/site/src/pages/AgentsPage/components/GitPanel/GitPanel.stories.tsx @@ -1,11 +1,11 @@ import type { Meta, StoryObj } from "@storybook/react-vite"; -import { API } from "api/api"; +import { expect, fn, spyOn, userEvent } from "storybook/test"; +import { API } from "#/api/api"; import type { ChatDiffContents, ChatDiffStatus, WorkspaceAgentRepoChanges, -} from "api/typesGenerated"; -import { expect, fn, spyOn, userEvent } from "storybook/test"; +} from "#/api/typesGenerated"; import { GitPanel } from "./GitPanel"; // --------------------------------------------------------------------------- diff --git a/site/src/pages/AgentsPage/components/GitPanel/GitPanel.tsx b/site/src/pages/AgentsPage/components/GitPanel/GitPanel.tsx index bfc563ad59..f23c20f95f 100644 --- a/site/src/pages/AgentsPage/components/GitPanel/GitPanel.tsx +++ b/site/src/pages/AgentsPage/components/GitPanel/GitPanel.tsx @@ -1,7 +1,3 @@ -import type { - ChatDiffStatus, - WorkspaceAgentRepoChanges, -} from "api/typesGenerated"; import { CheckIcon, CircleDotIcon, @@ -17,6 +13,10 @@ import { } from "lucide-react"; import { type FC, type RefObject, useEffect, useRef, useState } from "react"; import { cn } from "utils/cn"; +import type { + ChatDiffStatus, + WorkspaceAgentRepoChanges, +} from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { ScrollArea } from "#/components/ScrollArea/ScrollArea"; import type { ChatMessageInputRef } from "../AgentChatInput"; diff --git a/site/src/pages/AgentsPage/components/InsightsContent.tsx b/site/src/pages/AgentsPage/components/InsightsContent.tsx index 8787c1763d..c2e65f6d36 100644 --- a/site/src/pages/AgentsPage/components/InsightsContent.tsx +++ b/site/src/pages/AgentsPage/components/InsightsContent.tsx @@ -1,7 +1,7 @@ -import { prInsights } from "api/queries/chats"; import dayjs, { type Dayjs } from "dayjs"; import { type FC, useState } from "react"; import { useQuery } from "react-query"; +import { prInsights } from "#/api/queries/chats"; import { Spinner } from "#/components/Spinner/Spinner"; import { type PRInsightsTimeRange, PRInsightsView } from "./PRInsightsView"; diff --git a/site/src/pages/AgentsPage/components/LimitsTab/DefaultLimitSection.tsx b/site/src/pages/AgentsPage/components/LimitsTab/DefaultLimitSection.tsx index 5ac7fa480f..ab2763695a 100644 --- a/site/src/pages/AgentsPage/components/LimitsTab/DefaultLimitSection.tsx +++ b/site/src/pages/AgentsPage/components/LimitsTab/DefaultLimitSection.tsx @@ -1,6 +1,6 @@ -import type { ChatUsageLimitPeriod } from "api/typesGenerated"; import { InfoIcon, TriangleAlertIcon } from "lucide-react"; import { type FC, type ReactNode, useId } from "react"; +import type { ChatUsageLimitPeriod } from "#/api/typesGenerated"; import { Input } from "#/components/Input/Input"; import { Label } from "#/components/Label/Label"; import { diff --git a/site/src/pages/AgentsPage/components/LimitsTab/GroupLimitsSection.stories.tsx b/site/src/pages/AgentsPage/components/LimitsTab/GroupLimitsSection.stories.tsx index 8c87515340..24548db1f2 100644 --- a/site/src/pages/AgentsPage/components/LimitsTab/GroupLimitsSection.stories.tsx +++ b/site/src/pages/AgentsPage/components/LimitsTab/GroupLimitsSection.stories.tsx @@ -1,6 +1,6 @@ import type { Meta, StoryObj } from "@storybook/react-vite"; -import type { Group } from "api/typesGenerated"; import { expect, fn, within } from "storybook/test"; +import type { Group } from "#/api/typesGenerated"; import { GroupLimitsSection } from "./GroupLimitsSection"; const mockGroupOverrides = [ diff --git a/site/src/pages/AgentsPage/components/LimitsTab/GroupLimitsSection.tsx b/site/src/pages/AgentsPage/components/LimitsTab/GroupLimitsSection.tsx index ac889fd679..31510f125a 100644 --- a/site/src/pages/AgentsPage/components/LimitsTab/GroupLimitsSection.tsx +++ b/site/src/pages/AgentsPage/components/LimitsTab/GroupLimitsSection.tsx @@ -1,9 +1,9 @@ -import { getErrorMessage } from "api/errors"; -import type { Group } from "api/typesGenerated"; import { Check } from "lucide-react"; import { getGroupSubtitle } from "modules/groups"; import { type FC, useId } from "react"; import { formatCostMicros, isPositiveFiniteDollarAmount } from "utils/currency"; +import { getErrorMessage } from "#/api/errors"; +import type { Group } from "#/api/typesGenerated"; import { Autocomplete } from "#/components/Autocomplete/Autocomplete"; import { AvatarData } from "#/components/Avatar/AvatarData"; import { Button } from "#/components/Button/Button"; diff --git a/site/src/pages/AgentsPage/components/LimitsTab/LimitsTab.tsx b/site/src/pages/AgentsPage/components/LimitsTab/LimitsTab.tsx index eecac4b7ea..97d3f71d72 100644 --- a/site/src/pages/AgentsPage/components/LimitsTab/LimitsTab.tsx +++ b/site/src/pages/AgentsPage/components/LimitsTab/LimitsTab.tsx @@ -1,14 +1,3 @@ -import { getErrorMessage } from "api/errors"; -import { - chatUsageLimitConfig, - deleteChatUsageLimitGroupOverride, - deleteChatUsageLimitOverride, - updateChatUsageLimitConfig, - upsertChatUsageLimitGroupOverride, - upsertChatUsageLimitOverride, -} from "api/queries/chats"; -import { groups } from "api/queries/groups"; -import type { ChatUsageLimitPeriod, Group, User } from "api/typesGenerated"; import { ShieldIcon } from "lucide-react"; import { type FC, type ReactNode, useState } from "react"; import { useMutation, useQuery, useQueryClient } from "react-query"; @@ -17,6 +6,17 @@ import { isPositiveFiniteDollarAmount, microsToDollars, } from "utils/currency"; +import { getErrorMessage } from "#/api/errors"; +import { + chatUsageLimitConfig, + deleteChatUsageLimitGroupOverride, + deleteChatUsageLimitOverride, + updateChatUsageLimitConfig, + upsertChatUsageLimitGroupOverride, + upsertChatUsageLimitOverride, +} from "#/api/queries/chats"; +import { groups } from "#/api/queries/groups"; +import type { ChatUsageLimitPeriod, Group, User } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { Spinner } from "#/components/Spinner/Spinner"; import { diff --git a/site/src/pages/AgentsPage/components/LimitsTab/UserOverridesSection.tsx b/site/src/pages/AgentsPage/components/LimitsTab/UserOverridesSection.tsx index 360947de80..323e186f9d 100644 --- a/site/src/pages/AgentsPage/components/LimitsTab/UserOverridesSection.tsx +++ b/site/src/pages/AgentsPage/components/LimitsTab/UserOverridesSection.tsx @@ -1,7 +1,7 @@ -import { getErrorMessage } from "api/errors"; -import type { User } from "api/typesGenerated"; import { type FC, useId } from "react"; import { formatCostMicros, isPositiveFiniteDollarAmount } from "utils/currency"; +import { getErrorMessage } from "#/api/errors"; +import type { User } from "#/api/typesGenerated"; import { AvatarData } from "#/components/Avatar/AvatarData"; import { Button } from "#/components/Button/Button"; import { Input } from "#/components/Input/Input"; diff --git a/site/src/pages/AgentsPage/components/LimitsTab/limitsFormLogic.ts b/site/src/pages/AgentsPage/components/LimitsTab/limitsFormLogic.ts index 0b83c23e93..63da616d9c 100644 --- a/site/src/pages/AgentsPage/components/LimitsTab/limitsFormLogic.ts +++ b/site/src/pages/AgentsPage/components/LimitsTab/limitsFormLogic.ts @@ -1,4 +1,4 @@ -import type { ChatUsageLimitPeriod } from "api/typesGenerated"; +import type { ChatUsageLimitPeriod } from "#/api/typesGenerated"; export const normalizeChatUsageLimitPeriod = ( period: string | null | undefined, diff --git a/site/src/pages/AgentsPage/components/MCPServerAdminPanel.stories.tsx b/site/src/pages/AgentsPage/components/MCPServerAdminPanel.stories.tsx index 4e8ec93134..73bfb7ba5c 100644 --- a/site/src/pages/AgentsPage/components/MCPServerAdminPanel.stories.tsx +++ b/site/src/pages/AgentsPage/components/MCPServerAdminPanel.stories.tsx @@ -1,8 +1,8 @@ import type { Meta, StoryObj } from "@storybook/react-vite"; -import { API } from "api/api"; -import type * as TypesGen from "api/typesGenerated"; import { expect, spyOn, userEvent, waitFor, within } from "storybook/test"; import { reactRouterParameters } from "storybook-addon-remix-react-router"; +import { API } from "#/api/api"; +import type * as TypesGen from "#/api/typesGenerated"; import { MCPServerAdminPanel } from "./MCPServerAdminPanel"; // ── Helpers ──────────────────────────────────────────────────── diff --git a/site/src/pages/AgentsPage/components/MCPServerAdminPanel.tsx b/site/src/pages/AgentsPage/components/MCPServerAdminPanel.tsx index d4977be14f..9a9386b0ea 100644 --- a/site/src/pages/AgentsPage/components/MCPServerAdminPanel.tsx +++ b/site/src/pages/AgentsPage/components/MCPServerAdminPanel.tsx @@ -1,10 +1,3 @@ -import { - createMCPServerConfig as createMCPServerConfigMutation, - deleteMCPServerConfig as deleteMCPServerConfigMutation, - mcpServerConfigs, - updateMCPServerConfig as updateMCPServerConfigMutation, -} from "api/queries/chats"; -import type * as TypesGen from "api/typesGenerated"; import { useFormik } from "formik"; import { CheckCircleIcon, @@ -19,6 +12,13 @@ import { type FC, type ReactNode, useId, useState } from "react"; import { useMutation, useQuery, useQueryClient } from "react-query"; import { useSearchParams } from "react-router"; import { cn } from "utils/cn"; +import { + createMCPServerConfig as createMCPServerConfigMutation, + deleteMCPServerConfig as deleteMCPServerConfigMutation, + mcpServerConfigs, + updateMCPServerConfig as updateMCPServerConfigMutation, +} from "#/api/queries/chats"; +import type * as TypesGen from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Button } from "#/components/Button/Button"; import { ExternalImage } from "#/components/ExternalImage/ExternalImage"; diff --git a/site/src/pages/AgentsPage/components/MCPServerPicker.stories.tsx b/site/src/pages/AgentsPage/components/MCPServerPicker.stories.tsx index 060371268c..38ab83df1a 100644 --- a/site/src/pages/AgentsPage/components/MCPServerPicker.stories.tsx +++ b/site/src/pages/AgentsPage/components/MCPServerPicker.stories.tsx @@ -1,6 +1,6 @@ import type { Meta, StoryObj } from "@storybook/react-vite"; -import type * as TypesGen from "api/typesGenerated"; import { fn } from "storybook/test"; +import type * as TypesGen from "#/api/typesGenerated"; import { getDefaultMCPSelection, MCPServerPicker } from "./MCPServerPicker"; // ── Helpers ──────────────────────────────────────────────────── diff --git a/site/src/pages/AgentsPage/components/MCPServerPicker.test.ts b/site/src/pages/AgentsPage/components/MCPServerPicker.test.ts index 8b7ed86b9e..6339ddcccd 100644 --- a/site/src/pages/AgentsPage/components/MCPServerPicker.test.ts +++ b/site/src/pages/AgentsPage/components/MCPServerPicker.test.ts @@ -1,5 +1,5 @@ -import type { MCPServerConfig } from "api/typesGenerated"; import { beforeEach, describe, expect, it } from "vitest"; +import type { MCPServerConfig } from "#/api/typesGenerated"; import { getDefaultMCPSelection, getSavedMCPSelection, diff --git a/site/src/pages/AgentsPage/components/MCPServerPicker.tsx b/site/src/pages/AgentsPage/components/MCPServerPicker.tsx index 222a8cb774..4d4090bebe 100644 --- a/site/src/pages/AgentsPage/components/MCPServerPicker.tsx +++ b/site/src/pages/AgentsPage/components/MCPServerPicker.tsx @@ -1,7 +1,7 @@ -import type * as TypesGen from "api/typesGenerated"; import { ChevronDownIcon, LockIcon, ServerIcon } from "lucide-react"; import { type FC, useEffect, useRef, useState } from "react"; import { cn } from "utils/cn"; +import type * as TypesGen from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { ExternalImage } from "#/components/ExternalImage/ExternalImage"; import { diff --git a/site/src/pages/AgentsPage/components/PRInsightsView.stories.tsx b/site/src/pages/AgentsPage/components/PRInsightsView.stories.tsx index a5a231249f..3429097407 100644 --- a/site/src/pages/AgentsPage/components/PRInsightsView.stories.tsx +++ b/site/src/pages/AgentsPage/components/PRInsightsView.stories.tsx @@ -1,7 +1,7 @@ import type { Meta, StoryObj } from "@storybook/react-vite"; -import type * as TypesGen from "api/typesGenerated"; import dayjs from "dayjs"; import { useState } from "react"; +import type * as TypesGen from "#/api/typesGenerated"; import { type PRInsightsTimeRange, PRInsightsView } from "./PRInsightsView"; // --------------------------------------------------------------------------- diff --git a/site/src/pages/AgentsPage/components/PRInsightsView.tsx b/site/src/pages/AgentsPage/components/PRInsightsView.tsx index d55d3b82a2..aaaef1dedb 100644 --- a/site/src/pages/AgentsPage/components/PRInsightsView.tsx +++ b/site/src/pages/AgentsPage/components/PRInsightsView.tsx @@ -1,4 +1,3 @@ -import type * as TypesGen from "api/typesGenerated"; import dayjs from "dayjs"; import relativeTime from "dayjs/plugin/relativeTime"; import { CodeIcon, ExternalLinkIcon } from "lucide-react"; @@ -6,6 +5,7 @@ import type { FC } from "react"; import { Area, AreaChart, CartesianGrid, XAxis, YAxis } from "recharts"; import { cn } from "utils/cn"; import { formatCostMicros } from "utils/currency"; +import type * as TypesGen from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { type ChartConfig, diff --git a/site/src/pages/AgentsPage/components/QueuedMessagesList.stories.tsx b/site/src/pages/AgentsPage/components/QueuedMessagesList.stories.tsx index edbc1e4280..e4d98c77f4 100644 --- a/site/src/pages/AgentsPage/components/QueuedMessagesList.stories.tsx +++ b/site/src/pages/AgentsPage/components/QueuedMessagesList.stories.tsx @@ -1,6 +1,6 @@ import type { Meta, StoryObj } from "@storybook/react-vite"; -import type { ChatQueuedMessage } from "api/typesGenerated"; import { expect, fn, userEvent, within } from "storybook/test"; +import type { ChatQueuedMessage } from "#/api/typesGenerated"; import { QueuedMessagesList } from "./QueuedMessagesList"; // Helper to build a ChatQueuedMessage with minimal boilerplate. diff --git a/site/src/pages/AgentsPage/components/QueuedMessagesList.test.ts b/site/src/pages/AgentsPage/components/QueuedMessagesList.test.ts index d451b7a14a..c9dcf8dd7e 100644 --- a/site/src/pages/AgentsPage/components/QueuedMessagesList.test.ts +++ b/site/src/pages/AgentsPage/components/QueuedMessagesList.test.ts @@ -1,5 +1,5 @@ -import type { ChatQueuedMessage } from "api/typesGenerated"; import { describe, expect, it } from "vitest"; +import type { ChatQueuedMessage } from "#/api/typesGenerated"; import { getQueuedMessageInfo } from "./QueuedMessagesList"; const makeMessage = ( diff --git a/site/src/pages/AgentsPage/components/QueuedMessagesList.tsx b/site/src/pages/AgentsPage/components/QueuedMessagesList.tsx index 5ea1dfad28..37eb319db7 100644 --- a/site/src/pages/AgentsPage/components/QueuedMessagesList.tsx +++ b/site/src/pages/AgentsPage/components/QueuedMessagesList.tsx @@ -1,4 +1,3 @@ -import type { ChatMessagePart, ChatQueuedMessage } from "api/typesGenerated"; import { ArrowUpIcon, CornerDownLeftIcon, @@ -8,6 +7,7 @@ import { } from "lucide-react"; import { type FC, useEffect, useState } from "react"; import { cn } from "utils/cn"; +import type { ChatMessagePart, ChatQueuedMessage } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { Spinner } from "#/components/Spinner/Spinner"; import { diff --git a/site/src/pages/AgentsPage/components/Sidebar/AgentsSidebar.stories.tsx b/site/src/pages/AgentsPage/components/Sidebar/AgentsSidebar.stories.tsx index 86c98fd726..ccebb580dd 100644 --- a/site/src/pages/AgentsPage/components/Sidebar/AgentsSidebar.stories.tsx +++ b/site/src/pages/AgentsPage/components/Sidebar/AgentsSidebar.stories.tsx @@ -1,10 +1,10 @@ import { MockUserOwner } from "testHelpers/entities"; import { withAuthProvider, withDashboardProvider } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import type * as TypesGen from "api/typesGenerated"; -import type { Chat } from "api/typesGenerated"; import { expect, fn, userEvent, waitFor, within } from "storybook/test"; import { reactRouterParameters } from "storybook-addon-remix-react-router"; +import type * as TypesGen from "#/api/typesGenerated"; +import type { Chat } from "#/api/typesGenerated"; import type { ModelSelectorOption } from "#/components/ai-elements"; import { AgentsSidebar } from "./AgentsSidebar"; diff --git a/site/src/pages/AgentsPage/components/Sidebar/AgentsSidebar.test.tsx b/site/src/pages/AgentsPage/components/Sidebar/AgentsSidebar.test.tsx index 8e1503839a..0130b46b6e 100644 --- a/site/src/pages/AgentsPage/components/Sidebar/AgentsSidebar.test.tsx +++ b/site/src/pages/AgentsPage/components/Sidebar/AgentsSidebar.test.tsx @@ -6,8 +6,6 @@ import { MockUserOwner, } from "testHelpers/entities"; import { act, render } from "@testing-library/react"; -import type * as TypesGen from "api/typesGenerated"; -import type { Chat } from "api/typesGenerated"; import { ThemeOverride } from "contexts/ThemeProvider"; import { DashboardContext } from "modules/dashboard/DashboardProvider"; import type { FC, PropsWithChildren } from "react"; @@ -15,6 +13,8 @@ import { QueryClient, QueryClientProvider } from "react-query"; import { MemoryRouter } from "react-router"; import themes, { DEFAULT_THEME } from "theme"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; +import type * as TypesGen from "#/api/typesGenerated"; +import type { Chat } from "#/api/typesGenerated"; import { AgentsSidebar } from "./AgentsSidebar"; // ---- IntersectionObserver mock ---- diff --git a/site/src/pages/AgentsPage/components/Sidebar/AgentsSidebar.tsx b/site/src/pages/AgentsPage/components/Sidebar/AgentsSidebar.tsx index aae941f6c2..bf572f8bfe 100644 --- a/site/src/pages/AgentsPage/components/Sidebar/AgentsSidebar.tsx +++ b/site/src/pages/AgentsPage/components/Sidebar/AgentsSidebar.tsx @@ -1,9 +1,3 @@ -import type { - Chat, - ChatDiffStatus, - ChatModelConfig, - ChatStatus, -} from "api/typesGenerated"; import { useAuthenticated } from "hooks"; import { AlertTriangleIcon, @@ -47,6 +41,12 @@ import { import { Link, NavLink, useLocation, useParams } from "react-router"; import { cn } from "utils/cn"; import { shortRelativeTime } from "utils/time"; +import type { + Chat, + ChatDiffStatus, + ChatModelConfig, + ChatStatus, +} from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Avatar } from "#/components/Avatar/Avatar"; import type { ModelSelectorOption } from "#/components/ai-elements"; diff --git a/site/src/pages/AgentsPage/components/UsageIndicator.stories.tsx b/site/src/pages/AgentsPage/components/UsageIndicator.stories.tsx index 149804817f..96518c7021 100644 --- a/site/src/pages/AgentsPage/components/UsageIndicator.stories.tsx +++ b/site/src/pages/AgentsPage/components/UsageIndicator.stories.tsx @@ -1,7 +1,7 @@ import type { Meta, StoryObj } from "@storybook/react-vite"; -import { chatUsageLimitStatusKey } from "api/queries/chats"; import type { FC } from "react"; import { useQueryClient } from "react-query"; +import { chatUsageLimitStatusKey } from "#/api/queries/chats"; import { UsageIndicator } from "./UsageIndicator"; const withUsageLimitStatus = diff --git a/site/src/pages/AgentsPage/components/UsageIndicator.tsx b/site/src/pages/AgentsPage/components/UsageIndicator.tsx index b12e10a8c5..988ba1b828 100644 --- a/site/src/pages/AgentsPage/components/UsageIndicator.tsx +++ b/site/src/pages/AgentsPage/components/UsageIndicator.tsx @@ -1,9 +1,9 @@ -import { chatUsageLimitStatus } from "api/queries/chats"; import dayjs from "dayjs"; import type { FC } from "react"; import { useQuery } from "react-query"; import { Link } from "react-router"; import { formatCostMicros } from "utils/currency"; +import { chatUsageLimitStatus } from "#/api/queries/chats"; import { DropdownMenu, DropdownMenuContent, diff --git a/site/src/pages/AgentsPage/components/WebPushButton.tsx b/site/src/pages/AgentsPage/components/WebPushButton.tsx index ab48ffa41e..283e51b4a3 100644 --- a/site/src/pages/AgentsPage/components/WebPushButton.tsx +++ b/site/src/pages/AgentsPage/components/WebPushButton.tsx @@ -1,8 +1,8 @@ -import { getErrorMessage } from "api/errors"; import { useWebpushNotifications } from "contexts/useWebpushNotifications"; import { BellIcon, BellOffIcon } from "lucide-react"; import type { FC } from "react"; import { toast } from "sonner"; +import { getErrorMessage } from "#/api/errors"; import { Button } from "#/components/Button/Button"; import { Spinner } from "#/components/Spinner/Spinner"; import { diff --git a/site/src/pages/AgentsPage/hooks/useDesktopConnection.test.ts b/site/src/pages/AgentsPage/hooks/useDesktopConnection.test.ts index b53c887de0..5c6ac3907b 100644 --- a/site/src/pages/AgentsPage/hooks/useDesktopConnection.test.ts +++ b/site/src/pages/AgentsPage/hooks/useDesktopConnection.test.ts @@ -63,7 +63,7 @@ vi.mock("@novnc/novnc/lib/rfb", () => ({ default: FakeRFB, })); -import { watchChatDesktop } from "api/api"; +import { watchChatDesktop } from "#/api/api"; const mockWatchChatDesktop = vi.mocked(watchChatDesktop); diff --git a/site/src/pages/AgentsPage/hooks/useDesktopConnection.ts b/site/src/pages/AgentsPage/hooks/useDesktopConnection.ts index 9a6771b1f1..be90fd629b 100644 --- a/site/src/pages/AgentsPage/hooks/useDesktopConnection.ts +++ b/site/src/pages/AgentsPage/hooks/useDesktopConnection.ts @@ -1,6 +1,6 @@ import RFB from "@novnc/novnc/lib/rfb"; -import { watchChatDesktop } from "api/api"; import { useEffect, useRef, useState } from "react"; +import { watchChatDesktop } from "#/api/api"; interface UseDesktopConnectionOptions { chatId: string | undefined; diff --git a/site/src/pages/AgentsPage/hooks/useFileAttachments.ts b/site/src/pages/AgentsPage/hooks/useFileAttachments.ts index 731d3d286d..d7fdd2c181 100644 --- a/site/src/pages/AgentsPage/hooks/useFileAttachments.ts +++ b/site/src/pages/AgentsPage/hooks/useFileAttachments.ts @@ -1,5 +1,3 @@ -import { API } from "api/api"; -import { getErrorDetail, getErrorMessage } from "api/errors"; import { type Dispatch, type SetStateAction, @@ -7,6 +5,8 @@ import { useRef, useState, } from "react"; +import { API } from "#/api/api"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; import type { UploadState } from "../components/AgentChatInput"; /** @internal Exported for testing. */ diff --git a/site/src/pages/AgentsPage/hooks/useGitWatcher.test.ts b/site/src/pages/AgentsPage/hooks/useGitWatcher.test.ts index 69954cdc7c..a4ee02f246 100644 --- a/site/src/pages/AgentsPage/hooks/useGitWatcher.test.ts +++ b/site/src/pages/AgentsPage/hooks/useGitWatcher.test.ts @@ -1,14 +1,14 @@ import { renderHook, waitFor } from "@testing-library/react"; -import type { WorkspaceAgentStatus } from "api/typesGenerated"; import { act } from "react"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; +import type { WorkspaceAgentStatus } from "#/api/typesGenerated"; import { useGitWatcher } from "./useGitWatcher"; vi.mock("api/api", () => ({ watchChatGit: vi.fn(), })); -import { watchChatGit } from "api/api"; +import { watchChatGit } from "#/api/api"; const mockWatchChatGit = vi.mocked(watchChatGit); diff --git a/site/src/pages/AgentsPage/hooks/useGitWatcher.ts b/site/src/pages/AgentsPage/hooks/useGitWatcher.ts index fa4c39d5c8..56e3c2873b 100644 --- a/site/src/pages/AgentsPage/hooks/useGitWatcher.ts +++ b/site/src/pages/AgentsPage/hooks/useGitWatcher.ts @@ -1,11 +1,11 @@ -import { watchChatGit } from "api/api"; +import { useEffect, useRef, useState } from "react"; +import { watchChatGit } from "#/api/api"; import type { WorkspaceAgentGitClientMessage, WorkspaceAgentGitServerMessage, WorkspaceAgentRepoChanges, WorkspaceAgentStatus, -} from "api/typesGenerated"; -import { useEffect, useRef, useState } from "react"; +} from "#/api/typesGenerated"; // Compile-time guard: ensures the bailout comparison in setRepositories // covers every data field. If WorkspaceAgentRepoChanges gains a new diff --git a/site/src/pages/AgentsPage/utils/modelOptions.test.ts b/site/src/pages/AgentsPage/utils/modelOptions.test.ts index cef7e1e4a0..eb94dc6f5d 100644 --- a/site/src/pages/AgentsPage/utils/modelOptions.test.ts +++ b/site/src/pages/AgentsPage/utils/modelOptions.test.ts @@ -1,5 +1,5 @@ -import type { ChatModelConfig, ChatModelsResponse } from "api/typesGenerated"; import { describe, expect, it } from "vitest"; +import type { ChatModelConfig, ChatModelsResponse } from "#/api/typesGenerated"; import { getModelOptionsFromConfigs, getNormalizedModelRef, diff --git a/site/src/pages/AgentsPage/utils/modelOptions.ts b/site/src/pages/AgentsPage/utils/modelOptions.ts index 98509fd44c..6a7c8b9809 100644 --- a/site/src/pages/AgentsPage/utils/modelOptions.ts +++ b/site/src/pages/AgentsPage/utils/modelOptions.ts @@ -1,4 +1,4 @@ -import type * as TypesGen from "api/typesGenerated"; +import type * as TypesGen from "#/api/typesGenerated"; import type { ModelSelectorOption } from "#/components/ai-elements"; import { asNumber, asString } from "#/components/ai-elements/runtimeTypeUtils"; diff --git a/site/src/pages/AuditPage/AuditFilter.tsx b/site/src/pages/AuditPage/AuditFilter.tsx index 89f6616cc4..4d205f1cf6 100644 --- a/site/src/pages/AuditPage/AuditFilter.tsx +++ b/site/src/pages/AuditPage/AuditFilter.tsx @@ -1,4 +1,3 @@ -import { AuditActions, ResourceTypes } from "api/typesGenerated"; import capitalize from "lodash/capitalize"; import { type OrganizationsFilterMenu, @@ -6,6 +5,7 @@ import { } from "modules/tableFiltering/options"; import type { FC } from "react"; import { docs } from "utils/docs"; +import { AuditActions, ResourceTypes } from "#/api/typesGenerated"; import { Filter, MenuSkeleton, diff --git a/site/src/pages/AuditPage/AuditLogRow/AuditLogDescription/AuditLogDescription.tsx b/site/src/pages/AuditPage/AuditLogRow/AuditLogDescription/AuditLogDescription.tsx index 26c38b901e..61dc400979 100644 --- a/site/src/pages/AuditPage/AuditLogRow/AuditLogDescription/AuditLogDescription.tsx +++ b/site/src/pages/AuditPage/AuditLogRow/AuditLogDescription/AuditLogDescription.tsx @@ -1,6 +1,6 @@ -import type { AuditLog } from "api/typesGenerated"; import type { FC } from "react"; import { Link as RouterLink } from "react-router"; +import type { AuditLog } from "#/api/typesGenerated"; import { Link } from "#/components/Link/Link"; import { BuildAuditDescription } from "./BuildAuditDescription"; diff --git a/site/src/pages/AuditPage/AuditLogRow/AuditLogDescription/BuildAuditDescription.tsx b/site/src/pages/AuditPage/AuditLogRow/AuditLogDescription/BuildAuditDescription.tsx index 3d6f9e6750..c995fc3686 100644 --- a/site/src/pages/AuditPage/AuditLogRow/AuditLogDescription/BuildAuditDescription.tsx +++ b/site/src/pages/AuditPage/AuditLogRow/AuditLogDescription/BuildAuditDescription.tsx @@ -1,7 +1,7 @@ -import type { AuditLog } from "api/typesGenerated"; import { type FC, useMemo } from "react"; import { Link as RouterLink } from "react-router"; import { systemBuildReasons } from "utils/workspace"; +import type { AuditLog } from "#/api/typesGenerated"; import { Link } from "#/components/Link/Link"; interface BuildAuditDescriptionProps { diff --git a/site/src/pages/AuditPage/AuditLogRow/AuditLogDiff/AuditLogDiff.tsx b/site/src/pages/AuditPage/AuditLogRow/AuditLogDiff/AuditLogDiff.tsx index 584269c515..9edf9a6947 100644 --- a/site/src/pages/AuditPage/AuditLogRow/AuditLogDiff/AuditLogDiff.tsx +++ b/site/src/pages/AuditPage/AuditLogRow/AuditLogDiff/AuditLogDiff.tsx @@ -1,8 +1,8 @@ import type { Interpolation, Theme } from "@emotion/react"; -import type { AuditDiff } from "api/typesGenerated"; import type { FC } from "react"; import { MONOSPACE_FONT_FAMILY } from "theme/constants"; import colors from "theme/tailwindColors"; +import type { AuditDiff } from "#/api/typesGenerated"; const getDiffValue = (value: unknown): string => { if (typeof value === "string") { diff --git a/site/src/pages/AuditPage/AuditLogRow/AuditLogDiff/auditUtils.ts b/site/src/pages/AuditPage/AuditLogRow/AuditLogDiff/auditUtils.ts index f07a69985d..7e9033841c 100644 --- a/site/src/pages/AuditPage/AuditLogRow/AuditLogDiff/auditUtils.ts +++ b/site/src/pages/AuditPage/AuditLogRow/AuditLogDiff/auditUtils.ts @@ -1,4 +1,4 @@ -import type { AuditDiff } from "api/typesGenerated"; +import type { AuditDiff } from "#/api/typesGenerated"; interface GroupMember { user_id: string; diff --git a/site/src/pages/AuditPage/AuditLogRow/AuditLogRow.tsx b/site/src/pages/AuditPage/AuditLogRow/AuditLogRow.tsx index 8d441d3ca5..2b98cd9b68 100644 --- a/site/src/pages/AuditPage/AuditLogRow/AuditLogRow.tsx +++ b/site/src/pages/AuditPage/AuditLogRow/AuditLogRow.tsx @@ -1,10 +1,10 @@ -import type { AuditLog, BuildReason } from "api/typesGenerated"; import { InfoIcon, NetworkIcon } from "lucide-react"; import { type FC, type KeyboardEvent, useState } from "react"; import { Link as RouterLink } from "react-router"; import userAgentParser from "ua-parser-js"; import { cn } from "utils/cn"; import { buildReasonLabels } from "utils/workspace"; +import type { AuditLog, BuildReason } from "#/api/typesGenerated"; import { ChevronDownIcon } from "#/components/AnimatedIcons/ChevronDown"; import { Avatar } from "#/components/Avatar/Avatar"; import { diff --git a/site/src/pages/AuditPage/AuditPage.test.tsx b/site/src/pages/AuditPage/AuditPage.test.tsx index c3de637b71..87dac33226 100644 --- a/site/src/pages/AuditPage/AuditPage.test.tsx +++ b/site/src/pages/AuditPage/AuditPage.test.tsx @@ -16,10 +16,10 @@ import { within, } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; -import { API } from "api/api"; -import type { AuditLogsRequest } from "api/typesGenerated"; import { HttpResponse, http } from "msw"; import * as CreateDayString from "utils/createDayString"; +import { API } from "#/api/api"; +import type { AuditLogsRequest } from "#/api/typesGenerated"; import { DEFAULT_RECORDS_PER_PAGE } from "#/components/PaginationWidget/utils"; import AuditPage from "./AuditPage"; diff --git a/site/src/pages/AuditPage/AuditPage.tsx b/site/src/pages/AuditPage/AuditPage.tsx index e97ab3c486..c931e2f184 100644 --- a/site/src/pages/AuditPage/AuditPage.tsx +++ b/site/src/pages/AuditPage/AuditPage.tsx @@ -1,4 +1,3 @@ -import { paginatedAudits } from "api/queries/audits"; import { usePaginatedQuery } from "hooks/usePaginatedQuery"; import { useDashboard } from "modules/dashboard/useDashboard"; import { useFeatureVisibility } from "modules/dashboard/useFeatureVisibility"; @@ -6,6 +5,7 @@ import { useOrganizationsFilterMenu } from "modules/tableFiltering/options"; import type { FC } from "react"; import { useSearchParams } from "react-router"; import { pageTitle } from "utils/page"; +import { paginatedAudits } from "#/api/queries/audits"; import { useFilter } from "#/components/Filter/Filter"; import { useUserFilterMenu } from "#/components/Filter/UserFilter"; import { isNonInitialPage } from "#/components/PaginationWidget/utils"; diff --git a/site/src/pages/AuditPage/AuditPageView.tsx b/site/src/pages/AuditPage/AuditPageView.tsx index 55e9dc4d6e..b82c1f2485 100644 --- a/site/src/pages/AuditPage/AuditPageView.tsx +++ b/site/src/pages/AuditPage/AuditPageView.tsx @@ -1,6 +1,6 @@ -import type { AuditLog } from "api/typesGenerated"; import type { ComponentProps, FC } from "react"; import { docs } from "utils/docs"; +import type { AuditLog } from "#/api/typesGenerated"; import { ChooseOne, Cond } from "#/components/Conditionals/ChooseOne"; import { EmptyState } from "#/components/EmptyState/EmptyState"; import { Margins } from "#/components/Margins/Margins"; diff --git a/site/src/pages/CliAuthPage/CliAuthPage.tsx b/site/src/pages/CliAuthPage/CliAuthPage.tsx index d6ff1667bf..c22c151ce0 100644 --- a/site/src/pages/CliAuthPage/CliAuthPage.tsx +++ b/site/src/pages/CliAuthPage/CliAuthPage.tsx @@ -1,7 +1,7 @@ -import { apiKey } from "api/queries/users"; import type { FC } from "react"; import { useQuery } from "react-query"; import { pageTitle } from "utils/page"; +import { apiKey } from "#/api/queries/users"; import { CliAuthPageView } from "./CliAuthPageView"; const CliAuthenticationPage: FC = () => { diff --git a/site/src/pages/ConnectionLogPage/ConnectionLogFilter.tsx b/site/src/pages/ConnectionLogPage/ConnectionLogFilter.tsx index d0a47b423f..82d6ff3914 100644 --- a/site/src/pages/ConnectionLogPage/ConnectionLogFilter.tsx +++ b/site/src/pages/ConnectionLogPage/ConnectionLogFilter.tsx @@ -1,9 +1,3 @@ -import { - type ConnectionLogStatus, - ConnectionLogStatuses, - type ConnectionType, - ConnectionTypes, -} from "api/typesGenerated"; import capitalize from "lodash/capitalize"; import { type OrganizationsFilterMenu, @@ -12,6 +6,12 @@ import { import type { FC } from "react"; import { connectionTypeToFriendlyName } from "utils/connection"; import { docs } from "utils/docs"; +import { + type ConnectionLogStatus, + ConnectionLogStatuses, + type ConnectionType, + ConnectionTypes, +} from "#/api/typesGenerated"; import { Filter, MenuSkeleton, diff --git a/site/src/pages/ConnectionLogPage/ConnectionLogPage.test.tsx b/site/src/pages/ConnectionLogPage/ConnectionLogPage.test.tsx index 7381614766..6f5d6fb389 100644 --- a/site/src/pages/ConnectionLogPage/ConnectionLogPage.test.tsx +++ b/site/src/pages/ConnectionLogPage/ConnectionLogPage.test.tsx @@ -10,9 +10,9 @@ import { import { server } from "testHelpers/server"; import { screen, waitFor } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; -import { API } from "api/api"; import { HttpResponse, http } from "msw"; import * as CreateDayString from "utils/createDayString"; +import { API } from "#/api/api"; import { DEFAULT_RECORDS_PER_PAGE } from "#/components/PaginationWidget/utils"; import ConnectionLogPage from "./ConnectionLogPage"; diff --git a/site/src/pages/ConnectionLogPage/ConnectionLogPage.tsx b/site/src/pages/ConnectionLogPage/ConnectionLogPage.tsx index a7bc6add10..019d31af80 100644 --- a/site/src/pages/ConnectionLogPage/ConnectionLogPage.tsx +++ b/site/src/pages/ConnectionLogPage/ConnectionLogPage.tsx @@ -1,4 +1,3 @@ -import { paginatedConnectionLogs } from "api/queries/connectionlog"; import { usePaginatedQuery } from "hooks/usePaginatedQuery"; import { useDashboard } from "modules/dashboard/useDashboard"; import { useFeatureVisibility } from "modules/dashboard/useFeatureVisibility"; @@ -6,6 +5,7 @@ import { useOrganizationsFilterMenu } from "modules/tableFiltering/options"; import type { FC } from "react"; import { useSearchParams } from "react-router"; import { pageTitle } from "utils/page"; +import { paginatedConnectionLogs } from "#/api/queries/connectionlog"; import { useFilter } from "#/components/Filter/Filter"; import { useUserFilterMenu } from "#/components/Filter/UserFilter"; import { isNonInitialPage } from "#/components/PaginationWidget/utils"; diff --git a/site/src/pages/ConnectionLogPage/ConnectionLogPageView.tsx b/site/src/pages/ConnectionLogPage/ConnectionLogPageView.tsx index 4f5bac4dc4..e9baaf3d83 100644 --- a/site/src/pages/ConnectionLogPage/ConnectionLogPageView.tsx +++ b/site/src/pages/ConnectionLogPage/ConnectionLogPageView.tsx @@ -1,6 +1,6 @@ -import type { ConnectionLog } from "api/typesGenerated"; import type { ComponentProps, FC } from "react"; import { docs } from "utils/docs"; +import type { ConnectionLog } from "#/api/typesGenerated"; import { ChooseOne, Cond } from "#/components/Conditionals/ChooseOne"; import { EmptyState } from "#/components/EmptyState/EmptyState"; import { Margins } from "#/components/Margins/Margins"; diff --git a/site/src/pages/ConnectionLogPage/ConnectionLogRow/ConnectionLogDescription/ConnectionLogDescription.tsx b/site/src/pages/ConnectionLogPage/ConnectionLogRow/ConnectionLogDescription/ConnectionLogDescription.tsx index c3b0490780..1a25e778d3 100644 --- a/site/src/pages/ConnectionLogPage/ConnectionLogRow/ConnectionLogDescription/ConnectionLogDescription.tsx +++ b/site/src/pages/ConnectionLogPage/ConnectionLogRow/ConnectionLogDescription/ConnectionLogDescription.tsx @@ -1,7 +1,7 @@ -import type { ConnectionLog } from "api/typesGenerated"; import type { FC, ReactNode } from "react"; import { Link as RouterLink } from "react-router"; import { connectionTypeToFriendlyName } from "utils/connection"; +import type { ConnectionLog } from "#/api/typesGenerated"; import { Link } from "#/components/Link/Link"; interface ConnectionLogDescriptionProps { diff --git a/site/src/pages/ConnectionLogPage/ConnectionLogRow/ConnectionLogRow.tsx b/site/src/pages/ConnectionLogPage/ConnectionLogRow/ConnectionLogRow.tsx index bc2a917849..59236510a4 100644 --- a/site/src/pages/ConnectionLogPage/ConnectionLogRow/ConnectionLogRow.tsx +++ b/site/src/pages/ConnectionLogPage/ConnectionLogRow/ConnectionLogRow.tsx @@ -1,9 +1,9 @@ -import type { ConnectionLog } from "api/typesGenerated"; import { InfoIcon, NetworkIcon } from "lucide-react"; import type { FC } from "react"; import { Link as RouterLink } from "react-router"; import userAgentParser from "ua-parser-js"; import { connectionTypeIsWeb } from "utils/connection"; +import type { ConnectionLog } from "#/api/typesGenerated"; import { Avatar } from "#/components/Avatar/Avatar"; import { Link } from "#/components/Link/Link"; import { StatusPill } from "#/components/StatusPill/StatusPill"; diff --git a/site/src/pages/CreateTemplateGalleryPage/CreateTemplateGalleryPage.tsx b/site/src/pages/CreateTemplateGalleryPage/CreateTemplateGalleryPage.tsx index 404ff8e199..df5e6ca15c 100644 --- a/site/src/pages/CreateTemplateGalleryPage/CreateTemplateGalleryPage.tsx +++ b/site/src/pages/CreateTemplateGalleryPage/CreateTemplateGalleryPage.tsx @@ -1,8 +1,8 @@ -import { templateExamples } from "api/queries/templates"; import type { FC } from "react"; import { useQuery } from "react-query"; import { pageTitle } from "utils/page"; import { getTemplatesByTag } from "utils/starterTemplates"; +import { templateExamples } from "#/api/queries/templates"; import { CreateTemplateGalleryPageView } from "./CreateTemplateGalleryPageView"; const CreateTemplatesGalleryPage: FC = () => { diff --git a/site/src/pages/CreateTemplateGalleryPage/StarterTemplates.tsx b/site/src/pages/CreateTemplateGalleryPage/StarterTemplates.tsx index cabb33e2c4..4311aade8a 100644 --- a/site/src/pages/CreateTemplateGalleryPage/StarterTemplates.tsx +++ b/site/src/pages/CreateTemplateGalleryPage/StarterTemplates.tsx @@ -1,9 +1,9 @@ import type { Interpolation, Theme } from "@emotion/react"; -import type { TemplateExample } from "api/typesGenerated"; import { TemplateExampleCard } from "modules/templates/TemplateExampleCard/TemplateExampleCard"; import type { FC } from "react"; import { Link, useSearchParams } from "react-router"; import type { StarterTemplatesByTag } from "utils/starterTemplates"; +import type { TemplateExample } from "#/api/typesGenerated"; import { Stack } from "#/components/Stack/Stack"; const getTagLabel = (tag: string) => { diff --git a/site/src/pages/CreateTemplatePage/BuildLogsDrawer.stories.tsx b/site/src/pages/CreateTemplatePage/BuildLogsDrawer.stories.tsx index 3febfa23d9..ce6e32ab8d 100644 --- a/site/src/pages/CreateTemplatePage/BuildLogsDrawer.stories.tsx +++ b/site/src/pages/CreateTemplatePage/BuildLogsDrawer.stories.tsx @@ -5,7 +5,7 @@ import { } from "testHelpers/entities"; import { withWebSocket } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { JobError } from "api/queries/templates"; +import { JobError } from "#/api/queries/templates"; import { BuildLogsDrawer } from "./BuildLogsDrawer"; const meta: Meta = { diff --git a/site/src/pages/CreateTemplatePage/BuildLogsDrawer.tsx b/site/src/pages/CreateTemplatePage/BuildLogsDrawer.tsx index a03c611894..d66c1ff809 100644 --- a/site/src/pages/CreateTemplatePage/BuildLogsDrawer.tsx +++ b/site/src/pages/CreateTemplatePage/BuildLogsDrawer.tsx @@ -1,8 +1,6 @@ import type { Interpolation, Theme } from "@emotion/react"; import Drawer from "@mui/material/Drawer"; import IconButton from "@mui/material/IconButton"; -import { JobError } from "api/queries/templates"; -import type { TemplateVersion } from "api/typesGenerated"; import { TriangleAlertIcon, XIcon } from "lucide-react"; import { AlertVariant } from "modules/provisioners/ProvisionerAlert"; import { ProvisionerStatusAlert } from "modules/provisioners/ProvisionerStatusAlert"; @@ -10,6 +8,8 @@ import { useWatchVersionLogs } from "modules/templates/useWatchVersionLogs"; import { WorkspaceBuildLogs } from "modules/workspaces/WorkspaceBuildLogs/WorkspaceBuildLogs"; import type { FC } from "react"; import { navHeight } from "theme/constants"; +import { JobError } from "#/api/queries/templates"; +import type { TemplateVersion } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { Loader } from "#/components/Loader/Loader"; diff --git a/site/src/pages/CreateTemplatePage/CreateTemplateForm.stories.tsx b/site/src/pages/CreateTemplatePage/CreateTemplateForm.stories.tsx index 7a9599e2d3..8e84f835a7 100644 --- a/site/src/pages/CreateTemplatePage/CreateTemplateForm.stories.tsx +++ b/site/src/pages/CreateTemplatePage/CreateTemplateForm.stories.tsx @@ -10,12 +10,12 @@ import { MockTemplateVersionVariable5, } from "testHelpers/entities"; import type { Meta, StoryObj } from "@storybook/react-vite"; +import { action } from "storybook/actions"; +import { screen, userEvent } from "storybook/test"; import { getProvisionerDaemonsKey, organizationsKey, -} from "api/queries/organizations"; -import { action } from "storybook/actions"; -import { screen, userEvent } from "storybook/test"; +} from "#/api/queries/organizations"; import { CreateTemplateForm } from "./CreateTemplateForm"; const meta: Meta = { diff --git a/site/src/pages/CreateTemplatePage/CreateTemplateForm.tsx b/site/src/pages/CreateTemplatePage/CreateTemplateForm.tsx index c492eee984..f3424be60b 100644 --- a/site/src/pages/CreateTemplatePage/CreateTemplateForm.tsx +++ b/site/src/pages/CreateTemplatePage/CreateTemplateForm.tsx @@ -1,16 +1,5 @@ import Link from "@mui/material/Link"; import TextField from "@mui/material/TextField"; -import { provisionerDaemons } from "api/queries/organizations"; -import type { - CreateTemplateVersionRequest, - Organization, - ProvisionerJobLog, - ProvisionerType, - Template, - TemplateExample, - TemplateVersionVariable, - VariableValue, -} from "api/typesGenerated"; import { useFormik } from "formik"; import camelCase from "lodash/camelCase"; import capitalize from "lodash/capitalize"; @@ -32,6 +21,17 @@ import { type TemplateAutostopRequirementDaysValue, } from "utils/schedule"; import * as Yup from "yup"; +import { provisionerDaemons } from "#/api/queries/organizations"; +import type { + CreateTemplateVersionRequest, + Organization, + ProvisionerJobLog, + ProvisionerType, + Template, + TemplateExample, + TemplateVersionVariable, + VariableValue, +} from "#/api/typesGenerated"; import { Alert } from "#/components/Alert/Alert"; import { Button } from "#/components/Button/Button"; import { diff --git a/site/src/pages/CreateTemplatePage/CreateTemplatePage.jest.tsx b/site/src/pages/CreateTemplatePage/CreateTemplatePage.jest.tsx index e403eab8bc..f219e2d3a6 100644 --- a/site/src/pages/CreateTemplatePage/CreateTemplatePage.jest.tsx +++ b/site/src/pages/CreateTemplatePage/CreateTemplatePage.jest.tsx @@ -10,7 +10,7 @@ import { import { renderWithAuth } from "testHelpers/renderHelpers"; import { fireEvent, screen, waitFor, within } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; -import { API } from "api/api"; +import { API } from "#/api/api"; import CreateTemplatePage from "./CreateTemplatePage"; const renderPage = async (searchParams: URLSearchParams) => { diff --git a/site/src/pages/CreateTemplatePage/CreateTemplatePage.tsx b/site/src/pages/CreateTemplatePage/CreateTemplatePage.tsx index 604e0dc210..01e7491813 100644 --- a/site/src/pages/CreateTemplatePage/CreateTemplatePage.tsx +++ b/site/src/pages/CreateTemplatePage/CreateTemplatePage.tsx @@ -1,10 +1,10 @@ -import { createTemplate } from "api/queries/templates"; -import type { TemplateVersion } from "api/typesGenerated"; import { linkToTemplate, useLinks } from "modules/navigation"; import { type FC, useRef, useState } from "react"; import { useMutation } from "react-query"; import { useNavigate, useSearchParams } from "react-router"; import { pageTitle } from "utils/page"; +import { createTemplate } from "#/api/queries/templates"; +import type { TemplateVersion } from "#/api/typesGenerated"; import { FullPageHorizontalForm } from "#/components/FullPageForm/FullPageHorizontalForm"; import { BuildLogsDrawer } from "./BuildLogsDrawer"; import { DuplicateTemplateView } from "./DuplicateTemplateView"; diff --git a/site/src/pages/CreateTemplatePage/DuplicateTemplateView.tsx b/site/src/pages/CreateTemplatePage/DuplicateTemplateView.tsx index cdd584f7df..7aa65bcff7 100644 --- a/site/src/pages/CreateTemplatePage/DuplicateTemplateView.tsx +++ b/site/src/pages/CreateTemplatePage/DuplicateTemplateView.tsx @@ -1,3 +1,8 @@ +import { useDashboard } from "modules/dashboard/useDashboard"; +import { useFeatureVisibility } from "modules/dashboard/useFeatureVisibility"; +import type { FC } from "react"; +import { useQuery } from "react-query"; +import { useNavigate, useSearchParams } from "react-router"; import { JobError, template, @@ -5,13 +10,8 @@ import { templateVersionLogs, templateVersionPresets, templateVersionVariables, -} from "api/queries/templates"; -import type { Template, TemplateVersion } from "api/typesGenerated"; -import { useDashboard } from "modules/dashboard/useDashboard"; -import { useFeatureVisibility } from "modules/dashboard/useFeatureVisibility"; -import type { FC } from "react"; -import { useQuery } from "react-query"; -import { useNavigate, useSearchParams } from "react-router"; +} from "#/api/queries/templates"; +import type { Template, TemplateVersion } from "#/api/typesGenerated"; import { Alert } from "#/components/Alert/Alert"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Loader } from "#/components/Loader/Loader"; diff --git a/site/src/pages/CreateTemplatePage/ImportStarterTemplateView.tsx b/site/src/pages/CreateTemplatePage/ImportStarterTemplateView.tsx index 42eee306fd..61daf840f8 100644 --- a/site/src/pages/CreateTemplatePage/ImportStarterTemplateView.tsx +++ b/site/src/pages/CreateTemplatePage/ImportStarterTemplateView.tsx @@ -1,13 +1,13 @@ +import { useDashboard } from "modules/dashboard/useDashboard"; +import type { FC } from "react"; +import { keepPreviousData, useQuery } from "react-query"; +import { useNavigate, useSearchParams } from "react-router"; import { JobError, templateExamples, templateVersionLogs, templateVersionVariables, -} from "api/queries/templates"; -import { useDashboard } from "modules/dashboard/useDashboard"; -import type { FC } from "react"; -import { keepPreviousData, useQuery } from "react-query"; -import { useNavigate, useSearchParams } from "react-router"; +} from "#/api/queries/templates"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Loader } from "#/components/Loader/Loader"; import { CreateTemplateForm } from "./CreateTemplateForm"; diff --git a/site/src/pages/CreateTemplatePage/UploadTemplateView.tsx b/site/src/pages/CreateTemplatePage/UploadTemplateView.tsx index fe859eb83f..4ab3a99ecf 100644 --- a/site/src/pages/CreateTemplatePage/UploadTemplateView.tsx +++ b/site/src/pages/CreateTemplatePage/UploadTemplateView.tsx @@ -1,15 +1,15 @@ -import { getErrorDetail, getErrorMessage } from "api/errors"; -import { uploadFile } from "api/queries/files"; -import { - JobError, - templateVersionLogs, - templateVersionVariables, -} from "api/queries/templates"; import { useDashboard } from "modules/dashboard/useDashboard"; import type { FC } from "react"; import { useMutation, useQuery } from "react-query"; import { useNavigate } from "react-router"; import { toast } from "sonner"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; +import { uploadFile } from "#/api/queries/files"; +import { + JobError, + templateVersionLogs, + templateVersionVariables, +} from "#/api/queries/templates"; import { CreateTemplateForm } from "./CreateTemplateForm"; import type { CreateTemplatePageViewProps } from "./types"; import { firstVersionFromFile, getFormPermissions, newTemplate } from "./utils"; diff --git a/site/src/pages/CreateTemplatePage/VariableInput.tsx b/site/src/pages/CreateTemplatePage/VariableInput.tsx index f40f3b08c7..863b14705f 100644 --- a/site/src/pages/CreateTemplatePage/VariableInput.tsx +++ b/site/src/pages/CreateTemplatePage/VariableInput.tsx @@ -3,8 +3,8 @@ import FormControlLabel from "@mui/material/FormControlLabel"; import Radio from "@mui/material/Radio"; import RadioGroup from "@mui/material/RadioGroup"; import TextField from "@mui/material/TextField"; -import type { TemplateVersionVariable } from "api/typesGenerated"; import type { FC } from "react"; +import type { TemplateVersionVariable } from "#/api/typesGenerated"; import { Stack } from "#/components/Stack/Stack"; const isBoolean = (variable: TemplateVersionVariable) => { diff --git a/site/src/pages/CreateTemplatePage/types.ts b/site/src/pages/CreateTemplatePage/types.ts index 418bf72b24..39fc3540f2 100644 --- a/site/src/pages/CreateTemplatePage/types.ts +++ b/site/src/pages/CreateTemplatePage/types.ts @@ -1,4 +1,4 @@ -import type { CreateTemplateOptions } from "api/queries/templates"; +import type { CreateTemplateOptions } from "#/api/queries/templates"; export type CreateTemplatePageViewProps = { onCreateTemplate: (options: CreateTemplateOptions) => Promise; diff --git a/site/src/pages/CreateTemplatePage/utils.ts b/site/src/pages/CreateTemplatePage/utils.ts index ab0336ef12..bb3cee0ed4 100644 --- a/site/src/pages/CreateTemplatePage/utils.ts +++ b/site/src/pages/CreateTemplatePage/utils.ts @@ -1,12 +1,12 @@ -import type { CreateTemplateOptions } from "api/queries/templates"; +import { calculateAutostopRequirementDaysValue } from "utils/schedule"; +import type { CreateTemplateOptions } from "#/api/queries/templates"; import type { CreateTemplateVersionRequest, Entitlements, ProvisionerType, TemplateExample, VariableValue, -} from "api/typesGenerated"; -import { calculateAutostopRequirementDaysValue } from "utils/schedule"; +} from "#/api/typesGenerated"; import type { CreateTemplateFormData } from "./CreateTemplateForm"; export const newTemplate = ( diff --git a/site/src/pages/CreateTokenPage/CreateTokenPage.jest.tsx b/site/src/pages/CreateTokenPage/CreateTokenPage.jest.tsx index 042b09bf24..149ad75557 100644 --- a/site/src/pages/CreateTokenPage/CreateTokenPage.jest.tsx +++ b/site/src/pages/CreateTokenPage/CreateTokenPage.jest.tsx @@ -4,7 +4,7 @@ import { } from "testHelpers/renderHelpers"; import { screen, within } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; -import { API } from "api/api"; +import { API } from "#/api/api"; import CreateTokenPage from "./CreateTokenPage"; describe("TokenPage", () => { diff --git a/site/src/pages/CreateTokenPage/CreateTokenPage.tsx b/site/src/pages/CreateTokenPage/CreateTokenPage.tsx index 5caed08bfe..4c39af9741 100644 --- a/site/src/pages/CreateTokenPage/CreateTokenPage.tsx +++ b/site/src/pages/CreateTokenPage/CreateTokenPage.tsx @@ -1,11 +1,11 @@ -import { API } from "api/api"; -import { getErrorDetail } from "api/errors"; import { useFormik } from "formik"; import { type FC, useState } from "react"; import { useMutation, useQuery } from "react-query"; import { useNavigate } from "react-router"; import { toast } from "sonner"; import { pageTitle } from "utils/page"; +import { API } from "#/api/api"; +import { getErrorDetail } from "#/api/errors"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { CodeExample } from "#/components/CodeExample/CodeExample"; import { ConfirmDialog } from "#/components/Dialogs/ConfirmDialog/ConfirmDialog"; diff --git a/site/src/pages/CreateUserPage/CreateUserForm.stories.tsx b/site/src/pages/CreateUserPage/CreateUserForm.stories.tsx index 0c6d79701c..fb66862bc5 100644 --- a/site/src/pages/CreateUserPage/CreateUserForm.stories.tsx +++ b/site/src/pages/CreateUserPage/CreateUserForm.stories.tsx @@ -4,10 +4,10 @@ import { mockApiError, } from "testHelpers/entities"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { organizationsKey } from "api/queries/organizations"; -import type { Organization } from "api/typesGenerated"; import { action } from "storybook/actions"; import { userEvent, within } from "storybook/test"; +import { organizationsKey } from "#/api/queries/organizations"; +import type { Organization } from "#/api/typesGenerated"; import { CreateUserForm } from "./CreateUserForm"; const meta: Meta = { diff --git a/site/src/pages/CreateUserPage/CreateUserForm.tsx b/site/src/pages/CreateUserPage/CreateUserForm.tsx index 2cdc1a3a79..716f9da4bc 100644 --- a/site/src/pages/CreateUserPage/CreateUserForm.tsx +++ b/site/src/pages/CreateUserPage/CreateUserForm.tsx @@ -1,6 +1,4 @@ import * as SelectPrimitive from "@radix-ui/react-select"; -import { hasApiFieldErrors, isApiError } from "api/errors"; -import type * as TypesGen from "api/typesGenerated"; import { useFormik } from "formik"; import { Check } from "lucide-react"; import type { FC } from "react"; @@ -12,6 +10,8 @@ import { onChangeTrimmed, } from "utils/formUtils"; import * as Yup from "yup"; +import { hasApiFieldErrors, isApiError } from "#/api/errors"; +import type * as TypesGen from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Button } from "#/components/Button/Button"; import { FormFooter } from "#/components/Form/Form"; diff --git a/site/src/pages/CreateUserPage/CreateUserPage.tsx b/site/src/pages/CreateUserPage/CreateUserPage.tsx index b96c69aad2..62f1fc133f 100644 --- a/site/src/pages/CreateUserPage/CreateUserPage.tsx +++ b/site/src/pages/CreateUserPage/CreateUserPage.tsx @@ -1,11 +1,11 @@ -import { getErrorDetail, getErrorMessage } from "api/errors"; -import { authMethods, createUser } from "api/queries/users"; import { useDashboard } from "modules/dashboard/useDashboard"; import type { FC } from "react"; import { useMutation, useQuery, useQueryClient } from "react-query"; import { useNavigate } from "react-router"; import { toast } from "sonner"; import { pageTitle } from "utils/page"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; +import { authMethods, createUser } from "#/api/queries/users"; import { Margins } from "#/components/Margins/Margins"; import { CreateUserForm } from "./CreateUserForm"; diff --git a/site/src/pages/CreateWorkspacePage/CreateWorkspacePage.jest.tsx b/site/src/pages/CreateWorkspacePage/CreateWorkspacePage.jest.tsx index b603836574..50f65fe0f2 100644 --- a/site/src/pages/CreateWorkspacePage/CreateWorkspacePage.jest.tsx +++ b/site/src/pages/CreateWorkspacePage/CreateWorkspacePage.jest.tsx @@ -18,9 +18,9 @@ import { import { createMockWebSocket } from "testHelpers/websockets"; import { screen, waitFor, within } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; -import { API } from "api/api"; -import type { DynamicParametersResponse } from "api/typesGenerated"; import { act } from "react"; +import { API } from "#/api/api"; +import type { DynamicParametersResponse } from "#/api/typesGenerated"; import CreateWorkspacePage from "./CreateWorkspacePage"; describe("CreateWorkspacePage", () => { diff --git a/site/src/pages/CreateWorkspacePage/CreateWorkspacePage.tsx b/site/src/pages/CreateWorkspacePage/CreateWorkspacePage.tsx index 73e63752ce..0360a23800 100644 --- a/site/src/pages/CreateWorkspacePage/CreateWorkspacePage.tsx +++ b/site/src/pages/CreateWorkspacePage/CreateWorkspacePage.tsx @@ -1,20 +1,3 @@ -import { API } from "api/api"; -import { type ApiErrorResponse, DetailedError } from "api/errors"; -import { checkAuthorization } from "api/queries/authCheck"; -import { - templateByName, - templateVersion, - templateVersionExternalAuth, - templateVersionPresets, -} from "api/queries/templates"; -import { autoCreateWorkspace, createWorkspace } from "api/queries/workspaces"; -import type { - DynamicParametersRequest, - DynamicParametersResponse, - MinimalUser, - PreviewParameter, - Workspace, -} from "api/typesGenerated"; import { useAuthenticated } from "hooks"; import { useEffectEvent } from "hooks/hookPolyfills"; import { getInitialParameterValues } from "modules/workspaces/DynamicParameter/DynamicParameter"; @@ -31,6 +14,23 @@ import { useMutation, useQuery, useQueryClient } from "react-query"; import { useNavigate, useParams, useSearchParams } from "react-router"; import { pageTitle } from "utils/page"; import type { AutofillBuildParameter } from "utils/richParameters"; +import { API } from "#/api/api"; +import { type ApiErrorResponse, DetailedError } from "#/api/errors"; +import { checkAuthorization } from "#/api/queries/authCheck"; +import { + templateByName, + templateVersion, + templateVersionExternalAuth, + templateVersionPresets, +} from "#/api/queries/templates"; +import { autoCreateWorkspace, createWorkspace } from "#/api/queries/workspaces"; +import type { + DynamicParametersRequest, + DynamicParametersResponse, + MinimalUser, + PreviewParameter, + Workspace, +} from "#/api/typesGenerated"; import { Loader } from "#/components/Loader/Loader"; import { AutoCreateConsentDialog } from "./AutoCreateConsentDialog"; import { CreateWorkspacePageView } from "./CreateWorkspacePageView"; diff --git a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.stories.tsx b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.stories.tsx index b7f53808f1..fd3dc12dcf 100644 --- a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.stories.tsx +++ b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.stories.tsx @@ -1,9 +1,9 @@ import { chromatic } from "testHelpers/chromatic"; import { MockTemplate, MockUserOwner } from "testHelpers/entities"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { DetailedError } from "api/errors"; -import type { PreviewParameter } from "api/typesGenerated"; import { expect, screen, within } from "storybook/test"; +import { DetailedError } from "#/api/errors"; +import type { PreviewParameter } from "#/api/typesGenerated"; import { CreateWorkspacePageView } from "./CreateWorkspacePageView"; const meta: Meta = { diff --git a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.tsx b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.tsx index 0b3c4e3b27..1ef299127b 100644 --- a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.tsx +++ b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.tsx @@ -1,5 +1,3 @@ -import type * as TypesGen from "api/typesGenerated"; -import type { FriendlyDiagnostic, PreviewParameter } from "api/typesGenerated"; import { type FormikContextType, useFormik } from "formik"; import { useDebouncedFunction } from "hooks/debounce"; import type { ExternalAuthPollingState } from "hooks/useExternalAuth"; @@ -25,6 +23,11 @@ import { docs } from "utils/docs"; import { nameValidator } from "utils/formUtils"; import type { AutofillBuildParameter } from "utils/richParameters"; import * as Yup from "yup"; +import type * as TypesGen from "#/api/typesGenerated"; +import type { + FriendlyDiagnostic, + PreviewParameter, +} from "#/api/typesGenerated"; import { Alert } from "#/components/Alert/Alert"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Avatar } from "#/components/Avatar/Avatar"; diff --git a/site/src/pages/CreateWorkspacePage/ExternalAuthButton.stories.tsx b/site/src/pages/CreateWorkspacePage/ExternalAuthButton.stories.tsx index ac0e3a28d9..acce4aa743 100644 --- a/site/src/pages/CreateWorkspacePage/ExternalAuthButton.stories.tsx +++ b/site/src/pages/CreateWorkspacePage/ExternalAuthButton.stories.tsx @@ -1,5 +1,5 @@ import type { Meta, StoryObj } from "@storybook/react-vite"; -import type { TemplateVersionExternalAuth } from "api/typesGenerated"; +import type { TemplateVersionExternalAuth } from "#/api/typesGenerated"; import { ExternalAuthButton } from "./ExternalAuthButton"; const MockExternalAuth: TemplateVersionExternalAuth = { diff --git a/site/src/pages/CreateWorkspacePage/ExternalAuthButton.tsx b/site/src/pages/CreateWorkspacePage/ExternalAuthButton.tsx index e1526ad5c3..69e0047951 100644 --- a/site/src/pages/CreateWorkspacePage/ExternalAuthButton.tsx +++ b/site/src/pages/CreateWorkspacePage/ExternalAuthButton.tsx @@ -1,6 +1,6 @@ -import type { TemplateVersionExternalAuth } from "api/typesGenerated"; import { Check, Redo } from "lucide-react"; import type { FC } from "react"; +import type { TemplateVersionExternalAuth } from "#/api/typesGenerated"; import { Badge } from "#/components/Badge/Badge"; import { Button } from "#/components/Button/Button"; import { ExternalImage } from "#/components/ExternalImage/ExternalImage"; diff --git a/site/src/pages/CreateWorkspacePage/SelectedTemplate.tsx b/site/src/pages/CreateWorkspacePage/SelectedTemplate.tsx index 6f8ef7af01..0360633b34 100644 --- a/site/src/pages/CreateWorkspacePage/SelectedTemplate.tsx +++ b/site/src/pages/CreateWorkspacePage/SelectedTemplate.tsx @@ -1,6 +1,6 @@ import type { Interpolation, Theme } from "@emotion/react"; -import type { Template, TemplateExample } from "api/typesGenerated"; import type { FC } from "react"; +import type { Template, TemplateExample } from "#/api/typesGenerated"; import { Avatar } from "#/components/Avatar/Avatar"; import { Stack } from "#/components/Stack/Stack"; diff --git a/site/src/pages/DeploymentSettingsPage/AIGovernanceSettingsPage/AIGovernanceSettingsPageView.tsx b/site/src/pages/DeploymentSettingsPage/AIGovernanceSettingsPage/AIGovernanceSettingsPageView.tsx index 18d56783a4..5f153fb52a 100644 --- a/site/src/pages/DeploymentSettingsPage/AIGovernanceSettingsPage/AIGovernanceSettingsPageView.tsx +++ b/site/src/pages/DeploymentSettingsPage/AIGovernanceSettingsPage/AIGovernanceSettingsPageView.tsx @@ -1,7 +1,7 @@ -import type { SerpentOption } from "api/typesGenerated"; import type { FC } from "react"; import { deploymentGroupHasParent } from "utils/deployOptions"; import { docs } from "utils/docs"; +import type { SerpentOption } from "#/api/typesGenerated"; import { Alert, AlertDescription, AlertTitle } from "#/components/Alert/Alert"; import { Link } from "#/components/Link/Link"; import { PaywallAIGovernance } from "#/components/Paywall/PaywallAIGovernance"; diff --git a/site/src/pages/DeploymentSettingsPage/AppearanceSettingsPage/AnnouncementBannerDialog.tsx b/site/src/pages/DeploymentSettingsPage/AppearanceSettingsPage/AnnouncementBannerDialog.tsx index 42f09578ff..2519695fe7 100644 --- a/site/src/pages/DeploymentSettingsPage/AppearanceSettingsPage/AnnouncementBannerDialog.tsx +++ b/site/src/pages/DeploymentSettingsPage/AppearanceSettingsPage/AnnouncementBannerDialog.tsx @@ -1,12 +1,12 @@ import { type Interpolation, type Theme, useTheme } from "@emotion/react"; import DialogActions from "@mui/material/DialogActions"; import TextField from "@mui/material/TextField"; -import type { BannerConfig } from "api/typesGenerated"; import { useFormik } from "formik"; import { AnnouncementBannerView } from "modules/dashboard/AnnouncementBanners/AnnouncementBannerView"; import { type FC, useState } from "react"; import { SliderPicker, TwitterPicker } from "react-color"; import { getFormHelpers } from "utils/formUtils"; +import type { BannerConfig } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { Dialog, DialogActionButtons } from "#/components/Dialogs/Dialog"; import { Stack } from "#/components/Stack/Stack"; diff --git a/site/src/pages/DeploymentSettingsPage/AppearanceSettingsPage/AnnouncementBannerItem.tsx b/site/src/pages/DeploymentSettingsPage/AppearanceSettingsPage/AnnouncementBannerItem.tsx index efbef1fefa..498276bc85 100644 --- a/site/src/pages/DeploymentSettingsPage/AppearanceSettingsPage/AnnouncementBannerItem.tsx +++ b/site/src/pages/DeploymentSettingsPage/AppearanceSettingsPage/AnnouncementBannerItem.tsx @@ -1,8 +1,8 @@ import type { Interpolation, Theme } from "@emotion/react"; import Checkbox from "@mui/material/Checkbox"; -import type { BannerConfig } from "api/typesGenerated"; import { EllipsisVertical } from "lucide-react"; import type { FC } from "react"; +import type { BannerConfig } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { DropdownMenu, diff --git a/site/src/pages/DeploymentSettingsPage/AppearanceSettingsPage/AnnouncementBannerSettings.tsx b/site/src/pages/DeploymentSettingsPage/AppearanceSettingsPage/AnnouncementBannerSettings.tsx index d70b325fc1..f3126a44e0 100644 --- a/site/src/pages/DeploymentSettingsPage/AppearanceSettingsPage/AnnouncementBannerSettings.tsx +++ b/site/src/pages/DeploymentSettingsPage/AppearanceSettingsPage/AnnouncementBannerSettings.tsx @@ -1,6 +1,6 @@ -import type { BannerConfig } from "api/typesGenerated"; import { PlusIcon } from "lucide-react"; import { type FC, useState } from "react"; +import type { BannerConfig } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { ConfirmDialog } from "#/components/Dialogs/ConfirmDialog/ConfirmDialog"; import { EmptyState } from "#/components/EmptyState/EmptyState"; diff --git a/site/src/pages/DeploymentSettingsPage/AppearanceSettingsPage/AppearanceSettingsPage.tsx b/site/src/pages/DeploymentSettingsPage/AppearanceSettingsPage/AppearanceSettingsPage.tsx index 1ae73ba730..312a01d7da 100644 --- a/site/src/pages/DeploymentSettingsPage/AppearanceSettingsPage/AppearanceSettingsPage.tsx +++ b/site/src/pages/DeploymentSettingsPage/AppearanceSettingsPage/AppearanceSettingsPage.tsx @@ -1,6 +1,3 @@ -import { getErrorDetail, getErrorMessage } from "api/errors"; -import { appearanceConfigKey, updateAppearance } from "api/queries/appearance"; -import type { UpdateAppearanceConfig } from "api/typesGenerated"; import { useAuthenticated } from "hooks"; import { useDashboard } from "modules/dashboard/useDashboard"; import { useFeatureVisibility } from "modules/dashboard/useFeatureVisibility"; @@ -9,6 +6,12 @@ import type { FC } from "react"; import { useMutation, useQueryClient } from "react-query"; import { toast } from "sonner"; import { pageTitle } from "utils/page"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; +import { + appearanceConfigKey, + updateAppearance, +} from "#/api/queries/appearance"; +import type { UpdateAppearanceConfig } from "#/api/typesGenerated"; import { AppearanceSettingsPageView } from "./AppearanceSettingsPageView"; // ServiceBanner is unlike the other Deployment Settings pages because it diff --git a/site/src/pages/DeploymentSettingsPage/AppearanceSettingsPage/AppearanceSettingsPageView.tsx b/site/src/pages/DeploymentSettingsPage/AppearanceSettingsPage/AppearanceSettingsPageView.tsx index 80378f56c0..5dbc2a5448 100644 --- a/site/src/pages/DeploymentSettingsPage/AppearanceSettingsPage/AppearanceSettingsPageView.tsx +++ b/site/src/pages/DeploymentSettingsPage/AppearanceSettingsPage/AppearanceSettingsPageView.tsx @@ -1,7 +1,7 @@ -import type { UpdateAppearanceConfig } from "api/typesGenerated"; import { useFormik } from "formik"; import type { FC } from "react"; import { getFormHelpers } from "utils/formUtils"; +import type { UpdateAppearanceConfig } from "#/api/typesGenerated"; import { Badges, EnterpriseBadge, diff --git a/site/src/pages/DeploymentSettingsPage/ExternalAuthSettingsPage/ExternalAuthSettingsPageView.tsx b/site/src/pages/DeploymentSettingsPage/ExternalAuthSettingsPage/ExternalAuthSettingsPageView.tsx index b5e13bf471..ea32fec28c 100644 --- a/site/src/pages/DeploymentSettingsPage/ExternalAuthSettingsPage/ExternalAuthSettingsPageView.tsx +++ b/site/src/pages/DeploymentSettingsPage/ExternalAuthSettingsPage/ExternalAuthSettingsPageView.tsx @@ -1,7 +1,10 @@ import { css } from "@emotion/react"; -import type { DeploymentValues, ExternalAuthConfig } from "api/typesGenerated"; import type { FC } from "react"; import { docs } from "utils/docs"; +import type { + DeploymentValues, + ExternalAuthConfig, +} from "#/api/typesGenerated"; import { Alert } from "#/components/Alert/Alert"; import { PremiumBadge } from "#/components/Badges/Badges"; import { diff --git a/site/src/pages/DeploymentSettingsPage/IdpOrgSyncPage/ExportPolicyButton.tsx b/site/src/pages/DeploymentSettingsPage/IdpOrgSyncPage/ExportPolicyButton.tsx index 521c96f9ee..846491992b 100644 --- a/site/src/pages/DeploymentSettingsPage/IdpOrgSyncPage/ExportPolicyButton.tsx +++ b/site/src/pages/DeploymentSettingsPage/IdpOrgSyncPage/ExportPolicyButton.tsx @@ -1,9 +1,9 @@ -import { getErrorDetail } from "api/errors"; -import type { OrganizationSyncSettings } from "api/typesGenerated"; import { saveAs } from "file-saver"; import { Download } from "lucide-react"; import { type FC, useState } from "react"; import { toast } from "sonner"; +import { getErrorDetail } from "#/api/errors"; +import type { OrganizationSyncSettings } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; interface ExportPolicyButtonProps { diff --git a/site/src/pages/DeploymentSettingsPage/IdpOrgSyncPage/IdpOrgSyncPage.tsx b/site/src/pages/DeploymentSettingsPage/IdpOrgSyncPage/IdpOrgSyncPage.tsx index 8f481f46cb..6cf96c8b3d 100644 --- a/site/src/pages/DeploymentSettingsPage/IdpOrgSyncPage/IdpOrgSyncPage.tsx +++ b/site/src/pages/DeploymentSettingsPage/IdpOrgSyncPage/IdpOrgSyncPage.tsx @@ -1,9 +1,3 @@ -import { getErrorDetail, getErrorMessage } from "api/errors"; -import { deploymentIdpSyncFieldValues } from "api/queries/deployment"; -import { - organizationIdpSyncSettings, - patchOrganizationSyncSettings, -} from "api/queries/idpsync"; import { useDashboard } from "modules/dashboard/useDashboard"; import { useFeatureVisibility } from "modules/dashboard/useFeatureVisibility"; import { type FC, useEffect, useState } from "react"; @@ -11,6 +5,12 @@ import { useMutation, useQuery, useQueryClient } from "react-query"; import { toast } from "sonner"; import { docs } from "utils/docs"; import { pageTitle } from "utils/page"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; +import { deploymentIdpSyncFieldValues } from "#/api/queries/deployment"; +import { + organizationIdpSyncSettings, + patchOrganizationSyncSettings, +} from "#/api/queries/idpsync"; import { ChooseOne, Cond } from "#/components/Conditionals/ChooseOne"; import { Link } from "#/components/Link/Link"; import { Loader } from "#/components/Loader/Loader"; diff --git a/site/src/pages/DeploymentSettingsPage/IdpOrgSyncPage/IdpOrgSyncPageView.tsx b/site/src/pages/DeploymentSettingsPage/IdpOrgSyncPage/IdpOrgSyncPageView.tsx index ffdb6247ce..9b3dc7034c 100644 --- a/site/src/pages/DeploymentSettingsPage/IdpOrgSyncPage/IdpOrgSyncPageView.tsx +++ b/site/src/pages/DeploymentSettingsPage/IdpOrgSyncPage/IdpOrgSyncPageView.tsx @@ -1,13 +1,13 @@ -import type { - Organization, - OrganizationSyncSettings, -} from "api/typesGenerated"; import { useFormik } from "formik"; import { Plus, Trash, TriangleAlert } from "lucide-react"; import { type FC, type KeyboardEventHandler, useId, useState } from "react"; import { docs } from "utils/docs"; import { isUUID } from "utils/uuid"; import * as Yup from "yup"; +import type { + Organization, + OrganizationSyncSettings, +} from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Button } from "#/components/Button/Button"; import { diff --git a/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/AIGovernanceLicensing.ts b/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/AIGovernanceLicensing.ts index c92abe6efd..cbae3e582a 100644 --- a/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/AIGovernanceLicensing.ts +++ b/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/AIGovernanceLicensing.ts @@ -1,6 +1,6 @@ -import type { GetLicensesResponse } from "api/api"; -import type { Feature } from "api/typesGenerated"; import dayjs from "dayjs"; +import type { GetLicensesResponse } from "#/api/api"; +import type { Feature } from "#/api/typesGenerated"; function isPremiumLicense(license: GetLicensesResponse): boolean { return license.claims.feature_set?.toLowerCase() === "premium"; diff --git a/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/AIGovernanceUsersConsumptionChart.stories.tsx b/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/AIGovernanceUsersConsumptionChart.stories.tsx index 0b3b6ddf5a..3c126882fe 100644 --- a/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/AIGovernanceUsersConsumptionChart.stories.tsx +++ b/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/AIGovernanceUsersConsumptionChart.stories.tsx @@ -1,6 +1,6 @@ import type { Meta, StoryObj } from "@storybook/react-vite"; -import type { GetLicensesResponse } from "api/api"; import { expect, within } from "storybook/test"; +import type { GetLicensesResponse } from "#/api/api"; import { AIGovernanceUsersConsumption } from "./AIGovernanceUsersConsumptionChart"; const licenseWithAiGovernanceAddOn: GetLicensesResponse = { diff --git a/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/AIGovernanceUsersConsumptionChart.tsx b/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/AIGovernanceUsersConsumptionChart.tsx index 6b956dbe0a..938aee2488 100644 --- a/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/AIGovernanceUsersConsumptionChart.tsx +++ b/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/AIGovernanceUsersConsumptionChart.tsx @@ -1,6 +1,6 @@ -import type { GetLicensesResponse } from "api/api"; -import type { Feature } from "api/typesGenerated"; import type { FC } from "react"; +import type { GetLicensesResponse } from "#/api/api"; +import type { Feature } from "#/api/typesGenerated"; import { Link } from "#/components/Link/Link"; import { effectiveAiGovernanceLimitForUsageCard, diff --git a/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/AddNewLicensePage.tsx b/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/AddNewLicensePage.tsx index 6e1a925639..0a18f15454 100644 --- a/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/AddNewLicensePage.tsx +++ b/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/AddNewLicensePage.tsx @@ -1,10 +1,10 @@ -import { API } from "api/api"; -import { getErrorDetail } from "api/errors"; import type { FC } from "react"; import { useMutation } from "react-query"; import { useNavigate } from "react-router"; import { toast } from "sonner"; import { pageTitle } from "utils/page"; +import { API } from "#/api/api"; +import { getErrorDetail } from "#/api/errors"; import { AddNewLicensePageView } from "./AddNewLicensePageView"; const AddNewLicensePage: FC = () => { diff --git a/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/AddNewLicensePageView.tsx b/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/AddNewLicensePageView.tsx index 26820f39fe..4c74e8b32f 100644 --- a/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/AddNewLicensePageView.tsx +++ b/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/AddNewLicensePageView.tsx @@ -1,9 +1,9 @@ import TextField from "@mui/material/TextField"; -import { getErrorDetail } from "api/errors"; import { ChevronLeftIcon } from "lucide-react"; import type { FC } from "react"; import { Link as RouterLink } from "react-router"; import { toast } from "sonner"; +import { getErrorDetail } from "#/api/errors"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Button } from "#/components/Button/Button"; import { FileUpload } from "#/components/FileUpload/FileUpload"; diff --git a/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/LicenseCard.tsx b/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/LicenseCard.tsx index 31ddc6c5aa..06ff243977 100644 --- a/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/LicenseCard.tsx +++ b/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/LicenseCard.tsx @@ -1,9 +1,9 @@ -import type { GetLicensesResponse } from "api/api"; -import type { Feature } from "api/typesGenerated"; import dayjs from "dayjs"; import { ChevronDownIcon, EllipsisVerticalIcon, TrashIcon } from "lucide-react"; import { type FC, useState } from "react"; import { cn } from "utils/cn"; +import type { GetLicensesResponse } from "#/api/api"; +import type { Feature } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { Collapsible, diff --git a/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/LicensesSettingsPage.tsx b/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/LicensesSettingsPage.tsx index 6095d75fae..1e771e1179 100644 --- a/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/LicensesSettingsPage.tsx +++ b/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/LicensesSettingsPage.tsx @@ -1,13 +1,13 @@ -import { API } from "api/api"; -import { getErrorDetail, getErrorMessage } from "api/errors"; -import { entitlements, refreshEntitlements } from "api/queries/entitlements"; -import { insightsUserStatusCounts } from "api/queries/insights"; import { useEmbeddedMetadata } from "hooks/useEmbeddedMetadata"; import { type FC, useEffect, useState } from "react"; import { useMutation, useQuery, useQueryClient } from "react-query"; import { useSearchParams } from "react-router"; import { toast } from "sonner"; import { pageTitle } from "utils/page"; +import { API } from "#/api/api"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; +import { entitlements, refreshEntitlements } from "#/api/queries/entitlements"; +import { insightsUserStatusCounts } from "#/api/queries/insights"; import LicensesSettingsPageView from "./LicensesSettingsPageView"; const LicensesSettingsPage: FC = () => { diff --git a/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/LicensesSettingsPageView.stories.tsx b/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/LicensesSettingsPageView.stories.tsx index f98f756faa..31ea6f600e 100644 --- a/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/LicensesSettingsPageView.stories.tsx +++ b/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/LicensesSettingsPageView.stories.tsx @@ -1,8 +1,8 @@ import { chromatic } from "testHelpers/chromatic"; import { MockLicenseResponse } from "testHelpers/entities"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import type { Feature } from "api/typesGenerated"; import { expect, fn, within } from "storybook/test"; +import type { Feature } from "#/api/typesGenerated"; import LicensesSettingsPageView from "./LicensesSettingsPageView"; const meta: Meta = { diff --git a/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/LicensesSettingsPageView.tsx b/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/LicensesSettingsPageView.tsx index f41e04f2ca..dd4c2b6fb7 100644 --- a/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/LicensesSettingsPageView.tsx +++ b/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/LicensesSettingsPageView.tsx @@ -1,13 +1,13 @@ import { type Interpolation, type Theme, useTheme } from "@emotion/react"; import MuiLink from "@mui/material/Link"; import Skeleton from "@mui/material/Skeleton"; -import type { GetLicensesResponse } from "api/api"; -import type { Feature, UserStatusChangeCount } from "api/typesGenerated"; import { useWindowSize } from "hooks/useWindowSize"; import { PlusIcon, RotateCwIcon } from "lucide-react"; import type { FC } from "react"; import Confetti from "react-confetti"; import { Link as RouterLink } from "react-router"; +import type { GetLicensesResponse } from "#/api/api"; +import type { Feature, UserStatusChangeCount } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { SettingsHeader, diff --git a/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/ManagedAgentsConsumption.tsx b/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/ManagedAgentsConsumption.tsx index 0615000bdc..0ccb656a74 100644 --- a/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/ManagedAgentsConsumption.tsx +++ b/site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/ManagedAgentsConsumption.tsx @@ -1,9 +1,9 @@ -import type { Feature } from "api/typesGenerated"; import dayjs from "dayjs"; import { ChevronRightIcon } from "lucide-react"; import type { FC } from "react"; import { cn } from "utils/cn"; import { docs } from "utils/docs"; +import type { Feature } from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Button } from "#/components/Button/Button"; import { diff --git a/site/src/pages/DeploymentSettingsPage/NetworkSettingsPage/NetworkSettingsPageView.stories.tsx b/site/src/pages/DeploymentSettingsPage/NetworkSettingsPage/NetworkSettingsPageView.stories.tsx index f8b1b1cad2..6aa7dc2c5c 100644 --- a/site/src/pages/DeploymentSettingsPage/NetworkSettingsPage/NetworkSettingsPageView.stories.tsx +++ b/site/src/pages/DeploymentSettingsPage/NetworkSettingsPage/NetworkSettingsPageView.stories.tsx @@ -1,5 +1,5 @@ import type { Meta, StoryObj } from "@storybook/react-vite"; -import type { SerpentGroup } from "api/typesGenerated"; +import type { SerpentGroup } from "#/api/typesGenerated"; import { NetworkSettingsPageView } from "./NetworkSettingsPageView"; const group: SerpentGroup = { diff --git a/site/src/pages/DeploymentSettingsPage/NetworkSettingsPage/NetworkSettingsPageView.tsx b/site/src/pages/DeploymentSettingsPage/NetworkSettingsPage/NetworkSettingsPageView.tsx index 668689e4dc..e64a70da55 100644 --- a/site/src/pages/DeploymentSettingsPage/NetworkSettingsPage/NetworkSettingsPageView.tsx +++ b/site/src/pages/DeploymentSettingsPage/NetworkSettingsPage/NetworkSettingsPageView.tsx @@ -1,10 +1,10 @@ -import type { SerpentOption } from "api/typesGenerated"; import type { FC } from "react"; import { deploymentGroupHasParent, useDeploymentOptions, } from "utils/deployOptions"; import { docs } from "utils/docs"; +import type { SerpentOption } from "#/api/typesGenerated"; import { Badges, DisabledBadge, diff --git a/site/src/pages/DeploymentSettingsPage/NotificationsPage/NotificationEvents.stories.tsx b/site/src/pages/DeploymentSettingsPage/NotificationsPage/NotificationEvents.stories.tsx index 7d72d3b308..66982402c0 100644 --- a/site/src/pages/DeploymentSettingsPage/NotificationsPage/NotificationEvents.stories.tsx +++ b/site/src/pages/DeploymentSettingsPage/NotificationsPage/NotificationEvents.stories.tsx @@ -1,9 +1,9 @@ import { MockSystemNotificationTemplates } from "testHelpers/entities"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { API } from "api/api"; -import { selectTemplatesByGroup } from "api/queries/notifications"; -import type { DeploymentValues } from "api/typesGenerated"; import { spyOn, userEvent, within } from "storybook/test"; +import { API } from "#/api/api"; +import { selectTemplatesByGroup } from "#/api/queries/notifications"; +import type { DeploymentValues } from "#/api/typesGenerated"; import { NotificationEvents } from "./NotificationEvents"; import { baseMeta } from "./storybookUtils"; diff --git a/site/src/pages/DeploymentSettingsPage/NotificationsPage/NotificationEvents.tsx b/site/src/pages/DeploymentSettingsPage/NotificationsPage/NotificationEvents.tsx index 4f229255b5..18db5d8781 100644 --- a/site/src/pages/DeploymentSettingsPage/NotificationsPage/NotificationEvents.tsx +++ b/site/src/pages/DeploymentSettingsPage/NotificationsPage/NotificationEvents.tsx @@ -6,12 +6,6 @@ import ListItem from "@mui/material/ListItem"; import ListItemText, { listItemTextClasses } from "@mui/material/ListItemText"; import ToggleButton from "@mui/material/ToggleButton"; import ToggleButtonGroup from "@mui/material/ToggleButtonGroup"; -import { getErrorDetail, getErrorMessage } from "api/errors"; -import { - type selectTemplatesByGroup, - updateNotificationTemplateMethod, -} from "api/queries/notifications"; -import type { DeploymentValues } from "api/typesGenerated"; import { castNotificationMethod, methodIcons, @@ -22,6 +16,12 @@ import { type FC, Fragment } from "react"; import { useMutation, useQueryClient } from "react-query"; import { toast } from "sonner"; import { docs } from "utils/docs"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; +import { + type selectTemplatesByGroup, + updateNotificationTemplateMethod, +} from "#/api/queries/notifications"; +import type { DeploymentValues } from "#/api/typesGenerated"; import { Alert } from "#/components/Alert/Alert"; import { Button } from "#/components/Button/Button"; import { Stack } from "#/components/Stack/Stack"; diff --git a/site/src/pages/DeploymentSettingsPage/NotificationsPage/NotificationsPage.stories.tsx b/site/src/pages/DeploymentSettingsPage/NotificationsPage/NotificationsPage.stories.tsx index 4ba9c2f322..d6692a3b06 100644 --- a/site/src/pages/DeploymentSettingsPage/NotificationsPage/NotificationsPage.stories.tsx +++ b/site/src/pages/DeploymentSettingsPage/NotificationsPage/NotificationsPage.stories.tsx @@ -4,12 +4,12 @@ import { MockSystemNotificationTemplates, } from "testHelpers/entities"; import type { Meta, StoryObj } from "@storybook/react-vite"; +import { userEvent, within } from "storybook/test"; import { customNotificationTemplatesKey, notificationDispatchMethodsKey, systemNotificationTemplatesKey, -} from "api/queries/notifications"; -import { userEvent, within } from "storybook/test"; +} from "#/api/queries/notifications"; import NotificationsPage from "./NotificationsPage"; import { baseMeta } from "./storybookUtils"; diff --git a/site/src/pages/DeploymentSettingsPage/NotificationsPage/NotificationsPage.tsx b/site/src/pages/DeploymentSettingsPage/NotificationsPage/NotificationsPage.tsx index 3e25a5ebfa..9e50c70972 100644 --- a/site/src/pages/DeploymentSettingsPage/NotificationsPage/NotificationsPage.tsx +++ b/site/src/pages/DeploymentSettingsPage/NotificationsPage/NotificationsPage.tsx @@ -1,10 +1,4 @@ import type { Interpolation, Theme } from "@emotion/react"; -import { - customNotificationTemplates, - notificationDispatchMethods, - selectTemplatesByGroup, - systemNotificationTemplates, -} from "api/queries/notifications"; import { useSearchParamsKey } from "hooks/useSearchParamsKey"; import { useDeploymentConfig } from "modules/management/DeploymentConfigProvider"; import { castNotificationMethod } from "modules/notifications/utils"; @@ -13,6 +7,12 @@ import { useQueries } from "react-query"; import { deploymentGroupHasParent } from "utils/deployOptions"; import { docs } from "utils/docs"; import { pageTitle } from "utils/page"; +import { + customNotificationTemplates, + notificationDispatchMethods, + selectTemplatesByGroup, + systemNotificationTemplates, +} from "#/api/queries/notifications"; import { Loader } from "#/components/Loader/Loader"; import { SettingsHeader, diff --git a/site/src/pages/DeploymentSettingsPage/NotificationsPage/Troubleshooting.stories.tsx b/site/src/pages/DeploymentSettingsPage/NotificationsPage/Troubleshooting.stories.tsx index 5923ea0ba2..6d95068d38 100644 --- a/site/src/pages/DeploymentSettingsPage/NotificationsPage/Troubleshooting.stories.tsx +++ b/site/src/pages/DeploymentSettingsPage/NotificationsPage/Troubleshooting.stories.tsx @@ -1,6 +1,6 @@ import type { Meta, StoryObj } from "@storybook/react-vite"; -import { API } from "api/api"; import { spyOn, userEvent, within } from "storybook/test"; +import { API } from "#/api/api"; import { baseMeta } from "./storybookUtils"; import { Troubleshooting } from "./Troubleshooting"; diff --git a/site/src/pages/DeploymentSettingsPage/NotificationsPage/Troubleshooting.tsx b/site/src/pages/DeploymentSettingsPage/NotificationsPage/Troubleshooting.tsx index f1905db216..8a9e76069d 100644 --- a/site/src/pages/DeploymentSettingsPage/NotificationsPage/Troubleshooting.tsx +++ b/site/src/pages/DeploymentSettingsPage/NotificationsPage/Troubleshooting.tsx @@ -1,9 +1,9 @@ import { useTheme } from "@emotion/react"; -import { API } from "api/api"; -import { getErrorDetail } from "api/errors"; import type { FC } from "react"; import { useMutation } from "react-query"; import { toast } from "sonner"; +import { API } from "#/api/api"; +import { getErrorDetail } from "#/api/errors"; import { Button } from "#/components/Button/Button"; import { Spinner } from "#/components/Spinner/Spinner"; diff --git a/site/src/pages/DeploymentSettingsPage/NotificationsPage/storybookUtils.ts b/site/src/pages/DeploymentSettingsPage/NotificationsPage/storybookUtils.ts index 1cbebec410..7f11dd6f50 100644 --- a/site/src/pages/DeploymentSettingsPage/NotificationsPage/storybookUtils.ts +++ b/site/src/pages/DeploymentSettingsPage/NotificationsPage/storybookUtils.ts @@ -15,8 +15,8 @@ import { customNotificationTemplatesKey, notificationDispatchMethodsKey, systemNotificationTemplatesKey, -} from "api/queries/notifications"; -import type { DeploymentValues, SerpentOption } from "api/typesGenerated"; +} from "#/api/queries/notifications"; +import type { DeploymentValues, SerpentOption } from "#/api/typesGenerated"; import type NotificationsPage from "./NotificationsPage"; // Extracted from a real API response diff --git a/site/src/pages/DeploymentSettingsPage/OAuth2AppsSettingsPage/CreateOAuth2AppPage.tsx b/site/src/pages/DeploymentSettingsPage/OAuth2AppsSettingsPage/CreateOAuth2AppPage.tsx index 3296cd9e95..0e783067be 100644 --- a/site/src/pages/DeploymentSettingsPage/OAuth2AppsSettingsPage/CreateOAuth2AppPage.tsx +++ b/site/src/pages/DeploymentSettingsPage/OAuth2AppsSettingsPage/CreateOAuth2AppPage.tsx @@ -1,11 +1,11 @@ -import { getErrorDetail } from "api/errors"; -import { postApp } from "api/queries/oauth2"; import { useAuthenticated } from "hooks"; import type { FC } from "react"; import { useMutation, useQueryClient } from "react-query"; import { useNavigate, useSearchParams } from "react-router"; import { toast } from "sonner"; import { pageTitle } from "utils/page"; +import { getErrorDetail } from "#/api/errors"; +import { postApp } from "#/api/queries/oauth2"; import { CreateOAuth2AppPageView } from "./CreateOAuth2AppPageView"; const CreateOAuth2AppPage: FC = () => { diff --git a/site/src/pages/DeploymentSettingsPage/OAuth2AppsSettingsPage/CreateOAuth2AppPageView.tsx b/site/src/pages/DeploymentSettingsPage/OAuth2AppsSettingsPage/CreateOAuth2AppPageView.tsx index 3714d3a303..8d957d1a44 100644 --- a/site/src/pages/DeploymentSettingsPage/OAuth2AppsSettingsPage/CreateOAuth2AppPageView.tsx +++ b/site/src/pages/DeploymentSettingsPage/OAuth2AppsSettingsPage/CreateOAuth2AppPageView.tsx @@ -1,7 +1,7 @@ -import type * as TypesGen from "api/typesGenerated"; import { ChevronLeftIcon } from "lucide-react"; import type { FC } from "react"; import { Link as RouterLink } from "react-router"; +import type * as TypesGen from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Button } from "#/components/Button/Button"; import { diff --git a/site/src/pages/DeploymentSettingsPage/OAuth2AppsSettingsPage/EditOAuth2AppPage.tsx b/site/src/pages/DeploymentSettingsPage/OAuth2AppsSettingsPage/EditOAuth2AppPage.tsx index f0d3c11c12..5ce8876573 100644 --- a/site/src/pages/DeploymentSettingsPage/OAuth2AppsSettingsPage/EditOAuth2AppPage.tsx +++ b/site/src/pages/DeploymentSettingsPage/OAuth2AppsSettingsPage/EditOAuth2AppPage.tsx @@ -1,12 +1,12 @@ -import { getErrorDetail } from "api/errors"; -import * as oauth2 from "api/queries/oauth2"; -import type * as TypesGen from "api/typesGenerated"; import { useAuthenticated } from "hooks"; import { type FC, useState } from "react"; import { useMutation, useQuery, useQueryClient } from "react-query"; import { useNavigate, useParams } from "react-router"; import { toast } from "sonner"; import { pageTitle } from "utils/page"; +import { getErrorDetail } from "#/api/errors"; +import * as oauth2 from "#/api/queries/oauth2"; +import type * as TypesGen from "#/api/typesGenerated"; import { EditOAuth2AppPageView } from "./EditOAuth2AppPageView"; const EditOAuth2AppPage: FC = () => { diff --git a/site/src/pages/DeploymentSettingsPage/OAuth2AppsSettingsPage/EditOAuth2AppPageView.tsx b/site/src/pages/DeploymentSettingsPage/OAuth2AppsSettingsPage/EditOAuth2AppPageView.tsx index 2cf35e23c2..fad9748f69 100644 --- a/site/src/pages/DeploymentSettingsPage/OAuth2AppsSettingsPage/EditOAuth2AppPageView.tsx +++ b/site/src/pages/DeploymentSettingsPage/OAuth2AppsSettingsPage/EditOAuth2AppPageView.tsx @@ -1,10 +1,10 @@ import { type Interpolation, type Theme, useTheme } from "@emotion/react"; import Divider from "@mui/material/Divider"; -import type * as TypesGen from "api/typesGenerated"; import { ChevronLeftIcon, CopyIcon } from "lucide-react"; import { type FC, useState } from "react"; import { Link as RouterLink, useSearchParams } from "react-router"; import { createDayString } from "utils/createDayString"; +import type * as TypesGen from "#/api/typesGenerated"; import { Alert } from "#/components/Alert/Alert"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Button } from "#/components/Button/Button"; diff --git a/site/src/pages/DeploymentSettingsPage/OAuth2AppsSettingsPage/OAuth2AppForm.tsx b/site/src/pages/DeploymentSettingsPage/OAuth2AppsSettingsPage/OAuth2AppForm.tsx index eb35e24b93..80042dd231 100644 --- a/site/src/pages/DeploymentSettingsPage/OAuth2AppsSettingsPage/OAuth2AppForm.tsx +++ b/site/src/pages/DeploymentSettingsPage/OAuth2AppsSettingsPage/OAuth2AppForm.tsx @@ -1,7 +1,7 @@ import TextField from "@mui/material/TextField"; -import { isApiValidationError, mapApiErrorToFieldErrors } from "api/errors"; -import type * as TypesGen from "api/typesGenerated"; import type { FC, ReactNode } from "react"; +import { isApiValidationError, mapApiErrorToFieldErrors } from "#/api/errors"; +import type * as TypesGen from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { Spinner } from "#/components/Spinner/Spinner"; diff --git a/site/src/pages/DeploymentSettingsPage/OAuth2AppsSettingsPage/OAuth2AppsSettingsPage.tsx b/site/src/pages/DeploymentSettingsPage/OAuth2AppsSettingsPage/OAuth2AppsSettingsPage.tsx index 8605dd52e5..413faddd49 100644 --- a/site/src/pages/DeploymentSettingsPage/OAuth2AppsSettingsPage/OAuth2AppsSettingsPage.tsx +++ b/site/src/pages/DeploymentSettingsPage/OAuth2AppsSettingsPage/OAuth2AppsSettingsPage.tsx @@ -1,8 +1,8 @@ -import { getApps } from "api/queries/oauth2"; import { useAuthenticated } from "hooks"; import type { FC } from "react"; import { useQuery } from "react-query"; import { pageTitle } from "utils/page"; +import { getApps } from "#/api/queries/oauth2"; import OAuth2AppsSettingsPageView from "./OAuth2AppsSettingsPageView"; const OAuth2AppsSettingsPage: FC = () => { diff --git a/site/src/pages/DeploymentSettingsPage/OAuth2AppsSettingsPage/OAuth2AppsSettingsPageView.tsx b/site/src/pages/DeploymentSettingsPage/OAuth2AppsSettingsPage/OAuth2AppsSettingsPageView.tsx index 26460ef683..bb344f1b6d 100644 --- a/site/src/pages/DeploymentSettingsPage/OAuth2AppsSettingsPage/OAuth2AppsSettingsPageView.tsx +++ b/site/src/pages/DeploymentSettingsPage/OAuth2AppsSettingsPage/OAuth2AppsSettingsPageView.tsx @@ -1,9 +1,9 @@ import { useTheme } from "@emotion/react"; -import type * as TypesGen from "api/typesGenerated"; import { useClickableTableRow } from "hooks/useClickableTableRow"; import { ChevronRightIcon, PlusIcon } from "lucide-react"; import type { FC } from "react"; import { Link, useNavigate } from "react-router"; +import type * as TypesGen from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Avatar } from "#/components/Avatar/Avatar"; import { AvatarData } from "#/components/Avatar/AvatarData"; diff --git a/site/src/pages/DeploymentSettingsPage/ObservabilitySettingsPage/ObservabilitySettingsPageView.stories.tsx b/site/src/pages/DeploymentSettingsPage/ObservabilitySettingsPage/ObservabilitySettingsPageView.stories.tsx index f52def7cd6..ca1ea2a174 100644 --- a/site/src/pages/DeploymentSettingsPage/ObservabilitySettingsPage/ObservabilitySettingsPageView.stories.tsx +++ b/site/src/pages/DeploymentSettingsPage/ObservabilitySettingsPage/ObservabilitySettingsPageView.stories.tsx @@ -1,5 +1,5 @@ import type { Meta, StoryObj } from "@storybook/react-vite"; -import type { SerpentGroup } from "api/typesGenerated"; +import type { SerpentGroup } from "#/api/typesGenerated"; import { ObservabilitySettingsPageView } from "./ObservabilitySettingsPageView"; const group: SerpentGroup = { diff --git a/site/src/pages/DeploymentSettingsPage/ObservabilitySettingsPage/ObservabilitySettingsPageView.tsx b/site/src/pages/DeploymentSettingsPage/ObservabilitySettingsPage/ObservabilitySettingsPageView.tsx index 85e1cff4dc..c19745ddf1 100644 --- a/site/src/pages/DeploymentSettingsPage/ObservabilitySettingsPage/ObservabilitySettingsPageView.tsx +++ b/site/src/pages/DeploymentSettingsPage/ObservabilitySettingsPage/ObservabilitySettingsPageView.tsx @@ -1,7 +1,7 @@ -import type { SerpentOption } from "api/typesGenerated"; import type { FC } from "react"; import { deploymentGroupHasParent } from "utils/deployOptions"; import { docs } from "utils/docs"; +import type { SerpentOption } from "#/api/typesGenerated"; import { Badges, EnterpriseBadge, diff --git a/site/src/pages/DeploymentSettingsPage/OptionsTable.tsx b/site/src/pages/DeploymentSettingsPage/OptionsTable.tsx index e830cea971..4d482fad98 100644 --- a/site/src/pages/DeploymentSettingsPage/OptionsTable.tsx +++ b/site/src/pages/DeploymentSettingsPage/OptionsTable.tsx @@ -1,5 +1,5 @@ -import type { SerpentOption } from "api/typesGenerated"; import type { FC } from "react"; +import type { SerpentOption } from "#/api/typesGenerated"; import { Table, TableBody, diff --git a/site/src/pages/DeploymentSettingsPage/OverviewPage/OverviewPage.tsx b/site/src/pages/DeploymentSettingsPage/OverviewPage/OverviewPage.tsx index 83e680eb8e..c511b4dcde 100644 --- a/site/src/pages/DeploymentSettingsPage/OverviewPage/OverviewPage.tsx +++ b/site/src/pages/DeploymentSettingsPage/OverviewPage/OverviewPage.tsx @@ -1,14 +1,14 @@ -import { deploymentDAUs } from "api/queries/deployment"; -import { - availableExperiments, - experiments, - isKnownExperiment, -} from "api/queries/experiments"; import { useEmbeddedMetadata } from "hooks/useEmbeddedMetadata"; import { useDeploymentConfig } from "modules/management/DeploymentConfigProvider"; import type { FC } from "react"; import { useQuery } from "react-query"; import { pageTitle } from "utils/page"; +import { deploymentDAUs } from "#/api/queries/deployment"; +import { + availableExperiments, + experiments, + isKnownExperiment, +} from "#/api/queries/experiments"; import { OverviewPageView } from "./OverviewPageView"; const OverviewPage: FC = () => { diff --git a/site/src/pages/DeploymentSettingsPage/OverviewPage/OverviewPageView.tsx b/site/src/pages/DeploymentSettingsPage/OverviewPage/OverviewPageView.tsx index a398bfefb9..18c12474eb 100644 --- a/site/src/pages/DeploymentSettingsPage/OverviewPage/OverviewPageView.tsx +++ b/site/src/pages/DeploymentSettingsPage/OverviewPage/OverviewPageView.tsx @@ -1,11 +1,11 @@ +import type { FC } from "react"; +import { useDeploymentOptions } from "utils/deployOptions"; +import { docs } from "utils/docs"; import type { DAUsResponse, Experiment, SerpentOption, -} from "api/typesGenerated"; -import type { FC } from "react"; -import { useDeploymentOptions } from "utils/deployOptions"; -import { docs } from "utils/docs"; +} from "#/api/typesGenerated"; import { Link } from "#/components/Link/Link"; import { SettingsHeader, diff --git a/site/src/pages/DeploymentSettingsPage/SecuritySettingsPage/SecuritySettingsPageView.stories.tsx b/site/src/pages/DeploymentSettingsPage/SecuritySettingsPage/SecuritySettingsPageView.stories.tsx index cd6cacfddf..a27250bf26 100644 --- a/site/src/pages/DeploymentSettingsPage/SecuritySettingsPage/SecuritySettingsPageView.stories.tsx +++ b/site/src/pages/DeploymentSettingsPage/SecuritySettingsPage/SecuritySettingsPageView.stories.tsx @@ -1,5 +1,5 @@ import type { Meta, StoryObj } from "@storybook/react-vite"; -import type { SerpentGroup, SerpentOption } from "api/typesGenerated"; +import type { SerpentGroup, SerpentOption } from "#/api/typesGenerated"; import { SecuritySettingsPageView } from "./SecuritySettingsPageView"; const group: SerpentGroup = { diff --git a/site/src/pages/DeploymentSettingsPage/SecuritySettingsPage/SecuritySettingsPageView.tsx b/site/src/pages/DeploymentSettingsPage/SecuritySettingsPage/SecuritySettingsPageView.tsx index f1cb189eea..a0131e6bda 100644 --- a/site/src/pages/DeploymentSettingsPage/SecuritySettingsPage/SecuritySettingsPageView.tsx +++ b/site/src/pages/DeploymentSettingsPage/SecuritySettingsPage/SecuritySettingsPageView.tsx @@ -1,10 +1,10 @@ -import type { SerpentOption } from "api/typesGenerated"; import type { FC } from "react"; import { deploymentGroupHasParent, useDeploymentOptions, } from "utils/deployOptions"; import { docs } from "utils/docs"; +import type { SerpentOption } from "#/api/typesGenerated"; import { Badges, DisabledBadge, diff --git a/site/src/pages/DeploymentSettingsPage/UserAuthSettingsPage/UserAuthSettingsPageView.stories.tsx b/site/src/pages/DeploymentSettingsPage/UserAuthSettingsPage/UserAuthSettingsPageView.stories.tsx index fac9a52988..62fa622046 100644 --- a/site/src/pages/DeploymentSettingsPage/UserAuthSettingsPage/UserAuthSettingsPageView.stories.tsx +++ b/site/src/pages/DeploymentSettingsPage/UserAuthSettingsPage/UserAuthSettingsPageView.stories.tsx @@ -1,5 +1,5 @@ import type { Meta, StoryObj } from "@storybook/react-vite"; -import type { SerpentGroup } from "api/typesGenerated"; +import type { SerpentGroup } from "#/api/typesGenerated"; import { UserAuthSettingsPageView } from "./UserAuthSettingsPageView"; const oidcGroup: SerpentGroup = { diff --git a/site/src/pages/DeploymentSettingsPage/UserAuthSettingsPage/UserAuthSettingsPageView.tsx b/site/src/pages/DeploymentSettingsPage/UserAuthSettingsPage/UserAuthSettingsPageView.tsx index ac4a990476..a74a73e370 100644 --- a/site/src/pages/DeploymentSettingsPage/UserAuthSettingsPage/UserAuthSettingsPageView.tsx +++ b/site/src/pages/DeploymentSettingsPage/UserAuthSettingsPage/UserAuthSettingsPageView.tsx @@ -1,10 +1,10 @@ -import type { SerpentOption } from "api/typesGenerated"; import type { JSX } from "react"; import { deploymentGroupHasParent, useDeploymentOptions, } from "utils/deployOptions"; import { docs } from "utils/docs"; +import type { SerpentOption } from "#/api/typesGenerated"; import { Badges, DisabledBadge, diff --git a/site/src/pages/DeploymentSettingsPage/optionValue.test.ts b/site/src/pages/DeploymentSettingsPage/optionValue.test.ts index 71cd6cfa05..3b52bf1dad 100644 --- a/site/src/pages/DeploymentSettingsPage/optionValue.test.ts +++ b/site/src/pages/DeploymentSettingsPage/optionValue.test.ts @@ -1,4 +1,4 @@ -import type { SerpentOption } from "api/typesGenerated"; +import type { SerpentOption } from "#/api/typesGenerated"; import { optionValue } from "./optionValue"; const defaultOption: SerpentOption = { diff --git a/site/src/pages/DeploymentSettingsPage/optionValue.ts b/site/src/pages/DeploymentSettingsPage/optionValue.ts index 56aeac6849..f93f82800e 100644 --- a/site/src/pages/DeploymentSettingsPage/optionValue.ts +++ b/site/src/pages/DeploymentSettingsPage/optionValue.ts @@ -1,5 +1,5 @@ -import type { SerpentOption } from "api/typesGenerated"; import { humanDuration } from "utils/time"; +import type { SerpentOption } from "#/api/typesGenerated"; // optionValue is a helper function to format the value of a specific deployment options export function optionValue( diff --git a/site/src/pages/EditUserPage/EditUserForm.tsx b/site/src/pages/EditUserPage/EditUserForm.tsx index 25460cb7de..239f8f8ffc 100644 --- a/site/src/pages/EditUserPage/EditUserForm.tsx +++ b/site/src/pages/EditUserPage/EditUserForm.tsx @@ -1,5 +1,3 @@ -import { hasApiFieldErrors, isApiError } from "api/errors"; -import type { UpdateUserProfileRequest } from "api/typesGenerated"; import { useFormik } from "formik"; import type { FC } from "react"; import { @@ -9,6 +7,8 @@ import { onChangeTrimmed, } from "utils/formUtils"; import * as Yup from "yup"; +import { hasApiFieldErrors, isApiError } from "#/api/errors"; +import type { UpdateUserProfileRequest } from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Button } from "#/components/Button/Button"; import { FormFooter } from "#/components/Form/Form"; diff --git a/site/src/pages/EditUserPage/EditUserPage.tsx b/site/src/pages/EditUserPage/EditUserPage.tsx index 46d368304c..3ff7ca9bab 100644 --- a/site/src/pages/EditUserPage/EditUserPage.tsx +++ b/site/src/pages/EditUserPage/EditUserPage.tsx @@ -1,12 +1,12 @@ -import { getErrorDetail, getErrorMessage } from "api/errors"; -import { updateProfile, user } from "api/queries/users"; -import type { UpdateUserProfileRequest } from "api/typesGenerated"; import type { FC } from "react"; import { useMutation, useQuery, useQueryClient } from "react-query"; import { useNavigate, useParams } from "react-router"; import { toast } from "sonner"; import { pageTitle } from "utils/page"; import { isUUID } from "utils/uuid"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; +import { updateProfile, user } from "#/api/queries/users"; +import type { UpdateUserProfileRequest } from "#/api/typesGenerated"; import { Loader } from "#/components/Loader/Loader"; import { Margins } from "#/components/Margins/Margins"; import { EditUserForm } from "./EditUserForm"; diff --git a/site/src/pages/ExternalAuthPage/ExternalAuthPage.tsx b/site/src/pages/ExternalAuthPage/ExternalAuthPage.tsx index 9d5857826b..d3ef763750 100644 --- a/site/src/pages/ExternalAuthPage/ExternalAuthPage.tsx +++ b/site/src/pages/ExternalAuthPage/ExternalAuthPage.tsx @@ -1,15 +1,15 @@ -import type { ApiErrorResponse } from "api/errors"; -import { - exchangeExternalAuthDevice, - externalAuthDevice, - externalAuthProvider, -} from "api/queries/externalAuth"; import { isAxiosError } from "axios"; import { useAuthenticated } from "hooks"; import type { FC } from "react"; import { useMemo } from "react"; import { useQuery, useQueryClient } from "react-query"; import { useParams, useSearchParams } from "react-router"; +import type { ApiErrorResponse } from "#/api/errors"; +import { + exchangeExternalAuthDevice, + externalAuthDevice, + externalAuthProvider, +} from "#/api/queries/externalAuth"; import { Button } from "#/components/Button/Button"; import { isExchangeErrorRetryable, diff --git a/site/src/pages/ExternalAuthPage/ExternalAuthPageView.tsx b/site/src/pages/ExternalAuthPage/ExternalAuthPageView.tsx index a95e32e751..ed4e98c892 100644 --- a/site/src/pages/ExternalAuthPage/ExternalAuthPageView.tsx +++ b/site/src/pages/ExternalAuthPage/ExternalAuthPageView.tsx @@ -1,9 +1,9 @@ import type { Interpolation, Theme } from "@emotion/react"; import Link from "@mui/material/Link"; -import type { ApiErrorResponse } from "api/errors"; -import type { ExternalAuth, ExternalAuthDevice } from "api/typesGenerated"; import { ExternalLinkIcon, RotateCwIcon } from "lucide-react"; import type { FC, ReactNode } from "react"; +import type { ApiErrorResponse } from "#/api/errors"; +import type { ExternalAuth, ExternalAuthDevice } from "#/api/typesGenerated"; import { Alert } from "#/components/Alert/Alert"; import { Avatar } from "#/components/Avatar/Avatar"; import { GitDeviceAuth } from "#/components/GitDeviceAuth/GitDeviceAuth"; diff --git a/site/src/pages/GroupsPage/CreateGroupPage.tsx b/site/src/pages/GroupsPage/CreateGroupPage.tsx index 76e497a0c0..c6f4d53803 100644 --- a/site/src/pages/GroupsPage/CreateGroupPage.tsx +++ b/site/src/pages/GroupsPage/CreateGroupPage.tsx @@ -1,8 +1,8 @@ -import { createGroup } from "api/queries/groups"; import type { FC } from "react"; import { useMutation, useQueryClient } from "react-query"; import { useNavigate, useParams } from "react-router"; import { pageTitle } from "utils/page"; +import { createGroup } from "#/api/queries/groups"; import { CreateGroupPageView } from "./CreateGroupPageView"; const CreateGroupPage: FC = () => { diff --git a/site/src/pages/GroupsPage/CreateGroupPageView.tsx b/site/src/pages/GroupsPage/CreateGroupPageView.tsx index 3ff4604b38..694b5a62f9 100644 --- a/site/src/pages/GroupsPage/CreateGroupPageView.tsx +++ b/site/src/pages/GroupsPage/CreateGroupPageView.tsx @@ -1,5 +1,3 @@ -import { isApiValidationError } from "api/errors"; -import type { CreateGroupRequest } from "api/typesGenerated"; import { useFormik } from "formik"; import type { FC } from "react"; import { useNavigate } from "react-router"; @@ -9,6 +7,8 @@ import { onChangeTrimmed, } from "utils/formUtils"; import * as Yup from "yup"; +import { isApiValidationError } from "#/api/errors"; +import type { CreateGroupRequest } from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Button } from "#/components/Button/Button"; import { IconField } from "#/components/IconField/IconField"; diff --git a/site/src/pages/GroupsPage/GroupMembersPage.tsx b/site/src/pages/GroupsPage/GroupMembersPage.tsx index 8354eb9d1c..ef4b37dbaf 100644 --- a/site/src/pages/GroupsPage/GroupMembersPage.tsx +++ b/site/src/pages/GroupsPage/GroupMembersPage.tsx @@ -1,17 +1,17 @@ import type { Interpolation, Theme } from "@emotion/react"; -import { getErrorDetail, getErrorMessage } from "api/errors"; -import { addMember, removeMember } from "api/queries/groups"; -import type { - Group, - OrganizationMemberWithUserData, - ReducedUser, -} from "api/typesGenerated"; import { EllipsisVertical, UserPlusIcon } from "lucide-react"; import { isEveryoneGroup } from "modules/groups"; import { type FC, useState } from "react"; import { useMutation, useQueryClient } from "react-query"; import { useOutletContext } from "react-router"; import { toast } from "sonner"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; +import { addMember, removeMember } from "#/api/queries/groups"; +import type { + Group, + OrganizationMemberWithUserData, + ReducedUser, +} from "#/api/typesGenerated"; import { Avatar } from "#/components/Avatar/Avatar"; import { AvatarData } from "#/components/Avatar/AvatarData"; import { Button } from "#/components/Button/Button"; diff --git a/site/src/pages/GroupsPage/GroupPage.stories.tsx b/site/src/pages/GroupsPage/GroupPage.stories.tsx index 3db55c4a3c..e7054fb7ec 100644 --- a/site/src/pages/GroupsPage/GroupPage.stories.tsx +++ b/site/src/pages/GroupsPage/GroupPage.stories.tsx @@ -6,18 +6,18 @@ import { MockOrganizationMember2, } from "testHelpers/entities"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { API } from "api/api"; -import { - getGroupMembersQueryKey, - getGroupQueryKey, - groupPermissionsKey, -} from "api/queries/groups"; -import { organizationMembersKey } from "api/queries/organizations"; import { spyOn, userEvent, within } from "storybook/test"; import { reactRouterOutlet, reactRouterParameters, } from "storybook-addon-remix-react-router"; +import { API } from "#/api/api"; +import { + getGroupMembersQueryKey, + getGroupQueryKey, + groupPermissionsKey, +} from "#/api/queries/groups"; +import { organizationMembersKey } from "#/api/queries/organizations"; import GroupMembersPage from "./GroupMembersPage"; import GroupPage from "./GroupPage"; diff --git a/site/src/pages/GroupsPage/GroupPage.tsx b/site/src/pages/GroupsPage/GroupPage.tsx index cb9fbb416f..7eda6cfce6 100644 --- a/site/src/pages/GroupsPage/GroupPage.tsx +++ b/site/src/pages/GroupsPage/GroupPage.tsx @@ -1,11 +1,3 @@ -import { getErrorDetail, getErrorMessage } from "api/errors"; -import { - deleteGroup, - group, - groupMembers, - groupPermissions, -} from "api/queries/groups"; -import type { Group, ReducedUser } from "api/typesGenerated"; import { usePaginatedQuery } from "hooks/usePaginatedQuery"; import { TrashIcon } from "lucide-react"; import { type ComponentProps, type FC, useState } from "react"; @@ -19,6 +11,14 @@ import { } from "react-router"; import { toast } from "sonner"; import { pageTitle } from "utils/page"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; +import { + deleteGroup, + group, + groupMembers, + groupPermissions, +} from "#/api/queries/groups"; +import type { Group, ReducedUser } from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Button } from "#/components/Button/Button"; import { DeleteDialog } from "#/components/Dialogs/DeleteDialog/DeleteDialog"; diff --git a/site/src/pages/GroupsPage/GroupSettingsPage.tsx b/site/src/pages/GroupsPage/GroupSettingsPage.tsx index a57df48f6a..81fb430c3e 100644 --- a/site/src/pages/GroupsPage/GroupSettingsPage.tsx +++ b/site/src/pages/GroupsPage/GroupSettingsPage.tsx @@ -1,9 +1,9 @@ -import { getErrorDetail, getErrorMessage } from "api/errors"; -import { patchGroup } from "api/queries/groups"; import type { FC } from "react"; import { useMutation, useQueryClient } from "react-query"; import { useNavigate, useOutletContext, useParams } from "react-router"; import { toast } from "sonner"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; +import { patchGroup } from "#/api/queries/groups"; import type { GroupPageOutletContext } from "./GroupPage"; import GroupSettingsPageView from "./GroupSettingsPageView"; diff --git a/site/src/pages/GroupsPage/GroupSettingsPageView.tsx b/site/src/pages/GroupsPage/GroupSettingsPageView.tsx index 11ad4459f2..435f5a0634 100644 --- a/site/src/pages/GroupsPage/GroupSettingsPageView.tsx +++ b/site/src/pages/GroupsPage/GroupSettingsPageView.tsx @@ -1,4 +1,3 @@ -import type { Group } from "api/typesGenerated"; import { useFormik } from "formik"; import { isEveryoneGroup } from "modules/groups"; import type { FC } from "react"; @@ -8,6 +7,7 @@ import { onChangeTrimmed, } from "utils/formUtils"; import * as Yup from "yup"; +import type { Group } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { IconField } from "#/components/IconField/IconField"; import { Input } from "#/components/Input/Input"; diff --git a/site/src/pages/GroupsPage/GroupsPage.tsx b/site/src/pages/GroupsPage/GroupsPage.tsx index 18a3d4d840..f8ea67af9a 100644 --- a/site/src/pages/GroupsPage/GroupsPage.tsx +++ b/site/src/pages/GroupsPage/GroupsPage.tsx @@ -1,6 +1,3 @@ -import { getErrorDetail, getErrorMessage } from "api/errors"; -import { groupsByOrganization } from "api/queries/groups"; -import { organizationsPermissions } from "api/queries/organizations"; import { PlusIcon } from "lucide-react"; import { useFeatureVisibility } from "modules/dashboard/useFeatureVisibility"; import { RequirePermission } from "modules/permissions/RequirePermission"; @@ -9,6 +6,9 @@ import { useQuery } from "react-query"; import { Link as RouterLink } from "react-router"; import { toast } from "sonner"; import { pageTitle } from "utils/page"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; +import { groupsByOrganization } from "#/api/queries/groups"; +import { organizationsPermissions } from "#/api/queries/organizations"; import { Button } from "#/components/Button/Button"; import { EmptyState } from "#/components/EmptyState/EmptyState"; import { Loader } from "#/components/Loader/Loader"; diff --git a/site/src/pages/GroupsPage/GroupsPageProvider.tsx b/site/src/pages/GroupsPage/GroupsPageProvider.tsx index 83c11c4ae9..325d74a956 100644 --- a/site/src/pages/GroupsPage/GroupsPageProvider.tsx +++ b/site/src/pages/GroupsPage/GroupsPageProvider.tsx @@ -1,7 +1,7 @@ -import type { Organization } from "api/typesGenerated"; import { useDashboard } from "modules/dashboard/useDashboard"; import { createContext, type FC, useContext } from "react"; import { Navigate, Outlet, useParams } from "react-router"; +import type { Organization } from "#/api/typesGenerated"; const GroupsPageContext = createContext( undefined, diff --git a/site/src/pages/GroupsPage/GroupsPageView.tsx b/site/src/pages/GroupsPage/GroupsPageView.tsx index 8a65e518f6..0a2dedc14b 100644 --- a/site/src/pages/GroupsPage/GroupsPageView.tsx +++ b/site/src/pages/GroupsPage/GroupsPageView.tsx @@ -1,11 +1,11 @@ import type { Interpolation, Theme } from "@emotion/react"; import Skeleton from "@mui/material/Skeleton"; -import type { Group } from "api/typesGenerated"; import { useClickableTableRow } from "hooks"; import { ChevronRightIcon, PlusIcon } from "lucide-react"; import type { FC } from "react"; import { Link as RouterLink, useNavigate } from "react-router"; import { docs } from "utils/docs"; +import type { Group } from "#/api/typesGenerated"; import { Avatar } from "#/components/Avatar/Avatar"; import { AvatarData } from "#/components/Avatar/AvatarData"; import { AvatarDataSkeleton } from "#/components/Avatar/AvatarDataSkeleton"; diff --git a/site/src/pages/HealthPage/AccessURLPage.stories.tsx b/site/src/pages/HealthPage/AccessURLPage.stories.tsx index 0a620cb9fc..4343bab3c8 100644 --- a/site/src/pages/HealthPage/AccessURLPage.stories.tsx +++ b/site/src/pages/HealthPage/AccessURLPage.stories.tsx @@ -1,7 +1,7 @@ import { MockHealth } from "testHelpers/entities"; import type { StoryObj } from "@storybook/react-vite"; -import { HEALTH_QUERY_KEY } from "api/queries/debug"; -import type { HealthcheckReport } from "api/typesGenerated"; +import { HEALTH_QUERY_KEY } from "#/api/queries/debug"; +import type { HealthcheckReport } from "#/api/typesGenerated"; import AccessURLPage from "./AccessURLPage"; import { generateMeta } from "./storybook"; diff --git a/site/src/pages/HealthPage/AccessURLPage.tsx b/site/src/pages/HealthPage/AccessURLPage.tsx index bc72b7177b..ac28e3fe9a 100644 --- a/site/src/pages/HealthPage/AccessURLPage.tsx +++ b/site/src/pages/HealthPage/AccessURLPage.tsx @@ -1,6 +1,6 @@ -import type { HealthcheckReport } from "api/typesGenerated"; import { useOutletContext } from "react-router"; import { pageTitle } from "utils/page"; +import type { HealthcheckReport } from "#/api/typesGenerated"; import { Alert } from "#/components/Alert/Alert"; import { GridData, diff --git a/site/src/pages/HealthPage/Content.tsx b/site/src/pages/HealthPage/Content.tsx index 7179a98fce..23616be52d 100644 --- a/site/src/pages/HealthPage/Content.tsx +++ b/site/src/pages/HealthPage/Content.tsx @@ -1,6 +1,5 @@ import { useTheme } from "@emotion/react"; import Link from "@mui/material/Link"; -import type { HealthCode, HealthSeverity } from "api/typesGenerated"; import { CircleAlertIcon, CircleCheckIcon, @@ -15,6 +14,7 @@ import { type ReactElement, } from "react"; import { docs } from "utils/docs"; +import type { HealthCode, HealthSeverity } from "#/api/typesGenerated"; import { healthyColor } from "./healthyColor"; const CONTENT_PADDING = 36; diff --git a/site/src/pages/HealthPage/DERPPage.tsx b/site/src/pages/HealthPage/DERPPage.tsx index 6599054f22..3a7fbf6c0a 100644 --- a/site/src/pages/HealthPage/DERPPage.tsx +++ b/site/src/pages/HealthPage/DERPPage.tsx @@ -1,13 +1,13 @@ import { useTheme } from "@emotion/react"; -import type { - HealthcheckReport, - HealthSeverity, - NetcheckReport, -} from "api/typesGenerated"; import { MapPinIcon } from "lucide-react"; import type { FC } from "react"; import { Link, useOutletContext } from "react-router"; import { pageTitle } from "utils/page"; +import type { + HealthcheckReport, + HealthSeverity, + NetcheckReport, +} from "#/api/typesGenerated"; import { Alert } from "#/components/Alert/Alert"; import { Button } from "#/components/Button/Button"; import { diff --git a/site/src/pages/HealthPage/DERPRegionPage.tsx b/site/src/pages/HealthPage/DERPRegionPage.tsx index b8d7b6b8bb..9b7a40ea34 100644 --- a/site/src/pages/HealthPage/DERPRegionPage.tsx +++ b/site/src/pages/HealthPage/DERPRegionPage.tsx @@ -1,15 +1,15 @@ -import type { - DERPNodeReport, - DERPRegionReport, - HealthcheckReport, - HealthSeverity, -} from "api/typesGenerated"; import { ChevronLeftIcon, CodeIcon, HashIcon } from "lucide-react"; import type { FC } from "react"; import { Link, useOutletContext, useParams } from "react-router"; import { cn } from "utils/cn"; import { getLatencyColor } from "utils/latency"; import { pageTitle } from "utils/page"; +import type { + DERPNodeReport, + DERPRegionReport, + HealthcheckReport, + HealthSeverity, +} from "#/api/typesGenerated"; import { Alert } from "#/components/Alert/Alert"; import { Table, diff --git a/site/src/pages/HealthPage/DatabasePage.tsx b/site/src/pages/HealthPage/DatabasePage.tsx index 4fd7301758..489e013d36 100644 --- a/site/src/pages/HealthPage/DatabasePage.tsx +++ b/site/src/pages/HealthPage/DatabasePage.tsx @@ -1,6 +1,6 @@ -import type { HealthcheckReport } from "api/typesGenerated"; import { useOutletContext } from "react-router"; import { pageTitle } from "utils/page"; +import type { HealthcheckReport } from "#/api/typesGenerated"; import { Alert } from "#/components/Alert/Alert"; import { GridData, diff --git a/site/src/pages/HealthPage/DismissWarningButton.tsx b/site/src/pages/HealthPage/DismissWarningButton.tsx index 23363c94b4..7de4a02c49 100644 --- a/site/src/pages/HealthPage/DismissWarningButton.tsx +++ b/site/src/pages/HealthPage/DismissWarningButton.tsx @@ -1,9 +1,9 @@ import Skeleton from "@mui/material/Skeleton"; -import { healthSettings, updateHealthSettings } from "api/queries/debug"; -import type { HealthSection } from "api/typesGenerated"; import { BellIcon, BellOffIcon } from "lucide-react"; import { useMutation, useQuery, useQueryClient } from "react-query"; import { toast } from "sonner"; +import { healthSettings, updateHealthSettings } from "#/api/queries/debug"; +import type { HealthSection } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { Spinner } from "#/components/Spinner/Spinner"; diff --git a/site/src/pages/HealthPage/HealthLayout.tsx b/site/src/pages/HealthPage/HealthLayout.tsx index 2917c84029..1e44e8faa9 100644 --- a/site/src/pages/HealthPage/HealthLayout.tsx +++ b/site/src/pages/HealthPage/HealthLayout.tsx @@ -1,7 +1,5 @@ import CircularProgress from "@mui/material/CircularProgress"; import IconButton from "@mui/material/IconButton"; -import { health, refreshHealth } from "api/queries/debug"; -import type { HealthSeverity } from "api/typesGenerated"; import kebabCase from "lodash/fp/kebabCase"; import { BellOffIcon, RotateCcwIcon } from "lucide-react"; import { DashboardFullPage } from "modules/dashboard/DashboardLayout"; @@ -11,6 +9,8 @@ import { NavLink, Outlet } from "react-router"; import { cn } from "utils/cn"; import { createDayString } from "utils/createDayString"; import { pageTitle } from "utils/page"; +import { health, refreshHealth } from "#/api/queries/debug"; +import type { HealthSeverity } from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Loader } from "#/components/Loader/Loader"; import { diff --git a/site/src/pages/HealthPage/ProvisionerDaemonsPage.tsx b/site/src/pages/HealthPage/ProvisionerDaemonsPage.tsx index 86734fcb12..d30d50ac0e 100644 --- a/site/src/pages/HealthPage/ProvisionerDaemonsPage.tsx +++ b/site/src/pages/HealthPage/ProvisionerDaemonsPage.tsx @@ -1,8 +1,8 @@ -import type { HealthcheckReport } from "api/typesGenerated"; import { Provisioner } from "modules/provisioners/Provisioner"; import type { FC } from "react"; import { useOutletContext } from "react-router"; import { pageTitle } from "utils/page"; +import type { HealthcheckReport } from "#/api/typesGenerated"; import { Alert } from "#/components/Alert/Alert"; import { Header, diff --git a/site/src/pages/HealthPage/WebsocketPage.stories.tsx b/site/src/pages/HealthPage/WebsocketPage.stories.tsx index 73b4d5ea24..dd75430de9 100644 --- a/site/src/pages/HealthPage/WebsocketPage.stories.tsx +++ b/site/src/pages/HealthPage/WebsocketPage.stories.tsx @@ -1,7 +1,7 @@ import { MockHealth } from "testHelpers/entities"; import type { StoryObj } from "@storybook/react-vite"; -import { HEALTH_QUERY_KEY } from "api/queries/debug"; -import type { HealthcheckReport } from "api/typesGenerated"; +import { HEALTH_QUERY_KEY } from "#/api/queries/debug"; +import type { HealthcheckReport } from "#/api/typesGenerated"; import { generateMeta } from "./storybook"; import WebsocketPage from "./WebsocketPage"; diff --git a/site/src/pages/HealthPage/WebsocketPage.tsx b/site/src/pages/HealthPage/WebsocketPage.tsx index 112fb05a22..804e32e34d 100644 --- a/site/src/pages/HealthPage/WebsocketPage.tsx +++ b/site/src/pages/HealthPage/WebsocketPage.tsx @@ -1,9 +1,9 @@ import { useTheme } from "@emotion/react"; -import type { HealthcheckReport } from "api/typesGenerated"; import { CodeIcon } from "lucide-react"; import { useOutletContext } from "react-router"; import { MONOSPACE_FONT_FAMILY } from "theme/constants"; import { pageTitle } from "utils/page"; +import type { HealthcheckReport } from "#/api/typesGenerated"; import { Alert } from "#/components/Alert/Alert"; import { Tooltip, diff --git a/site/src/pages/HealthPage/WorkspaceProxyPage.stories.tsx b/site/src/pages/HealthPage/WorkspaceProxyPage.stories.tsx index 7de80154fa..053cf4c2b7 100644 --- a/site/src/pages/HealthPage/WorkspaceProxyPage.stories.tsx +++ b/site/src/pages/HealthPage/WorkspaceProxyPage.stories.tsx @@ -1,7 +1,7 @@ import { MockHealth } from "testHelpers/entities"; import type { StoryObj } from "@storybook/react-vite"; -import { HEALTH_QUERY_KEY } from "api/queries/debug"; -import type { HealthcheckReport } from "api/typesGenerated"; +import { HEALTH_QUERY_KEY } from "#/api/queries/debug"; +import type { HealthcheckReport } from "#/api/typesGenerated"; import { generateMeta } from "./storybook"; import WorkspaceProxyPage from "./WorkspaceProxyPage"; diff --git a/site/src/pages/HealthPage/WorkspaceProxyPage.tsx b/site/src/pages/HealthPage/WorkspaceProxyPage.tsx index 0919d5bbfa..b6b1677706 100644 --- a/site/src/pages/HealthPage/WorkspaceProxyPage.tsx +++ b/site/src/pages/HealthPage/WorkspaceProxyPage.tsx @@ -1,10 +1,10 @@ import { useTheme } from "@emotion/react"; -import type { HealthcheckReport } from "api/typesGenerated"; import { GlobeIcon, HashIcon } from "lucide-react"; import type { FC } from "react"; import { useOutletContext } from "react-router"; import { createDayString } from "utils/createDayString"; import { pageTitle } from "utils/page"; +import type { HealthcheckReport } from "#/api/typesGenerated"; import { Alert } from "#/components/Alert/Alert"; import { Tooltip, diff --git a/site/src/pages/HealthPage/healthyColor.ts b/site/src/pages/HealthPage/healthyColor.ts index d8681f558f..c8991db6e6 100644 --- a/site/src/pages/HealthPage/healthyColor.ts +++ b/site/src/pages/HealthPage/healthyColor.ts @@ -1,5 +1,5 @@ import type { Theme } from "@emotion/react"; -import type { HealthSeverity } from "api/typesGenerated"; +import type { HealthSeverity } from "#/api/typesGenerated"; export const healthyColor = (theme: Theme, severity: HealthSeverity) => { switch (severity) { diff --git a/site/src/pages/HealthPage/storybook.tsx b/site/src/pages/HealthPage/storybook.tsx index aa327297e1..01bc050f1e 100644 --- a/site/src/pages/HealthPage/storybook.tsx +++ b/site/src/pages/HealthPage/storybook.tsx @@ -9,12 +9,15 @@ import { } from "testHelpers/entities"; import { withDashboardProvider } from "testHelpers/storybook"; import type { Meta } from "@storybook/react-vite"; -import { HEALTH_QUERY_KEY, HEALTH_QUERY_SETTINGS_KEY } from "api/queries/debug"; import { type RouteDefinition, reactRouterOutlet, reactRouterParameters, } from "storybook-addon-remix-react-router"; +import { + HEALTH_QUERY_KEY, + HEALTH_QUERY_SETTINGS_KEY, +} from "#/api/queries/debug"; import { HealthLayout } from "./HealthLayout"; type MetaOptions = { diff --git a/site/src/pages/LoginOAuthDevicePage/LoginOAuthDevicePage.tsx b/site/src/pages/LoginOAuthDevicePage/LoginOAuthDevicePage.tsx index 19543c76c5..0ee776d0c0 100644 --- a/site/src/pages/LoginOAuthDevicePage/LoginOAuthDevicePage.tsx +++ b/site/src/pages/LoginOAuthDevicePage/LoginOAuthDevicePage.tsx @@ -1,13 +1,13 @@ -import type { ApiErrorResponse } from "api/errors"; -import { - getGitHubDevice, - getGitHubDeviceFlowCallback, -} from "api/queries/oauth2"; import { isAxiosError } from "axios"; import type { FC } from "react"; import { useEffect, useMemo } from "react"; import { useQuery } from "react-query"; import { useSearchParams } from "react-router"; +import type { ApiErrorResponse } from "#/api/errors"; +import { + getGitHubDevice, + getGitHubDeviceFlowCallback, +} from "#/api/queries/oauth2"; import { isExchangeErrorRetryable, newRetryDelay, diff --git a/site/src/pages/LoginOAuthDevicePage/LoginOAuthDevicePageView.tsx b/site/src/pages/LoginOAuthDevicePage/LoginOAuthDevicePageView.tsx index ca1505de66..9a5ec03c21 100644 --- a/site/src/pages/LoginOAuthDevicePage/LoginOAuthDevicePageView.tsx +++ b/site/src/pages/LoginOAuthDevicePage/LoginOAuthDevicePageView.tsx @@ -1,7 +1,7 @@ import type { Interpolation, Theme } from "@emotion/react"; -import type { ApiErrorResponse } from "api/errors"; -import type { ExternalAuthDevice } from "api/typesGenerated"; import type { FC } from "react"; +import type { ApiErrorResponse } from "#/api/errors"; +import type { ExternalAuthDevice } from "#/api/typesGenerated"; import { GitDeviceAuth } from "#/components/GitDeviceAuth/GitDeviceAuth"; import { SignInLayout } from "#/components/SignInLayout/SignInLayout"; import { Welcome } from "#/components/Welcome/Welcome"; diff --git a/site/src/pages/LoginPage/LoginPage.tsx b/site/src/pages/LoginPage/LoginPage.tsx index 50da94534a..bbdd8b987a 100644 --- a/site/src/pages/LoginPage/LoginPage.tsx +++ b/site/src/pages/LoginPage/LoginPage.tsx @@ -1,5 +1,3 @@ -import { buildInfo } from "api/queries/buildInfo"; -import { authMethods } from "api/queries/users"; import { useAuthContext } from "contexts/auth/AuthProvider"; import { useEmbeddedMetadata } from "hooks/useEmbeddedMetadata"; import { type FC, useEffect } from "react"; @@ -8,6 +6,8 @@ import { Navigate, useLocation, useNavigate } from "react-router"; import { getApplicationName } from "utils/appearance"; import { retrieveRedirect } from "utils/redirect"; import { sendDeploymentEvent } from "utils/telemetry"; +import { buildInfo } from "#/api/queries/buildInfo"; +import { authMethods } from "#/api/queries/users"; import { LoginPageView } from "./LoginPageView"; const LoginPage: FC = () => { diff --git a/site/src/pages/LoginPage/LoginPageView.tsx b/site/src/pages/LoginPage/LoginPageView.tsx index 6f7c3af8e2..95fbcca03c 100644 --- a/site/src/pages/LoginPage/LoginPageView.tsx +++ b/site/src/pages/LoginPage/LoginPageView.tsx @@ -1,6 +1,6 @@ -import type { AuthMethods, BuildInfoResponse } from "api/typesGenerated"; import { type FC, useState } from "react"; import { useLocation } from "react-router"; +import type { AuthMethods, BuildInfoResponse } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { CustomLogo } from "#/components/CustomLogo/CustomLogo"; import { Loader } from "#/components/Loader/Loader"; diff --git a/site/src/pages/LoginPage/OAuthSignInForm.tsx b/site/src/pages/LoginPage/OAuthSignInForm.tsx index a7f7eec959..b486aa91d1 100644 --- a/site/src/pages/LoginPage/OAuthSignInForm.tsx +++ b/site/src/pages/LoginPage/OAuthSignInForm.tsx @@ -1,6 +1,6 @@ -import type { AuthMethods } from "api/typesGenerated"; import { KeyIcon } from "lucide-react"; import { type FC, useId } from "react"; +import type { AuthMethods } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { ExternalImage } from "#/components/ExternalImage/ExternalImage"; import { Language } from "./Language"; diff --git a/site/src/pages/LoginPage/SignInForm.tsx b/site/src/pages/LoginPage/SignInForm.tsx index 66eb271b27..d7d881a899 100644 --- a/site/src/pages/LoginPage/SignInForm.tsx +++ b/site/src/pages/LoginPage/SignInForm.tsx @@ -1,6 +1,6 @@ -import type { AuthMethods } from "api/typesGenerated"; import type { FC, ReactNode } from "react"; import { getApplicationName } from "utils/appearance"; +import type { AuthMethods } from "#/api/typesGenerated"; import { Alert } from "#/components/Alert/Alert"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { OAuthSignInForm } from "./OAuthSignInForm"; diff --git a/site/src/pages/OrganizationSettingsPage/CreateOrganizationPage.tsx b/site/src/pages/OrganizationSettingsPage/CreateOrganizationPage.tsx index 499a56f651..eaffc10344 100644 --- a/site/src/pages/OrganizationSettingsPage/CreateOrganizationPage.tsx +++ b/site/src/pages/OrganizationSettingsPage/CreateOrganizationPage.tsx @@ -1,4 +1,3 @@ -import { createOrganization } from "api/queries/organizations"; import { useAuthenticated } from "hooks"; import { useFeatureVisibility } from "modules/dashboard/useFeatureVisibility"; import { RequirePermission } from "modules/permissions/RequirePermission"; @@ -6,6 +5,7 @@ import type { FC } from "react"; import { useMutation, useQueryClient } from "react-query"; import { useNavigate } from "react-router"; import { toast } from "sonner"; +import { createOrganization } from "#/api/queries/organizations"; import { CreateOrganizationPageView } from "./CreateOrganizationPageView"; const CreateOrganizationPage: FC = () => { diff --git a/site/src/pages/OrganizationSettingsPage/CreateOrganizationPageView.tsx b/site/src/pages/OrganizationSettingsPage/CreateOrganizationPageView.tsx index 5117f2d51f..3b1368c322 100644 --- a/site/src/pages/OrganizationSettingsPage/CreateOrganizationPageView.tsx +++ b/site/src/pages/OrganizationSettingsPage/CreateOrganizationPageView.tsx @@ -1,6 +1,4 @@ import TextField from "@mui/material/TextField"; -import { isApiValidationError } from "api/errors"; -import type { CreateOrganizationRequest } from "api/typesGenerated"; import { useFormik } from "formik"; import { ArrowLeft } from "lucide-react"; import type { FC } from "react"; @@ -13,6 +11,8 @@ import { onChangeTrimmed, } from "utils/formUtils"; import * as Yup from "yup"; +import { isApiValidationError } from "#/api/errors"; +import type { CreateOrganizationRequest } from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Badges, PremiumBadge } from "#/components/Badges/Badges"; import { Button } from "#/components/Button/Button"; diff --git a/site/src/pages/OrganizationSettingsPage/CustomRolesPage/CreateEditRolePage.tsx b/site/src/pages/OrganizationSettingsPage/CustomRolesPage/CreateEditRolePage.tsx index 21f59ad321..a1a791ea43 100644 --- a/site/src/pages/OrganizationSettingsPage/CustomRolesPage/CreateEditRolePage.tsx +++ b/site/src/pages/OrganizationSettingsPage/CustomRolesPage/CreateEditRolePage.tsx @@ -1,10 +1,3 @@ -import { getErrorDetail, getErrorMessage } from "api/errors"; -import { - createOrganizationRole, - organizationRoles, - updateOrganizationRole, -} from "api/queries/roles"; -import type { CustomRoleRequest } from "api/typesGenerated"; import { useOrganizationSettings } from "modules/management/OrganizationSettingsLayout"; import { RequirePermission } from "modules/permissions/RequirePermission"; import type { FC } from "react"; @@ -12,6 +5,13 @@ import { useMutation, useQuery, useQueryClient } from "react-query"; import { useNavigate, useParams } from "react-router"; import { toast } from "sonner"; import { pageTitle } from "utils/page"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; +import { + createOrganizationRole, + organizationRoles, + updateOrganizationRole, +} from "#/api/queries/roles"; +import type { CustomRoleRequest } from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Loader } from "#/components/Loader/Loader"; import CreateEditRolePageView from "./CreateEditRolePageView"; diff --git a/site/src/pages/OrganizationSettingsPage/CustomRolesPage/CreateEditRolePageView.tsx b/site/src/pages/OrganizationSettingsPage/CustomRolesPage/CreateEditRolePageView.tsx index ecc2ebd554..c8d591c75f 100644 --- a/site/src/pages/OrganizationSettingsPage/CustomRolesPage/CreateEditRolePageView.tsx +++ b/site/src/pages/OrganizationSettingsPage/CustomRolesPage/CreateEditRolePageView.tsx @@ -2,8 +2,14 @@ import type { Interpolation, Theme } from "@emotion/react"; import Checkbox from "@mui/material/Checkbox"; import FormControlLabel from "@mui/material/FormControlLabel"; import TextField from "@mui/material/TextField"; -import { isApiValidationError } from "api/errors"; -import { RBACResourceActions } from "api/rbacresourcesGenerated"; +import { useFormik } from "formik"; +import { EyeIcon, EyeOffIcon } from "lucide-react"; +import { type ChangeEvent, type FC, useState } from "react"; +import { useNavigate } from "react-router"; +import { getFormHelpers, nameValidator } from "utils/formUtils"; +import * as Yup from "yup"; +import { isApiValidationError } from "#/api/errors"; +import { RBACResourceActions } from "#/api/rbacresourcesGenerated"; import type { AssignableRoles, CustomRoleRequest, @@ -11,13 +17,7 @@ import type { RBACAction, RBACResource, Role, -} from "api/typesGenerated"; -import { useFormik } from "formik"; -import { EyeIcon, EyeOffIcon } from "lucide-react"; -import { type ChangeEvent, type FC, useState } from "react"; -import { useNavigate } from "react-router"; -import { getFormHelpers, nameValidator } from "utils/formUtils"; -import * as Yup from "yup"; +} from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Button } from "#/components/Button/Button"; import { FormFields, FormFooter, VerticalForm } from "#/components/Form/Form"; diff --git a/site/src/pages/OrganizationSettingsPage/CustomRolesPage/CustomRolesPage.tsx b/site/src/pages/OrganizationSettingsPage/CustomRolesPage/CustomRolesPage.tsx index c2f50d0b0c..0d4a522735 100644 --- a/site/src/pages/OrganizationSettingsPage/CustomRolesPage/CustomRolesPage.tsx +++ b/site/src/pages/OrganizationSettingsPage/CustomRolesPage/CustomRolesPage.tsx @@ -1,6 +1,3 @@ -import { getErrorDetail, getErrorMessage } from "api/errors"; -import { deleteOrganizationRole, organizationRoles } from "api/queries/roles"; -import type { Role } from "api/typesGenerated"; import { useFeatureVisibility } from "modules/dashboard/useFeatureVisibility"; import { useOrganizationSettings } from "modules/management/OrganizationSettingsLayout"; import { RequirePermission } from "modules/permissions/RequirePermission"; @@ -9,6 +6,9 @@ import { useMutation, useQuery, useQueryClient } from "react-query"; import { useParams } from "react-router"; import { toast } from "sonner"; import { pageTitle } from "utils/page"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; +import { deleteOrganizationRole, organizationRoles } from "#/api/queries/roles"; +import type { Role } from "#/api/typesGenerated"; import { DeleteDialog } from "#/components/Dialogs/DeleteDialog/DeleteDialog"; import { EmptyState } from "#/components/EmptyState/EmptyState"; import { diff --git a/site/src/pages/OrganizationSettingsPage/CustomRolesPage/CustomRolesPageView.tsx b/site/src/pages/OrganizationSettingsPage/CustomRolesPage/CustomRolesPageView.tsx index 2bb41b72f7..c1d263ca66 100644 --- a/site/src/pages/OrganizationSettingsPage/CustomRolesPage/CustomRolesPageView.tsx +++ b/site/src/pages/OrganizationSettingsPage/CustomRolesPage/CustomRolesPageView.tsx @@ -1,10 +1,10 @@ import type { Interpolation, Theme } from "@emotion/react"; import Skeleton from "@mui/material/Skeleton"; -import type { AssignableRoles, Role } from "api/typesGenerated"; import { EllipsisVertical, PlusIcon } from "lucide-react"; import type { FC } from "react"; import { Link as RouterLink, useNavigate } from "react-router"; import { docs } from "utils/docs"; +import type { AssignableRoles, Role } from "#/api/typesGenerated"; import { Button, Button as ShadcnButton } from "#/components/Button/Button"; import { ChooseOne, Cond } from "#/components/Conditionals/ChooseOne"; import { diff --git a/site/src/pages/OrganizationSettingsPage/CustomRolesPage/PermissionPillsList.tsx b/site/src/pages/OrganizationSettingsPage/CustomRolesPage/PermissionPillsList.tsx index 6349caba98..ba36bd203d 100644 --- a/site/src/pages/OrganizationSettingsPage/CustomRolesPage/PermissionPillsList.tsx +++ b/site/src/pages/OrganizationSettingsPage/CustomRolesPage/PermissionPillsList.tsx @@ -1,7 +1,7 @@ import { type Interpolation, type Theme, useTheme } from "@emotion/react"; import Stack from "@mui/material/Stack"; -import type { Permission } from "api/typesGenerated"; import type { FC } from "react"; +import type { Permission } from "#/api/typesGenerated"; import { Pill } from "#/components/Pill/Pill"; import { Tooltip, diff --git a/site/src/pages/OrganizationSettingsPage/DisableWorkspaceSharingDialog.tsx b/site/src/pages/OrganizationSettingsPage/DisableWorkspaceSharingDialog.tsx index b83f6daa1b..b95b9aea1d 100644 --- a/site/src/pages/OrganizationSettingsPage/DisableWorkspaceSharingDialog.tsx +++ b/site/src/pages/OrganizationSettingsPage/DisableWorkspaceSharingDialog.tsx @@ -1,7 +1,7 @@ -import { API } from "api/api"; -import type { ShareableWorkspaceOwners } from "api/typesGenerated"; import type { FC } from "react"; import { useQuery } from "react-query"; +import { API } from "#/api/api"; +import type { ShareableWorkspaceOwners } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { Dialog, diff --git a/site/src/pages/OrganizationSettingsPage/IdpSyncPage/ExportPolicyButton.tsx b/site/src/pages/OrganizationSettingsPage/IdpSyncPage/ExportPolicyButton.tsx index 26c0fe8ecf..b75165eedd 100644 --- a/site/src/pages/OrganizationSettingsPage/IdpSyncPage/ExportPolicyButton.tsx +++ b/site/src/pages/OrganizationSettingsPage/IdpSyncPage/ExportPolicyButton.tsx @@ -1,13 +1,13 @@ -import { getErrorDetail } from "api/errors"; -import type { - GroupSyncSettings, - Organization, - RoleSyncSettings, -} from "api/typesGenerated"; import { saveAs } from "file-saver"; import { DownloadIcon } from "lucide-react"; import { type FC, useState } from "react"; import { toast } from "sonner"; +import { getErrorDetail } from "#/api/errors"; +import type { + GroupSyncSettings, + Organization, + RoleSyncSettings, +} from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; interface DownloadPolicyButtonProps { diff --git a/site/src/pages/OrganizationSettingsPage/IdpSyncPage/IdpGroupSyncForm.tsx b/site/src/pages/OrganizationSettingsPage/IdpSyncPage/IdpGroupSyncForm.tsx index d859a4f3b4..d40cb2646b 100644 --- a/site/src/pages/OrganizationSettingsPage/IdpSyncPage/IdpGroupSyncForm.tsx +++ b/site/src/pages/OrganizationSettingsPage/IdpSyncPage/IdpGroupSyncForm.tsx @@ -1,8 +1,3 @@ -import type { - Group, - GroupSyncSettings, - Organization, -} from "api/typesGenerated"; import { useFormik } from "formik"; import { Plus, Trash, TriangleAlert } from "lucide-react"; import { isEveryoneGroup } from "modules/groups"; @@ -10,6 +5,11 @@ import { type FC, type KeyboardEventHandler, useId, useState } from "react"; import { docs } from "utils/docs"; import { isUUID } from "utils/uuid"; import * as Yup from "yup"; +import type { + Group, + GroupSyncSettings, + Organization, +} from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { Combobox, diff --git a/site/src/pages/OrganizationSettingsPage/IdpSyncPage/IdpRoleSyncForm.tsx b/site/src/pages/OrganizationSettingsPage/IdpSyncPage/IdpRoleSyncForm.tsx index fd73082cba..71666728f0 100644 --- a/site/src/pages/OrganizationSettingsPage/IdpSyncPage/IdpRoleSyncForm.tsx +++ b/site/src/pages/OrganizationSettingsPage/IdpSyncPage/IdpRoleSyncForm.tsx @@ -1,8 +1,12 @@ -import type { Organization, Role, RoleSyncSettings } from "api/typesGenerated"; import { useFormik } from "formik"; import { Plus, Trash, TriangleAlert } from "lucide-react"; import { type FC, type KeyboardEventHandler, useId, useState } from "react"; import * as Yup from "yup"; +import type { + Organization, + Role, + RoleSyncSettings, +} from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { Combobox, diff --git a/site/src/pages/OrganizationSettingsPage/IdpSyncPage/IdpSyncPage.tsx b/site/src/pages/OrganizationSettingsPage/IdpSyncPage/IdpSyncPage.tsx index aa87603e0d..aff9cc873a 100644 --- a/site/src/pages/OrganizationSettingsPage/IdpSyncPage/IdpSyncPage.tsx +++ b/site/src/pages/OrganizationSettingsPage/IdpSyncPage/IdpSyncPage.tsx @@ -1,13 +1,3 @@ -import { getErrorDetail, getErrorMessage } from "api/errors"; -import { groupsByOrganization } from "api/queries/groups"; -import { - groupIdpSyncSettings, - organizationIdpSyncClaimFieldValues, - patchGroupSyncSettings, - patchRoleSyncSettings, - roleIdpSyncSettings, -} from "api/queries/organizations"; -import { organizationRoles } from "api/queries/roles"; import { useFeatureVisibility } from "modules/dashboard/useFeatureVisibility"; import { useOrganizationSettings } from "modules/management/OrganizationSettingsLayout"; import { RequirePermission } from "modules/permissions/RequirePermission"; @@ -17,6 +7,16 @@ import { useParams, useSearchParams } from "react-router"; import { toast } from "sonner"; import { docs } from "utils/docs"; import { pageTitle } from "utils/page"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; +import { groupsByOrganization } from "#/api/queries/groups"; +import { + groupIdpSyncSettings, + organizationIdpSyncClaimFieldValues, + patchGroupSyncSettings, + patchRoleSyncSettings, + roleIdpSyncSettings, +} from "#/api/queries/organizations"; +import { organizationRoles } from "#/api/queries/roles"; import { ChooseOne, Cond } from "#/components/Conditionals/ChooseOne"; import { EmptyState } from "#/components/EmptyState/EmptyState"; import { Link } from "#/components/Link/Link"; diff --git a/site/src/pages/OrganizationSettingsPage/IdpSyncPage/IdpSyncPageView.tsx b/site/src/pages/OrganizationSettingsPage/IdpSyncPage/IdpSyncPageView.tsx index fc558772c7..2e5218ff8e 100644 --- a/site/src/pages/OrganizationSettingsPage/IdpSyncPage/IdpSyncPageView.tsx +++ b/site/src/pages/OrganizationSettingsPage/IdpSyncPage/IdpSyncPageView.tsx @@ -1,11 +1,11 @@ +import type { FC } from "react"; import type { Group, GroupSyncSettings, Organization, Role, RoleSyncSettings, -} from "api/typesGenerated"; -import type { FC } from "react"; +} from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Loader } from "#/components/Loader/Loader"; import { TabLink, Tabs, TabsList } from "#/components/Tabs/Tabs"; diff --git a/site/src/pages/OrganizationSettingsPage/OrganizationMembersPage.test.tsx b/site/src/pages/OrganizationSettingsPage/OrganizationMembersPage.test.tsx index 6e4ac6533f..e3381dc425 100644 --- a/site/src/pages/OrganizationSettingsPage/OrganizationMembersPage.test.tsx +++ b/site/src/pages/OrganizationSettingsPage/OrganizationMembersPage.test.tsx @@ -12,8 +12,8 @@ import { import { server } from "testHelpers/server"; import { fireEvent, screen, within } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; -import type { SlimRole } from "api/typesGenerated"; import { HttpResponse, http } from "msw"; +import type { SlimRole } from "#/api/typesGenerated"; import OrganizationMembersPage from "./OrganizationMembersPage"; vi.spyOn(console, "error").mockImplementation(() => {}); diff --git a/site/src/pages/OrganizationSettingsPage/OrganizationMembersPage.tsx b/site/src/pages/OrganizationSettingsPage/OrganizationMembersPage.tsx index ade5275cf2..101cd5c6a0 100644 --- a/site/src/pages/OrganizationSettingsPage/OrganizationMembersPage.tsx +++ b/site/src/pages/OrganizationSettingsPage/OrganizationMembersPage.tsx @@ -1,13 +1,3 @@ -import { getErrorMessage } from "api/errors"; -import { groupsByUserIdInOrganization } from "api/queries/groups"; -import { - addOrganizationMember, - paginatedOrganizationMembers, - removeOrganizationMember, - updateOrganizationMemberRoles, -} from "api/queries/organizations"; -import { organizationRoles } from "api/queries/roles"; -import type { OrganizationMemberWithUserData, User } from "api/typesGenerated"; import { useAuthenticated } from "hooks"; import { usePaginatedQuery } from "hooks/usePaginatedQuery"; import { useOrganizationSettings } from "modules/management/OrganizationSettingsLayout"; @@ -17,6 +7,19 @@ import { useMutation, useQuery, useQueryClient } from "react-query"; import { useParams, useSearchParams } from "react-router"; import { toast } from "sonner"; import { pageTitle } from "utils/page"; +import { getErrorMessage } from "#/api/errors"; +import { groupsByUserIdInOrganization } from "#/api/queries/groups"; +import { + addOrganizationMember, + paginatedOrganizationMembers, + removeOrganizationMember, + updateOrganizationMemberRoles, +} from "#/api/queries/organizations"; +import { organizationRoles } from "#/api/queries/roles"; +import type { + OrganizationMemberWithUserData, + User, +} from "#/api/typesGenerated"; import { ConfirmDialog } from "#/components/Dialogs/ConfirmDialog/ConfirmDialog"; import { EmptyState } from "#/components/EmptyState/EmptyState"; import { Stack } from "#/components/Stack/Stack"; diff --git a/site/src/pages/OrganizationSettingsPage/OrganizationMembersPageView.tsx b/site/src/pages/OrganizationSettingsPage/OrganizationMembersPageView.tsx index d2a53fd6b0..4a6d03553f 100644 --- a/site/src/pages/OrganizationSettingsPage/OrganizationMembersPageView.tsx +++ b/site/src/pages/OrganizationSettingsPage/OrganizationMembersPageView.tsx @@ -1,15 +1,15 @@ -import { getErrorDetail, getErrorMessage } from "api/errors"; -import type { - Group, - OrganizationMemberWithUserData, - SlimRole, - User, -} from "api/typesGenerated"; import type { PaginationResultInfo } from "hooks/usePaginatedQuery"; import { EllipsisVertical, TriangleAlert, UserPlusIcon } from "lucide-react"; import { UserGroupsCell } from "pages/UsersPage/UsersTable/UserGroupsCell"; import { type FC, useState } from "react"; import { toast } from "sonner"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; +import type { + Group, + OrganizationMemberWithUserData, + SlimRole, + User, +} from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Avatar } from "#/components/Avatar/Avatar"; import { AvatarData } from "#/components/Avatar/AvatarData"; diff --git a/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerJobsPage/CancelJobButton.tsx b/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerJobsPage/CancelJobButton.tsx index f6706b7907..d5621851c5 100644 --- a/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerJobsPage/CancelJobButton.tsx +++ b/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerJobsPage/CancelJobButton.tsx @@ -1,6 +1,6 @@ -import type { ProvisionerJob } from "api/typesGenerated"; import { BanIcon } from "lucide-react"; import { type FC, useState } from "react"; +import type { ProvisionerJob } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { Tooltip, diff --git a/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerJobsPage/CancelJobConfirmationDialog.stories.tsx b/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerJobsPage/CancelJobConfirmationDialog.stories.tsx index dac7f9c04a..4f2614633f 100644 --- a/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerJobsPage/CancelJobConfirmationDialog.stories.tsx +++ b/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerJobsPage/CancelJobConfirmationDialog.stories.tsx @@ -1,8 +1,8 @@ import { MockProvisionerJob } from "testHelpers/entities"; import { withToaster } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import type { Response } from "api/typesGenerated"; import { expect, fn, userEvent, waitFor, within } from "storybook/test"; +import type { Response } from "#/api/typesGenerated"; import { CancelJobConfirmationDialog } from "./CancelJobConfirmationDialog"; const meta: Meta = { diff --git a/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerJobsPage/CancelJobConfirmationDialog.tsx b/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerJobsPage/CancelJobConfirmationDialog.tsx index 992a7b925c..09a5f3e958 100644 --- a/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerJobsPage/CancelJobConfirmationDialog.tsx +++ b/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerJobsPage/CancelJobConfirmationDialog.tsx @@ -1,13 +1,13 @@ -import { API } from "api/api"; -import { getErrorDetail } from "api/errors"; -import { - getProvisionerDaemonsKey, - provisionerJobsQueryKey, -} from "api/queries/organizations"; -import type { ProvisionerJob } from "api/typesGenerated"; import type { FC } from "react"; import { useMutation, useQueryClient } from "react-query"; import { toast } from "sonner"; +import { API } from "#/api/api"; +import { getErrorDetail } from "#/api/errors"; +import { + getProvisionerDaemonsKey, + provisionerJobsQueryKey, +} from "#/api/queries/organizations"; +import type { ProvisionerJob } from "#/api/typesGenerated"; import { ConfirmDialog } from "#/components/Dialogs/ConfirmDialog/ConfirmDialog"; type CancelJobConfirmationDialogProps = { diff --git a/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerJobsPage/JobRow.tsx b/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerJobsPage/JobRow.tsx index 6874c1e42b..faadc3d9da 100644 --- a/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerJobsPage/JobRow.tsx +++ b/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerJobsPage/JobRow.tsx @@ -1,4 +1,3 @@ -import type { ProvisionerJob } from "api/typesGenerated"; import { ChevronRightIcon, TriangleAlertIcon } from "lucide-react"; import { JobStatusIndicator } from "modules/provisioners/JobStatusIndicator"; import { @@ -10,6 +9,7 @@ import { type FC, useState } from "react"; import { Link as RouterLink } from "react-router"; import { cn } from "utils/cn"; import { relativeTime } from "utils/time"; +import type { ProvisionerJob } from "#/api/typesGenerated"; import { Avatar } from "#/components/Avatar/Avatar"; import { Badge } from "#/components/Badge/Badge"; import { Button } from "#/components/Button/Button"; diff --git a/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerJobsPage/OrganizationProvisionerJobsPage.tsx b/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerJobsPage/OrganizationProvisionerJobsPage.tsx index cbc36203ca..f55ff8d284 100644 --- a/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerJobsPage/OrganizationProvisionerJobsPage.tsx +++ b/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerJobsPage/OrganizationProvisionerJobsPage.tsx @@ -1,8 +1,8 @@ -import { provisionerJobs } from "api/queries/organizations"; import { useOrganizationSettings } from "modules/management/OrganizationSettingsLayout"; import type { FC } from "react"; import { useQuery } from "react-query"; import { useSearchParams } from "react-router"; +import { provisionerJobs } from "#/api/queries/organizations"; import OrganizationProvisionerJobsPageView from "./OrganizationProvisionerJobsPageView"; const OrganizationProvisionerJobsPage: FC = () => { diff --git a/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerJobsPage/OrganizationProvisionerJobsPageView.stories.tsx b/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerJobsPage/OrganizationProvisionerJobsPageView.stories.tsx index c47096be87..0ed64fd655 100644 --- a/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerJobsPage/OrganizationProvisionerJobsPageView.stories.tsx +++ b/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerJobsPage/OrganizationProvisionerJobsPageView.stories.tsx @@ -1,9 +1,9 @@ import { MockOrganization, MockProvisionerJob } from "testHelpers/entities"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import type { ProvisionerJob } from "api/typesGenerated"; import { useState } from "react"; import { expect, fn, userEvent, waitFor, within } from "storybook/test"; import { daysAgo } from "utils/time"; +import type { ProvisionerJob } from "#/api/typesGenerated"; import OrganizationProvisionerJobsPageView from "./OrganizationProvisionerJobsPageView"; const MockProvisionerJobs: ProvisionerJob[] = Array.from( diff --git a/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerJobsPage/OrganizationProvisionerJobsPageView.tsx b/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerJobsPage/OrganizationProvisionerJobsPageView.tsx index 73f201e5b8..0898781d7c 100644 --- a/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerJobsPage/OrganizationProvisionerJobsPageView.tsx +++ b/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerJobsPage/OrganizationProvisionerJobsPageView.tsx @@ -1,12 +1,12 @@ -import type { - Organization, - ProvisionerJob, - ProvisionerJobStatus, -} from "api/typesGenerated"; import { XIcon } from "lucide-react"; import type { FC } from "react"; import { docs } from "utils/docs"; import { pageTitle } from "utils/page"; +import type { + Organization, + ProvisionerJob, + ProvisionerJobStatus, +} from "#/api/typesGenerated"; import { Badge } from "#/components/Badge/Badge"; import { Button } from "#/components/Button/Button"; import { EmptyState } from "#/components/EmptyState/EmptyState"; diff --git a/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerKeysPage/OrganizationProvisionerKeysPage.tsx b/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerKeysPage/OrganizationProvisionerKeysPage.tsx index 107fba7a83..925ef3900b 100644 --- a/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerKeysPage/OrganizationProvisionerKeysPage.tsx +++ b/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerKeysPage/OrganizationProvisionerKeysPage.tsx @@ -1,4 +1,3 @@ -import { provisionerDaemonGroups } from "api/queries/organizations"; import { useDashboard } from "modules/dashboard/useDashboard"; import { useOrganizationSettings } from "modules/management/OrganizationSettingsLayout"; import { RequirePermission } from "modules/permissions/RequirePermission"; @@ -6,6 +5,7 @@ import type { FC } from "react"; import { useQuery } from "react-query"; import { useParams } from "react-router"; import { pageTitle } from "utils/page"; +import { provisionerDaemonGroups } from "#/api/queries/organizations"; import { EmptyState } from "#/components/EmptyState/EmptyState"; import { OrganizationProvisionerKeysPageView } from "./OrganizationProvisionerKeysPageView"; diff --git a/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerKeysPage/OrganizationProvisionerKeysPageView.stories.tsx b/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerKeysPage/OrganizationProvisionerKeysPageView.stories.tsx index df5548511b..9c0b90389a 100644 --- a/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerKeysPage/OrganizationProvisionerKeysPageView.stories.tsx +++ b/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerKeysPage/OrganizationProvisionerKeysPageView.stories.tsx @@ -9,7 +9,7 @@ import { ProvisionerKeyIDBuiltIn, ProvisionerKeyIDPSK, ProvisionerKeyIDUserAuth, -} from "api/typesGenerated"; +} from "#/api/typesGenerated"; import { OrganizationProvisionerKeysPageView } from "./OrganizationProvisionerKeysPageView"; const mockProvisionerKeyDaemons: ProvisionerKeyDaemons[] = [ diff --git a/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerKeysPage/OrganizationProvisionerKeysPageView.tsx b/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerKeysPage/OrganizationProvisionerKeysPageView.tsx index aee329a1f7..188d3996b3 100644 --- a/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerKeysPage/OrganizationProvisionerKeysPageView.tsx +++ b/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerKeysPage/OrganizationProvisionerKeysPageView.tsx @@ -1,11 +1,11 @@ +import type { FC } from "react"; +import { docs } from "utils/docs"; import { type ProvisionerKeyDaemons, ProvisionerKeyIDBuiltIn, ProvisionerKeyIDPSK, ProvisionerKeyIDUserAuth, -} from "api/typesGenerated"; -import type { FC } from "react"; -import { docs } from "utils/docs"; +} from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { EmptyState } from "#/components/EmptyState/EmptyState"; import { Link } from "#/components/Link/Link"; diff --git a/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerKeysPage/ProvisionerKeyRow.tsx b/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerKeysPage/ProvisionerKeyRow.tsx index ef3dd4a2b5..a6d9a64aad 100644 --- a/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerKeysPage/ProvisionerKeyRow.tsx +++ b/site/src/pages/OrganizationSettingsPage/OrganizationProvisionerKeysPage/ProvisionerKeyRow.tsx @@ -1,4 +1,3 @@ -import type { ProvisionerDaemon, ProvisionerKey } from "api/typesGenerated"; import { ChevronRightIcon } from "lucide-react"; import { ProvisionerTag, @@ -9,6 +8,7 @@ import { type FC, useState } from "react"; import { Link as RouterLink } from "react-router"; import { cn } from "utils/cn"; import { relativeTime } from "utils/time"; +import type { ProvisionerDaemon, ProvisionerKey } from "#/api/typesGenerated"; import { Badge } from "#/components/Badge/Badge"; import { Button } from "#/components/Button/Button"; import { TableCell, TableRow } from "#/components/Table/Table"; diff --git a/site/src/pages/OrganizationSettingsPage/OrganizationProvisionersPage/OrganizationProvisionersPage.tsx b/site/src/pages/OrganizationSettingsPage/OrganizationProvisionersPage/OrganizationProvisionersPage.tsx index a43f0960d5..ac5408a295 100644 --- a/site/src/pages/OrganizationSettingsPage/OrganizationProvisionersPage/OrganizationProvisionersPage.tsx +++ b/site/src/pages/OrganizationSettingsPage/OrganizationProvisionersPage/OrganizationProvisionersPage.tsx @@ -1,5 +1,3 @@ -import { buildInfo } from "api/queries/buildInfo"; -import { provisionerDaemons } from "api/queries/organizations"; import { useEmbeddedMetadata } from "hooks/useEmbeddedMetadata"; import { useDashboard } from "modules/dashboard/useDashboard"; import { useOrganizationSettings } from "modules/management/OrganizationSettingsLayout"; @@ -8,6 +6,8 @@ import type { FC } from "react"; import { useQuery } from "react-query"; import { useParams, useSearchParams } from "react-router"; import { pageTitle } from "utils/page"; +import { buildInfo } from "#/api/queries/buildInfo"; +import { provisionerDaemons } from "#/api/queries/organizations"; import { EmptyState } from "#/components/EmptyState/EmptyState"; import { OrganizationProvisionersPageView } from "./OrganizationProvisionersPageView"; diff --git a/site/src/pages/OrganizationSettingsPage/OrganizationProvisionersPage/OrganizationProvisionersPageView.tsx b/site/src/pages/OrganizationSettingsPage/OrganizationProvisionersPage/OrganizationProvisionersPageView.tsx index 74c902e5d8..a3cfb693a8 100644 --- a/site/src/pages/OrganizationSettingsPage/OrganizationProvisionersPage/OrganizationProvisionersPageView.tsx +++ b/site/src/pages/OrganizationSettingsPage/OrganizationProvisionersPage/OrganizationProvisionersPageView.tsx @@ -1,7 +1,7 @@ -import type { ProvisionerDaemon } from "api/typesGenerated"; import { XIcon } from "lucide-react"; import type { FC } from "react"; import { docs } from "utils/docs"; +import type { ProvisionerDaemon } from "#/api/typesGenerated"; import { Badge } from "#/components/Badge/Badge"; import { Button } from "#/components/Button/Button"; import { Checkbox } from "#/components/Checkbox/Checkbox"; diff --git a/site/src/pages/OrganizationSettingsPage/OrganizationProvisionersPage/ProvisionerKey.stories.tsx b/site/src/pages/OrganizationSettingsPage/OrganizationProvisionersPage/ProvisionerKey.stories.tsx index 5555d1048c..7af000a58c 100644 --- a/site/src/pages/OrganizationSettingsPage/OrganizationProvisionersPage/ProvisionerKey.stories.tsx +++ b/site/src/pages/OrganizationSettingsPage/OrganizationProvisionersPage/ProvisionerKey.stories.tsx @@ -1,10 +1,10 @@ import type { Meta, StoryObj } from "@storybook/react-vite"; +import { userEvent } from "storybook/test"; import { ProvisionerKeyNameBuiltIn, ProvisionerKeyNamePSK, ProvisionerKeyNameUserAuth, -} from "api/typesGenerated"; -import { userEvent } from "storybook/test"; +} from "#/api/typesGenerated"; import { ProvisionerKey } from "./ProvisionerKey"; const meta: Meta = { diff --git a/site/src/pages/OrganizationSettingsPage/OrganizationProvisionersPage/ProvisionerKey.tsx b/site/src/pages/OrganizationSettingsPage/OrganizationProvisionersPage/ProvisionerKey.tsx index a7d078e970..0af7ce8320 100644 --- a/site/src/pages/OrganizationSettingsPage/OrganizationProvisionersPage/ProvisionerKey.tsx +++ b/site/src/pages/OrganizationSettingsPage/OrganizationProvisionersPage/ProvisionerKey.tsx @@ -1,10 +1,10 @@ +import { InfoIcon } from "lucide-react"; +import type { FC, ReactNode } from "react"; import { ProvisionerKeyNameBuiltIn, ProvisionerKeyNamePSK, ProvisionerKeyNameUserAuth, -} from "api/typesGenerated"; -import { InfoIcon } from "lucide-react"; -import type { FC, ReactNode } from "react"; +} from "#/api/typesGenerated"; import { Tooltip, TooltipContent, diff --git a/site/src/pages/OrganizationSettingsPage/OrganizationProvisionersPage/ProvisionerRow.tsx b/site/src/pages/OrganizationSettingsPage/OrganizationProvisionersPage/ProvisionerRow.tsx index a4ca93f96e..e27f5aea72 100644 --- a/site/src/pages/OrganizationSettingsPage/OrganizationProvisionersPage/ProvisionerRow.tsx +++ b/site/src/pages/OrganizationSettingsPage/OrganizationProvisionersPage/ProvisionerRow.tsx @@ -1,7 +1,3 @@ -import type { - ProvisionerDaemon, - ProvisionerDaemonStatus, -} from "api/typesGenerated"; import { ChevronRightIcon } from "lucide-react"; import { JobStatusIndicator } from "modules/provisioners/JobStatusIndicator"; import { @@ -14,6 +10,10 @@ import { type FC, useState } from "react"; import { Link as RouterLink } from "react-router"; import { cn } from "utils/cn"; import { relativeTime } from "utils/time"; +import type { + ProvisionerDaemon, + ProvisionerDaemonStatus, +} from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { StatusIndicator, diff --git a/site/src/pages/OrganizationSettingsPage/OrganizationSettingsPage.tsx b/site/src/pages/OrganizationSettingsPage/OrganizationSettingsPage.tsx index 359f649405..1fde7424ee 100644 --- a/site/src/pages/OrganizationSettingsPage/OrganizationSettingsPage.tsx +++ b/site/src/pages/OrganizationSettingsPage/OrganizationSettingsPage.tsx @@ -1,11 +1,3 @@ -import { getErrorDetail, getErrorMessage } from "api/errors"; -import { - deleteOrganization, - patchWorkspaceSharingSettings, - updateOrganization, - workspaceSharingSettings, -} from "api/queries/organizations"; -import type { ShareableWorkspaceOwners } from "api/typesGenerated"; import { useOrganizationSettings } from "modules/management/OrganizationSettingsLayout"; import { RequirePermission } from "modules/permissions/RequirePermission"; import type { FC } from "react"; @@ -13,6 +5,14 @@ import { useMutation, useQuery, useQueryClient } from "react-query"; import { useNavigate } from "react-router"; import { toast } from "sonner"; import { pageTitle } from "utils/page"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; +import { + deleteOrganization, + patchWorkspaceSharingSettings, + updateOrganization, + workspaceSharingSettings, +} from "#/api/queries/organizations"; +import type { ShareableWorkspaceOwners } from "#/api/typesGenerated"; import { EmptyState } from "#/components/EmptyState/EmptyState"; import { OrganizationSettingsPageView } from "./OrganizationSettingsPageView"; diff --git a/site/src/pages/OrganizationSettingsPage/OrganizationSettingsPageView.tsx b/site/src/pages/OrganizationSettingsPage/OrganizationSettingsPageView.tsx index 8d712948c1..9eb87aa8a9 100644 --- a/site/src/pages/OrganizationSettingsPage/OrganizationSettingsPageView.tsx +++ b/site/src/pages/OrganizationSettingsPage/OrganizationSettingsPageView.tsx @@ -1,10 +1,4 @@ import TextField from "@mui/material/TextField"; -import { isApiValidationError } from "api/errors"; -import type { - Organization, - ShareableWorkspaceOwners, - UpdateOrganizationRequest, -} from "api/typesGenerated"; import { useFormik } from "formik"; import { type FC, useState } from "react"; import { @@ -14,6 +8,12 @@ import { onChangeTrimmed, } from "utils/formUtils"; import * as Yup from "yup"; +import { isApiValidationError } from "#/api/errors"; +import type { + Organization, + ShareableWorkspaceOwners, + UpdateOrganizationRequest, +} from "#/api/typesGenerated"; import { Alert, AlertTitle } from "#/components/Alert/Alert"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Button } from "#/components/Button/Button"; diff --git a/site/src/pages/OrganizationSettingsPage/UserTable/EditRolesButton.tsx b/site/src/pages/OrganizationSettingsPage/UserTable/EditRolesButton.tsx index 3aeb278987..4bad9461dd 100644 --- a/site/src/pages/OrganizationSettingsPage/UserTable/EditRolesButton.tsx +++ b/site/src/pages/OrganizationSettingsPage/UserTable/EditRolesButton.tsx @@ -1,7 +1,7 @@ import Checkbox from "@mui/material/Checkbox"; -import type { SlimRole } from "api/typesGenerated"; import { UserIcon } from "lucide-react"; import { type FC, useEffect, useState } from "react"; +import type { SlimRole } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { CollapsibleSummary } from "#/components/CollapsibleSummary/CollapsibleSummary"; import { diff --git a/site/src/pages/OrganizationSettingsPage/UserTable/UserRoleCell.tsx b/site/src/pages/OrganizationSettingsPage/UserTable/UserRoleCell.tsx index 860dcbe80e..ff5b5be4db 100644 --- a/site/src/pages/OrganizationSettingsPage/UserTable/UserRoleCell.tsx +++ b/site/src/pages/OrganizationSettingsPage/UserTable/UserRoleCell.tsx @@ -14,8 +14,8 @@ * users like that, though, know that it will be painful */ import { type Interpolation, type Theme, useTheme } from "@emotion/react"; -import type { LoginType, SlimRole } from "api/typesGenerated"; import type { FC } from "react"; +import type { LoginType, SlimRole } from "#/api/typesGenerated"; import { Pill } from "#/components/Pill/Pill"; import { TableCell } from "#/components/Table/Table"; import { diff --git a/site/src/pages/ResetPasswordPage/ChangePasswordPage.stories.tsx b/site/src/pages/ResetPasswordPage/ChangePasswordPage.stories.tsx index cd8fedfdd2..1234fdba89 100644 --- a/site/src/pages/ResetPasswordPage/ChangePasswordPage.stories.tsx +++ b/site/src/pages/ResetPasswordPage/ChangePasswordPage.stories.tsx @@ -1,8 +1,8 @@ import { mockApiError } from "testHelpers/entities"; import { withToaster } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { API } from "api/api"; import { spyOn, userEvent, within } from "storybook/test"; +import { API } from "#/api/api"; import ChangePasswordPage from "./ChangePasswordPage"; const meta: Meta = { diff --git a/site/src/pages/ResetPasswordPage/ChangePasswordPage.tsx b/site/src/pages/ResetPasswordPage/ChangePasswordPage.tsx index ccf90ae497..ad6150380c 100644 --- a/site/src/pages/ResetPasswordPage/ChangePasswordPage.tsx +++ b/site/src/pages/ResetPasswordPage/ChangePasswordPage.tsx @@ -1,5 +1,3 @@ -import { isApiValidationError } from "api/errors"; -import { changePasswordWithOTP } from "api/queries/users"; import { useFormik } from "formik"; import type { FC } from "react"; import { useMutation } from "react-query"; @@ -9,6 +7,8 @@ import { getApplicationName } from "utils/appearance"; import { getFormHelpers } from "utils/formUtils"; import { pageTitle } from "utils/page"; import * as yup from "yup"; +import { isApiValidationError } from "#/api/errors"; +import { changePasswordWithOTP } from "#/api/queries/users"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Button } from "#/components/Button/Button"; import { CustomLogo } from "#/components/CustomLogo/CustomLogo"; diff --git a/site/src/pages/ResetPasswordPage/RequestOTPPage.stories.tsx b/site/src/pages/ResetPasswordPage/RequestOTPPage.stories.tsx index 93bcb1ce90..2261c79633 100644 --- a/site/src/pages/ResetPasswordPage/RequestOTPPage.stories.tsx +++ b/site/src/pages/ResetPasswordPage/RequestOTPPage.stories.tsx @@ -1,8 +1,8 @@ import { mockApiError } from "testHelpers/entities"; import { withToaster } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { API } from "api/api"; import { spyOn, userEvent, within } from "storybook/test"; +import { API } from "#/api/api"; import RequestOTPPage from "./RequestOTPPage"; const meta: Meta = { diff --git a/site/src/pages/ResetPasswordPage/RequestOTPPage.tsx b/site/src/pages/ResetPasswordPage/RequestOTPPage.tsx index 48c199b6ab..dc97661d8b 100644 --- a/site/src/pages/ResetPasswordPage/RequestOTPPage.tsx +++ b/site/src/pages/ResetPasswordPage/RequestOTPPage.tsx @@ -1,4 +1,3 @@ -import { requestOneTimePassword } from "api/queries/users"; import { useFormik } from "formik"; import type { FC } from "react"; import { useMutation } from "react-query"; @@ -7,6 +6,7 @@ import { getApplicationName } from "utils/appearance"; import { getFormHelpers, onChangeTrimmed } from "utils/formUtils"; import { pageTitle } from "utils/page"; import * as Yup from "yup"; +import { requestOneTimePassword } from "#/api/queries/users"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Button } from "#/components/Button/Button"; import { CustomLogo } from "#/components/CustomLogo/CustomLogo"; diff --git a/site/src/pages/SetupPage/SetupPage.test.tsx b/site/src/pages/SetupPage/SetupPage.test.tsx index 802171df37..91f4d0b915 100644 --- a/site/src/pages/SetupPage/SetupPage.test.tsx +++ b/site/src/pages/SetupPage/SetupPage.test.tsx @@ -6,9 +6,9 @@ import { import { server } from "testHelpers/server"; import { screen, waitFor } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; -import type { Response, User } from "api/typesGenerated"; import { HttpResponse, http } from "msw"; import { createMemoryRouter } from "react-router"; +import type { Response, User } from "#/api/typesGenerated"; import { SetupPage } from "./SetupPage"; import { Language as PageViewLanguage } from "./SetupPageView"; diff --git a/site/src/pages/SetupPage/SetupPage.tsx b/site/src/pages/SetupPage/SetupPage.tsx index 22a19dc6b9..f57bc1e38a 100644 --- a/site/src/pages/SetupPage/SetupPage.tsx +++ b/site/src/pages/SetupPage/SetupPage.tsx @@ -1,5 +1,3 @@ -import { buildInfo } from "api/queries/buildInfo"; -import { authMethods, createFirstUser } from "api/queries/users"; import { useAuthContext } from "contexts/auth/AuthProvider"; import { useEmbeddedMetadata } from "hooks/useEmbeddedMetadata"; import { type FC, useEffect, useRef } from "react"; @@ -7,6 +5,8 @@ import { useMutation, useQuery } from "react-query"; import { Navigate } from "react-router"; import { pageTitle } from "utils/page"; import { sendDeploymentEvent } from "utils/telemetry"; +import { buildInfo } from "#/api/queries/buildInfo"; +import { authMethods, createFirstUser } from "#/api/queries/users"; import { Loader } from "#/components/Loader/Loader"; import { SetupPageView } from "./SetupPageView"; diff --git a/site/src/pages/SetupPage/SetupPageView.tsx b/site/src/pages/SetupPage/SetupPageView.tsx index b98b74088c..e6f8ded129 100644 --- a/site/src/pages/SetupPage/SetupPageView.tsx +++ b/site/src/pages/SetupPage/SetupPageView.tsx @@ -3,8 +3,6 @@ import Checkbox from "@mui/material/Checkbox"; import Link from "@mui/material/Link"; import MenuItem from "@mui/material/MenuItem"; import TextField from "@mui/material/TextField"; -import { countries } from "api/countriesGenerated"; -import type * as TypesGen from "api/typesGenerated"; import { isAxiosError } from "axios"; import { type FormikContextType, useFormik } from "formik"; import type { ChangeEvent, FC } from "react"; @@ -14,6 +12,8 @@ import { onChangeTrimmed, } from "utils/formUtils"; import * as Yup from "yup"; +import { countries } from "#/api/countriesGenerated"; +import type * as TypesGen from "#/api/typesGenerated"; import { Alert, AlertDescription, AlertTitle } from "#/components/Alert/Alert"; import { Button } from "#/components/Button/Button"; import { ExternalImage } from "#/components/ExternalImage/ExternalImage"; diff --git a/site/src/pages/StarterTemplatePage/StarterTemplatePage.tsx b/site/src/pages/StarterTemplatePage/StarterTemplatePage.tsx index 3a16bbf1c5..0a16ac1d7f 100644 --- a/site/src/pages/StarterTemplatePage/StarterTemplatePage.tsx +++ b/site/src/pages/StarterTemplatePage/StarterTemplatePage.tsx @@ -1,8 +1,8 @@ -import { templateExamples } from "api/queries/templates"; import type { FC } from "react"; import { useQuery } from "react-query"; import { useParams } from "react-router"; import { pageTitle } from "utils/page"; +import { templateExamples } from "#/api/queries/templates"; import { StarterTemplatePageView } from "./StarterTemplatePageView"; const StarterTemplatePage: FC = () => { diff --git a/site/src/pages/StarterTemplatePage/StarterTemplatePageView.tsx b/site/src/pages/StarterTemplatePage/StarterTemplatePageView.tsx index f0c01b33a5..6125777246 100644 --- a/site/src/pages/StarterTemplatePage/StarterTemplatePageView.tsx +++ b/site/src/pages/StarterTemplatePage/StarterTemplatePageView.tsx @@ -1,8 +1,8 @@ import { useTheme } from "@emotion/react"; -import type { TemplateExample } from "api/typesGenerated"; import { ExternalLinkIcon, PlusIcon } from "lucide-react"; import type { FC } from "react"; import { Link } from "react-router"; +import type { TemplateExample } from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Button } from "#/components/Button/Button"; import { ExternalImage } from "#/components/ExternalImage/ExternalImage"; diff --git a/site/src/pages/TaskPage/FollowUpDialog.tsx b/site/src/pages/TaskPage/FollowUpDialog.tsx index 0bc94927e1..0a6cc89031 100644 --- a/site/src/pages/TaskPage/FollowUpDialog.tsx +++ b/site/src/pages/TaskPage/FollowUpDialog.tsx @@ -1,7 +1,7 @@ -import type { Task } from "api/typesGenerated"; import { useFormik } from "formik"; import type { FC } from "react"; import { useId } from "react"; +import type { Task } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { Dialog, diff --git a/site/src/pages/TaskPage/ModifyPromptDialog.stories.tsx b/site/src/pages/TaskPage/ModifyPromptDialog.stories.tsx index 9b528219a6..f12118eb28 100644 --- a/site/src/pages/TaskPage/ModifyPromptDialog.stories.tsx +++ b/site/src/pages/TaskPage/ModifyPromptDialog.stories.tsx @@ -4,10 +4,10 @@ import { mockApiError, } from "testHelpers/entities"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { API } from "api/api"; -import { workspaceBuildParametersKey } from "api/queries/workspaceBuilds"; -import type { Workspace, WorkspaceBuildParameter } from "api/typesGenerated"; import { expect, spyOn, userEvent, waitFor, within } from "storybook/test"; +import { API } from "#/api/api"; +import { workspaceBuildParametersKey } from "#/api/queries/workspaceBuilds"; +import type { Workspace, WorkspaceBuildParameter } from "#/api/typesGenerated"; import { ModifyPromptDialog } from "./ModifyPromptDialog"; const mockTaskWorkspaceStarting: Workspace = { diff --git a/site/src/pages/TaskPage/ModifyPromptDialog.tsx b/site/src/pages/TaskPage/ModifyPromptDialog.tsx index 985ef5bc30..734bd81e37 100644 --- a/site/src/pages/TaskPage/ModifyPromptDialog.tsx +++ b/site/src/pages/TaskPage/ModifyPromptDialog.tsx @@ -1,11 +1,11 @@ -import { API } from "api/api"; -import { workspaceBuildParameters } from "api/queries/workspaceBuilds"; -import { workspaceByOwnerAndNameKey } from "api/queries/workspaces"; -import type { Task, Workspace } from "api/typesGenerated"; import { useFormik } from "formik"; import type { FC } from "react"; import { useId } from "react"; import { useMutation, useQuery, useQueryClient } from "react-query"; +import { API } from "#/api/api"; +import { workspaceBuildParameters } from "#/api/queries/workspaceBuilds"; +import { workspaceByOwnerAndNameKey } from "#/api/queries/workspaces"; +import type { Task, Workspace } from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Button } from "#/components/Button/Button"; import { diff --git a/site/src/pages/TaskPage/TaskAppIframe.tsx b/site/src/pages/TaskPage/TaskAppIframe.tsx index d6870b91bd..18bc4191ed 100644 --- a/site/src/pages/TaskPage/TaskAppIframe.tsx +++ b/site/src/pages/TaskPage/TaskAppIframe.tsx @@ -1,4 +1,3 @@ -import type { Workspace } from "api/typesGenerated"; import { useProxy } from "contexts/ProxyContext"; import { EllipsisVertical, ExternalLinkIcon, HouseIcon } from "lucide-react"; import { useAppLink } from "modules/apps/useAppLink"; @@ -6,6 +5,7 @@ import type { WorkspaceAppWithAgent } from "modules/tasks/apps"; import { type FC, type HTMLProps, useRef } from "react"; import { Link as RouterLink } from "react-router"; import { cn } from "utils/cn"; +import type { Workspace } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { DropdownMenu, diff --git a/site/src/pages/TaskPage/TaskApps.stories.tsx b/site/src/pages/TaskPage/TaskApps.stories.tsx index dcce3f5949..de484b9130 100644 --- a/site/src/pages/TaskPage/TaskApps.stories.tsx +++ b/site/src/pages/TaskPage/TaskApps.stories.tsx @@ -9,9 +9,9 @@ import { } from "testHelpers/entities"; import { withAuthProvider, withProxyProvider } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import type { Task, Workspace, WorkspaceApp } from "api/typesGenerated"; import { getPreferredProxy } from "contexts/ProxyContext"; import kebabCase from "lodash/kebabCase"; +import type { Task, Workspace, WorkspaceApp } from "#/api/typesGenerated"; import { TaskApps } from "./TaskApps"; const mockExternalApp: WorkspaceApp = { diff --git a/site/src/pages/TaskPage/TaskApps.tsx b/site/src/pages/TaskPage/TaskApps.tsx index 589001ffd1..80af5053a2 100644 --- a/site/src/pages/TaskPage/TaskApps.tsx +++ b/site/src/pages/TaskPage/TaskApps.tsx @@ -1,4 +1,3 @@ -import type { Task, Workspace } from "api/typesGenerated"; import { ChevronDownIcon, LayoutGridIcon, TerminalIcon } from "lucide-react"; import { getTerminalHref } from "modules/apps/apps"; import { useAppLink } from "modules/apps/useAppLink"; @@ -10,6 +9,7 @@ import { type FC, useState } from "react"; import { type LinkProps, Link as RouterLink } from "react-router"; import { cn } from "utils/cn"; import { docs } from "utils/docs"; +import type { Task, Workspace } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { DropdownMenu, diff --git a/site/src/pages/TaskPage/TaskPage.stories.tsx b/site/src/pages/TaskPage/TaskPage.stories.tsx index 5ecf06fdeb..6d9a9beede 100644 --- a/site/src/pages/TaskPage/TaskPage.stories.tsx +++ b/site/src/pages/TaskPage/TaskPage.stories.tsx @@ -30,14 +30,6 @@ import { withWebSocket, } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { API } from "api/api"; -import { taskLogsKey } from "api/queries/tasks"; -import type { - Task, - TaskLogsResponse, - Workspace, - WorkspaceApp, -} from "api/typesGenerated"; import { expect, screen, @@ -47,6 +39,14 @@ import { within, } from "storybook/test"; import { reactRouterParameters } from "storybook-addon-remix-react-router"; +import { API } from "#/api/api"; +import { taskLogsKey } from "#/api/queries/tasks"; +import type { + Task, + TaskLogsResponse, + Workspace, + WorkspaceApp, +} from "#/api/typesGenerated"; import TaskPage from "./TaskPage"; const MockClaudeCodeApp: WorkspaceApp = { diff --git a/site/src/pages/TaskPage/TaskPage.tsx b/site/src/pages/TaskPage/TaskPage.tsx index 7f287f344b..04c757a532 100644 --- a/site/src/pages/TaskPage/TaskPage.tsx +++ b/site/src/pages/TaskPage/TaskPage.tsx @@ -1,19 +1,3 @@ -import { API } from "api/api"; -import { getErrorDetail, getErrorMessage, isApiError } from "api/errors"; -import { pauseTask, resumeTask, taskLogs } from "api/queries/tasks"; -import { template as templateQueryOptions } from "api/queries/templates"; -import { - workspaceByOwnerAndName, - workspaceByOwnerAndNameKey, - workspacePermissions, -} from "api/queries/workspaces"; -import type { - Task, - TaskLogEntry, - Workspace, - WorkspaceAgent, - WorkspaceStatus, -} from "api/typesGenerated"; import isChromatic from "chromatic/isChromatic"; import { useWorkspaceBuildLogs } from "hooks/useWorkspaceBuildLogs"; import { @@ -48,6 +32,22 @@ import { toast } from "sonner"; import { cn } from "utils/cn"; import { pageTitle } from "utils/page"; import { relativeTime } from "utils/time"; +import { API } from "#/api/api"; +import { getErrorDetail, getErrorMessage, isApiError } from "#/api/errors"; +import { pauseTask, resumeTask, taskLogs } from "#/api/queries/tasks"; +import { template as templateQueryOptions } from "#/api/queries/templates"; +import { + workspaceByOwnerAndName, + workspaceByOwnerAndNameKey, + workspacePermissions, +} from "#/api/queries/workspaces"; +import type { + Task, + TaskLogEntry, + Workspace, + WorkspaceAgent, + WorkspaceStatus, +} from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { InfoTooltip } from "#/components/InfoTooltip/InfoTooltip"; import { Loader } from "#/components/Loader/Loader"; diff --git a/site/src/pages/TaskPage/TaskStartupWarningButton.tsx b/site/src/pages/TaskPage/TaskStartupWarningButton.tsx index f212211858..c8de6f141b 100644 --- a/site/src/pages/TaskPage/TaskStartupWarningButton.tsx +++ b/site/src/pages/TaskPage/TaskStartupWarningButton.tsx @@ -1,7 +1,7 @@ -import type { WorkspaceAgentLifecycle } from "api/typesGenerated"; import { TriangleAlertIcon } from "lucide-react"; import type { FC } from "react"; import { docs } from "utils/docs"; +import type { WorkspaceAgentLifecycle } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { Link } from "#/components/Link/Link"; import { diff --git a/site/src/pages/TaskPage/TaskTopbar.tsx b/site/src/pages/TaskPage/TaskTopbar.tsx index d5ca87a681..81655dc0c7 100644 --- a/site/src/pages/TaskPage/TaskTopbar.tsx +++ b/site/src/pages/TaskPage/TaskTopbar.tsx @@ -1,4 +1,3 @@ -import type { Task, Workspace } from "api/typesGenerated"; import { useClipboard } from "hooks"; import { ArrowLeftIcon, @@ -9,6 +8,7 @@ import { } from "lucide-react"; import type { FC } from "react"; import { Link as RouterLink } from "react-router"; +import type { Task, Workspace } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { Popover, diff --git a/site/src/pages/TasksPage/BatchDeleteConfirmation.tsx b/site/src/pages/TasksPage/BatchDeleteConfirmation.tsx index 077687acd2..d7b5769ecd 100644 --- a/site/src/pages/TasksPage/BatchDeleteConfirmation.tsx +++ b/site/src/pages/TasksPage/BatchDeleteConfirmation.tsx @@ -1,8 +1,8 @@ -import type { Task } from "api/typesGenerated"; import dayjs from "dayjs"; import relativeTime from "dayjs/plugin/relativeTime"; import { ClockIcon, UserIcon } from "lucide-react"; import { type FC, type ReactNode, useState } from "react"; +import type { Task } from "#/api/typesGenerated"; import { ConfirmDialog } from "#/components/Dialogs/ConfirmDialog/ConfirmDialog"; dayjs.extend(relativeTime); diff --git a/site/src/pages/TasksPage/TasksPage.stories.tsx b/site/src/pages/TasksPage/TasksPage.stories.tsx index 83e6f51789..839c098b58 100644 --- a/site/src/pages/TasksPage/TasksPage.stories.tsx +++ b/site/src/pages/TasksPage/TasksPage.stories.tsx @@ -15,8 +15,6 @@ import { withProxyProvider, } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { API } from "api/api"; -import { getTemplatesQueryKey } from "api/queries/templates"; import { MockUsers } from "pages/UsersPage/storybookData/users"; import { expect, @@ -27,6 +25,8 @@ import { waitFor, within, } from "storybook/test"; +import { API } from "#/api/api"; +import { getTemplatesQueryKey } from "#/api/queries/templates"; import TasksPage from "./TasksPage"; const meta: Meta = { diff --git a/site/src/pages/TasksPage/TasksPage.tsx b/site/src/pages/TasksPage/TasksPage.tsx index cc16ef2523..ef49977fc4 100644 --- a/site/src/pages/TasksPage/TasksPage.tsx +++ b/site/src/pages/TasksPage/TasksPage.tsx @@ -1,14 +1,3 @@ -import { API } from "api/api"; -import { - systemNotificationTemplates, - userNotificationPreferences, -} from "api/queries/notifications"; -import { templates } from "api/queries/templates"; -import { - preferenceSettings, - updatePreferenceSettings, -} from "api/queries/users"; -import type { TasksFilter } from "api/typesGenerated"; import { useAuthenticated } from "hooks"; import { useSearchParamsKey } from "hooks/useSearchParamsKey"; import { ChevronDownIcon, TrashIcon } from "lucide-react"; @@ -22,6 +11,17 @@ import { type FC, useState } from "react"; import { useMutation, useQueries, useQuery, useQueryClient } from "react-query"; import { cn } from "utils/cn"; import { pageTitle } from "utils/page"; +import { API } from "#/api/api"; +import { + systemNotificationTemplates, + userNotificationPreferences, +} from "#/api/queries/notifications"; +import { templates } from "#/api/queries/templates"; +import { + preferenceSettings, + updatePreferenceSettings, +} from "#/api/queries/users"; +import type { TasksFilter } from "#/api/typesGenerated"; import { Alert } from "#/components/Alert/Alert"; import { Badge } from "#/components/Badge/Badge"; import { Button, type ButtonProps } from "#/components/Button/Button"; diff --git a/site/src/pages/TasksPage/TasksTable.tsx b/site/src/pages/TasksPage/TasksTable.tsx index ec757f92b0..0843ddd3a8 100644 --- a/site/src/pages/TasksPage/TasksTable.tsx +++ b/site/src/pages/TasksPage/TasksTable.tsx @@ -1,6 +1,3 @@ -import { getErrorDetail, getErrorMessage } from "api/errors"; -import { pauseTask, resumeTask } from "api/queries/tasks"; -import type { Task } from "api/typesGenerated"; import { useClickableTableRow } from "hooks"; import { EllipsisVertical, RotateCcwIcon, TrashIcon } from "lucide-react"; import { TaskActionButton } from "modules/tasks/TaskActionButton"; @@ -16,6 +13,9 @@ import { useMutation, useQueryClient } from "react-query"; import { useNavigate } from "react-router"; import { toast } from "sonner"; import { relativeTime } from "utils/time"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; +import { pauseTask, resumeTask } from "#/api/queries/tasks"; +import type { Task } from "#/api/typesGenerated"; import { Avatar } from "#/components/Avatar/Avatar"; import { AvatarData } from "#/components/Avatar/AvatarData"; import { AvatarDataSkeleton } from "#/components/Avatar/AvatarDataSkeleton"; diff --git a/site/src/pages/TasksPage/UsersCombobox.tsx b/site/src/pages/TasksPage/UsersCombobox.tsx index 85497455c8..c611429b77 100644 --- a/site/src/pages/TasksPage/UsersCombobox.tsx +++ b/site/src/pages/TasksPage/UsersCombobox.tsx @@ -1,12 +1,12 @@ import Skeleton from "@mui/material/Skeleton"; -import { users } from "api/queries/users"; -import type { User } from "api/typesGenerated"; import { useAuthenticated } from "hooks"; import { useDebouncedValue } from "hooks/debounce"; import { CheckIcon, ChevronsUpDownIcon } from "lucide-react"; import { type FC, useState } from "react"; import { keepPreviousData, useQuery } from "react-query"; import { cn } from "utils/cn"; +import { users } from "#/api/queries/users"; +import type { User } from "#/api/typesGenerated"; import { Avatar } from "#/components/Avatar/Avatar"; import { Button } from "#/components/Button/Button"; import { diff --git a/site/src/pages/TasksPage/batchActions.ts b/site/src/pages/TasksPage/batchActions.ts index 42a3462827..17afd7a330 100644 --- a/site/src/pages/TasksPage/batchActions.ts +++ b/site/src/pages/TasksPage/batchActions.ts @@ -1,7 +1,7 @@ -import { API } from "api/api"; -import type { Task } from "api/typesGenerated"; import { useMutation } from "react-query"; import { toast } from "sonner"; +import { API } from "#/api/api"; +import type { Task } from "#/api/typesGenerated"; interface UseBatchTaskActionsOptions { onSuccess: () => Promise; diff --git a/site/src/pages/TemplatePage/TemplateEmbedPage/TemplateEmbedExperimentRouter.tsx b/site/src/pages/TemplatePage/TemplateEmbedPage/TemplateEmbedExperimentRouter.tsx index 6ecd9437e5..fa3e4a1ac9 100644 --- a/site/src/pages/TemplatePage/TemplateEmbedPage/TemplateEmbedExperimentRouter.tsx +++ b/site/src/pages/TemplatePage/TemplateEmbedPage/TemplateEmbedExperimentRouter.tsx @@ -1,7 +1,7 @@ -import { templateByName } from "api/queries/templates"; import type { FC } from "react"; import { useQuery } from "react-query"; import { useParams } from "react-router"; +import { templateByName } from "#/api/queries/templates"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Loader } from "#/components/Loader/Loader"; import TemplateEmbedPage from "./TemplateEmbedPage"; diff --git a/site/src/pages/TemplatePage/TemplateEmbedPage/TemplateEmbedPage.jest.tsx b/site/src/pages/TemplatePage/TemplateEmbedPage/TemplateEmbedPage.jest.tsx index e647ed7ebc..e86c2b4f56 100644 --- a/site/src/pages/TemplatePage/TemplateEmbedPage/TemplateEmbedPage.jest.tsx +++ b/site/src/pages/TemplatePage/TemplateEmbedPage/TemplateEmbedPage.jest.tsx @@ -9,8 +9,8 @@ import { } from "testHelpers/renderHelpers"; import { screen } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; -import { API } from "api/api"; import { TemplateLayout } from "pages/TemplatePage/TemplateLayout"; +import { API } from "#/api/api"; import TemplateEmbedPage from "./TemplateEmbedPage"; test("Users can fill the parameters and copy the open in coder url", async () => { diff --git a/site/src/pages/TemplatePage/TemplateEmbedPage/TemplateEmbedPage.tsx b/site/src/pages/TemplatePage/TemplateEmbedPage/TemplateEmbedPage.tsx index 238b4f7879..82e2988557 100644 --- a/site/src/pages/TemplatePage/TemplateEmbedPage/TemplateEmbedPage.tsx +++ b/site/src/pages/TemplatePage/TemplateEmbedPage/TemplateEmbedPage.tsx @@ -1,8 +1,6 @@ import FormControlLabel from "@mui/material/FormControlLabel"; import Radio from "@mui/material/Radio"; import RadioGroup from "@mui/material/RadioGroup"; -import { API } from "api/api"; -import type { Template, TemplateVersionParameter } from "api/typesGenerated"; import { useDebouncedFunction } from "hooks/debounce"; import { useClipboard } from "hooks/useClipboard"; import { CheckIcon, CopyIcon } from "lucide-react"; @@ -14,6 +12,8 @@ import { pageTitle } from "utils/page"; import { getInitialRichParameterValues } from "utils/richParameters"; import { paramsUsedToCreateWorkspace } from "utils/workspace"; import { ValidationError } from "yup"; +import { API } from "#/api/api"; +import type { Template, TemplateVersionParameter } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { FormSection, VerticalForm } from "#/components/Form/Form"; import { Input } from "#/components/Input/Input"; diff --git a/site/src/pages/TemplatePage/TemplateEmbedPage/TemplateEmbedPageExperimental.tsx b/site/src/pages/TemplatePage/TemplateEmbedPage/TemplateEmbedPageExperimental.tsx index 3b1552f922..50ed0d1f7d 100644 --- a/site/src/pages/TemplatePage/TemplateEmbedPage/TemplateEmbedPageExperimental.tsx +++ b/site/src/pages/TemplatePage/TemplateEmbedPage/TemplateEmbedPageExperimental.tsx @@ -1,12 +1,3 @@ -import { API } from "api/api"; -import { DetailedError } from "api/errors"; -import type { - DynamicParametersRequest, - DynamicParametersResponse, - FriendlyDiagnostic, - PreviewParameter, - Template, -} from "api/typesGenerated"; import { useAuthenticated } from "hooks"; import { useEffectEvent } from "hooks/hookPolyfills"; import { useClipboard } from "hooks/useClipboard"; @@ -18,6 +9,15 @@ import { import { useTemplateLayoutContext } from "pages/TemplatePage/TemplateLayout"; import { type FC, useEffect, useMemo, useRef, useState } from "react"; import { pageTitle } from "utils/page"; +import { API } from "#/api/api"; +import { DetailedError } from "#/api/errors"; +import type { + DynamicParametersRequest, + DynamicParametersResponse, + FriendlyDiagnostic, + PreviewParameter, + Template, +} from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Button } from "#/components/Button/Button"; import { Label } from "#/components/Label/Label"; diff --git a/site/src/pages/TemplatePage/TemplateFilesPage/TemplateFilesPage.tsx b/site/src/pages/TemplatePage/TemplateFilesPage/TemplateFilesPage.tsx index d21ed4a7dd..3a760013e1 100644 --- a/site/src/pages/TemplatePage/TemplateFilesPage/TemplateFilesPage.tsx +++ b/site/src/pages/TemplatePage/TemplateFilesPage/TemplateFilesPage.tsx @@ -1,9 +1,12 @@ -import { previousTemplateVersion, templateFiles } from "api/queries/templates"; import { TemplateFiles } from "modules/templates/TemplateFiles/TemplateFiles"; import { useTemplateLayoutContext } from "pages/TemplatePage/TemplateLayout"; import type { FC } from "react"; import { useQuery } from "react-query"; import { useParams } from "react-router"; +import { + previousTemplateVersion, + templateFiles, +} from "#/api/queries/templates"; import { Loader } from "#/components/Loader/Loader"; import { getTemplatePageTitle } from "../utils"; diff --git a/site/src/pages/TemplatePage/TemplateInsightsPage/TemplateInsightsPage.tsx b/site/src/pages/TemplatePage/TemplateInsightsPage/TemplateInsightsPage.tsx index 630199f216..fc7747690e 100644 --- a/site/src/pages/TemplatePage/TemplateInsightsPage/TemplateInsightsPage.tsx +++ b/site/src/pages/TemplatePage/TemplateInsightsPage/TemplateInsightsPage.tsx @@ -1,18 +1,3 @@ -import { getErrorDetail, getErrorMessage } from "api/errors"; -import { - insightsTemplate, - insightsUserActivity, - insightsUserLatency, -} from "api/queries/insights"; -import type { - Template, - TemplateAppUsage, - TemplateInsightsResponse, - TemplateParameterUsage, - TemplateParameterValue, - UserActivityInsightsResponse, - UserLatencyInsightsResponse, -} from "api/typesGenerated"; import chroma from "chroma-js"; import { CircleCheck as CircleCheckIcon, @@ -44,6 +29,21 @@ import { startOfHour, subtractTime, } from "utils/time"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; +import { + insightsTemplate, + insightsUserActivity, + insightsUserLatency, +} from "#/api/queries/insights"; +import type { + Template, + TemplateAppUsage, + TemplateInsightsResponse, + TemplateParameterUsage, + TemplateParameterValue, + UserActivityInsightsResponse, + UserLatencyInsightsResponse, +} from "#/api/typesGenerated"; import { ActiveUserChart, ActiveUsersTitle, diff --git a/site/src/pages/TemplatePage/TemplateLayout.tsx b/site/src/pages/TemplatePage/TemplateLayout.tsx index 4de9218785..54a50a24bb 100644 --- a/site/src/pages/TemplatePage/TemplateLayout.tsx +++ b/site/src/pages/TemplatePage/TemplateLayout.tsx @@ -1,6 +1,3 @@ -import { API } from "api/api"; -import { checkAuthorization } from "api/queries/authCheck"; -import type { AuthorizationRequest } from "api/typesGenerated"; import { useAuthenticated } from "hooks"; import { useFeatureVisibility } from "modules/dashboard/useFeatureVisibility"; import { @@ -16,6 +13,9 @@ import { } from "react"; import { useQuery } from "react-query"; import { Outlet, useLocation, useNavigate, useParams } from "react-router"; +import { API } from "#/api/api"; +import { checkAuthorization } from "#/api/queries/authCheck"; +import type { AuthorizationRequest } from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Loader } from "#/components/Loader/Loader"; import { Margins } from "#/components/Margins/Margins"; diff --git a/site/src/pages/TemplatePage/TemplatePageHeader.tsx b/site/src/pages/TemplatePage/TemplatePageHeader.tsx index 6030908751..70e114a729 100644 --- a/site/src/pages/TemplatePage/TemplatePageHeader.tsx +++ b/site/src/pages/TemplatePage/TemplatePageHeader.tsx @@ -1,11 +1,3 @@ -import { API } from "api/api"; -import { getErrorDetail } from "api/errors"; -import { workspaces } from "api/queries/workspaces"; -import type { - AuthorizationResponse, - Template, - TemplateVersion, -} from "api/typesGenerated"; import { CopyIcon, DownloadIcon, @@ -21,6 +13,14 @@ import type { FC } from "react"; import { useQuery } from "react-query"; import { Link as RouterLink, useNavigate } from "react-router"; import { toast } from "sonner"; +import { API } from "#/api/api"; +import { getErrorDetail } from "#/api/errors"; +import { workspaces } from "#/api/queries/workspaces"; +import type { + AuthorizationResponse, + Template, + TemplateVersion, +} from "#/api/typesGenerated"; import { Avatar } from "#/components/Avatar/Avatar"; import { Button, Button as ShadcnButton } from "#/components/Button/Button"; import { ConfirmDialog } from "#/components/Dialogs/ConfirmDialog/ConfirmDialog"; diff --git a/site/src/pages/TemplatePage/TemplatePrebuildsPage/TemplatePrebuildsPage.tsx b/site/src/pages/TemplatePage/TemplatePrebuildsPage/TemplatePrebuildsPage.tsx index 1106f8dac4..f55f881dd1 100644 --- a/site/src/pages/TemplatePage/TemplatePrebuildsPage/TemplatePrebuildsPage.tsx +++ b/site/src/pages/TemplatePage/TemplatePrebuildsPage/TemplatePrebuildsPage.tsx @@ -1,11 +1,11 @@ -import { API } from "api/api"; -import type { InvalidatePresetsResponse } from "api/typesGenerated"; import { RefreshCw } from "lucide-react"; import { useTemplateLayoutContext } from "pages/TemplatePage/TemplateLayout"; import type { FC } from "react"; import { useMutation } from "react-query"; import { toast } from "sonner"; import { pageTitle } from "utils/page"; +import { API } from "#/api/api"; +import type { InvalidatePresetsResponse } from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Button } from "#/components/Button/Button"; diff --git a/site/src/pages/TemplatePage/TemplatePrebuildsPage/TemplatePrebuildsPageView.stories.tsx b/site/src/pages/TemplatePage/TemplatePrebuildsPage/TemplatePrebuildsPageView.stories.tsx index d6a9537443..77bde4be25 100644 --- a/site/src/pages/TemplatePage/TemplatePrebuildsPage/TemplatePrebuildsPageView.stories.tsx +++ b/site/src/pages/TemplatePage/TemplatePrebuildsPage/TemplatePrebuildsPageView.stories.tsx @@ -1,8 +1,8 @@ import { MockTemplate } from "testHelpers/entities"; import { withToaster } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { API } from "api/api"; import { spyOn, userEvent, within } from "storybook/test"; +import { API } from "#/api/api"; import { TemplatePrebuildsPageView } from "./TemplatePrebuildsPage"; const meta: Meta = { diff --git a/site/src/pages/TemplatePage/TemplateRedirectController.test.tsx b/site/src/pages/TemplatePage/TemplateRedirectController.test.tsx index f9dada64f2..ea9aef122e 100644 --- a/site/src/pages/TemplatePage/TemplateRedirectController.test.tsx +++ b/site/src/pages/TemplatePage/TemplateRedirectController.test.tsx @@ -1,7 +1,7 @@ import * as M from "testHelpers/entities"; import { renderWithAuth } from "testHelpers/renderHelpers"; import { waitFor } from "@testing-library/react"; -import { API } from "api/api"; +import { API } from "#/api/api"; import { TemplateRedirectController } from "./TemplateRedirectController"; const renderTemplateRedirectController = (route: string) => { diff --git a/site/src/pages/TemplatePage/TemplateRedirectController.tsx b/site/src/pages/TemplatePage/TemplateRedirectController.tsx index b81c26e343..df9e6d2e15 100644 --- a/site/src/pages/TemplatePage/TemplateRedirectController.tsx +++ b/site/src/pages/TemplatePage/TemplateRedirectController.tsx @@ -1,7 +1,7 @@ -import type { Organization } from "api/typesGenerated"; import { useDashboard } from "modules/dashboard/useDashboard"; import type { FC } from "react"; import { Navigate, Outlet, useLocation, useParams } from "react-router"; +import type { Organization } from "#/api/typesGenerated"; export const TemplateRedirectController: FC = () => { const { organizations, showOrganizations } = useDashboard(); diff --git a/site/src/pages/TemplatePage/TemplateResourcesPage/TemplateResourcesPage.tsx b/site/src/pages/TemplatePage/TemplateResourcesPage/TemplateResourcesPage.tsx index 657c478236..87f5379aa1 100644 --- a/site/src/pages/TemplatePage/TemplateResourcesPage/TemplateResourcesPage.tsx +++ b/site/src/pages/TemplatePage/TemplateResourcesPage/TemplateResourcesPage.tsx @@ -1,7 +1,7 @@ -import { API } from "api/api"; import { useTemplateLayoutContext } from "pages/TemplatePage/TemplateLayout"; import type { FC } from "react"; import { useQuery } from "react-query"; +import { API } from "#/api/api"; import { getTemplatePageTitle } from "../utils"; import { TemplateResourcesPageView } from "./TemplateResourcesPageView"; diff --git a/site/src/pages/TemplatePage/TemplateResourcesPage/TemplateResourcesPageView.tsx b/site/src/pages/TemplatePage/TemplateResourcesPage/TemplateResourcesPageView.tsx index ef7e5c9ecf..32e3e9c832 100644 --- a/site/src/pages/TemplatePage/TemplateResourcesPage/TemplateResourcesPageView.tsx +++ b/site/src/pages/TemplatePage/TemplateResourcesPage/TemplateResourcesPageView.tsx @@ -1,7 +1,7 @@ -import type { Template, WorkspaceResource } from "api/typesGenerated"; import { TemplateResourcesTable } from "modules/templates/TemplateResourcesTable/TemplateResourcesTable"; import type { FC } from "react"; import { Navigate, useLocation } from "react-router"; +import type { Template, WorkspaceResource } from "#/api/typesGenerated"; import { Loader } from "#/components/Loader/Loader"; interface TemplateResourcesPageViewProps { diff --git a/site/src/pages/TemplatePage/TemplateStats.tsx b/site/src/pages/TemplatePage/TemplateStats.tsx index f4c166dc79..c99109e965 100644 --- a/site/src/pages/TemplatePage/TemplateStats.tsx +++ b/site/src/pages/TemplatePage/TemplateStats.tsx @@ -1,4 +1,3 @@ -import type { Template, TemplateVersion } from "api/typesGenerated"; import type { FC } from "react"; import { Link } from "react-router"; import { createDayString } from "utils/createDayString"; @@ -6,6 +5,7 @@ import { formatTemplateActiveDevelopers, formatTemplateBuildTime, } from "utils/templates"; +import type { Template, TemplateVersion } from "#/api/typesGenerated"; import { Stats, StatsItem } from "#/components/Stats/Stats"; const Language = { diff --git a/site/src/pages/TemplatePage/TemplateVersionsPage/TemplateVersionsPage.tsx b/site/src/pages/TemplatePage/TemplateVersionsPage/TemplateVersionsPage.tsx index 3c5fbc4b14..b5da09bfcb 100644 --- a/site/src/pages/TemplatePage/TemplateVersionsPage/TemplateVersionsPage.tsx +++ b/site/src/pages/TemplatePage/TemplateVersionsPage/TemplateVersionsPage.tsx @@ -1,15 +1,15 @@ -import { API } from "api/api"; -import { getErrorDetail, getErrorMessage } from "api/errors"; -import { - templateVersions, - templateVersionsQueryKey, -} from "api/queries/templates"; import { linkToTemplate, useLinks } from "modules/navigation"; import { useTemplateLayoutContext } from "pages/TemplatePage/TemplateLayout"; import { useState } from "react"; import { useMutation, useQuery, useQueryClient } from "react-query"; import { useNavigate } from "react-router"; import { toast } from "sonner"; +import { API } from "#/api/api"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; +import { + templateVersions, + templateVersionsQueryKey, +} from "#/api/queries/templates"; import { ConfirmDialog } from "#/components/Dialogs/ConfirmDialog/ConfirmDialog"; import { getTemplatePageTitle } from "../utils"; import { VersionsTable } from "./VersionsTable"; diff --git a/site/src/pages/TemplatePage/TemplateVersionsPage/VersionRow.tsx b/site/src/pages/TemplatePage/TemplateVersionsPage/VersionRow.tsx index 8adb26b067..fe8f25ca74 100644 --- a/site/src/pages/TemplatePage/TemplateVersionsPage/VersionRow.tsx +++ b/site/src/pages/TemplatePage/TemplateVersionsPage/VersionRow.tsx @@ -1,8 +1,8 @@ import type { CSSObject, Interpolation, Theme } from "@emotion/react"; -import type { TemplateVersion } from "api/typesGenerated"; import { useClickableTableRow } from "hooks/useClickableTableRow"; import type { FC } from "react"; import { useNavigate } from "react-router"; +import type { TemplateVersion } from "#/api/typesGenerated"; import { Avatar } from "#/components/Avatar/Avatar"; import { Button } from "#/components/Button/Button"; import { InfoTooltip } from "#/components/InfoTooltip/InfoTooltip"; diff --git a/site/src/pages/TemplatePage/TemplateVersionsPage/VersionsTable.tsx b/site/src/pages/TemplatePage/TemplateVersionsPage/VersionsTable.tsx index bcb45f600c..a4c56320c0 100644 --- a/site/src/pages/TemplatePage/TemplateVersionsPage/VersionsTable.tsx +++ b/site/src/pages/TemplatePage/TemplateVersionsPage/VersionsTable.tsx @@ -1,5 +1,5 @@ -import type * as TypesGen from "api/typesGenerated"; import type { FC } from "react"; +import type * as TypesGen from "#/api/typesGenerated"; import { EmptyState } from "#/components/EmptyState/EmptyState"; import { Table, diff --git a/site/src/pages/TemplatePage/useDeletionDialogState.jest.ts b/site/src/pages/TemplatePage/useDeletionDialogState.jest.ts index 8164fb7a39..7dce22ff08 100644 --- a/site/src/pages/TemplatePage/useDeletionDialogState.jest.ts +++ b/site/src/pages/TemplatePage/useDeletionDialogState.jest.ts @@ -1,8 +1,8 @@ import { MockTemplate } from "testHelpers/entities"; import { act, renderHook, waitFor } from "@testing-library/react"; -import { API } from "api/api"; import { createElement } from "react"; import { QueryClient, QueryClientProvider } from "react-query"; +import { API } from "#/api/api"; import { useDeletionDialogState } from "./useDeletionDialogState"; const wrapper = ({ children }: { children: React.ReactNode }) => diff --git a/site/src/pages/TemplatePage/useDeletionDialogState.ts b/site/src/pages/TemplatePage/useDeletionDialogState.ts index b28e2fddc1..10e191a2e7 100644 --- a/site/src/pages/TemplatePage/useDeletionDialogState.ts +++ b/site/src/pages/TemplatePage/useDeletionDialogState.ts @@ -1,8 +1,8 @@ -import { API } from "api/api"; -import { getErrorMessage } from "api/errors"; import { useState } from "react"; import { useMutation } from "react-query"; import { toast } from "sonner"; +import { API } from "#/api/api"; +import { getErrorMessage } from "#/api/errors"; export const useDeletionDialogState = ( templateId: string, diff --git a/site/src/pages/TemplatePage/utils.ts b/site/src/pages/TemplatePage/utils.ts index 92dbfcd000..770e214dcc 100644 --- a/site/src/pages/TemplatePage/utils.ts +++ b/site/src/pages/TemplatePage/utils.ts @@ -1,5 +1,5 @@ -import type { Template } from "api/typesGenerated"; import { pageTitle } from "utils/page"; +import type { Template } from "#/api/typesGenerated"; export const getTemplatePageTitle = (title: string, template: Template) => { return pageTitle( diff --git a/site/src/pages/TemplateSettingsPage/Sidebar.tsx b/site/src/pages/TemplateSettingsPage/Sidebar.tsx index d4773ad938..fbedfd5483 100644 --- a/site/src/pages/TemplateSettingsPage/Sidebar.tsx +++ b/site/src/pages/TemplateSettingsPage/Sidebar.tsx @@ -1,4 +1,3 @@ -import type { Template } from "api/typesGenerated"; import { LockIcon, TimerIcon as ScheduleIcon, @@ -7,6 +6,7 @@ import { } from "lucide-react"; import { linkToTemplate, useLinks } from "modules/navigation"; import type { FC } from "react"; +import type { Template } from "#/api/typesGenerated"; import { Avatar } from "#/components/Avatar/Avatar"; import { Sidebar as BaseSidebar, diff --git a/site/src/pages/TemplateSettingsPage/TemplateGeneralSettingsPage/TemplateSettingsForm.tsx b/site/src/pages/TemplateSettingsPage/TemplateGeneralSettingsPage/TemplateSettingsForm.tsx index 59a6f4f1bb..87bece58ac 100644 --- a/site/src/pages/TemplateSettingsPage/TemplateGeneralSettingsPage/TemplateSettingsForm.tsx +++ b/site/src/pages/TemplateSettingsPage/TemplateGeneralSettingsPage/TemplateSettingsForm.tsx @@ -3,12 +3,6 @@ import FormControlLabel from "@mui/material/FormControlLabel"; import FormHelperText from "@mui/material/FormHelperText"; import MenuItem from "@mui/material/MenuItem"; import TextField from "@mui/material/TextField"; -import { - CORSBehaviors, - type Template, - type UpdateTemplateMeta, - WorkspaceAppSharingLevels, -} from "api/typesGenerated"; import { type FormikTouched, useFormik } from "formik"; import type { FC } from "react"; import { docs } from "utils/docs"; @@ -20,6 +14,12 @@ import { onChangeTrimmed, } from "utils/formUtils"; import * as Yup from "yup"; +import { + CORSBehaviors, + type Template, + type UpdateTemplateMeta, + WorkspaceAppSharingLevels, +} from "#/api/typesGenerated"; import { PremiumBadge } from "#/components/Badges/Badges"; import { Button } from "#/components/Button/Button"; import { diff --git a/site/src/pages/TemplateSettingsPage/TemplateGeneralSettingsPage/TemplateSettingsPage.jest.tsx b/site/src/pages/TemplateSettingsPage/TemplateGeneralSettingsPage/TemplateSettingsPage.jest.tsx index d399714e67..2781765973 100644 --- a/site/src/pages/TemplateSettingsPage/TemplateGeneralSettingsPage/TemplateSettingsPage.jest.tsx +++ b/site/src/pages/TemplateSettingsPage/TemplateGeneralSettingsPage/TemplateSettingsPage.jest.tsx @@ -10,9 +10,9 @@ import { import { server } from "testHelpers/server"; import { screen, waitFor, within } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; -import { API, withDefaultFeatures } from "api/api"; -import type { UpdateTemplateMeta } from "api/typesGenerated"; import { HttpResponse, http } from "msw"; +import { API, withDefaultFeatures } from "#/api/api"; +import type { UpdateTemplateMeta } from "#/api/typesGenerated"; import { validationSchema } from "./TemplateSettingsForm"; import TemplateSettingsPage from "./TemplateSettingsPage"; diff --git a/site/src/pages/TemplateSettingsPage/TemplateGeneralSettingsPage/TemplateSettingsPage.tsx b/site/src/pages/TemplateSettingsPage/TemplateGeneralSettingsPage/TemplateSettingsPage.tsx index 4ce22b8409..333ec98fab 100644 --- a/site/src/pages/TemplateSettingsPage/TemplateGeneralSettingsPage/TemplateSettingsPage.tsx +++ b/site/src/pages/TemplateSettingsPage/TemplateGeneralSettingsPage/TemplateSettingsPage.tsx @@ -1,7 +1,3 @@ -import { API } from "api/api"; -import { getErrorDetail, getErrorMessage } from "api/errors"; -import { templateByNameKey } from "api/queries/templates"; -import type { UpdateTemplateMeta } from "api/typesGenerated"; import { useDashboard } from "modules/dashboard/useDashboard"; import { linkToTemplate, useLinks } from "modules/navigation"; import type { FC } from "react"; @@ -9,6 +5,10 @@ import { useMutation, useQueryClient } from "react-query"; import { useNavigate, useParams } from "react-router"; import { toast } from "sonner"; import { pageTitle } from "utils/page"; +import { API } from "#/api/api"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; +import { templateByNameKey } from "#/api/queries/templates"; +import type { UpdateTemplateMeta } from "#/api/typesGenerated"; import { useTemplateSettings } from "../TemplateSettingsLayout"; import { TemplateSettingsPageView } from "./TemplateSettingsPageView"; diff --git a/site/src/pages/TemplateSettingsPage/TemplateGeneralSettingsPage/TemplateSettingsPageView.tsx b/site/src/pages/TemplateSettingsPage/TemplateGeneralSettingsPage/TemplateSettingsPageView.tsx index 4322dd07da..ff1a7a7721 100644 --- a/site/src/pages/TemplateSettingsPage/TemplateGeneralSettingsPage/TemplateSettingsPageView.tsx +++ b/site/src/pages/TemplateSettingsPage/TemplateGeneralSettingsPage/TemplateSettingsPageView.tsx @@ -1,5 +1,5 @@ -import type { Template, UpdateTemplateMeta } from "api/typesGenerated"; import type { ComponentProps, FC } from "react"; +import type { Template, UpdateTemplateMeta } from "#/api/typesGenerated"; import { PageHeader, PageHeaderTitle, diff --git a/site/src/pages/TemplateSettingsPage/TemplatePermissionsPage/TemplatePermissionsPage.tsx b/site/src/pages/TemplateSettingsPage/TemplatePermissionsPage/TemplatePermissionsPage.tsx index 3c1cfec189..ff6682a0f9 100644 --- a/site/src/pages/TemplateSettingsPage/TemplatePermissionsPage/TemplatePermissionsPage.tsx +++ b/site/src/pages/TemplateSettingsPage/TemplatePermissionsPage/TemplatePermissionsPage.tsx @@ -1,11 +1,15 @@ -import { getErrorDetail, getErrorMessage } from "api/errors"; -import { setGroupRole, setUserRole, templateACL } from "api/queries/templates"; import { useFeatureVisibility } from "modules/dashboard/useFeatureVisibility"; import type { FC } from "react"; import { useMutation, useQuery, useQueryClient } from "react-query"; import { toast } from "sonner"; import { docs } from "utils/docs"; import { pageTitle } from "utils/page"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; +import { + setGroupRole, + setUserRole, + templateACL, +} from "#/api/queries/templates"; import { PaywallPremium } from "#/components/Paywall/PaywallPremium"; import { useTemplateSettings } from "../TemplateSettingsLayout"; import { TemplatePermissionsPageView } from "./TemplatePermissionsPageView"; diff --git a/site/src/pages/TemplateSettingsPage/TemplatePermissionsPage/TemplatePermissionsPageView.tsx b/site/src/pages/TemplateSettingsPage/TemplatePermissionsPage/TemplatePermissionsPageView.tsx index eaf6d3a0ab..507bc002e9 100644 --- a/site/src/pages/TemplateSettingsPage/TemplatePermissionsPage/TemplatePermissionsPageView.tsx +++ b/site/src/pages/TemplateSettingsPage/TemplatePermissionsPage/TemplatePermissionsPageView.tsx @@ -1,3 +1,6 @@ +import { EllipsisVertical, UserPlusIcon } from "lucide-react"; +import { getGroupSubtitle } from "modules/groups"; +import { type FC, useState } from "react"; import type { Group, ReducedUser, @@ -5,10 +8,7 @@ import type { TemplateGroup, TemplateRole, TemplateUser, -} from "api/typesGenerated"; -import { EllipsisVertical, UserPlusIcon } from "lucide-react"; -import { getGroupSubtitle } from "modules/groups"; -import { type FC, useState } from "react"; +} from "#/api/typesGenerated"; import { Avatar } from "#/components/Avatar/Avatar"; import { AvatarData } from "#/components/Avatar/AvatarData"; import { Button } from "#/components/Button/Button"; diff --git a/site/src/pages/TemplateSettingsPage/TemplatePermissionsPage/UserOrGroupAutocomplete.tsx b/site/src/pages/TemplateSettingsPage/TemplatePermissionsPage/UserOrGroupAutocomplete.tsx index a0f3b8673a..04a0944d52 100644 --- a/site/src/pages/TemplateSettingsPage/TemplatePermissionsPage/UserOrGroupAutocomplete.tsx +++ b/site/src/pages/TemplateSettingsPage/TemplatePermissionsPage/UserOrGroupAutocomplete.tsx @@ -1,10 +1,10 @@ -import { templaceACLAvailable } from "api/queries/templates"; -import type { Group, ReducedUser } from "api/typesGenerated"; import { Check } from "lucide-react"; import { getGroupSubtitle, isGroup } from "modules/groups"; import { type FC, useState } from "react"; import { keepPreviousData, useQuery } from "react-query"; import { prepareQuery } from "utils/filters"; +import { templaceACLAvailable } from "#/api/queries/templates"; +import type { Group, ReducedUser } from "#/api/typesGenerated"; import { Autocomplete } from "#/components/Autocomplete/Autocomplete"; import { AvatarData } from "#/components/Avatar/AvatarData"; diff --git a/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/AutostopRequirementHelperText.tsx b/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/AutostopRequirementHelperText.tsx index 953c987101..5abecc436d 100644 --- a/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/AutostopRequirementHelperText.tsx +++ b/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/AutostopRequirementHelperText.tsx @@ -1,6 +1,6 @@ -import type { Template } from "api/typesGenerated"; import type { FC } from "react"; import type { TemplateAutostopRequirementDaysValue } from "utils/schedule"; +import type { Template } from "#/api/typesGenerated"; const autostopRequirementDescriptions = { off: "Workspaces are not required to stop periodically.", diff --git a/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/TemplateScheduleForm.tsx b/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/TemplateScheduleForm.tsx index e1bed50a75..a0637e595b 100644 --- a/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/TemplateScheduleForm.tsx +++ b/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/TemplateScheduleForm.tsx @@ -1,6 +1,5 @@ import MenuItem from "@mui/material/MenuItem"; import TextField from "@mui/material/TextField"; -import type { Template, UpdateTemplateMeta } from "api/typesGenerated"; import { type FormikTouched, useFormik } from "formik"; import { type FC, useEffect, useState } from "react"; import { getFormHelpers } from "utils/formUtils"; @@ -8,6 +7,7 @@ import { calculateAutostopRequirementDaysValue, type TemplateAutostartRequirementDaysValue, } from "utils/schedule"; +import type { Template, UpdateTemplateMeta } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { Checkbox } from "#/components/Checkbox/Checkbox"; import { DurationField } from "#/components/DurationField/DurationField"; diff --git a/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/TemplateSchedulePage.test.tsx b/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/TemplateSchedulePage.test.tsx index c90540dd7a..e4a969a343 100644 --- a/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/TemplateSchedulePage.test.tsx +++ b/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/TemplateSchedulePage.test.tsx @@ -8,7 +8,7 @@ import { } from "testHelpers/renderHelpers"; import { screen, waitFor } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; -import { API } from "api/api"; +import { API } from "#/api/api"; import { getValidationSchema, type TemplateScheduleFormValues, diff --git a/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/TemplateSchedulePage.tsx b/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/TemplateSchedulePage.tsx index 5b80122097..6ecea9b668 100644 --- a/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/TemplateSchedulePage.tsx +++ b/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/TemplateSchedulePage.tsx @@ -1,6 +1,3 @@ -import { API } from "api/api"; -import { templateByNameKey } from "api/queries/templates"; -import type { UpdateTemplateMeta } from "api/typesGenerated"; import { useDashboard } from "modules/dashboard/useDashboard"; import { linkToTemplate, useLinks } from "modules/navigation"; import type { FC } from "react"; @@ -8,6 +5,9 @@ import { useMutation, useQueryClient } from "react-query"; import { useNavigate, useParams } from "react-router"; import { toast } from "sonner"; import { pageTitle } from "utils/page"; +import { API } from "#/api/api"; +import { templateByNameKey } from "#/api/queries/templates"; +import type { UpdateTemplateMeta } from "#/api/typesGenerated"; import { useTemplateSettings } from "../TemplateSettingsLayout"; import { TemplateSchedulePageView } from "./TemplateSchedulePageView"; diff --git a/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/TemplateSchedulePageView.tsx b/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/TemplateSchedulePageView.tsx index 0df662b90d..d90ad89067 100644 --- a/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/TemplateSchedulePageView.tsx +++ b/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/TemplateSchedulePageView.tsx @@ -1,5 +1,5 @@ -import type { Template, UpdateTemplateMeta } from "api/typesGenerated"; import type { ComponentProps, FC } from "react"; +import type { Template, UpdateTemplateMeta } from "#/api/typesGenerated"; import { PageHeader, PageHeaderTitle, diff --git a/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/formHelpers.tsx b/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/formHelpers.tsx index 8c6bccccd1..99d97da2ec 100644 --- a/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/formHelpers.tsx +++ b/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/formHelpers.tsx @@ -1,9 +1,9 @@ -import type { UpdateTemplateMeta } from "api/typesGenerated"; import type { TemplateAutostartRequirementDaysValue, TemplateAutostopRequirementDaysValue, } from "utils/schedule"; import * as Yup from "yup"; +import type { UpdateTemplateMeta } from "#/api/typesGenerated"; export interface TemplateScheduleFormValues extends Omit< diff --git a/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/useWorkspacesToBeDeleted.ts b/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/useWorkspacesToBeDeleted.ts index c0cae5d7e2..4ef61dc79e 100644 --- a/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/useWorkspacesToBeDeleted.ts +++ b/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/useWorkspacesToBeDeleted.ts @@ -1,7 +1,7 @@ -import { workspaces } from "api/queries/workspaces"; -import type { Template, Workspace } from "api/typesGenerated"; import dayjs from "dayjs"; import { useQuery } from "react-query"; +import { workspaces } from "#/api/queries/workspaces"; +import type { Template, Workspace } from "#/api/typesGenerated"; import type { TemplateScheduleFormValues } from "./formHelpers"; export const useWorkspacesToGoDormant = ( diff --git a/site/src/pages/TemplateSettingsPage/TemplateSettingsLayout.tsx b/site/src/pages/TemplateSettingsPage/TemplateSettingsLayout.tsx index c4e1b23f6f..8d613cded1 100644 --- a/site/src/pages/TemplateSettingsPage/TemplateSettingsLayout.tsx +++ b/site/src/pages/TemplateSettingsPage/TemplateSettingsLayout.tsx @@ -1,10 +1,10 @@ -import { checkAuthorization } from "api/queries/authCheck"; -import { templateByName } from "api/queries/templates"; -import type { AuthorizationResponse, Template } from "api/typesGenerated"; import { createContext, type FC, Suspense, useContext } from "react"; import { useQuery } from "react-query"; import { Outlet, useParams } from "react-router"; import { pageTitle } from "utils/page"; +import { checkAuthorization } from "#/api/queries/authCheck"; +import { templateByName } from "#/api/queries/templates"; +import type { AuthorizationResponse, Template } from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Loader } from "#/components/Loader/Loader"; import { Margins } from "#/components/Margins/Margins"; diff --git a/site/src/pages/TemplateSettingsPage/TemplateVariablesPage/TemplateVariableField.tsx b/site/src/pages/TemplateSettingsPage/TemplateVariablesPage/TemplateVariableField.tsx index 3ec4003d40..5e72b862de 100644 --- a/site/src/pages/TemplateSettingsPage/TemplateVariablesPage/TemplateVariableField.tsx +++ b/site/src/pages/TemplateSettingsPage/TemplateVariablesPage/TemplateVariableField.tsx @@ -2,8 +2,8 @@ import FormControlLabel from "@mui/material/FormControlLabel"; import Radio from "@mui/material/Radio"; import RadioGroup from "@mui/material/RadioGroup"; import TextField from "@mui/material/TextField"; -import type { TemplateVersionVariable } from "api/typesGenerated"; import { type FC, useState } from "react"; +import type { TemplateVersionVariable } from "#/api/typesGenerated"; export const SensitiveVariableHelperText: FC = () => { return ( diff --git a/site/src/pages/TemplateSettingsPage/TemplateVariablesPage/TemplateVariablesForm.tsx b/site/src/pages/TemplateSettingsPage/TemplateVariablesPage/TemplateVariablesForm.tsx index 8d309c596e..5551a11d9f 100644 --- a/site/src/pages/TemplateSettingsPage/TemplateVariablesPage/TemplateVariablesForm.tsx +++ b/site/src/pages/TemplateSettingsPage/TemplateVariablesPage/TemplateVariablesForm.tsx @@ -1,13 +1,13 @@ +import { type FormikContextType, type FormikTouched, useFormik } from "formik"; +import type { FC } from "react"; +import { type FormHelpers, getFormHelpers } from "utils/formUtils"; +import * as Yup from "yup"; import type { CreateTemplateVersionRequest, TemplateVersion, TemplateVersionVariable, VariableValue, -} from "api/typesGenerated"; -import { type FormikContextType, type FormikTouched, useFormik } from "formik"; -import type { FC } from "react"; -import { type FormHelpers, getFormHelpers } from "utils/formUtils"; -import * as Yup from "yup"; +} from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { FormFields, diff --git a/site/src/pages/TemplateSettingsPage/TemplateVariablesPage/TemplateVariablesPage.jest.tsx b/site/src/pages/TemplateSettingsPage/TemplateVariablesPage/TemplateVariablesPage.jest.tsx index 56ef1b7f6f..a3a6c20a95 100644 --- a/site/src/pages/TemplateSettingsPage/TemplateVariablesPage/TemplateVariablesPage.jest.tsx +++ b/site/src/pages/TemplateSettingsPage/TemplateVariablesPage/TemplateVariablesPage.jest.tsx @@ -11,8 +11,8 @@ import { } from "testHelpers/renderHelpers"; import { screen, waitFor } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; -import { API } from "api/api"; import { toast } from "sonner"; +import { API } from "#/api/api"; import TemplateVariablesPage from "./TemplateVariablesPage"; // The createAndBuildTemplateVersion mutation polls getTemplateVersion behind diff --git a/site/src/pages/TemplateSettingsPage/TemplateVariablesPage/TemplateVariablesPage.tsx b/site/src/pages/TemplateSettingsPage/TemplateVariablesPage/TemplateVariablesPage.tsx index d5ba59cfba..9aee7ece91 100644 --- a/site/src/pages/TemplateSettingsPage/TemplateVariablesPage/TemplateVariablesPage.tsx +++ b/site/src/pages/TemplateSettingsPage/TemplateVariablesPage/TemplateVariablesPage.tsx @@ -1,14 +1,3 @@ -import { - createAndBuildTemplateVersion, - templateVersion, - templateVersionVariables, - updateActiveTemplateVersion, -} from "api/queries/templates"; -import type { - CreateTemplateVersionRequest, - TemplateVersionVariable, - VariableValue, -} from "api/typesGenerated"; import { linkToTemplate, useLinks } from "modules/navigation"; import { type FC, useCallback } from "react"; import { @@ -20,6 +9,17 @@ import { import { useNavigate, useParams } from "react-router"; import { toast } from "sonner"; import { pageTitle } from "utils/page"; +import { + createAndBuildTemplateVersion, + templateVersion, + templateVersionVariables, + updateActiveTemplateVersion, +} from "#/api/queries/templates"; +import type { + CreateTemplateVersionRequest, + TemplateVersionVariable, + VariableValue, +} from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Loader } from "#/components/Loader/Loader"; import { useTemplateSettings } from "../TemplateSettingsLayout"; diff --git a/site/src/pages/TemplateSettingsPage/TemplateVariablesPage/TemplateVariablesPageView.tsx b/site/src/pages/TemplateSettingsPage/TemplateVariablesPage/TemplateVariablesPageView.tsx index 39a1b499df..cd11a378e7 100644 --- a/site/src/pages/TemplateSettingsPage/TemplateVariablesPage/TemplateVariablesPageView.tsx +++ b/site/src/pages/TemplateSettingsPage/TemplateVariablesPage/TemplateVariablesPageView.tsx @@ -1,9 +1,9 @@ +import type { ComponentProps, FC } from "react"; import type { CreateTemplateVersionRequest, TemplateVersion, TemplateVersionVariable, -} from "api/typesGenerated"; -import type { ComponentProps, FC } from "react"; +} from "#/api/typesGenerated"; import { Alert } from "#/components/Alert/Alert"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { diff --git a/site/src/pages/TemplateVersionEditorPage/MissingTemplateVariablesDialog.tsx b/site/src/pages/TemplateVersionEditorPage/MissingTemplateVariablesDialog.tsx index 5a583411d0..be4169fb9f 100644 --- a/site/src/pages/TemplateVersionEditorPage/MissingTemplateVariablesDialog.tsx +++ b/site/src/pages/TemplateVersionEditorPage/MissingTemplateVariablesDialog.tsx @@ -5,12 +5,12 @@ import DialogActions from "@mui/material/DialogActions"; import DialogContent from "@mui/material/DialogContent"; import DialogContentText from "@mui/material/DialogContentText"; import DialogTitle from "@mui/material/DialogTitle"; +import { VariableInput } from "pages/CreateTemplatePage/VariableInput"; +import { type FC, useEffect, useState } from "react"; import type { TemplateVersionVariable, VariableValue, -} from "api/typesGenerated"; -import { VariableInput } from "pages/CreateTemplatePage/VariableInput"; -import { type FC, useEffect, useState } from "react"; +} from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import type { DialogProps } from "#/components/Dialogs/Dialog"; import { FormFields, VerticalForm } from "#/components/Form/Form"; diff --git a/site/src/pages/TemplateVersionEditorPage/ProvisionerTagsPopover.tsx b/site/src/pages/TemplateVersionEditorPage/ProvisionerTagsPopover.tsx index f41dc9309a..b4d830bd2f 100644 --- a/site/src/pages/TemplateVersionEditorPage/ProvisionerTagsPopover.tsx +++ b/site/src/pages/TemplateVersionEditorPage/ProvisionerTagsPopover.tsx @@ -1,9 +1,9 @@ import Link from "@mui/material/Link"; import useTheme from "@mui/system/useTheme"; -import type { ProvisionerDaemon } from "api/typesGenerated"; import { ProvisionerTagsField } from "modules/provisioners/ProvisionerTagsField"; import type { FC } from "react"; import { docs } from "utils/docs"; +import type { ProvisionerDaemon } from "#/api/typesGenerated"; import { ChevronDownIcon } from "#/components/AnimatedIcons/ChevronDown"; import { FormSection } from "#/components/Form/Form"; import { TopbarButton } from "#/components/FullPageLayout/Topbar"; diff --git a/site/src/pages/TemplateVersionEditorPage/TemplateVersionEditor.tsx b/site/src/pages/TemplateVersionEditorPage/TemplateVersionEditor.tsx index 699dd08820..261f173f40 100644 --- a/site/src/pages/TemplateVersionEditorPage/TemplateVersionEditor.tsx +++ b/site/src/pages/TemplateVersionEditorPage/TemplateVersionEditor.tsx @@ -1,13 +1,4 @@ import IconButton from "@mui/material/IconButton"; -import { getErrorDetail, getErrorMessage } from "api/errors"; -import type { - ProvisionerJobLog, - Template, - TemplateVersion, - TemplateVersionVariable, - VariableValue, - WorkspaceResource, -} from "api/typesGenerated"; import { ChevronLeftIcon, ExternalLinkIcon, @@ -46,6 +37,15 @@ import { removeFile, updateFile, } from "utils/filetree"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; +import type { + ProvisionerJobLog, + Template, + TemplateVersion, + TemplateVersionVariable, + VariableValue, + WorkspaceResource, +} from "#/api/typesGenerated"; import { Alert } from "#/components/Alert/Alert"; import { Button } from "#/components/Button/Button"; import { Sidebar } from "#/components/FullPageLayout/Sidebar"; diff --git a/site/src/pages/TemplateVersionEditorPage/TemplateVersionEditorPage.test.tsx b/site/src/pages/TemplateVersionEditorPage/TemplateVersionEditorPage.test.tsx index ed6c3fea46..57604e8fd7 100644 --- a/site/src/pages/TemplateVersionEditorPage/TemplateVersionEditorPage.test.tsx +++ b/site/src/pages/TemplateVersionEditorPage/TemplateVersionEditorPage.test.tsx @@ -14,15 +14,15 @@ import { import { server } from "testHelpers/server"; import { render, screen, waitFor, within } from "@testing-library/react"; import userEvent, { type UserEvent } from "@testing-library/user-event"; -import * as apiModule from "api/api"; -import { templateVersionVariablesKey } from "api/queries/templates"; -import type { TemplateVersion } from "api/typesGenerated"; import { RequireAuth } from "contexts/auth/RequireAuth"; import WS from "jest-websocket-mock"; import { HttpResponse, http } from "msw"; import { QueryClient } from "react-query"; import { createMemoryRouter, RouterProvider } from "react-router"; import type { FileTree } from "utils/filetree"; +import * as apiModule from "#/api/api"; +import { templateVersionVariablesKey } from "#/api/queries/templates"; +import type { TemplateVersion } from "#/api/typesGenerated"; import type { MonacoEditorProps } from "./MonacoEditor"; import { Language } from "./PublishTemplateVersionDialog"; import TemplateVersionEditorPage, { diff --git a/site/src/pages/TemplateVersionEditorPage/TemplateVersionEditorPage.tsx b/site/src/pages/TemplateVersionEditorPage/TemplateVersionEditorPage.tsx index 2d9cfcb056..53dbfde008 100644 --- a/site/src/pages/TemplateVersionEditorPage/TemplateVersionEditorPage.tsx +++ b/site/src/pages/TemplateVersionEditorPage/TemplateVersionEditorPage.tsx @@ -1,18 +1,3 @@ -import { API } from "api/api"; -import { getErrorDetail } from "api/errors"; -import { file, uploadFile } from "api/queries/files"; -import { - createTemplateVersion, - resources, - templateByName, - templateByNameKey, - templateVersionByName, - templateVersionVariables, -} from "api/queries/templates"; -import type { - PatchTemplateVersionRequest, - TemplateVersion, -} from "api/typesGenerated"; import { linkToTemplate, useLinks } from "modules/navigation"; import { useWatchVersionLogs } from "modules/templates/useWatchVersionLogs"; import { type FC, useEffect, useState } from "react"; @@ -28,6 +13,21 @@ import { existsFile, type FileTree, traverse } from "utils/filetree"; import { pageTitle } from "utils/page"; import { TarReader, TarWriter } from "utils/tar"; import { createTemplateVersionFileTree } from "utils/templateVersion"; +import { API } from "#/api/api"; +import { getErrorDetail } from "#/api/errors"; +import { file, uploadFile } from "#/api/queries/files"; +import { + createTemplateVersion, + resources, + templateByName, + templateByNameKey, + templateVersionByName, + templateVersionVariables, +} from "#/api/queries/templates"; +import type { + PatchTemplateVersionRequest, + TemplateVersion, +} from "#/api/typesGenerated"; import { Loader } from "#/components/Loader/Loader"; import { TemplateVersionEditor } from "./TemplateVersionEditor"; diff --git a/site/src/pages/TemplateVersionEditorPage/TemplateVersionStatusBadge.tsx b/site/src/pages/TemplateVersionEditorPage/TemplateVersionStatusBadge.tsx index 17d532f932..eeb54da422 100644 --- a/site/src/pages/TemplateVersionEditorPage/TemplateVersionStatusBadge.tsx +++ b/site/src/pages/TemplateVersionEditorPage/TemplateVersionStatusBadge.tsx @@ -1,8 +1,8 @@ -import type { TemplateVersion } from "api/typesGenerated"; import { CheckIcon, CircleAlertIcon, HourglassIcon } from "lucide-react"; import type { FC, ReactNode } from "react"; import type { ThemeRole } from "theme/roles"; import { getPendingStatusLabel } from "utils/provisionerJob"; +import type { TemplateVersion } from "#/api/typesGenerated"; import { Pill, PillSpinner } from "#/components/Pill/Pill"; interface TemplateVersionStatusBadgeProps { diff --git a/site/src/pages/TemplateVersionPage/TemplateVersionPage.tsx b/site/src/pages/TemplateVersionPage/TemplateVersionPage.tsx index a54dd6115c..a0b110287c 100644 --- a/site/src/pages/TemplateVersionPage/TemplateVersionPage.tsx +++ b/site/src/pages/TemplateVersionPage/TemplateVersionPage.tsx @@ -1,15 +1,15 @@ -import { - templateByName, - templateFiles, - templateVersion, - templateVersionByName, -} from "api/queries/templates"; import { useAuthenticated } from "hooks"; import { linkToTemplate, useLinks } from "modules/navigation"; import { type FC, useMemo } from "react"; import { useQuery } from "react-query"; import { useParams } from "react-router"; import { pageTitle } from "utils/page"; +import { + templateByName, + templateFiles, + templateVersion, + templateVersionByName, +} from "#/api/queries/templates"; import { TemplateVersionPageView } from "./TemplateVersionPageView"; const TemplateVersionPage: FC = () => { diff --git a/site/src/pages/TemplateVersionPage/TemplateVersionPageView.tsx b/site/src/pages/TemplateVersionPage/TemplateVersionPageView.tsx index 4a983c7c34..e6cd667dd9 100644 --- a/site/src/pages/TemplateVersionPage/TemplateVersionPageView.tsx +++ b/site/src/pages/TemplateVersionPage/TemplateVersionPageView.tsx @@ -1,4 +1,3 @@ -import type { TemplateVersion } from "api/typesGenerated"; import { EditIcon, ExternalLinkIcon, PlusIcon } from "lucide-react"; import { linkToTemplate, useLinks } from "modules/navigation"; import { TemplateFiles } from "modules/templates/TemplateFiles/TemplateFiles"; @@ -7,6 +6,7 @@ import type { FC } from "react"; import { Link as RouterLink } from "react-router"; import { createDayString } from "utils/createDayString"; import type { TemplateVersionFiles } from "utils/templateVersion"; +import type { TemplateVersion } from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Button } from "#/components/Button/Button"; import { Loader } from "#/components/Loader/Loader"; diff --git a/site/src/pages/TemplatesPage/EmptyTemplates.tsx b/site/src/pages/TemplatesPage/EmptyTemplates.tsx index 249b417b02..e36da40daf 100644 --- a/site/src/pages/TemplatesPage/EmptyTemplates.tsx +++ b/site/src/pages/TemplatesPage/EmptyTemplates.tsx @@ -1,9 +1,9 @@ import Link from "@mui/material/Link"; -import type { TemplateExample } from "api/typesGenerated"; import { TemplateExampleCard } from "modules/templates/TemplateExampleCard/TemplateExampleCard"; import type { FC } from "react"; import { Link as RouterLink } from "react-router"; import { docs } from "utils/docs"; +import type { TemplateExample } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { CodeExample } from "#/components/CodeExample/CodeExample"; import { Stack } from "#/components/Stack/Stack"; diff --git a/site/src/pages/TemplatesPage/TemplatesFilter.tsx b/site/src/pages/TemplatesPage/TemplatesFilter.tsx index 3d1488ab14..93c30ab512 100644 --- a/site/src/pages/TemplatesPage/TemplatesFilter.tsx +++ b/site/src/pages/TemplatesPage/TemplatesFilter.tsx @@ -1,7 +1,7 @@ -import { API } from "api/api"; -import type { Organization } from "api/typesGenerated"; import { useDashboard } from "modules/dashboard/useDashboard"; import type { FC } from "react"; +import { API } from "#/api/api"; +import type { Organization } from "#/api/typesGenerated"; import { Avatar } from "#/components/Avatar/Avatar"; import { Filter, diff --git a/site/src/pages/TemplatesPage/TemplatesPage.tsx b/site/src/pages/TemplatesPage/TemplatesPage.tsx index 32ce97f6b1..0829380c74 100644 --- a/site/src/pages/TemplatesPage/TemplatesPage.tsx +++ b/site/src/pages/TemplatesPage/TemplatesPage.tsx @@ -1,11 +1,11 @@ -import { workspacePermissionsByOrganization } from "api/queries/organizations"; -import { templateExamples, templates } from "api/queries/templates"; import { useAuthenticated } from "hooks"; import { useDashboard } from "modules/dashboard/useDashboard"; import type { FC } from "react"; import { useQuery } from "react-query"; import { useSearchParams } from "react-router"; import { pageTitle } from "utils/page"; +import { workspacePermissionsByOrganization } from "#/api/queries/organizations"; +import { templateExamples, templates } from "#/api/queries/templates"; import { type UseFilterResult, useFilter } from "#/components/Filter/Filter"; import { useUserFilterMenu } from "#/components/Filter/UserFilter"; import { TemplatesPageView } from "./TemplatesPageView"; diff --git a/site/src/pages/TemplatesPage/TemplatesPageView.tsx b/site/src/pages/TemplatesPage/TemplatesPageView.tsx index bb1786833a..9cb5f8b087 100644 --- a/site/src/pages/TemplatesPage/TemplatesPageView.tsx +++ b/site/src/pages/TemplatesPage/TemplatesPageView.tsx @@ -1,7 +1,5 @@ import type { Interpolation, Theme } from "@emotion/react"; import Skeleton from "@mui/material/Skeleton"; -import { hasError, isApiValidationError } from "api/errors"; -import type { Template, TemplateExample } from "api/typesGenerated"; import { useClickableTableRow } from "hooks/useClickableTableRow"; import { ArrowRightIcon, PlusIcon } from "lucide-react"; import { linkToTemplate, useLinks } from "modules/navigation"; @@ -14,6 +12,8 @@ import { formatTemplateActiveDevelopers, formatTemplateBuildTime, } from "utils/templates"; +import { hasError, isApiValidationError } from "#/api/errors"; +import type { Template, TemplateExample } from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Avatar } from "#/components/Avatar/Avatar"; import { AvatarData } from "#/components/Avatar/AvatarData"; diff --git a/site/src/pages/TerminalPage/TerminalAlerts.tsx b/site/src/pages/TerminalPage/TerminalAlerts.tsx index 68d8496c63..c77631ae6f 100644 --- a/site/src/pages/TerminalPage/TerminalAlerts.tsx +++ b/site/src/pages/TerminalPage/TerminalAlerts.tsx @@ -1,8 +1,8 @@ -import type { WorkspaceAgent } from "api/typesGenerated"; import { RefreshCwIcon } from "lucide-react"; import { type FC, useEffect, useRef, useState } from "react"; import { cn } from "utils/cn"; import { docs } from "utils/docs"; +import type { WorkspaceAgent } from "#/api/typesGenerated"; import { Alert, type AlertColor, diff --git a/site/src/pages/TerminalPage/TerminalPage.jest.tsx b/site/src/pages/TerminalPage/TerminalPage.jest.tsx index 3db81a9298..34c4beb420 100644 --- a/site/src/pages/TerminalPage/TerminalPage.jest.tsx +++ b/site/src/pages/TerminalPage/TerminalPage.jest.tsx @@ -8,9 +8,9 @@ import { renderWithAuth } from "testHelpers/renderHelpers"; import { server } from "testHelpers/server"; import { waitFor } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; -import { API } from "api/api"; import WS from "jest-websocket-mock"; import { HttpResponse, http } from "msw"; +import { API } from "#/api/api"; import TerminalPage, { Language } from "./TerminalPage"; const renderTerminal = async ( diff --git a/site/src/pages/TerminalPage/TerminalPage.stories.tsx b/site/src/pages/TerminalPage/TerminalPage.stories.tsx index fe74106bd6..dfd8598c84 100644 --- a/site/src/pages/TerminalPage/TerminalPage.stories.tsx +++ b/site/src/pages/TerminalPage/TerminalPage.stories.tsx @@ -13,9 +13,6 @@ import { } from "testHelpers/entities"; import { withWebSocket } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { getAuthorizationKey } from "api/queries/authCheck"; -import { workspaceByOwnerAndNameKey } from "api/queries/workspaces"; -import type { Workspace, WorkspaceAgentLifecycle } from "api/typesGenerated"; import { AuthProvider } from "contexts/auth/AuthProvider"; import { RequireAuth } from "contexts/auth/RequireAuth"; import { permissionChecks } from "modules/permissions"; @@ -23,6 +20,9 @@ import { reactRouterOutlet, reactRouterParameters, } from "storybook-addon-remix-react-router"; +import { getAuthorizationKey } from "#/api/queries/authCheck"; +import { workspaceByOwnerAndNameKey } from "#/api/queries/workspaces"; +import type { Workspace, WorkspaceAgentLifecycle } from "#/api/typesGenerated"; import TerminalPage from "./TerminalPage"; const createWorkspaceWithAgent = (lifecycle: WorkspaceAgentLifecycle) => { diff --git a/site/src/pages/TerminalPage/TerminalPage.tsx b/site/src/pages/TerminalPage/TerminalPage.tsx index ed8f9ffa13..529254b7d7 100644 --- a/site/src/pages/TerminalPage/TerminalPage.tsx +++ b/site/src/pages/TerminalPage/TerminalPage.tsx @@ -6,12 +6,6 @@ import { Unicode11Addon } from "@xterm/addon-unicode11"; import { WebLinksAddon } from "@xterm/addon-web-links"; import { WebglAddon } from "@xterm/addon-webgl"; import { Terminal } from "@xterm/xterm"; -import { deploymentConfig } from "api/queries/deployment"; -import { appearanceSettings } from "api/queries/users"; -import { - workspaceByOwnerAndName, - workspaceUsage, -} from "api/queries/workspaces"; import { useProxy } from "contexts/ProxyContext"; import { ThemeOverride } from "contexts/ThemeProvider"; import { useClipboard } from "hooks/useClipboard"; @@ -33,6 +27,12 @@ import { WebsocketBuilder, WebsocketEvent, } from "websocket-ts"; +import { deploymentConfig } from "#/api/queries/deployment"; +import { appearanceSettings } from "#/api/queries/users"; +import { + workspaceByOwnerAndName, + workspaceUsage, +} from "#/api/queries/workspaces"; import { TerminalAlerts } from "./TerminalAlerts"; import type { ConnectionStatus } from "./types"; diff --git a/site/src/pages/UserSettingsPage/AccountPage/AccountForm.test.tsx b/site/src/pages/UserSettingsPage/AccountPage/AccountForm.test.tsx index 53e239ed2f..6af0dabc13 100644 --- a/site/src/pages/UserSettingsPage/AccountPage/AccountForm.test.tsx +++ b/site/src/pages/UserSettingsPage/AccountPage/AccountForm.test.tsx @@ -1,7 +1,7 @@ import { MockUserMember } from "testHelpers/entities"; import { render } from "testHelpers/renderHelpers"; import { screen } from "@testing-library/react"; -import type { UpdateUserProfileRequest } from "api/typesGenerated"; +import type { UpdateUserProfileRequest } from "#/api/typesGenerated"; import { AccountForm } from "./AccountForm"; // NOTE: it does not matter what the role props of MockUser are set to, diff --git a/site/src/pages/UserSettingsPage/AccountPage/AccountForm.tsx b/site/src/pages/UserSettingsPage/AccountPage/AccountForm.tsx index 4f2e56c63d..bb8e867f3e 100644 --- a/site/src/pages/UserSettingsPage/AccountPage/AccountForm.tsx +++ b/site/src/pages/UserSettingsPage/AccountPage/AccountForm.tsx @@ -1,5 +1,4 @@ import TextField from "@mui/material/TextField"; -import type { UpdateUserProfileRequest } from "api/typesGenerated"; import { type FormikTouched, useFormik } from "formik"; import type { FC } from "react"; import { @@ -8,6 +7,7 @@ import { onChangeTrimmed, } from "utils/formUtils"; import * as Yup from "yup"; +import type { UpdateUserProfileRequest } from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Button } from "#/components/Button/Button"; import { Form, FormFields } from "#/components/Form/Form"; diff --git a/site/src/pages/UserSettingsPage/AccountPage/AccountPage.test.tsx b/site/src/pages/UserSettingsPage/AccountPage/AccountPage.test.tsx index 95f80aa5e8..2425df8353 100644 --- a/site/src/pages/UserSettingsPage/AccountPage/AccountPage.test.tsx +++ b/site/src/pages/UserSettingsPage/AccountPage/AccountPage.test.tsx @@ -1,7 +1,7 @@ import { mockApiError } from "testHelpers/entities"; import { renderWithAuth } from "testHelpers/renderHelpers"; import { fireEvent, screen, waitFor } from "@testing-library/react"; -import { API } from "api/api"; +import { API } from "#/api/api"; import * as AccountForm from "./AccountForm"; import AccountPage from "./AccountPage"; diff --git a/site/src/pages/UserSettingsPage/AccountPage/AccountPage.tsx b/site/src/pages/UserSettingsPage/AccountPage/AccountPage.tsx index 798f7250a8..a5688ae2f8 100644 --- a/site/src/pages/UserSettingsPage/AccountPage/AccountPage.tsx +++ b/site/src/pages/UserSettingsPage/AccountPage/AccountPage.tsx @@ -1,9 +1,9 @@ -import { groupsForUser } from "api/queries/groups"; import { useAuthContext } from "contexts/auth/AuthProvider"; import { useAuthenticated } from "hooks"; import { useDashboard } from "modules/dashboard/useDashboard"; import type { FC } from "react"; import { useQuery } from "react-query"; +import { groupsForUser } from "#/api/queries/groups"; import { Stack } from "#/components/Stack/Stack"; import { Section } from "../Section"; import { AccountForm } from "./AccountForm"; diff --git a/site/src/pages/UserSettingsPage/AccountPage/AccountUserGroups.tsx b/site/src/pages/UserSettingsPage/AccountPage/AccountUserGroups.tsx index 9068da26a4..d57347d0db 100644 --- a/site/src/pages/UserSettingsPage/AccountPage/AccountUserGroups.tsx +++ b/site/src/pages/UserSettingsPage/AccountPage/AccountUserGroups.tsx @@ -1,7 +1,7 @@ -import { isApiError } from "api/errors"; -import type { Group } from "api/typesGenerated"; import { useDashboard } from "modules/dashboard/useDashboard"; import type { FC } from "react"; +import { isApiError } from "#/api/errors"; +import type { Group } from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { AvatarCard } from "#/components/Avatar/AvatarCard"; import { Loader } from "#/components/Loader/Loader"; diff --git a/site/src/pages/UserSettingsPage/AppearancePage/AppearanceForm.tsx b/site/src/pages/UserSettingsPage/AppearancePage/AppearanceForm.tsx index 56c7f66d36..fc96e75a85 100644 --- a/site/src/pages/UserSettingsPage/AppearancePage/AppearanceForm.tsx +++ b/site/src/pages/UserSettingsPage/AppearancePage/AppearanceForm.tsx @@ -1,8 +1,3 @@ -import { - type TerminalFontName, - TerminalFontNames, - type UpdateUserAppearanceSettingsRequest, -} from "api/typesGenerated"; import type { FC } from "react"; import { DEFAULT_THEME } from "theme"; import { @@ -11,6 +6,11 @@ import { terminalFonts, } from "theme/constants"; import { cn } from "utils/cn"; +import { + type TerminalFontName, + TerminalFontNames, + type UpdateUserAppearanceSettingsRequest, +} from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { PreviewBadge } from "#/components/Badges/Badges"; import { Label } from "#/components/Label/Label"; diff --git a/site/src/pages/UserSettingsPage/AppearancePage/AppearancePage.test.tsx b/site/src/pages/UserSettingsPage/AppearancePage/AppearancePage.test.tsx index 68dcc7b857..44b4a8c6a2 100644 --- a/site/src/pages/UserSettingsPage/AppearancePage/AppearancePage.test.tsx +++ b/site/src/pages/UserSettingsPage/AppearancePage/AppearancePage.test.tsx @@ -2,7 +2,7 @@ import { MockUserOwner } from "testHelpers/entities"; import { renderWithAuth } from "testHelpers/renderHelpers"; import { screen } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; -import { API } from "api/api"; +import { API } from "#/api/api"; import AppearancePage from "./AppearancePage"; describe("appearance page", () => { diff --git a/site/src/pages/UserSettingsPage/AppearancePage/AppearancePage.tsx b/site/src/pages/UserSettingsPage/AppearancePage/AppearancePage.tsx index 7ec3639318..4f9a32ceb0 100644 --- a/site/src/pages/UserSettingsPage/AppearancePage/AppearancePage.tsx +++ b/site/src/pages/UserSettingsPage/AppearancePage/AppearancePage.tsx @@ -1,10 +1,10 @@ -import { - appearanceSettings, - updateAppearanceSettings, -} from "api/queries/users"; import { useEmbeddedMetadata } from "hooks/useEmbeddedMetadata"; import type { FC } from "react"; import { useMutation, useQuery, useQueryClient } from "react-query"; +import { + appearanceSettings, + updateAppearanceSettings, +} from "#/api/queries/users"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Loader } from "#/components/Loader/Loader"; import { AppearanceForm } from "./AppearanceForm"; diff --git a/site/src/pages/UserSettingsPage/ExternalAuthPage/ExternalAuthPage.tsx b/site/src/pages/UserSettingsPage/ExternalAuthPage/ExternalAuthPage.tsx index 5add94c621..a047bba44e 100644 --- a/site/src/pages/UserSettingsPage/ExternalAuthPage/ExternalAuthPage.tsx +++ b/site/src/pages/UserSettingsPage/ExternalAuthPage/ExternalAuthPage.tsx @@ -1,13 +1,13 @@ -import { getErrorDetail, getErrorMessage } from "api/errors"; +import { type FC, useState } from "react"; +import { useMutation, useQuery, useQueryClient } from "react-query"; +import { toast } from "sonner"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; import { externalAuths, unlinkExternalAuths, validateExternalAuth, -} from "api/queries/externalAuth"; -import type { ExternalAuthLinkProvider } from "api/typesGenerated"; -import { type FC, useState } from "react"; -import { useMutation, useQuery, useQueryClient } from "react-query"; -import { toast } from "sonner"; +} from "#/api/queries/externalAuth"; +import type { ExternalAuthLinkProvider } from "#/api/typesGenerated"; import { DeleteDialog } from "#/components/Dialogs/DeleteDialog/DeleteDialog"; import { Section } from "../Section"; import { ExternalAuthPageView } from "./ExternalAuthPageView"; diff --git a/site/src/pages/UserSettingsPage/ExternalAuthPage/ExternalAuthPageView.tsx b/site/src/pages/UserSettingsPage/ExternalAuthPage/ExternalAuthPageView.tsx index ef71894ba7..396b53271a 100644 --- a/site/src/pages/UserSettingsPage/ExternalAuthPage/ExternalAuthPageView.tsx +++ b/site/src/pages/UserSettingsPage/ExternalAuthPage/ExternalAuthPageView.tsx @@ -1,14 +1,14 @@ import { useTheme } from "@emotion/react"; -import { externalAuthProvider } from "api/queries/externalAuth"; -import type { - ExternalAuthLink, - ExternalAuthLinkProvider, - ListUserExternalAuthResponse, -} from "api/typesGenerated"; import type { ExternalAuthPollingState } from "hooks/useExternalAuth"; import { EllipsisVertical, RefreshCcwIcon } from "lucide-react"; import { type FC, useCallback, useEffect, useState } from "react"; import { useQuery } from "react-query"; +import { externalAuthProvider } from "#/api/queries/externalAuth"; +import type { + ExternalAuthLink, + ExternalAuthLinkProvider, + ListUserExternalAuthResponse, +} from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Avatar } from "#/components/Avatar/Avatar"; import { Button } from "#/components/Button/Button"; diff --git a/site/src/pages/UserSettingsPage/NotificationsPage/NotificationsPage.stories.tsx b/site/src/pages/UserSettingsPage/NotificationsPage/NotificationsPage.stories.tsx index 3006beef2f..a965e8ffc6 100644 --- a/site/src/pages/UserSettingsPage/NotificationsPage/NotificationsPage.stories.tsx +++ b/site/src/pages/UserSettingsPage/NotificationsPage/NotificationsPage.stories.tsx @@ -11,15 +11,15 @@ import { withToaster, } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { API } from "api/api"; +import { expect, spyOn, userEvent, waitFor, within } from "storybook/test"; +import { reactRouterParameters } from "storybook-addon-remix-react-router"; +import { API } from "#/api/api"; import { customNotificationTemplatesKey, notificationDispatchMethodsKey, systemNotificationTemplatesKey, userNotificationPreferencesKey, -} from "api/queries/notifications"; -import { expect, spyOn, userEvent, waitFor, within } from "storybook/test"; -import { reactRouterParameters } from "storybook-addon-remix-react-router"; +} from "#/api/queries/notifications"; import NotificationsPage from "./NotificationsPage"; const meta = { diff --git a/site/src/pages/UserSettingsPage/NotificationsPage/NotificationsPage.tsx b/site/src/pages/UserSettingsPage/NotificationsPage/NotificationsPage.tsx index 4299ef453a..cd8f947a85 100644 --- a/site/src/pages/UserSettingsPage/NotificationsPage/NotificationsPage.tsx +++ b/site/src/pages/UserSettingsPage/NotificationsPage/NotificationsPage.tsx @@ -1,18 +1,3 @@ -import { getErrorDetail } from "api/errors"; -import { - customNotificationTemplates, - disableNotification, - notificationDispatchMethods, - selectTemplatesByGroup, - systemNotificationTemplates, - updateUserNotificationPreferences, - userNotificationPreferences, -} from "api/queries/notifications"; -import { - preferenceSettings, - updatePreferenceSettings, -} from "api/queries/users"; -import type { NotificationTemplate } from "api/typesGenerated"; import { useAuthenticated } from "hooks"; import { castNotificationMethod, @@ -28,6 +13,21 @@ import { useMutation, useQueries, useQuery, useQueryClient } from "react-query"; import { useSearchParams } from "react-router"; import { toast } from "sonner"; import { pageTitle } from "utils/page"; +import { getErrorDetail } from "#/api/errors"; +import { + customNotificationTemplates, + disableNotification, + notificationDispatchMethods, + selectTemplatesByGroup, + systemNotificationTemplates, + updateUserNotificationPreferences, + userNotificationPreferences, +} from "#/api/queries/notifications"; +import { + preferenceSettings, + updatePreferenceSettings, +} from "#/api/queries/users"; +import type { NotificationTemplate } from "#/api/typesGenerated"; import { Loader } from "#/components/Loader/Loader"; import { Switch } from "#/components/Switch/Switch"; import { diff --git a/site/src/pages/UserSettingsPage/OAuth2ProviderPage/OAuth2ProviderPage.tsx b/site/src/pages/UserSettingsPage/OAuth2ProviderPage/OAuth2ProviderPage.tsx index 1bab1c4aa3..fedeea905d 100644 --- a/site/src/pages/UserSettingsPage/OAuth2ProviderPage/OAuth2ProviderPage.tsx +++ b/site/src/pages/UserSettingsPage/OAuth2ProviderPage/OAuth2ProviderPage.tsx @@ -1,9 +1,9 @@ -import { getErrorDetail, getErrorMessage } from "api/errors"; -import { getApps, revokeApp } from "api/queries/oauth2"; import { useAuthenticated } from "hooks"; import { type FC, useState } from "react"; import { useMutation, useQuery, useQueryClient } from "react-query"; import { toast } from "sonner"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; +import { getApps, revokeApp } from "#/api/queries/oauth2"; import { DeleteDialog } from "#/components/Dialogs/DeleteDialog/DeleteDialog"; import { Section } from "../Section"; import OAuth2ProviderPageView from "./OAuth2ProviderPageView"; diff --git a/site/src/pages/UserSettingsPage/OAuth2ProviderPage/OAuth2ProviderPageView.tsx b/site/src/pages/UserSettingsPage/OAuth2ProviderPage/OAuth2ProviderPageView.tsx index e6c98c6cb7..958ee9e76f 100644 --- a/site/src/pages/UserSettingsPage/OAuth2ProviderPage/OAuth2ProviderPageView.tsx +++ b/site/src/pages/UserSettingsPage/OAuth2ProviderPage/OAuth2ProviderPageView.tsx @@ -1,5 +1,5 @@ -import type * as TypesGen from "api/typesGenerated"; import type { FC } from "react"; +import type * as TypesGen from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Avatar } from "#/components/Avatar/Avatar"; import { Button } from "#/components/Button/Button"; diff --git a/site/src/pages/UserSettingsPage/SSHKeysPage/SSHKeysPage.test.tsx b/site/src/pages/UserSettingsPage/SSHKeysPage/SSHKeysPage.test.tsx index 61b977bfb8..eac0c61f94 100644 --- a/site/src/pages/UserSettingsPage/SSHKeysPage/SSHKeysPage.test.tsx +++ b/site/src/pages/UserSettingsPage/SSHKeysPage/SSHKeysPage.test.tsx @@ -1,7 +1,7 @@ import { MockGitSSHKey, mockApiError } from "testHelpers/entities"; import { renderWithAuth } from "testHelpers/renderHelpers"; import { fireEvent, screen, within } from "@testing-library/react"; -import { API } from "api/api"; +import { API } from "#/api/api"; import SSHKeysPage, { Language as SSHKeysPageLanguage } from "./SSHKeysPage"; describe("SSH keys Page", () => { diff --git a/site/src/pages/UserSettingsPage/SSHKeysPage/SSHKeysPage.tsx b/site/src/pages/UserSettingsPage/SSHKeysPage/SSHKeysPage.tsx index 71f8d688bc..f151cca6f2 100644 --- a/site/src/pages/UserSettingsPage/SSHKeysPage/SSHKeysPage.tsx +++ b/site/src/pages/UserSettingsPage/SSHKeysPage/SSHKeysPage.tsx @@ -1,8 +1,8 @@ -import { getErrorDetail, getErrorMessage } from "api/errors"; -import { regenerateUserSSHKey, userSSHKey } from "api/queries/sshKeys"; import { type FC, useState } from "react"; import { useMutation, useQuery, useQueryClient } from "react-query"; import { toast } from "sonner"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; +import { regenerateUserSSHKey, userSSHKey } from "#/api/queries/sshKeys"; import { ConfirmDialog } from "#/components/Dialogs/ConfirmDialog/ConfirmDialog"; import { Section } from "../Section"; import { SSHKeysPageView } from "./SSHKeysPageView"; diff --git a/site/src/pages/UserSettingsPage/SSHKeysPage/SSHKeysPageView.tsx b/site/src/pages/UserSettingsPage/SSHKeysPage/SSHKeysPageView.tsx index 2afba25b9c..4175d05796 100644 --- a/site/src/pages/UserSettingsPage/SSHKeysPage/SSHKeysPageView.tsx +++ b/site/src/pages/UserSettingsPage/SSHKeysPage/SSHKeysPageView.tsx @@ -1,7 +1,7 @@ import { useTheme } from "@emotion/react"; import CircularProgress from "@mui/material/CircularProgress"; -import type { GitSSHKey } from "api/typesGenerated"; import type { FC } from "react"; +import type { GitSSHKey } from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Button } from "#/components/Button/Button"; import { CodeExample } from "#/components/CodeExample/CodeExample"; diff --git a/site/src/pages/UserSettingsPage/SchedulePage/ScheduleForm.tsx b/site/src/pages/UserSettingsPage/SchedulePage/ScheduleForm.tsx index 207abecbde..0d61e88d71 100644 --- a/site/src/pages/UserSettingsPage/SchedulePage/ScheduleForm.tsx +++ b/site/src/pages/UserSettingsPage/SchedulePage/ScheduleForm.tsx @@ -1,15 +1,15 @@ import MenuItem from "@mui/material/MenuItem"; import TextField from "@mui/material/TextField"; -import type { - UpdateUserQuietHoursScheduleRequest, - UserQuietHoursScheduleResponse, -} from "api/typesGenerated"; import { type FormikContextType, useFormik } from "formik"; import { type FC, useEffect, useState } from "react"; import { getFormHelpers } from "utils/formUtils"; import { quietHoursDisplay, timeToCron, validTime } from "utils/schedule"; import { getPreferredTimezone, timeZones } from "utils/timeZones"; import * as Yup from "yup"; +import type { + UpdateUserQuietHoursScheduleRequest, + UserQuietHoursScheduleResponse, +} from "#/api/typesGenerated"; import { Alert } from "#/components/Alert/Alert"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Button } from "#/components/Button/Button"; diff --git a/site/src/pages/UserSettingsPage/SchedulePage/SchedulePage.test.tsx b/site/src/pages/UserSettingsPage/SchedulePage/SchedulePage.test.tsx index 52beb8de3a..06954d0b19 100644 --- a/site/src/pages/UserSettingsPage/SchedulePage/SchedulePage.test.tsx +++ b/site/src/pages/UserSettingsPage/SchedulePage/SchedulePage.test.tsx @@ -3,8 +3,8 @@ import { renderWithAuth } from "testHelpers/renderHelpers"; import { server } from "testHelpers/server"; import { fireEvent, screen, waitFor, within } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; -import type { UpdateUserQuietHoursScheduleRequest } from "api/typesGenerated"; import { HttpResponse, http } from "msw"; +import type { UpdateUserQuietHoursScheduleRequest } from "#/api/typesGenerated"; import SchedulePage from "./SchedulePage"; const fillForm = async ({ diff --git a/site/src/pages/UserSettingsPage/SchedulePage/SchedulePage.tsx b/site/src/pages/UserSettingsPage/SchedulePage/SchedulePage.tsx index 3eee21abce..3bad4fa3a3 100644 --- a/site/src/pages/UserSettingsPage/SchedulePage/SchedulePage.tsx +++ b/site/src/pages/UserSettingsPage/SchedulePage/SchedulePage.tsx @@ -1,12 +1,12 @@ -import { - updateUserQuietHoursSchedule, - userQuietHoursSchedule, -} from "api/queries/settings"; -import type { UserQuietHoursScheduleResponse } from "api/typesGenerated"; import { useAuthenticated } from "hooks"; import type { FC } from "react"; import { useMutation, useQuery, useQueryClient } from "react-query"; import { toast } from "sonner"; +import { + updateUserQuietHoursSchedule, + userQuietHoursSchedule, +} from "#/api/queries/settings"; +import type { UserQuietHoursScheduleResponse } from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Loader } from "#/components/Loader/Loader"; import { Section } from "../Section"; diff --git a/site/src/pages/UserSettingsPage/SecurityPage/SecurityPage.jest.tsx b/site/src/pages/UserSettingsPage/SecurityPage/SecurityPage.jest.tsx index de8c14253d..269af7592b 100644 --- a/site/src/pages/UserSettingsPage/SecurityPage/SecurityPage.jest.tsx +++ b/site/src/pages/UserSettingsPage/SecurityPage/SecurityPage.jest.tsx @@ -5,8 +5,8 @@ import { } from "testHelpers/renderHelpers"; import { fireEvent, screen, waitFor, within } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; -import { API } from "api/api"; -import type { OAuthConversionResponse } from "api/typesGenerated"; +import { API } from "#/api/api"; +import type { OAuthConversionResponse } from "#/api/typesGenerated"; import { Language } from "./SecurityForm"; import SecurityPage from "./SecurityPage"; import * as SSO from "./SingleSignOnSection"; diff --git a/site/src/pages/UserSettingsPage/SecurityPage/SecurityPage.tsx b/site/src/pages/UserSettingsPage/SecurityPage/SecurityPage.tsx index 2af37726fb..e944726277 100644 --- a/site/src/pages/UserSettingsPage/SecurityPage/SecurityPage.tsx +++ b/site/src/pages/UserSettingsPage/SecurityPage/SecurityPage.tsx @@ -1,9 +1,9 @@ -import { API } from "api/api"; -import { authMethods, updatePassword } from "api/queries/users"; import { useAuthenticated } from "hooks"; import type { ComponentProps, FC } from "react"; import { useMutation, useQuery } from "react-query"; import { toast } from "sonner"; +import { API } from "#/api/api"; +import { authMethods, updatePassword } from "#/api/queries/users"; import { Loader } from "#/components/Loader/Loader"; import { Stack } from "#/components/Stack/Stack"; import { Section } from "../Section"; diff --git a/site/src/pages/UserSettingsPage/SecurityPage/SingleSignOnSection.tsx b/site/src/pages/UserSettingsPage/SecurityPage/SingleSignOnSection.tsx index a925be1fdb..4056123770 100644 --- a/site/src/pages/UserSettingsPage/SecurityPage/SingleSignOnSection.tsx +++ b/site/src/pages/UserSettingsPage/SecurityPage/SingleSignOnSection.tsx @@ -1,17 +1,17 @@ import Link from "@mui/material/Link"; import TextField from "@mui/material/TextField"; -import { API } from "api/api"; -import { getErrorMessage } from "api/errors"; +import { CircleCheck as CircleCheckIcon, KeyIcon } from "lucide-react"; +import { type FC, useState } from "react"; +import { useMutation } from "react-query"; +import { docs } from "utils/docs"; +import { API } from "#/api/api"; +import { getErrorMessage } from "#/api/errors"; import type { AuthMethods, LoginType, OIDCAuthMethod, UserLoginType, -} from "api/typesGenerated"; -import { CircleCheck as CircleCheckIcon, KeyIcon } from "lucide-react"; -import { type FC, useState } from "react"; -import { useMutation } from "react-query"; -import { docs } from "utils/docs"; +} from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { ConfirmDialog } from "#/components/Dialogs/ConfirmDialog/ConfirmDialog"; import { EmptyState } from "#/components/EmptyState/EmptyState"; diff --git a/site/src/pages/UserSettingsPage/Sidebar.tsx b/site/src/pages/UserSettingsPage/Sidebar.tsx index bfc5550d80..2cbe55f047 100644 --- a/site/src/pages/UserSettingsPage/Sidebar.tsx +++ b/site/src/pages/UserSettingsPage/Sidebar.tsx @@ -1,4 +1,3 @@ -import type { User } from "api/typesGenerated"; import { BellIcon, BrushIcon, @@ -12,6 +11,7 @@ import { import { useDashboard } from "modules/dashboard/useDashboard"; import type { FC } from "react"; import { isDevBuild } from "utils/buildInfo"; +import type { User } from "#/api/typesGenerated"; import { Avatar } from "#/components/Avatar/Avatar"; import { GitIcon } from "#/components/Icons/GitIcon"; import { diff --git a/site/src/pages/UserSettingsPage/TokensPage/ConfirmDeleteDialog.tsx b/site/src/pages/UserSettingsPage/TokensPage/ConfirmDeleteDialog.tsx index 5fbcde23f7..4b918fbfba 100644 --- a/site/src/pages/UserSettingsPage/TokensPage/ConfirmDeleteDialog.tsx +++ b/site/src/pages/UserSettingsPage/TokensPage/ConfirmDeleteDialog.tsx @@ -1,7 +1,7 @@ -import { getErrorDetail, getErrorMessage } from "api/errors"; -import type { APIKeyWithOwner } from "api/typesGenerated"; import type { FC } from "react"; import { toast } from "sonner"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; +import type { APIKeyWithOwner } from "#/api/typesGenerated"; import { ConfirmDialog } from "#/components/Dialogs/ConfirmDialog/ConfirmDialog"; import { useDeleteToken } from "./hooks"; diff --git a/site/src/pages/UserSettingsPage/TokensPage/TokensPage.tsx b/site/src/pages/UserSettingsPage/TokensPage/TokensPage.tsx index adee2e9d87..432688605f 100644 --- a/site/src/pages/UserSettingsPage/TokensPage/TokensPage.tsx +++ b/site/src/pages/UserSettingsPage/TokensPage/TokensPage.tsx @@ -1,8 +1,8 @@ import { css, type Interpolation, type Theme } from "@emotion/react"; -import type { APIKeyWithOwner } from "api/typesGenerated"; import { PlusIcon } from "lucide-react"; import { type FC, useState } from "react"; import { Link as RouterLink } from "react-router"; +import type { APIKeyWithOwner } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { Stack } from "#/components/Stack/Stack"; import { Section } from "../Section"; diff --git a/site/src/pages/UserSettingsPage/TokensPage/TokensPageView.tsx b/site/src/pages/UserSettingsPage/TokensPage/TokensPageView.tsx index 4071aee7d6..eb1e93c608 100644 --- a/site/src/pages/UserSettingsPage/TokensPage/TokensPageView.tsx +++ b/site/src/pages/UserSettingsPage/TokensPage/TokensPageView.tsx @@ -1,10 +1,10 @@ import { useTheme } from "@emotion/react"; import IconButton from "@mui/material/IconButton"; -import type { APIKeyWithOwner } from "api/typesGenerated"; import dayjs from "dayjs"; import relativeTime from "dayjs/plugin/relativeTime"; import { TrashIcon } from "lucide-react"; import type { FC, ReactNode } from "react"; +import type { APIKeyWithOwner } from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { ChooseOne, Cond } from "#/components/Conditionals/ChooseOne"; import { Stack } from "#/components/Stack/Stack"; diff --git a/site/src/pages/UserSettingsPage/TokensPage/hooks.ts b/site/src/pages/UserSettingsPage/TokensPage/hooks.ts index 7c2a4e67ae..de04e6ea73 100644 --- a/site/src/pages/UserSettingsPage/TokensPage/hooks.ts +++ b/site/src/pages/UserSettingsPage/TokensPage/hooks.ts @@ -1,11 +1,11 @@ -import { API } from "api/api"; -import type { TokensFilter } from "api/typesGenerated"; import { type QueryKey, useMutation, useQuery, useQueryClient, } from "react-query"; +import { API } from "#/api/api"; +import type { TokensFilter } from "#/api/typesGenerated"; // Load all tokens export const useTokensData = ({ diff --git a/site/src/pages/UserSettingsPage/WorkspaceProxyPage/WorkspaceProxyRow.tsx b/site/src/pages/UserSettingsPage/WorkspaceProxyPage/WorkspaceProxyRow.tsx index a5a86a9c2a..edcd9b11fa 100644 --- a/site/src/pages/UserSettingsPage/WorkspaceProxyPage/WorkspaceProxyRow.tsx +++ b/site/src/pages/UserSettingsPage/WorkspaceProxyPage/WorkspaceProxyRow.tsx @@ -1,8 +1,8 @@ -import type { Region, WorkspaceProxy } from "api/typesGenerated"; import type { ProxyLatencyReport } from "contexts/useProxyLatency"; import type { FC } from "react"; import { cn } from "utils/cn"; import { getLatencyColor } from "utils/latency"; +import type { Region, WorkspaceProxy } from "#/api/typesGenerated"; import { Avatar } from "#/components/Avatar/Avatar"; import { AvatarData } from "#/components/Avatar/AvatarData"; import { diff --git a/site/src/pages/UserSettingsPage/WorkspaceProxyPage/WorkspaceProxyView.tsx b/site/src/pages/UserSettingsPage/WorkspaceProxyPage/WorkspaceProxyView.tsx index d03cd2212b..246c7d70bb 100644 --- a/site/src/pages/UserSettingsPage/WorkspaceProxyPage/WorkspaceProxyView.tsx +++ b/site/src/pages/UserSettingsPage/WorkspaceProxyPage/WorkspaceProxyView.tsx @@ -1,6 +1,6 @@ -import type { Region } from "api/typesGenerated"; import type { ProxyLatencyReport } from "contexts/useProxyLatency"; import type { FC } from "react"; +import type { Region } from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { ChooseOne, Cond } from "#/components/Conditionals/ChooseOne"; import { diff --git a/site/src/pages/UsersPage/ResetPasswordDialog.tsx b/site/src/pages/UsersPage/ResetPasswordDialog.tsx index 78b5945c7a..20706ddc1f 100644 --- a/site/src/pages/UsersPage/ResetPasswordDialog.tsx +++ b/site/src/pages/UsersPage/ResetPasswordDialog.tsx @@ -1,5 +1,5 @@ -import type * as TypesGen from "api/typesGenerated"; import type { FC, JSX } from "react"; +import type * as TypesGen from "#/api/typesGenerated"; import { CodeExample } from "#/components/CodeExample/CodeExample"; import { ConfirmDialog } from "#/components/Dialogs/ConfirmDialog/ConfirmDialog"; diff --git a/site/src/pages/UsersPage/UsersPage.stories.tsx b/site/src/pages/UsersPage/UsersPage.stories.tsx index 8a2a299bcb..ba3f096a1c 100644 --- a/site/src/pages/UsersPage/UsersPage.stories.tsx +++ b/site/src/pages/UsersPage/UsersPage.stories.tsx @@ -5,16 +5,16 @@ import { withToaster, } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { API } from "api/api"; -import { deploymentConfigQueryKey } from "api/queries/deployment"; -import { groupsQueryKey } from "api/queries/groups"; -import { rolesQueryKey } from "api/queries/roles"; -import { authMethodsQueryKey, usersKey } from "api/queries/users"; -import type { User } from "api/typesGenerated"; import { MockGroups } from "pages/UsersPage/storybookData/groups"; import { MockRoles } from "pages/UsersPage/storybookData/roles"; import { MockUsers } from "pages/UsersPage/storybookData/users"; import { screen, spyOn, userEvent, within } from "storybook/test"; +import { API } from "#/api/api"; +import { deploymentConfigQueryKey } from "#/api/queries/deployment"; +import { groupsQueryKey } from "#/api/queries/groups"; +import { rolesQueryKey } from "#/api/queries/roles"; +import { authMethodsQueryKey, usersKey } from "#/api/queries/users"; +import type { User } from "#/api/typesGenerated"; import UsersPage from "./UsersPage"; const parameters = { diff --git a/site/src/pages/UsersPage/UsersPage.tsx b/site/src/pages/UsersPage/UsersPage.tsx index 1b52a2545e..33d4ccd6b2 100644 --- a/site/src/pages/UsersPage/UsersPage.tsx +++ b/site/src/pages/UsersPage/UsersPage.tsx @@ -1,17 +1,3 @@ -import { getErrorDetail, getErrorMessage } from "api/errors"; -import { deploymentConfig } from "api/queries/deployment"; -import { groupsByUserId } from "api/queries/groups"; -import { roles } from "api/queries/roles"; -import { - activateUser, - authMethods, - deleteUser, - paginatedUsers, - suspendUser, - updatePassword, - updateRoles, -} from "api/queries/users"; -import type { User } from "api/typesGenerated"; import { useAuthenticated } from "hooks"; import { usePaginatedQuery } from "hooks/usePaginatedQuery"; import { useDashboard } from "modules/dashboard/useDashboard"; @@ -21,6 +7,20 @@ import { useNavigate, useSearchParams } from "react-router"; import { toast } from "sonner"; import { pageTitle } from "utils/page"; import { generateRandomString } from "utils/random"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; +import { deploymentConfig } from "#/api/queries/deployment"; +import { groupsByUserId } from "#/api/queries/groups"; +import { roles } from "#/api/queries/roles"; +import { + activateUser, + authMethods, + deleteUser, + paginatedUsers, + suspendUser, + updatePassword, + updateRoles, +} from "#/api/queries/users"; +import type { User } from "#/api/typesGenerated"; import { ConfirmDialog } from "#/components/Dialogs/ConfirmDialog/ConfirmDialog"; import { DeleteDialog } from "#/components/Dialogs/DeleteDialog/DeleteDialog"; import { useFilter } from "#/components/Filter/Filter"; diff --git a/site/src/pages/UsersPage/UsersPageView.tsx b/site/src/pages/UsersPage/UsersPageView.tsx index 4f2c008ed6..058432c164 100644 --- a/site/src/pages/UsersPage/UsersPageView.tsx +++ b/site/src/pages/UsersPage/UsersPageView.tsx @@ -1,8 +1,8 @@ -import type { GroupsByUserId } from "api/queries/groups"; -import type * as TypesGen from "api/typesGenerated"; import { UserPlusIcon } from "lucide-react"; import type { ComponentProps, FC } from "react"; import { Link as RouterLink } from "react-router"; +import type { GroupsByUserId } from "#/api/queries/groups"; +import type * as TypesGen from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { UsersFilter } from "#/components/Filter/UsersFilter"; import { diff --git a/site/src/pages/UsersPage/UsersTable/UserGroupsCell.tsx b/site/src/pages/UsersPage/UsersTable/UserGroupsCell.tsx index aef7b38703..1fba1a4f99 100644 --- a/site/src/pages/UsersPage/UsersTable/UserGroupsCell.tsx +++ b/site/src/pages/UsersPage/UsersTable/UserGroupsCell.tsx @@ -1,10 +1,10 @@ import { useTheme } from "@emotion/react"; import List from "@mui/material/List"; import ListItem from "@mui/material/ListItem"; -import type { Group } from "api/typesGenerated"; import { UsersIcon } from "lucide-react"; import type { FC } from "react"; import { cn } from "utils/cn"; +import type { Group } from "#/api/typesGenerated"; import { Avatar } from "#/components/Avatar/Avatar"; import { OverflowY } from "#/components/OverflowY/OverflowY"; import { TableCell } from "#/components/Table/Table"; diff --git a/site/src/pages/UsersPage/UsersTable/UsersTable.tsx b/site/src/pages/UsersPage/UsersTable/UsersTable.tsx index 6e18e36139..29951944ad 100644 --- a/site/src/pages/UsersPage/UsersTable/UsersTable.tsx +++ b/site/src/pages/UsersPage/UsersTable/UsersTable.tsx @@ -1,6 +1,6 @@ -import type { GroupsByUserId } from "api/queries/groups"; -import type * as TypesGen from "api/typesGenerated"; import type { FC } from "react"; +import type { GroupsByUserId } from "#/api/queries/groups"; +import type * as TypesGen from "#/api/typesGenerated"; import { Stack } from "#/components/Stack/Stack"; import { Table, diff --git a/site/src/pages/UsersPage/UsersTable/UsersTableBody.tsx b/site/src/pages/UsersPage/UsersTable/UsersTableBody.tsx index 95a02718e3..9992cf5901 100644 --- a/site/src/pages/UsersPage/UsersTable/UsersTableBody.tsx +++ b/site/src/pages/UsersPage/UsersTable/UsersTableBody.tsx @@ -1,7 +1,5 @@ import type { Interpolation, Theme } from "@emotion/react"; import Skeleton from "@mui/material/Skeleton"; -import type { GroupsByUserId } from "api/queries/groups"; -import type * as TypesGen from "api/typesGenerated"; import dayjs from "dayjs"; import relativeTime from "dayjs/plugin/relativeTime"; import { @@ -14,6 +12,8 @@ import { } from "lucide-react"; import type { FC } from "react"; import { useNavigate } from "react-router"; +import type { GroupsByUserId } from "#/api/queries/groups"; +import type * as TypesGen from "#/api/typesGenerated"; import { AvatarData } from "#/components/Avatar/AvatarData"; import { AvatarDataSkeleton } from "#/components/Avatar/AvatarDataSkeleton"; import { PremiumBadge } from "#/components/Badges/Badges"; diff --git a/site/src/pages/UsersPage/storybookData/groups.ts b/site/src/pages/UsersPage/storybookData/groups.ts index f3f171e8a5..831419e5cd 100644 --- a/site/src/pages/UsersPage/storybookData/groups.ts +++ b/site/src/pages/UsersPage/storybookData/groups.ts @@ -1,4 +1,4 @@ -import type { Group, GroupSource, User } from "api/typesGenerated"; +import type { Group, GroupSource, User } from "#/api/typesGenerated"; import { MockUsers } from "./users"; function findMockedUserById(id: string): User | undefined { diff --git a/site/src/pages/UsersPage/storybookData/roles.ts b/site/src/pages/UsersPage/storybookData/roles.ts index d885d4f695..08be7cddee 100644 --- a/site/src/pages/UsersPage/storybookData/roles.ts +++ b/site/src/pages/UsersPage/storybookData/roles.ts @@ -1,4 +1,4 @@ -import type { AssignableRoles, RBACAction, Role } from "api/typesGenerated"; +import type { AssignableRoles, RBACAction, Role } from "#/api/typesGenerated"; // The following values were retrieved from the Coder API. export const MockRoles: (AssignableRoles | Role)[] = [ diff --git a/site/src/pages/UsersPage/storybookData/users.ts b/site/src/pages/UsersPage/storybookData/users.ts index 2e9c98ccb0..063f83bf1c 100644 --- a/site/src/pages/UsersPage/storybookData/users.ts +++ b/site/src/pages/UsersPage/storybookData/users.ts @@ -1,4 +1,4 @@ -import type { LoginType, User, UserStatus } from "api/typesGenerated"; +import type { LoginType, User, UserStatus } from "#/api/typesGenerated"; // The following username, name, and email are generated using ChatGPT to avoid // exposing real user data in mock values. While libraries like faker.js could diff --git a/site/src/pages/WorkspaceBuildPage/WorkspaceBuildPage.jest.tsx b/site/src/pages/WorkspaceBuildPage/WorkspaceBuildPage.jest.tsx index 427405ae5a..c036d0fdb3 100644 --- a/site/src/pages/WorkspaceBuildPage/WorkspaceBuildPage.jest.tsx +++ b/site/src/pages/WorkspaceBuildPage/WorkspaceBuildPage.jest.tsx @@ -6,8 +6,8 @@ import { } from "testHelpers/entities"; import { renderWithAuth } from "testHelpers/renderHelpers"; import { screen, waitFor } from "@testing-library/react"; -import { API } from "api/api"; import WS from "jest-websocket-mock"; +import { API } from "#/api/api"; import WorkspaceBuildPage from "./WorkspaceBuildPage"; import { LOGS_TAB_KEY } from "./WorkspaceBuildPageView"; diff --git a/site/src/pages/WorkspaceBuildPage/WorkspaceBuildPage.tsx b/site/src/pages/WorkspaceBuildPage/WorkspaceBuildPage.tsx index e020f345df..d2b0757802 100644 --- a/site/src/pages/WorkspaceBuildPage/WorkspaceBuildPage.tsx +++ b/site/src/pages/WorkspaceBuildPage/WorkspaceBuildPage.tsx @@ -1,11 +1,11 @@ -import { API } from "api/api"; -import { workspaceBuildByNumber } from "api/queries/workspaceBuilds"; import dayjs from "dayjs"; import { useWorkspaceBuildLogs } from "hooks/useWorkspaceBuildLogs"; import type { FC } from "react"; import { keepPreviousData, useQuery } from "react-query"; import { useParams } from "react-router"; import { pageTitle } from "utils/page"; +import { API } from "#/api/api"; +import { workspaceBuildByNumber } from "#/api/queries/workspaceBuilds"; import { WorkspaceBuildPageView } from "./WorkspaceBuildPageView"; const WorkspaceBuildPage: FC = () => { diff --git a/site/src/pages/WorkspaceBuildPage/WorkspaceBuildPageView.tsx b/site/src/pages/WorkspaceBuildPage/WorkspaceBuildPageView.tsx index f73862860b..b4856be4e5 100644 --- a/site/src/pages/WorkspaceBuildPage/WorkspaceBuildPageView.tsx +++ b/site/src/pages/WorkspaceBuildPage/WorkspaceBuildPageView.tsx @@ -1,8 +1,3 @@ -import type { - ProvisionerJobLog, - WorkspaceAgent, - WorkspaceBuild, -} from "api/typesGenerated"; import { useSearchParamsKey } from "hooks/useSearchParamsKey"; import { ExternalLinkIcon } from "lucide-react"; import { BuildAvatar } from "modules/builds/BuildAvatar/BuildAvatar"; @@ -25,6 +20,11 @@ import { Link } from "react-router"; import { cn } from "utils/cn"; import { formatDate } from "utils/time"; import { displayWorkspaceBuildDuration } from "utils/workspace"; +import type { + ProvisionerJobLog, + WorkspaceAgent, + WorkspaceBuild, +} from "#/api/typesGenerated"; import { Alert } from "#/components/Alert/Alert"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Loader } from "#/components/Loader/Loader"; diff --git a/site/src/pages/WorkspacePage/AppStatuses.stories.tsx b/site/src/pages/WorkspacePage/AppStatuses.stories.tsx index d27e64ae70..da061ca968 100644 --- a/site/src/pages/WorkspacePage/AppStatuses.stories.tsx +++ b/site/src/pages/WorkspacePage/AppStatuses.stories.tsx @@ -9,8 +9,8 @@ import { } from "testHelpers/entities"; import { withProxyProvider } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import type { WorkspaceAppStatus } from "api/typesGenerated"; import { userEvent, within } from "storybook/test"; +import type { WorkspaceAppStatus } from "#/api/typesGenerated"; import { AppStatuses } from "./AppStatuses"; const meta: Meta = { diff --git a/site/src/pages/WorkspacePage/AppStatuses.tsx b/site/src/pages/WorkspacePage/AppStatuses.tsx index 240d42d30c..4756e01954 100644 --- a/site/src/pages/WorkspacePage/AppStatuses.tsx +++ b/site/src/pages/WorkspacePage/AppStatuses.tsx @@ -1,9 +1,3 @@ -import type { - WorkspaceAppStatus as APIWorkspaceAppStatus, - Workspace, - WorkspaceAgent, - WorkspaceApp, -} from "api/typesGenerated"; import capitalize from "lodash/capitalize"; import { ExternalLinkIcon, FileIcon, LayoutGridIcon } from "lucide-react"; import { AppStatusStateIcon } from "modules/apps/AppStatusStateIcon"; @@ -11,6 +5,12 @@ import { useAppLink } from "modules/apps/useAppLink"; import { type FC, useState } from "react"; import { timeFrom } from "utils/time"; import { truncateURI } from "utils/uri"; +import type { + WorkspaceAppStatus as APIWorkspaceAppStatus, + Workspace, + WorkspaceAgent, + WorkspaceApp, +} from "#/api/typesGenerated"; import { ChevronDownIcon } from "#/components/AnimatedIcons/ChevronDown"; import { Button } from "#/components/Button/Button"; import { ExternalImage } from "#/components/ExternalImage/ExternalImage"; diff --git a/site/src/pages/WorkspacePage/HistorySidebar.tsx b/site/src/pages/WorkspacePage/HistorySidebar.tsx index eefec0311b..d3a5f54b37 100644 --- a/site/src/pages/WorkspacePage/HistorySidebar.tsx +++ b/site/src/pages/WorkspacePage/HistorySidebar.tsx @@ -1,5 +1,3 @@ -import { infiniteWorkspaceBuilds } from "api/queries/workspaceBuilds"; -import type { Workspace } from "api/typesGenerated"; import { ArrowDownIcon } from "lucide-react"; import { WorkspaceBuildData, @@ -7,6 +5,8 @@ import { } from "modules/workspaces/WorkspaceBuildData/WorkspaceBuildData"; import type { FC } from "react"; import { useInfiniteQuery } from "react-query"; +import { infiniteWorkspaceBuilds } from "#/api/queries/workspaceBuilds"; +import type { Workspace } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { Sidebar, diff --git a/site/src/pages/WorkspacePage/ResourceMetadata.tsx b/site/src/pages/WorkspacePage/ResourceMetadata.tsx index 18c155feea..dc510cf5d3 100644 --- a/site/src/pages/WorkspacePage/ResourceMetadata.tsx +++ b/site/src/pages/WorkspacePage/ResourceMetadata.tsx @@ -1,7 +1,7 @@ import type { Interpolation, Theme } from "@emotion/react"; -import type { WorkspaceResource } from "api/typesGenerated"; import { SensitiveValue } from "modules/resources/SensitiveValue"; import { Children, type FC, type HTMLAttributes } from "react"; +import type { WorkspaceResource } from "#/api/typesGenerated"; import { CopyableValue } from "#/components/CopyableValue/CopyableValue"; import { MemoizedInlineMarkdown } from "#/components/Markdown/Markdown"; diff --git a/site/src/pages/WorkspacePage/ResourcesSidebar.tsx b/site/src/pages/WorkspacePage/ResourcesSidebar.tsx index 28c253fdac..ea0701d72e 100644 --- a/site/src/pages/WorkspacePage/ResourcesSidebar.tsx +++ b/site/src/pages/WorkspacePage/ResourcesSidebar.tsx @@ -1,8 +1,8 @@ import { type Interpolation, type Theme, useTheme } from "@emotion/react"; import Skeleton from "@mui/material/Skeleton"; -import type { WorkspaceResource } from "api/typesGenerated"; import type { FC } from "react"; import { getResourceIconPath } from "utils/workspace"; +import type { WorkspaceResource } from "#/api/typesGenerated"; import { Sidebar, SidebarCaption, diff --git a/site/src/pages/WorkspacePage/Workspace.stories.tsx b/site/src/pages/WorkspacePage/Workspace.stories.tsx index b57a9a6100..be6f181fe2 100644 --- a/site/src/pages/WorkspacePage/Workspace.stories.tsx +++ b/site/src/pages/WorkspacePage/Workspace.stories.tsx @@ -5,8 +5,8 @@ import { withProxyProvider, } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import type { ProvisionerJobLog } from "api/typesGenerated"; import { action } from "storybook/actions"; +import type { ProvisionerJobLog } from "#/api/typesGenerated"; import type { WorkspacePermissions } from "../../modules/workspaces/permissions"; import { Workspace } from "./Workspace"; import { defaultPermissions } from "./WorkspaceNotifications/WorkspaceNotifications.stories"; diff --git a/site/src/pages/WorkspacePage/Workspace.tsx b/site/src/pages/WorkspacePage/Workspace.tsx index 183c7194a8..3faeddc0d4 100644 --- a/site/src/pages/WorkspacePage/Workspace.tsx +++ b/site/src/pages/WorkspacePage/Workspace.tsx @@ -1,4 +1,3 @@ -import type * as TypesGen from "api/typesGenerated"; import { useSearchParamsKey } from "hooks/useSearchParamsKey"; import { BlocksIcon, HistoryIcon } from "lucide-react"; import { ProvisionerStatusAlert } from "modules/provisioners/ProvisionerStatusAlert"; @@ -7,6 +6,7 @@ import { getAgentHealthIssue } from "modules/workspaces/health"; import { WorkspaceTimings } from "modules/workspaces/WorkspaceTiming/WorkspaceTimings"; import type { FC } from "react"; import { useNavigate } from "react-router"; +import type * as TypesGen from "#/api/typesGenerated"; import { Alert, AlertDescription, AlertTitle } from "#/components/Alert/Alert"; import { SidebarIconButton } from "#/components/FullPageLayout/Sidebar"; import type { WorkspacePermissions } from "../../modules/workspaces/permissions"; diff --git a/site/src/pages/WorkspacePage/WorkspaceActions/BuildParametersPopover.tsx b/site/src/pages/WorkspacePage/WorkspaceActions/BuildParametersPopover.tsx index 3ac05c6802..72549d7872 100644 --- a/site/src/pages/WorkspacePage/WorkspaceActions/BuildParametersPopover.tsx +++ b/site/src/pages/WorkspacePage/WorkspaceActions/BuildParametersPopover.tsx @@ -1,10 +1,3 @@ -import { richParameters } from "api/queries/templates"; -import { workspaceBuildParameters } from "api/queries/workspaceBuilds"; -import type { - TemplateVersionParameter, - Workspace, - WorkspaceBuildParameter, -} from "api/typesGenerated"; import { useFormik } from "formik"; import { type FC, useState } from "react"; import { useQuery } from "react-query"; @@ -14,6 +7,13 @@ import { type AutofillBuildParameter, getInitialRichParameterValues, } from "utils/richParameters"; +import { richParameters } from "#/api/queries/templates"; +import { workspaceBuildParameters } from "#/api/queries/workspaceBuilds"; +import type { + TemplateVersionParameter, + Workspace, + WorkspaceBuildParameter, +} from "#/api/typesGenerated"; import { ChevronDownIcon } from "#/components/AnimatedIcons/ChevronDown"; import { Button } from "#/components/Button/Button"; import { FormFields } from "#/components/Form/Form"; diff --git a/site/src/pages/WorkspacePage/WorkspaceActions/Buttons.tsx b/site/src/pages/WorkspacePage/WorkspaceActions/Buttons.tsx index 946b89d9ec..5a1bcd5b8b 100644 --- a/site/src/pages/WorkspacePage/WorkspaceActions/Buttons.tsx +++ b/site/src/pages/WorkspacePage/WorkspaceActions/Buttons.tsx @@ -1,4 +1,3 @@ -import type { Workspace, WorkspaceBuildParameter } from "api/typesGenerated"; import { BanIcon, CloudIcon, @@ -10,6 +9,7 @@ import { StarOffIcon, } from "lucide-react"; import type { FC } from "react"; +import type { Workspace, WorkspaceBuildParameter } from "#/api/typesGenerated"; import { TopbarButton } from "#/components/FullPageLayout/Topbar"; import { Tooltip, diff --git a/site/src/pages/WorkspacePage/WorkspaceActions/DebugButton.stories.tsx b/site/src/pages/WorkspacePage/WorkspaceActions/DebugButton.stories.tsx index e7d3bc04c4..e23c3d2c59 100644 --- a/site/src/pages/WorkspacePage/WorkspaceActions/DebugButton.stories.tsx +++ b/site/src/pages/WorkspacePage/WorkspaceActions/DebugButton.stories.tsx @@ -3,9 +3,9 @@ import { MockWorkspace, } from "testHelpers/entities"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { richParametersKey } from "api/queries/templates"; -import { workspaceBuildParametersKey } from "api/queries/workspaceBuilds"; import { expect, screen, userEvent, waitFor } from "storybook/test"; +import { richParametersKey } from "#/api/queries/templates"; +import { workspaceBuildParametersKey } from "#/api/queries/workspaceBuilds"; import { DebugButton } from "./DebugButton"; const meta: Meta = { diff --git a/site/src/pages/WorkspacePage/WorkspaceActions/DebugButton.tsx b/site/src/pages/WorkspacePage/WorkspaceActions/DebugButton.tsx index c22c2395b4..04b89f722e 100644 --- a/site/src/pages/WorkspacePage/WorkspaceActions/DebugButton.tsx +++ b/site/src/pages/WorkspacePage/WorkspaceActions/DebugButton.tsx @@ -1,6 +1,6 @@ -import type { Workspace } from "api/typesGenerated"; import { BugIcon } from "lucide-react"; import type { FC } from "react"; +import type { Workspace } from "#/api/typesGenerated"; import { TopbarButton } from "#/components/FullPageLayout/Topbar"; import { BuildParametersPopover } from "./BuildParametersPopover"; import type { ActionButtonProps } from "./Buttons"; diff --git a/site/src/pages/WorkspacePage/WorkspaceActions/RetryButton.stories.tsx b/site/src/pages/WorkspacePage/WorkspaceActions/RetryButton.stories.tsx index 2b85ae75b1..8887872a8d 100644 --- a/site/src/pages/WorkspacePage/WorkspaceActions/RetryButton.stories.tsx +++ b/site/src/pages/WorkspacePage/WorkspaceActions/RetryButton.stories.tsx @@ -5,9 +5,9 @@ import { MockWorkspace, } from "testHelpers/entities"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { richParametersKey } from "api/queries/templates"; -import { workspaceBuildParametersKey } from "api/queries/workspaceBuilds"; import { expect, screen, userEvent, waitFor } from "storybook/test"; +import { richParametersKey } from "#/api/queries/templates"; +import { workspaceBuildParametersKey } from "#/api/queries/workspaceBuilds"; import { RetryButton } from "./RetryButton"; const meta: Meta = { diff --git a/site/src/pages/WorkspacePage/WorkspaceActions/RetryButton.tsx b/site/src/pages/WorkspacePage/WorkspaceActions/RetryButton.tsx index 8b0b0e2799..7308374c08 100644 --- a/site/src/pages/WorkspacePage/WorkspaceActions/RetryButton.tsx +++ b/site/src/pages/WorkspacePage/WorkspaceActions/RetryButton.tsx @@ -1,6 +1,6 @@ -import type { Workspace } from "api/typesGenerated"; import { RotateCcwIcon } from "lucide-react"; import type { FC } from "react"; +import type { Workspace } from "#/api/typesGenerated"; import { TopbarButton } from "#/components/FullPageLayout/Topbar"; import { BuildParametersPopover } from "./BuildParametersPopover"; import type { ActionButtonProps } from "./Buttons"; diff --git a/site/src/pages/WorkspacePage/WorkspaceActions/ShareButton.tsx b/site/src/pages/WorkspacePage/WorkspaceActions/ShareButton.tsx index 355ba35597..978b1f55f2 100644 --- a/site/src/pages/WorkspacePage/WorkspaceActions/ShareButton.tsx +++ b/site/src/pages/WorkspacePage/WorkspaceActions/ShareButton.tsx @@ -1,10 +1,10 @@ -import type { Workspace } from "api/typesGenerated"; import { Share2Icon } from "lucide-react"; import { isGroup } from "modules/groups"; import { AddWorkspaceUserOrGroup } from "modules/workspaces/WorkspaceSharingForm/AddWorkspaceUserOrGroup"; import { useWorkspaceSharing } from "modules/workspaces/WorkspaceSharingForm/useWorkspaceSharing"; import { WorkspaceSharingForm } from "modules/workspaces/WorkspaceSharingForm/WorkspaceSharingForm"; import type { FC } from "react"; +import type { Workspace } from "#/api/typesGenerated"; import { FeatureStageBadge } from "#/components/FeatureStageBadge/FeatureStageBadge"; import { TopbarButton } from "#/components/FullPageLayout/Topbar"; import { diff --git a/site/src/pages/WorkspacePage/WorkspaceActions/WorkspaceActions.stories.tsx b/site/src/pages/WorkspacePage/WorkspaceActions/WorkspaceActions.stories.tsx index 2677608936..7bd3aa7b41 100644 --- a/site/src/pages/WorkspacePage/WorkspaceActions/WorkspaceActions.stories.tsx +++ b/site/src/pages/WorkspacePage/WorkspaceActions/WorkspaceActions.stories.tsx @@ -5,9 +5,9 @@ import { withDesktopViewport, } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { deploymentConfigQueryKey } from "api/queries/deployment"; -import { agentLogsKey, buildLogsKey } from "api/queries/workspaces"; import { expect, userEvent, within } from "storybook/test"; +import { deploymentConfigQueryKey } from "#/api/queries/deployment"; +import { agentLogsKey, buildLogsKey } from "#/api/queries/workspaces"; import { WorkspaceActions } from "./WorkspaceActions"; const meta: Meta = { diff --git a/site/src/pages/WorkspacePage/WorkspaceActions/WorkspaceActions.tsx b/site/src/pages/WorkspacePage/WorkspaceActions/WorkspaceActions.tsx index db724792b5..2150f0f449 100644 --- a/site/src/pages/WorkspacePage/WorkspaceActions/WorkspaceActions.tsx +++ b/site/src/pages/WorkspacePage/WorkspaceActions/WorkspaceActions.tsx @@ -1,5 +1,3 @@ -import { deploymentConfig } from "api/queries/deployment"; -import type { Workspace, WorkspaceBuildParameter } from "api/typesGenerated"; import { useAuthenticated } from "hooks/useAuthenticated"; import { type ActionType, @@ -10,6 +8,8 @@ import { WorkspaceMoreActions } from "modules/workspaces/WorkspaceMoreActions/Wo import { type FC, Fragment, type ReactNode } from "react"; import { useQuery } from "react-query"; import { mustUpdateWorkspace } from "utils/workspace"; +import { deploymentConfig } from "#/api/queries/deployment"; +import type { Workspace, WorkspaceBuildParameter } from "#/api/typesGenerated"; import { ActivateButton, CancelButton, diff --git a/site/src/pages/WorkspacePage/WorkspaceBuildLogsSection.tsx b/site/src/pages/WorkspacePage/WorkspaceBuildLogsSection.tsx index 1904424996..863f1cad4f 100644 --- a/site/src/pages/WorkspacePage/WorkspaceBuildLogsSection.tsx +++ b/site/src/pages/WorkspacePage/WorkspaceBuildLogsSection.tsx @@ -1,7 +1,7 @@ import { useTheme } from "@emotion/react"; -import type { ProvisionerJobLog } from "api/typesGenerated"; import { WorkspaceBuildLogs } from "modules/workspaces/WorkspaceBuildLogs/WorkspaceBuildLogs"; import type { FC } from "react"; +import type { ProvisionerJobLog } from "#/api/typesGenerated"; import { Loader } from "#/components/Loader/Loader"; interface WorkspaceBuildLogsSectionProps { diff --git a/site/src/pages/WorkspacePage/WorkspaceBuildProgress.tsx b/site/src/pages/WorkspacePage/WorkspaceBuildProgress.tsx index 32061f2a65..26b2477b18 100644 --- a/site/src/pages/WorkspacePage/WorkspaceBuildProgress.tsx +++ b/site/src/pages/WorkspacePage/WorkspaceBuildProgress.tsx @@ -1,11 +1,15 @@ import { css } from "@emotion/css"; import type { Interpolation, Theme } from "@emotion/react"; import LinearProgress from "@mui/material/LinearProgress"; -import type { Template, TransitionStats, Workspace } from "api/typesGenerated"; import dayjs, { type Dayjs } from "dayjs"; import duration from "dayjs/plugin/duration"; import capitalize from "lodash/capitalize"; import { type FC, useEffect, useState } from "react"; +import type { + Template, + TransitionStats, + Workspace, +} from "#/api/typesGenerated"; dayjs.extend(duration); @@ -166,11 +170,11 @@ export const WorkspaceBuildProgress: FC = ({ const classNames = { bar: css` - transition: none; - `, + transition: none; + `, root: css` - border-radius: 0; - `, + border-radius: 0; + `, }; const styles = { diff --git a/site/src/pages/WorkspacePage/WorkspaceNotifications/WorkspaceNotifications.stories.tsx b/site/src/pages/WorkspacePage/WorkspaceNotifications/WorkspaceNotifications.stories.tsx index 1af4692236..16110836b4 100644 --- a/site/src/pages/WorkspacePage/WorkspaceNotifications/WorkspaceNotifications.stories.tsx +++ b/site/src/pages/WorkspacePage/WorkspaceNotifications/WorkspaceNotifications.stories.tsx @@ -9,10 +9,10 @@ import { } from "testHelpers/entities"; import { withDashboardProvider } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { getWorkspaceResolveAutostartQueryKey } from "api/queries/workspaceQuota"; -import type { Workspace } from "api/typesGenerated"; import type { WorkspacePermissions } from "modules/workspaces/permissions"; import { expect, screen, userEvent, waitFor } from "storybook/test"; +import { getWorkspaceResolveAutostartQueryKey } from "#/api/queries/workspaceQuota"; +import type { Workspace } from "#/api/typesGenerated"; import { WorkspaceNotifications } from "./WorkspaceNotifications"; export const defaultPermissions: WorkspacePermissions = { diff --git a/site/src/pages/WorkspacePage/WorkspaceNotifications/WorkspaceNotifications.tsx b/site/src/pages/WorkspacePage/WorkspaceNotifications/WorkspaceNotifications.tsx index 278244e575..0b38cc0ab3 100644 --- a/site/src/pages/WorkspacePage/WorkspaceNotifications/WorkspaceNotifications.tsx +++ b/site/src/pages/WorkspacePage/WorkspaceNotifications/WorkspaceNotifications.tsx @@ -1,11 +1,4 @@ import type { Interpolation, Theme } from "@emotion/react"; -import { workspaceResolveAutostart } from "api/queries/workspaceQuota"; -import type { - Template, - TemplateVersion, - Workspace, - WorkspaceBuild, -} from "api/typesGenerated"; import dayjs from "dayjs"; import relativeTime from "dayjs/plugin/relativeTime"; import { InfoIcon, TriangleAlertIcon } from "lucide-react"; @@ -13,6 +6,13 @@ import { useDashboard } from "modules/dashboard/useDashboard"; import { TemplateUpdateMessage } from "modules/templates/TemplateUpdateMessage"; import { getAgentHealthIssue } from "modules/workspaces/health"; import { type FC, useEffect, useState } from "react"; +import { workspaceResolveAutostart } from "#/api/queries/workspaceQuota"; +import type { + Template, + TemplateVersion, + Workspace, + WorkspaceBuild, +} from "#/api/typesGenerated"; import { MemoizedInlineMarkdown } from "#/components/Markdown/Markdown"; dayjs.extend(relativeTime); diff --git a/site/src/pages/WorkspacePage/WorkspacePage.jest.tsx b/site/src/pages/WorkspacePage/WorkspacePage.jest.tsx index 71bcf36f9f..43d1237fac 100644 --- a/site/src/pages/WorkspacePage/WorkspacePage.jest.tsx +++ b/site/src/pages/WorkspacePage/WorkspacePage.jest.tsx @@ -24,8 +24,6 @@ import { import { server } from "testHelpers/server"; import { screen, waitFor, within } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; -import * as apiModule from "api/api"; -import type { TemplateVersionParameter, Workspace } from "api/typesGenerated"; import MockServerSocket from "jest-websocket-mock"; import { DashboardContext, @@ -34,6 +32,8 @@ import { import type { WorkspacePermissions } from "modules/workspaces/permissions"; import { HttpResponse, http } from "msw"; import type { FC } from "react"; +import * as apiModule from "#/api/api"; +import type { TemplateVersionParameter, Workspace } from "#/api/typesGenerated"; import WorkspacePage from "./WorkspacePage"; const { API, MissingBuildParameters } = apiModule; diff --git a/site/src/pages/WorkspacePage/WorkspacePage.tsx b/site/src/pages/WorkspacePage/WorkspacePage.tsx index c2b267eeb9..65c4345c76 100644 --- a/site/src/pages/WorkspacePage/WorkspacePage.tsx +++ b/site/src/pages/WorkspacePage/WorkspacePage.tsx @@ -1,16 +1,16 @@ -import { watchWorkspace } from "api/api"; -import { template as templateQueryOptions } from "api/queries/templates"; -import { workspaceBuildsKey } from "api/queries/workspaceBuilds"; -import { - workspaceByOwnerAndName, - workspacePermissions, -} from "api/queries/workspaces"; -import type { Workspace } from "api/typesGenerated"; import { useEffectEvent } from "hooks/hookPolyfills"; import { type FC, useEffect } from "react"; import { useQuery, useQueryClient } from "react-query"; import { useParams } from "react-router"; import { toast } from "sonner"; +import { watchWorkspace } from "#/api/api"; +import { template as templateQueryOptions } from "#/api/queries/templates"; +import { workspaceBuildsKey } from "#/api/queries/workspaceBuilds"; +import { + workspaceByOwnerAndName, + workspacePermissions, +} from "#/api/queries/workspaces"; +import type { Workspace } from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Loader } from "#/components/Loader/Loader"; import { Margins } from "#/components/Margins/Margins"; diff --git a/site/src/pages/WorkspacePage/WorkspaceReadyPage.tsx b/site/src/pages/WorkspacePage/WorkspaceReadyPage.tsx index b9554ce32f..1764b62ec1 100644 --- a/site/src/pages/WorkspacePage/WorkspaceReadyPage.tsx +++ b/site/src/pages/WorkspacePage/WorkspaceReadyPage.tsx @@ -1,21 +1,3 @@ -import { API } from "api/api"; -import { - type ApiError, - getErrorDetail, - getErrorMessage, - isApiError, -} from "api/errors"; -import { templateVersion } from "api/queries/templates"; -import { workspaceBuildTimings } from "api/queries/workspaceBuilds"; -import { - activate, - cancelBuild, - deleteWorkspace, - startWorkspace, - stopWorkspace, - toggleFavorite, -} from "api/queries/workspaces"; -import type * as TypesGen from "api/typesGenerated"; import { useWorkspaceBuildLogs } from "hooks/useWorkspaceBuildLogs"; import { EphemeralParametersDialog } from "modules/workspaces/EphemeralParametersDialog/EphemeralParametersDialog"; import { WorkspaceErrorDialog } from "modules/workspaces/ErrorDialog/WorkspaceErrorDialog"; @@ -29,6 +11,24 @@ import { type FC, useEffect, useState } from "react"; import { useMutation, useQuery, useQueryClient } from "react-query"; import { toast } from "sonner"; import { pageTitle } from "utils/page"; +import { API } from "#/api/api"; +import { + type ApiError, + getErrorDetail, + getErrorMessage, + isApiError, +} from "#/api/errors"; +import { templateVersion } from "#/api/queries/templates"; +import { workspaceBuildTimings } from "#/api/queries/workspaceBuilds"; +import { + activate, + cancelBuild, + deleteWorkspace, + startWorkspace, + stopWorkspace, + toggleFavorite, +} from "#/api/queries/workspaces"; +import type * as TypesGen from "#/api/typesGenerated"; import { ConfirmDialog, type ConfirmDialogProps, diff --git a/site/src/pages/WorkspacePage/WorkspaceScheduleControls.test.tsx b/site/src/pages/WorkspacePage/WorkspaceScheduleControls.test.tsx index f2098250d1..1a62534537 100644 --- a/site/src/pages/WorkspacePage/WorkspaceScheduleControls.test.tsx +++ b/site/src/pages/WorkspacePage/WorkspaceScheduleControls.test.tsx @@ -3,12 +3,12 @@ import { render } from "testHelpers/renderHelpers"; import { server } from "testHelpers/server"; import { screen } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; -import { API } from "api/api"; -import { workspaceByOwnerAndName } from "api/queries/workspaces"; import dayjs from "dayjs"; import { HttpResponse, http } from "msw"; import type { FC } from "react"; import { useQuery } from "react-query"; +import { API } from "#/api/api"; +import { workspaceByOwnerAndName } from "#/api/queries/workspaces"; import { WorkspaceScheduleControls } from "./WorkspaceScheduleControls"; const Wrapper: FC = () => { diff --git a/site/src/pages/WorkspacePage/WorkspaceScheduleControls.tsx b/site/src/pages/WorkspacePage/WorkspaceScheduleControls.tsx index a709e15fd0..86744b4f3f 100644 --- a/site/src/pages/WorkspacePage/WorkspaceScheduleControls.tsx +++ b/site/src/pages/WorkspacePage/WorkspaceScheduleControls.tsx @@ -1,11 +1,5 @@ import type { Interpolation, Theme } from "@emotion/react"; import Link, { type LinkProps } from "@mui/material/Link"; -import { getErrorDetail, getErrorMessage } from "api/errors"; -import { - updateDeadline, - workspaceByOwnerAndNameKey, -} from "api/queries/workspaces"; -import type { Template, Workspace } from "api/typesGenerated"; import dayjs, { type Dayjs } from "dayjs"; import { useTime } from "hooks/useTime"; import { ClockIcon, MinusIcon, PlusIcon } from "lucide-react"; @@ -23,6 +17,12 @@ import { getMinDeadline, } from "utils/schedule"; import { isWorkspaceOn } from "utils/workspace"; +import { getErrorDetail, getErrorMessage } from "#/api/errors"; +import { + updateDeadline, + workspaceByOwnerAndNameKey, +} from "#/api/queries/workspaces"; +import type { Template, Workspace } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { TopbarData, TopbarIcon } from "#/components/FullPageLayout/Topbar"; import { diff --git a/site/src/pages/WorkspacePage/WorkspaceTopbar.stories.tsx b/site/src/pages/WorkspacePage/WorkspaceTopbar.stories.tsx index 487f0f202d..dcdccdc0ed 100644 --- a/site/src/pages/WorkspacePage/WorkspaceTopbar.stories.tsx +++ b/site/src/pages/WorkspacePage/WorkspaceTopbar.stories.tsx @@ -7,10 +7,10 @@ import { } from "testHelpers/entities"; import { withAuthProvider, withDashboardProvider } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { getWorkspaceQuotaQueryKey } from "api/queries/workspaceQuota"; -import type { Workspace, WorkspaceQuota } from "api/typesGenerated"; import dayjs from "dayjs"; import { expect, screen, userEvent, waitFor, within } from "storybook/test"; +import { getWorkspaceQuotaQueryKey } from "#/api/queries/workspaceQuota"; +import type { Workspace, WorkspaceQuota } from "#/api/typesGenerated"; import { WorkspaceTopbar } from "./WorkspaceTopbar"; // We want a workspace without a deadline to not pollute the screenshot. Also diff --git a/site/src/pages/WorkspacePage/WorkspaceTopbar.tsx b/site/src/pages/WorkspacePage/WorkspaceTopbar.tsx index 25c44dc601..40557a7695 100644 --- a/site/src/pages/WorkspacePage/WorkspaceTopbar.tsx +++ b/site/src/pages/WorkspacePage/WorkspaceTopbar.tsx @@ -1,7 +1,5 @@ import { type Interpolation, type Theme, useTheme } from "@emotion/react"; import Link from "@mui/material/Link"; -import { workspaceQuota } from "api/queries/workspaceQuota"; -import type * as TypesGen from "api/typesGenerated"; import { ChevronLeftIcon, CircleDollarSign, TrashIcon } from "lucide-react"; import { useDashboard } from "modules/dashboard/useDashboard"; import { linkToTemplate, useLinks } from "modules/navigation"; @@ -11,6 +9,8 @@ import { useQuery } from "react-query"; import { Link as RouterLink } from "react-router"; import { displayDormantDeletion } from "utils/dormant"; import { formatDate } from "utils/time"; +import { workspaceQuota } from "#/api/queries/workspaceQuota"; +import type * as TypesGen from "#/api/typesGenerated"; import { Avatar } from "#/components/Avatar/Avatar"; import { AvatarData } from "#/components/Avatar/AvatarData"; import { CopyButton } from "#/components/CopyButton/CopyButton"; diff --git a/site/src/pages/WorkspacePage/useResourcesNav.test.tsx b/site/src/pages/WorkspacePage/useResourcesNav.test.tsx index 77ac0c3204..46c76c72a9 100644 --- a/site/src/pages/WorkspacePage/useResourcesNav.test.tsx +++ b/site/src/pages/WorkspacePage/useResourcesNav.test.tsx @@ -1,7 +1,7 @@ import { MockWorkspaceResource } from "testHelpers/entities"; import { renderHook } from "@testing-library/react"; -import type { WorkspaceResource } from "api/typesGenerated"; import { createMemoryRouter, RouterProvider } from "react-router"; +import type { WorkspaceResource } from "#/api/typesGenerated"; import { resourceOptionValue, useResourcesNav } from "./useResourcesNav"; describe("useResourcesNav", () => { diff --git a/site/src/pages/WorkspacePage/useResourcesNav.ts b/site/src/pages/WorkspacePage/useResourcesNav.ts index 33c7fddea4..f0954de0a0 100644 --- a/site/src/pages/WorkspacePage/useResourcesNav.ts +++ b/site/src/pages/WorkspacePage/useResourcesNav.ts @@ -1,7 +1,7 @@ -import type { WorkspaceResource } from "api/typesGenerated"; import { useEffectEvent } from "hooks/hookPolyfills"; import { useSearchParamsKey } from "hooks/useSearchParamsKey"; import { useCallback, useEffect } from "react"; +import type { WorkspaceResource } from "#/api/typesGenerated"; export const resourceOptionValue = (resource: WorkspaceResource) => { return `${resource.type}_${resource.name}`; }; diff --git a/site/src/pages/WorkspaceSettingsPage/WorkspaceParametersPage/WorkspaceParametersForm.tsx b/site/src/pages/WorkspaceSettingsPage/WorkspaceParametersPage/WorkspaceParametersForm.tsx index cc667b4852..612564a817 100644 --- a/site/src/pages/WorkspaceSettingsPage/WorkspaceParametersPage/WorkspaceParametersForm.tsx +++ b/site/src/pages/WorkspaceSettingsPage/WorkspaceParametersPage/WorkspaceParametersForm.tsx @@ -1,8 +1,3 @@ -import type { - TemplateVersionParameter, - Workspace, - WorkspaceBuildParameter, -} from "api/typesGenerated"; import { useFormik } from "formik"; import { ClassicParameterFlowDeprecationWarning } from "modules/workspaces/ClassicParameterFlowDeprecationWarning/ClassicParameterFlowDeprecationWarning"; import type { FC } from "react"; @@ -13,6 +8,11 @@ import { useValidationSchemaForRichParameters, } from "utils/richParameters"; import * as Yup from "yup"; +import type { + TemplateVersionParameter, + Workspace, + WorkspaceBuildParameter, +} from "#/api/typesGenerated"; import { Alert } from "#/components/Alert/Alert"; import { Button } from "#/components/Button/Button"; import { diff --git a/site/src/pages/WorkspaceSettingsPage/WorkspaceParametersPage/WorkspaceParametersPage.test.tsx b/site/src/pages/WorkspaceSettingsPage/WorkspaceParametersPage/WorkspaceParametersPage.test.tsx index c17e9ab65a..752acfca47 100644 --- a/site/src/pages/WorkspaceSettingsPage/WorkspaceParametersPage/WorkspaceParametersPage.test.tsx +++ b/site/src/pages/WorkspaceSettingsPage/WorkspaceParametersPage/WorkspaceParametersPage.test.tsx @@ -14,7 +14,7 @@ import { } from "testHelpers/renderHelpers"; import { screen, waitFor, within } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; -import { API } from "api/api"; +import { API } from "#/api/api"; import WorkspaceParametersPage from "./WorkspaceParametersPage"; test("Submit the workspace settings page successfully", async () => { diff --git a/site/src/pages/WorkspaceSettingsPage/WorkspaceParametersPage/WorkspaceParametersPage.tsx b/site/src/pages/WorkspaceSettingsPage/WorkspaceParametersPage/WorkspaceParametersPage.tsx index 6e4c9afec0..f491f25bae 100644 --- a/site/src/pages/WorkspaceSettingsPage/WorkspaceParametersPage/WorkspaceParametersPage.tsx +++ b/site/src/pages/WorkspaceSettingsPage/WorkspaceParametersPage/WorkspaceParametersPage.tsx @@ -1,19 +1,19 @@ -import { API } from "api/api"; -import { isApiValidationError } from "api/errors"; -import { checkAuthorization } from "api/queries/authCheck"; -import { richParameters } from "api/queries/templates"; -import { workspaceBuildParameters } from "api/queries/workspaceBuilds"; -import type { - TemplateVersionParameter, - Workspace, - WorkspaceBuildParameter, -} from "api/typesGenerated"; import { ExternalLinkIcon } from "lucide-react"; import type { FC } from "react"; import { useMutation, useQuery } from "react-query"; import { useNavigate } from "react-router"; import { docs } from "utils/docs"; import { pageTitle } from "utils/page"; +import { API } from "#/api/api"; +import { isApiValidationError } from "#/api/errors"; +import { checkAuthorization } from "#/api/queries/authCheck"; +import { richParameters } from "#/api/queries/templates"; +import { workspaceBuildParameters } from "#/api/queries/workspaceBuilds"; +import type { + TemplateVersionParameter, + Workspace, + WorkspaceBuildParameter, +} from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Button } from "#/components/Button/Button"; import { EmptyState } from "#/components/EmptyState/EmptyState"; diff --git a/site/src/pages/WorkspaceSettingsPage/WorkspaceParametersPage/WorkspaceParametersPageExperimental.tsx b/site/src/pages/WorkspaceSettingsPage/WorkspaceParametersPage/WorkspaceParametersPageExperimental.tsx index dc05fec311..10b9e294dd 100644 --- a/site/src/pages/WorkspaceSettingsPage/WorkspaceParametersPage/WorkspaceParametersPageExperimental.tsx +++ b/site/src/pages/WorkspaceSettingsPage/WorkspaceParametersPage/WorkspaceParametersPageExperimental.tsx @@ -1,11 +1,3 @@ -import { API } from "api/api"; -import { DetailedError } from "api/errors"; -import { checkAuthorization } from "api/queries/authCheck"; -import type { - DynamicParametersRequest, - DynamicParametersResponse, - WorkspaceBuildParameter, -} from "api/typesGenerated"; import { useEffectEvent } from "hooks/hookPolyfills"; import { CircleHelp } from "lucide-react"; import type { FC } from "react"; @@ -15,6 +7,14 @@ import { useNavigate, useSearchParams } from "react-router"; import { docs } from "utils/docs"; import { pageTitle } from "utils/page"; import type { AutofillBuildParameter } from "utils/richParameters"; +import { API } from "#/api/api"; +import { DetailedError } from "#/api/errors"; +import { checkAuthorization } from "#/api/queries/authCheck"; +import type { + DynamicParametersRequest, + DynamicParametersResponse, + WorkspaceBuildParameter, +} from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { EmptyState } from "#/components/EmptyState/EmptyState"; import { Link } from "#/components/Link/Link"; diff --git a/site/src/pages/WorkspaceSettingsPage/WorkspaceParametersPage/WorkspaceParametersPageViewExperimental.tsx b/site/src/pages/WorkspaceSettingsPage/WorkspaceParametersPage/WorkspaceParametersPageViewExperimental.tsx index dcd84c4bb4..f22feadecc 100644 --- a/site/src/pages/WorkspaceSettingsPage/WorkspaceParametersPage/WorkspaceParametersPageViewExperimental.tsx +++ b/site/src/pages/WorkspaceSettingsPage/WorkspaceParametersPage/WorkspaceParametersPageViewExperimental.tsx @@ -1,8 +1,3 @@ -import type { - PreviewParameter, - Workspace, - WorkspaceBuildParameter, -} from "api/typesGenerated"; import { useFormik } from "formik"; import { useDebouncedFunction } from "hooks/debounce"; import { useSyncFormParameters } from "modules/hooks/useSyncFormParameters"; @@ -15,6 +10,11 @@ import type { FC } from "react"; import { cn } from "utils/cn"; import { docs } from "utils/docs"; import type { AutofillBuildParameter } from "utils/richParameters"; +import type { + PreviewParameter, + Workspace, + WorkspaceBuildParameter, +} from "#/api/typesGenerated"; import { Alert } from "#/components/Alert/Alert"; import { Button } from "#/components/Button/Button"; import { Label } from "#/components/Label/Label"; diff --git a/site/src/pages/WorkspaceSettingsPage/WorkspaceSchedulePage/WorkspaceScheduleForm.test.tsx b/site/src/pages/WorkspaceSettingsPage/WorkspaceSchedulePage/WorkspaceScheduleForm.test.tsx index 12574fa0f2..5aa618bfd9 100644 --- a/site/src/pages/WorkspaceSettingsPage/WorkspaceSchedulePage/WorkspaceScheduleForm.test.tsx +++ b/site/src/pages/WorkspaceSettingsPage/WorkspaceSchedulePage/WorkspaceScheduleForm.test.tsx @@ -1,9 +1,9 @@ import { MockTemplate } from "testHelpers/entities"; import { render } from "testHelpers/renderHelpers"; import { screen } from "@testing-library/react"; -import { API } from "api/api"; import { defaultSchedule } from "pages/WorkspaceSettingsPage/WorkspaceSchedulePage/schedule"; import { timeZones } from "utils/timeZones"; +import { API } from "#/api/api"; import { Language, ttlShutdownAt, diff --git a/site/src/pages/WorkspaceSettingsPage/WorkspaceSchedulePage/WorkspaceScheduleForm.tsx b/site/src/pages/WorkspaceSettingsPage/WorkspaceSchedulePage/WorkspaceScheduleForm.tsx index f8b1ccfec0..ea7e482a93 100644 --- a/site/src/pages/WorkspaceSettingsPage/WorkspaceSchedulePage/WorkspaceScheduleForm.tsx +++ b/site/src/pages/WorkspaceSettingsPage/WorkspaceSchedulePage/WorkspaceScheduleForm.tsx @@ -1,4 +1,3 @@ -import type { Template } from "api/typesGenerated"; import dayjs from "dayjs"; import timezone from "dayjs/plugin/timezone"; import { type FormikTouched, useFormik } from "formik"; @@ -11,6 +10,7 @@ import { getFormHelpers } from "utils/formUtils"; import { humanDuration } from "utils/time"; import { timeZones } from "utils/timeZones"; import * as Yup from "yup"; +import type { Template } from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { Checkbox } from "#/components/Checkbox/Checkbox"; import { diff --git a/site/src/pages/WorkspaceSettingsPage/WorkspaceSchedulePage/WorkspaceSchedulePage.stories.tsx b/site/src/pages/WorkspaceSettingsPage/WorkspaceSchedulePage/WorkspaceSchedulePage.stories.tsx index 6625e092f7..51d5171b6a 100644 --- a/site/src/pages/WorkspaceSettingsPage/WorkspaceSchedulePage/WorkspaceSchedulePage.stories.tsx +++ b/site/src/pages/WorkspaceSettingsPage/WorkspaceSchedulePage/WorkspaceSchedulePage.stories.tsx @@ -6,14 +6,14 @@ import { } from "testHelpers/entities"; import { withAuthProvider, withDashboardProvider } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { templateByNameKey } from "api/queries/templates"; -import { workspaceByOwnerAndNameKey } from "api/queries/workspaces"; -import type { Workspace } from "api/typesGenerated"; import type { WorkspacePermissions } from "modules/workspaces/permissions"; import { reactRouterOutlet, reactRouterParameters, } from "storybook-addon-remix-react-router"; +import { templateByNameKey } from "#/api/queries/templates"; +import { workspaceByOwnerAndNameKey } from "#/api/queries/workspaces"; +import type { Workspace } from "#/api/typesGenerated"; import { WorkspaceSettingsLayout } from "../WorkspaceSettingsLayout"; import WorkspaceSchedulePage from "./WorkspaceSchedulePage"; diff --git a/site/src/pages/WorkspaceSettingsPage/WorkspaceSchedulePage/WorkspaceSchedulePage.tsx b/site/src/pages/WorkspaceSettingsPage/WorkspaceSchedulePage/WorkspaceSchedulePage.tsx index 291bbb0655..c8d3e180d9 100644 --- a/site/src/pages/WorkspaceSettingsPage/WorkspaceSchedulePage/WorkspaceSchedulePage.tsx +++ b/site/src/pages/WorkspaceSettingsPage/WorkspaceSchedulePage/WorkspaceSchedulePage.tsx @@ -1,8 +1,3 @@ -import { API } from "api/api"; -import { getErrorDetail } from "api/errors"; -import { templateByName } from "api/queries/templates"; -import { workspaceByOwnerAndNameKey } from "api/queries/workspaces"; -import type * as TypesGen from "api/typesGenerated"; import dayjs from "dayjs"; import { scheduleChanged, @@ -15,6 +10,11 @@ import { useNavigate, useParams } from "react-router"; import { toast } from "sonner"; import { docs } from "utils/docs"; import { pageTitle } from "utils/page"; +import { API } from "#/api/api"; +import { getErrorDetail } from "#/api/errors"; +import { templateByName } from "#/api/queries/templates"; +import { workspaceByOwnerAndNameKey } from "#/api/queries/workspaces"; +import type * as TypesGen from "#/api/typesGenerated"; import { Alert } from "#/components/Alert/Alert"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { ConfirmDialog } from "#/components/Dialogs/ConfirmDialog/ConfirmDialog"; diff --git a/site/src/pages/WorkspaceSettingsPage/WorkspaceSchedulePage/formToRequest.ts b/site/src/pages/WorkspaceSettingsPage/WorkspaceSchedulePage/formToRequest.ts index 95abc35add..ea7ea99fc6 100644 --- a/site/src/pages/WorkspaceSettingsPage/WorkspaceSchedulePage/formToRequest.ts +++ b/site/src/pages/WorkspaceSettingsPage/WorkspaceSchedulePage/formToRequest.ts @@ -1,4 +1,4 @@ -import type * as TypesGen from "api/typesGenerated"; +import type * as TypesGen from "#/api/typesGenerated"; import type { WorkspaceScheduleFormValues } from "./WorkspaceScheduleForm"; export const formValuesToAutostartRequest = ( diff --git a/site/src/pages/WorkspaceSettingsPage/WorkspaceSettingsForm.tsx b/site/src/pages/WorkspaceSettingsPage/WorkspaceSettingsForm.tsx index d4c35a4fa2..a82237ba77 100644 --- a/site/src/pages/WorkspaceSettingsPage/WorkspaceSettingsForm.tsx +++ b/site/src/pages/WorkspaceSettingsPage/WorkspaceSettingsForm.tsx @@ -1,11 +1,6 @@ import type { Theme } from "@emotion/react"; import MenuItem from "@mui/material/MenuItem"; import TextField from "@mui/material/TextField"; -import { - type AutomaticUpdates, - AutomaticUpdateses, - type Workspace, -} from "api/typesGenerated"; import { useFormik } from "formik"; import upperFirst from "lodash/upperFirst"; import type { FC } from "react"; @@ -15,6 +10,11 @@ import { onChangeTrimmed, } from "utils/formUtils"; import * as Yup from "yup"; +import { + type AutomaticUpdates, + AutomaticUpdateses, + type Workspace, +} from "#/api/typesGenerated"; import { Button } from "#/components/Button/Button"; import { FormFields, diff --git a/site/src/pages/WorkspaceSettingsPage/WorkspaceSettingsLayout.tsx b/site/src/pages/WorkspaceSettingsPage/WorkspaceSettingsLayout.tsx index 15d415a2ba..59907df4aa 100644 --- a/site/src/pages/WorkspaceSettingsPage/WorkspaceSettingsLayout.tsx +++ b/site/src/pages/WorkspaceSettingsPage/WorkspaceSettingsLayout.tsx @@ -1,11 +1,11 @@ -import { - workspaceByOwnerAndName, - workspacePermissions, -} from "api/queries/workspaces"; import { type FC, Suspense } from "react"; import { useQuery } from "react-query"; import { Outlet, useParams } from "react-router"; import { pageTitle } from "utils/page"; +import { + workspaceByOwnerAndName, + workspacePermissions, +} from "#/api/queries/workspaces"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Loader } from "#/components/Loader/Loader"; import { Margins } from "#/components/Margins/Margins"; diff --git a/site/src/pages/WorkspaceSettingsPage/WorkspaceSettingsPage.test.tsx b/site/src/pages/WorkspaceSettingsPage/WorkspaceSettingsPage.test.tsx index 22da21eb26..5ae0091587 100644 --- a/site/src/pages/WorkspaceSettingsPage/WorkspaceSettingsPage.test.tsx +++ b/site/src/pages/WorkspaceSettingsPage/WorkspaceSettingsPage.test.tsx @@ -5,7 +5,7 @@ import { } from "testHelpers/renderHelpers"; import { screen, waitFor, within } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; -import { API } from "api/api"; +import { API } from "#/api/api"; import WorkspaceSettingsPage from "./WorkspaceSettingsPage"; test("Submit the workspace settings page successfully", async () => { diff --git a/site/src/pages/WorkspaceSettingsPage/WorkspaceSettingsPage.tsx b/site/src/pages/WorkspaceSettingsPage/WorkspaceSettingsPage.tsx index 34668efd57..3c8b6f4b5a 100644 --- a/site/src/pages/WorkspaceSettingsPage/WorkspaceSettingsPage.tsx +++ b/site/src/pages/WorkspaceSettingsPage/WorkspaceSettingsPage.tsx @@ -1,9 +1,9 @@ -import { API } from "api/api"; import type { FC } from "react"; import { useMutation } from "react-query"; import { useNavigate, useParams } from "react-router"; import { toast } from "sonner"; import { pageTitle } from "utils/page"; +import { API } from "#/api/api"; import { useWorkspaceSettings } from "./useWorkspaceSettings"; import type { WorkspaceSettingsFormValues } from "./WorkspaceSettingsForm"; import { WorkspaceSettingsPageView } from "./WorkspaceSettingsPageView"; diff --git a/site/src/pages/WorkspaceSettingsPage/WorkspaceSettingsPageView.tsx b/site/src/pages/WorkspaceSettingsPage/WorkspaceSettingsPageView.tsx index 985a32a4f2..fdd8095c42 100644 --- a/site/src/pages/WorkspaceSettingsPage/WorkspaceSettingsPageView.tsx +++ b/site/src/pages/WorkspaceSettingsPage/WorkspaceSettingsPageView.tsx @@ -1,5 +1,5 @@ -import type { Workspace } from "api/typesGenerated"; import type { ComponentProps, FC } from "react"; +import type { Workspace } from "#/api/typesGenerated"; import { PageHeader, PageHeaderTitle, diff --git a/site/src/pages/WorkspaceSettingsPage/WorkspaceSharingPage/WorkspaceSharingPage.tsx b/site/src/pages/WorkspaceSettingsPage/WorkspaceSharingPage/WorkspaceSharingPage.tsx index 4ff28968e1..802cc96659 100644 --- a/site/src/pages/WorkspaceSettingsPage/WorkspaceSharingPage/WorkspaceSharingPage.tsx +++ b/site/src/pages/WorkspaceSettingsPage/WorkspaceSharingPage/WorkspaceSharingPage.tsx @@ -1,4 +1,3 @@ -import { checkAuthorization } from "api/queries/authCheck"; import type { WorkspacePermissions } from "modules/workspaces/permissions"; import { workspaceChecks } from "modules/workspaces/permissions"; import { useWorkspaceSharing } from "modules/workspaces/WorkspaceSharingForm/useWorkspaceSharing"; @@ -6,6 +5,7 @@ import type { FC } from "react"; import { useQuery } from "react-query"; import { docs } from "utils/docs"; import { pageTitle } from "utils/page"; +import { checkAuthorization } from "#/api/queries/authCheck"; import { Link } from "#/components/Link/Link"; import { useWorkspaceSettings } from "../useWorkspaceSettings"; import { WorkspaceSharingPageView } from "./WorkspaceSharingPageView"; diff --git a/site/src/pages/WorkspaceSettingsPage/WorkspaceSharingPage/WorkspaceSharingPageView.stories.tsx b/site/src/pages/WorkspaceSettingsPage/WorkspaceSharingPage/WorkspaceSharingPageView.stories.tsx index f40f4215d6..97c230c436 100644 --- a/site/src/pages/WorkspaceSettingsPage/WorkspaceSharingPage/WorkspaceSharingPageView.stories.tsx +++ b/site/src/pages/WorkspaceSettingsPage/WorkspaceSharingPage/WorkspaceSharingPageView.stories.tsx @@ -7,12 +7,12 @@ import { mockApiError, } from "testHelpers/entities"; import type { Meta, StoryObj } from "@storybook/react-vite"; -import { getWorkspaceSharingSettingsKey } from "api/queries/organizations"; +import { getWorkspaceSharingSettingsKey } from "#/api/queries/organizations"; import type { WorkspaceACL, WorkspaceGroup, WorkspaceUser, -} from "api/typesGenerated"; +} from "#/api/typesGenerated"; import { WorkspaceSharingPageView } from "./WorkspaceSharingPageView"; const mockWorkspaceUser: WorkspaceUser = { diff --git a/site/src/pages/WorkspaceSettingsPage/WorkspaceSharingPage/WorkspaceSharingPageView.tsx b/site/src/pages/WorkspaceSettingsPage/WorkspaceSharingPage/WorkspaceSharingPageView.tsx index 1c2a5329c0..77d1629cbb 100644 --- a/site/src/pages/WorkspaceSettingsPage/WorkspaceSharingPage/WorkspaceSharingPageView.tsx +++ b/site/src/pages/WorkspaceSettingsPage/WorkspaceSharingPage/WorkspaceSharingPageView.tsx @@ -1,3 +1,7 @@ +import { isGroup } from "modules/groups"; +import { AddWorkspaceUserOrGroup } from "modules/workspaces/WorkspaceSharingForm/AddWorkspaceUserOrGroup"; +import { WorkspaceSharingForm } from "modules/workspaces/WorkspaceSharingForm/WorkspaceSharingForm"; +import type { FC } from "react"; import type { Group, Workspace, @@ -5,11 +9,7 @@ import type { WorkspaceGroup, WorkspaceRole, WorkspaceUser, -} from "api/typesGenerated"; -import { isGroup } from "modules/groups"; -import { AddWorkspaceUserOrGroup } from "modules/workspaces/WorkspaceSharingForm/AddWorkspaceUserOrGroup"; -import { WorkspaceSharingForm } from "modules/workspaces/WorkspaceSharingForm/WorkspaceSharingForm"; -import type { FC } from "react"; +} from "#/api/typesGenerated"; interface WorkspaceSharingPageViewProps { workspace: Workspace; diff --git a/site/src/serviceWorker.test.ts b/site/src/serviceWorker.test.ts index 341787133e..b398bfbb1e 100644 --- a/site/src/serviceWorker.test.ts +++ b/site/src/serviceWorker.test.ts @@ -1,4 +1,4 @@ -import type { WebpushMessage } from "api/typesGenerated"; +import type { WebpushMessage } from "#/api/typesGenerated"; // We need to mock the ServiceWorkerGlobalScope before importing the // module, since serviceWorker.ts registers event listeners at the diff --git a/site/src/serviceWorker.ts b/site/src/serviceWorker.ts index a5e4134312..eafd09925b 100644 --- a/site/src/serviceWorker.ts +++ b/site/src/serviceWorker.ts @@ -1,6 +1,6 @@ /// -import type { WebpushMessage } from "api/typesGenerated"; +import type { WebpushMessage } from "#/api/typesGenerated"; declare const self: ServiceWorkerGlobalScope; diff --git a/site/src/testHelpers/entities.ts b/site/src/testHelpers/entities.ts index 2d4061c023..368cb435f4 100644 --- a/site/src/testHelpers/entities.ts +++ b/site/src/testHelpers/entities.ts @@ -1,16 +1,16 @@ -import { - type DeploymentConfig, - type GetLicensesResponse, - withDefaultFeatures, -} from "api/api"; -import type { FieldError } from "api/errors"; -import type * as TypesGen from "api/typesGenerated"; import type { ProxyLatencyReport } from "contexts/useProxyLatency"; import range from "lodash/range"; import type { Permissions } from "modules/permissions"; import type { OrganizationPermissions } from "modules/permissions/organizations"; import type { FileTree } from "utils/filetree"; import type { TemplateVersionFiles } from "utils/templateVersion"; +import { + type DeploymentConfig, + type GetLicensesResponse, + withDefaultFeatures, +} from "#/api/api"; +import type { FieldError } from "#/api/errors"; +import type * as TypesGen from "#/api/typesGenerated"; export const MockOrganization: TypesGen.Organization = { id: "my-organization-id", diff --git a/site/src/testHelpers/handlers.ts b/site/src/testHelpers/handlers.ts index 007997be05..0483eb5aff 100644 --- a/site/src/testHelpers/handlers.ts +++ b/site/src/testHelpers/handlers.ts @@ -1,8 +1,8 @@ import fs from "node:fs"; import path from "node:path"; -import type { CreateWorkspaceBuildRequest } from "api/typesGenerated"; import { permissionChecks } from "modules/permissions"; import { HttpResponse, http } from "msw"; +import type { CreateWorkspaceBuildRequest } from "#/api/typesGenerated"; import * as M from "./entities"; import { MockGroup, MockWorkspaceQuota } from "./entities"; diff --git a/site/src/testHelpers/storybook.tsx b/site/src/testHelpers/storybook.tsx index 56fbaeff9c..85f64baa1c 100644 --- a/site/src/testHelpers/storybook.tsx +++ b/site/src/testHelpers/storybook.tsx @@ -1,8 +1,4 @@ import type { StoryContext } from "@storybook/react-vite"; -import { withDefaultFeatures } from "api/api"; -import { getAuthorizationKey } from "api/queries/authCheck"; -import { hasFirstUserKey, meKey } from "api/queries/users"; -import type { Entitlements } from "api/typesGenerated"; import { AuthProvider } from "contexts/auth/AuthProvider"; import { getPreferredProxy, @@ -15,6 +11,10 @@ import { OrganizationSettingsContext } from "modules/management/OrganizationSett import { permissionChecks } from "modules/permissions"; import type { FC } from "react"; import { useQueryClient } from "react-query"; +import { withDefaultFeatures } from "#/api/api"; +import { getAuthorizationKey } from "#/api/queries/authCheck"; +import { hasFirstUserKey, meKey } from "#/api/queries/users"; +import type { Entitlements } from "#/api/typesGenerated"; import { Toaster } from "#/components/Toaster/Toaster"; import { MockAppearanceConfig, diff --git a/site/src/theme/constants.ts b/site/src/theme/constants.ts index 3414f06932..62274d5001 100644 --- a/site/src/theme/constants.ts +++ b/site/src/theme/constants.ts @@ -1,4 +1,4 @@ -import type { TerminalFontName } from "api/typesGenerated"; +import type { TerminalFontName } from "#/api/typesGenerated"; export const borderRadius = 8; diff --git a/site/src/utils/buildInfo.ts b/site/src/utils/buildInfo.ts index ade54b6357..dae7dd2c9f 100644 --- a/site/src/utils/buildInfo.ts +++ b/site/src/utils/buildInfo.ts @@ -1,4 +1,4 @@ -import type { BuildInfoResponse } from "api/typesGenerated"; +import type { BuildInfoResponse } from "#/api/typesGenerated"; let CACHED_BUILD_INFO: BuildInfoResponse | undefined; diff --git a/site/src/utils/connection.ts b/site/src/utils/connection.ts index 0150fa333e..9b13d825b2 100644 --- a/site/src/utils/connection.ts +++ b/site/src/utils/connection.ts @@ -1,4 +1,4 @@ -import type { ConnectionType } from "api/typesGenerated"; +import type { ConnectionType } from "#/api/typesGenerated"; export const connectionTypeToFriendlyName = (type: ConnectionType): string => { switch (type) { diff --git a/site/src/utils/deployOptions.ts b/site/src/utils/deployOptions.ts index d5397f7431..8e41340c87 100644 --- a/site/src/utils/deployOptions.ts +++ b/site/src/utils/deployOptions.ts @@ -1,5 +1,5 @@ -import type { SerpentGroup, SerpentOption } from "api/typesGenerated"; import { useMemo } from "react"; +import type { SerpentGroup, SerpentOption } from "#/api/typesGenerated"; const deploymentOptions = ( options: SerpentOption[], diff --git a/site/src/utils/dormant.test.ts b/site/src/utils/dormant.test.ts index ff4b935df5..ce84127ec9 100644 --- a/site/src/utils/dormant.test.ts +++ b/site/src/utils/dormant.test.ts @@ -1,5 +1,5 @@ import * as Mocks from "testHelpers/entities"; -import type * as TypesGen from "api/typesGenerated"; +import type * as TypesGen from "#/api/typesGenerated"; import { displayDormantDeletion } from "./dormant"; describe("displayDormantDeletion", () => { diff --git a/site/src/utils/dormant.ts b/site/src/utils/dormant.ts index 78bdd23b61..e5d6785bf3 100644 --- a/site/src/utils/dormant.ts +++ b/site/src/utils/dormant.ts @@ -1,4 +1,4 @@ -import type { Workspace } from "api/typesGenerated"; +import type { Workspace } from "#/api/typesGenerated"; // This const dictates how far out we alert the user that a workspace // has an impending deletion (due to template.InactivityTTL being set) diff --git a/site/src/utils/formUtils.ts b/site/src/utils/formUtils.ts index 558bb3eb47..5431b069ba 100644 --- a/site/src/utils/formUtils.ts +++ b/site/src/utils/formUtils.ts @@ -1,4 +1,3 @@ -import { isApiValidationError, mapApiErrorToFieldErrors } from "api/errors"; import { type FormikContextType, type FormikErrors, getIn } from "formik"; import type { ChangeEvent, @@ -7,6 +6,7 @@ import type { ReactNode, } from "react"; import * as Yup from "yup"; +import { isApiValidationError, mapApiErrorToFieldErrors } from "#/api/errors"; const Language = { nameRequired: (name: string): string => { diff --git a/site/src/utils/portForward.ts b/site/src/utils/portForward.ts index b682a67fbd..b8b8845368 100644 --- a/site/src/utils/portForward.ts +++ b/site/src/utils/portForward.ts @@ -1,4 +1,4 @@ -import type { WorkspaceAgentPortShareProtocol } from "api/typesGenerated"; +import type { WorkspaceAgentPortShareProtocol } from "#/api/typesGenerated"; const localHosts = new Set(["localhost", "127.0.0.1", "0.0.0.0"]); diff --git a/site/src/utils/provisionerJob.ts b/site/src/utils/provisionerJob.ts index 61506ce89e..708b634ff4 100644 --- a/site/src/utils/provisionerJob.ts +++ b/site/src/utils/provisionerJob.ts @@ -1,4 +1,4 @@ -import type { ProvisionerJob } from "api/typesGenerated"; +import type { ProvisionerJob } from "#/api/typesGenerated"; export const getPendingStatusLabel = ( provisionerJob?: ProvisionerJob, diff --git a/site/src/utils/richParameters.test.ts b/site/src/utils/richParameters.test.ts index ef4819b1ba..e1cb956f9b 100644 --- a/site/src/utils/richParameters.test.ts +++ b/site/src/utils/richParameters.test.ts @@ -1,4 +1,4 @@ -import type { TemplateVersionParameter } from "api/typesGenerated"; +import type { TemplateVersionParameter } from "#/api/typesGenerated"; import { getInitialRichParameterValues } from "./richParameters"; test("getInitialRichParameterValues return default value when default build parameter is not valid", () => { diff --git a/site/src/utils/richParameters.ts b/site/src/utils/richParameters.ts index 6bf6262406..e9af4bcb5e 100644 --- a/site/src/utils/richParameters.ts +++ b/site/src/utils/richParameters.ts @@ -1,8 +1,8 @@ +import * as Yup from "yup"; import type { TemplateVersionParameter, WorkspaceBuildParameter, -} from "api/typesGenerated"; -import * as Yup from "yup"; +} from "#/api/typesGenerated"; export type AutofillSource = "user_history" | "url" | "active_build"; diff --git a/site/src/utils/schedule.test.ts b/site/src/utils/schedule.test.ts index 20289dddde..ee0b94162d 100644 --- a/site/src/utils/schedule.test.ts +++ b/site/src/utils/schedule.test.ts @@ -1,7 +1,7 @@ import * as Mocks from "testHelpers/entities"; -import type { Workspace } from "api/typesGenerated"; import dayjs from "dayjs"; import duration from "dayjs/plugin/duration"; +import type { Workspace } from "#/api/typesGenerated"; import { deadlineExtensionMax, deadlineExtensionMin, diff --git a/site/src/utils/schedule.tsx b/site/src/utils/schedule.tsx index 2182f62b92..14c0273b99 100644 --- a/site/src/utils/schedule.tsx +++ b/site/src/utils/schedule.tsx @@ -1,5 +1,4 @@ import Link from "@mui/material/Link"; -import type { Template, Workspace } from "api/typesGenerated"; import cronParser from "cron-parser"; import cronstrue from "cronstrue"; import dayjs, { type Dayjs } from "dayjs"; @@ -10,6 +9,7 @@ import utc from "dayjs/plugin/utc"; import type { WorkspaceActivityStatus } from "modules/workspaces/activity"; import type { ReactNode } from "react"; import { Link as RouterLink } from "react-router"; +import type { Template, Workspace } from "#/api/typesGenerated"; import { HelpTooltipTitle } from "#/components/HelpTooltip/HelpTooltip"; import { isWorkspaceOn } from "./workspace"; diff --git a/site/src/utils/starterTemplates.ts b/site/src/utils/starterTemplates.ts index 5419213ec6..25415d463a 100644 --- a/site/src/utils/starterTemplates.ts +++ b/site/src/utils/starterTemplates.ts @@ -1,4 +1,4 @@ -import type { TemplateExample } from "api/typesGenerated"; +import type { TemplateExample } from "#/api/typesGenerated"; export type StarterTemplatesByTag = Record; diff --git a/site/src/utils/telemetry.ts b/site/src/utils/telemetry.ts index dca8bd8edc..602d203d92 100644 --- a/site/src/utils/telemetry.ts +++ b/site/src/utils/telemetry.ts @@ -1,4 +1,4 @@ -import type { BuildInfoResponse } from "api/typesGenerated"; +import type { BuildInfoResponse } from "#/api/typesGenerated"; // sendDeploymentEvent sends a CORs payload to coder.com // to track a deployment event. diff --git a/site/src/utils/terminal.ts b/site/src/utils/terminal.ts index ba3a08bb2d..6dba1a9cdc 100644 --- a/site/src/utils/terminal.ts +++ b/site/src/utils/terminal.ts @@ -1,4 +1,4 @@ -import { API } from "api/api"; +import { API } from "#/api/api"; export const terminalWebsocketUrl = async ( baseUrl: string | undefined, diff --git a/site/src/utils/workspace.test.ts b/site/src/utils/workspace.test.ts index 1bc8d2de99..072dcfa49a 100644 --- a/site/src/utils/workspace.test.ts +++ b/site/src/utils/workspace.test.ts @@ -1,6 +1,6 @@ import * as Mocks from "testHelpers/entities"; -import type * as TypesGen from "api/typesGenerated"; import dayjs from "dayjs"; +import type * as TypesGen from "#/api/typesGenerated"; import { agentVersionStatus, defaultWorkspaceExtension, diff --git a/site/src/utils/workspace.tsx b/site/src/utils/workspace.tsx index 0ee00e4200..00f3a5a2cb 100644 --- a/site/src/utils/workspace.tsx +++ b/site/src/utils/workspace.tsx @@ -1,5 +1,4 @@ import type { Theme } from "@emotion/react"; -import type * as TypesGen from "api/typesGenerated"; import dayjs from "dayjs"; import duration from "dayjs/plugin/duration"; import minMax from "dayjs/plugin/minMax"; @@ -11,6 +10,7 @@ import { SquareIcon, } from "lucide-react"; import semver from "semver"; +import type * as TypesGen from "#/api/typesGenerated"; import { PillSpinner } from "#/components/Pill/Pill"; import { getPendingStatusLabel } from "./provisionerJob";