From 8ea7942b9375fe71e5c0c6414de50297189e1505 Mon Sep 17 00:00:00 2001 From: Ari Date: Tue, 4 Feb 2025 17:55:08 -0800 Subject: [PATCH] dashboard: import dashboard-common with relative imports and path aliases (#34072) Unlike using a `dist` build, this allows HMR to work GitOrigin-RevId: 462145fc3d5423cdd31d8518c47510acfbd9ee42 --- .../common/config/rush/pnpm-lock.yaml | 48 +----- .../dashboard-common/config/rush-project.json | 10 -- npm-packages/dashboard-common/jest.config.ts | 1 - npm-packages/dashboard-common/package.json | 8 +- .../src/elements/BigChart.tsx | 8 +- .../src/elements/BigMetric.tsx | 2 +- .../src/elements/Button.stories.tsx | 2 +- .../dashboard-common/src/elements/Button.tsx | 2 +- .../src/elements/Calendar.stories.tsx | 2 +- .../src/elements/Calendar.tsx | 2 +- .../dashboard-common/src/elements/Callout.tsx | 4 +- .../src/elements/ChartModal.tsx | 6 +- .../src/elements/ClosePanelButton.tsx | 2 +- .../src/elements/Combobox.stories.tsx | 2 +- .../src/elements/Combobox.tsx | 4 +- .../src/elements/ConfirmationDialog.tsx | 8 +- .../src/elements/CopyButton.stories.tsx | 2 +- .../src/elements/CopyButton.tsx | 4 +- .../src/elements/CopyTextButton.tsx | 4 +- .../src/elements/DateRangePicker.stories.tsx | 2 +- .../src/elements/DateRangePicker.tsx | 6 +- .../DeploymentEventContent.stories.tsx | 2 +- .../src/elements/DeploymentEventContent.tsx | 16 +- .../src/elements/DeploymentPageTitle.tsx | 2 +- .../src/elements/DetailPanel.tsx | 6 +- .../src/elements/EmptySection.tsx | 6 +- .../src/elements/FunctionNameOption.tsx | 8 +- .../src/elements/HealthCard.tsx | 8 +- .../src/elements/KeyboardShortcut.stories.tsx | 2 +- .../dashboard-common/src/elements/Loading.tsx | 2 +- .../src/elements/LogOutput.tsx | 4 +- .../src/elements/Menu.stories.tsx | 2 +- .../src/elements/Menu.test.tsx | 2 +- .../dashboard-common/src/elements/Menu.tsx | 6 +- .../src/elements/Modal.stories.tsx | 2 +- .../dashboard-common/src/elements/Modal.tsx | 2 +- .../src/elements/MultiSelectCombobox.tsx | 4 +- .../src/elements/NentSwitcher.tsx | 10 +- .../ObjectEditor/ObjectEditor.stories.tsx | 4 +- .../ObjectEditor/ObjectEditor.test.tsx | 4 +- .../elements/ObjectEditor/ObjectEditor.tsx | 4 +- .../src/elements/ObjectEditor/ast/ast.ts | 4 +- .../src/elements/ObjectEditor/ast/astIds.ts | 2 +- .../src/elements/ObjectEditor/ast/types.ts | 4 +- .../elements/ObjectEditor/ast/walkAst.test.ts | 8 +- .../src/elements/ObjectEditor/ast/walkAst.ts | 10 +- .../ObjectEditor/ast/walkMultipleDocuments.ts | 4 +- .../ObjectEditor/ast/walkPatchDocuments.ts | 4 +- .../ObjectEditor/useIdDecorations.tsx | 10 +- .../ProductionEditsConfirmationDialog.tsx | 2 +- .../src/elements/ReadonlyCode.stories.tsx | 2 +- .../src/elements/ReadonlyCode.tsx | 2 +- .../src/elements/ReadonlyCodeDiff.stories.tsx | 2 +- .../src/elements/SchedulerStatus.tsx | 14 +- .../src/elements/Sidebar.stories.tsx | 2 +- .../dashboard-common/src/elements/Sidebar.tsx | 4 +- .../src/elements/Snippet.stories.tsx | 2 +- .../dashboard-common/src/elements/Snippet.tsx | 4 +- .../dashboard-common/src/elements/Spinner.tsx | 2 +- .../dashboard-common/src/elements/Tab.tsx | 2 +- .../src/elements/TextInput.stories.tsx | 2 +- .../src/elements/TextInput.tsx | 2 +- .../elements/TimestampDistance.stories.tsx | 2 +- .../src/elements/TimestampDistance.tsx | 6 +- .../src/elements/ToastContainer.stories.tsx | 10 +- .../src/elements/ToastContainer.tsx | 2 +- .../src/elements/ToggleTheme.tsx | 2 +- .../data/components/ContextMenu.stories.tsx | 4 +- .../features/data/components/ContextMenu.tsx | 6 +- .../data/components/ConvexSchemaFilePath.tsx | 2 +- .../features/data/components/DataContent.tsx | 41 ++--- .../DataFilters/DataFilters.stories.tsx | 4 +- .../components/DataFilters/DataFilters.tsx | 14 +- .../components/DataFilters/FilterButton.tsx | 4 +- .../DataOverflowMenu/DataOverflowMenu.tsx | 8 +- .../features/data/components/DataSidebar.tsx | 24 +-- .../DataToolbar/ClearTableConfirmation.tsx | 6 +- .../DataToolbar/DataToolbar.test.tsx | 15 +- .../components/DataToolbar/DataToolbar.tsx | 26 +-- .../src/features/data/components/DataView.tsx | 26 +-- .../features/data/components/EmptyData.tsx | 14 +- .../FilterEditor/DateTimePicker.stories.tsx | 2 +- .../FilterEditor/DateTimePicker.test.tsx | 2 +- .../FilterEditor/DateTimePicker.tsx | 8 +- .../FilterEditor/FilterEditor.stories.tsx | 4 +- .../FilterEditor/FilterEditor.test.tsx | 6 +- .../components/FilterEditor/FilterEditor.tsx | 8 +- .../data/components/GenerateSchema.tsx | 10 +- .../data/components/IndexList.stories.tsx | 2 +- .../features/data/components/IndexList.tsx | 8 +- .../data/components/ShowSchema.stories.tsx | 4 +- .../features/data/components/ShowSchema.tsx | 12 +- .../data/components/Table/ColumnHeader.tsx | 16 +- .../components/Table/DataCell/CellEditor.tsx | 6 +- .../Table/DataCell/DataCell.test.tsx | 6 +- .../components/Table/DataCell/DataCell.tsx | 30 ++-- .../Table/DataCell/DataCellValue.tsx | 4 +- .../components/Table/DataCell/DataDetail.tsx | 6 +- .../Table/DataCell/utils/cellActions.ts | 12 +- .../DataCell/utils/useIdReferenceLink.ts | 6 +- .../Table/DataCell/utils/usePasteListener.ts | 2 +- .../Table/DataCell/utils/useValidator.ts | 4 +- .../data/components/Table/DataRow.test.tsx | 8 +- .../data/components/Table/DataRow.tsx | 22 +-- .../components/Table/EditDocumentField.tsx | 4 +- .../EditDocumentPanel.stories.tsx | 4 +- .../EditDocumentPanel.test.tsx | 6 +- .../EditDocumentPanel/EditDocumentPanel.tsx | 6 +- .../EditDocumentPanel/EditFieldsPanel.tsx | 4 +- .../JavascriptDocumentsForm.tsx | 6 +- .../features/data/components/Table/Table.tsx | 38 ++--- .../data/components/Table/TableCheckbox.tsx | 2 +- .../Table/TableContextMenu.test.tsx | 4 +- .../components/Table/TableContextMenu.tsx | 14 +- .../data/components/Table/TableHeader.tsx | 4 +- .../data/components/Table/TableScrollbar.tsx | 2 +- .../data/components/Table/ViewDocument.tsx | 18 +-- .../components/Table/utils/useDataColumns.ts | 4 +- ...useMaintainScrollPositionOnChange.test.tsx | 2 +- .../Table/utils/usePatchDocumentField.ts | 6 +- .../Table/utils/useQueryFilteredTable.ts | 2 +- .../components/Table/utils/useTableFields.ts | 4 +- .../Table/utils/useTrackColumnWidths.ts | 2 +- .../data/components/Table/utils/validators.ts | 2 +- .../features/data/components/TableMetrics.tsx | 13 +- .../data/components/TableSchema.test.tsx | 4 +- .../features/data/components/TableSchema.tsx | 10 +- .../data/components/TableSchemaAndIndexes.tsx | 10 +- .../data/components/TableTab.test.tsx | 2 +- .../src/features/data/components/TableTab.tsx | 6 +- .../features/data/components/helpers.test.ts | 5 +- .../src/features/data/lib/api.ts | 8 +- .../src/features/data/lib/helpers.ts | 4 +- .../data/lib/useDataToolbarActions.ts | 9 +- .../features/data/lib/useDefaultDocument.ts | 8 +- .../features/data/lib/useTableFilters.test.ts | 2 +- .../src/features/data/lib/useTableFilters.ts | 2 +- .../src/features/data/lib/useToolPopup.tsx | 20 +-- .../files/components/FileStorageView.test.tsx | 9 +- .../files/components/FileStorageView.tsx | 32 ++-- .../components/FunctionEditor.tsx | 18 +-- .../components/FunctionResult.tsx | 16 +- .../components/FunctionRunnerWrapper.tsx | 12 +- .../components/FunctionTester.test.tsx | 4 +- .../components/FunctionTester.tsx | 38 ++--- .../functionRunner/components/QueryResult.tsx | 6 +- .../functionRunner/components/Result.tsx | 16 +- .../functionRunner/components/RunHistory.tsx | 10 +- .../src/features/functionRunner/lib/client.ts | 6 +- .../functionRunner/lib/functionRunner.ts | 10 +- .../functions/components/DirectorySidebar.tsx | 6 +- .../functions/components/FileEditor.tsx | 12 +- .../functions/components/FileItem.tsx | 6 +- .../functions/components/FileTree.tsx | 8 +- .../functions/components/FunctionItem.tsx | 18 +-- .../functions/components/FunctionSummary.tsx | 16 +- .../functions/components/FunctionsView.tsx | 18 +-- .../components/PerformanceGraphs.tsx | 13 +- .../functions/components/SingleGraph.tsx | 10 +- .../health/components/CacheHitRate.tsx | 6 +- .../components/ChartForFunctionRate.tsx | 16 +- .../health/components/ExceptionReporting.tsx | 2 +- .../health/components/FailureRate.tsx | 6 +- .../features/health/components/HealthView.tsx | 18 +-- .../health/components/IntegrationStatus.tsx | 12 +- .../health/components/LastDeployed.tsx | 8 +- .../features/health/components/LogStreams.tsx | 2 +- .../history/components/HistoryView.tsx | 21 +-- .../components/DeploymentEventListItem.tsx | 14 +- .../src/features/logs/components/LogList.tsx | 33 ++-- .../logs/components/LogListItem.test.tsx | 6 +- .../features/logs/components/LogListItem.tsx | 12 +- .../logs/components/LogStatusLine.tsx | 2 +- .../logs/components/LogToolbar.test.tsx | 4 +- .../features/logs/components/LogToolbar.tsx | 10 +- .../src/features/logs/components/Logs.tsx | 22 +-- .../src/features/logs/components/LogsView.tsx | 10 +- .../src/features/logs/lib/filterLogs.test.ts | 6 +- .../src/features/logs/lib/filterLogs.ts | 4 +- .../features/logs/lib/interleaveLogs.test.ts | 6 +- .../src/features/logs/lib/interleaveLogs.ts | 4 +- .../components/ScheduledFunctionsContent.tsx | 12 +- .../ScheduledFunctionsContentToolbar.tsx | 18 +-- .../components/ScheduledFunctionsList.tsx | 10 +- .../ScheduledFunctionsListHeader.tsx | 6 +- .../components/ScheduledFunctionsListItem.tsx | 28 ++-- .../components/ScheduledFunctionsView.tsx | 8 +- .../components/crons/CronJobsContent.tsx | 30 ++-- .../schedules/components/crons/CronsTable.tsx | 24 +-- .../schedules/components/crons/CronsView.tsx | 8 +- .../schedules/components/crons/FileModal.tsx | 6 +- .../schedules/components/emptyStates.tsx | 6 +- .../features/schedules/lib/CronsProvider.tsx | 8 +- .../src/features/schedules/lib/api.tsx | 10 +- .../lib/useInMemoryDocumentCache.test.tsx | 2 +- .../lib/usePaginatedScheduledJobs.ts | 10 +- .../settings/components/AuthConfig.tsx | 4 +- .../components/AuthenticationView.tsx | 4 +- .../settings/components/Components.tsx | 10 +- .../settings/components/ComponentsView.tsx | 8 +- .../DeploymentEnvironmentVariables.test.tsx | 8 +- .../DeploymentEnvironmentVariables.tsx | 12 +- .../settings/components/DeploymentUrl.tsx | 6 +- .../components/EnvironmentVariables.test.tsx | 2 +- .../components/EnvironmentVariables.tsx | 10 +- .../components/EnvironmentVariablesView.tsx | 4 +- .../src/features/settings/lib/api.ts | 6 +- npm-packages/dashboard-common/src/index.ts | 138 ++++++++-------- .../src/layouts/DeploymentDashboardLayout.tsx | 14 +- .../src/layouts/DeploymentSettingsLayout.tsx | 17 +- .../src/layouts/SchedulingLayout.tsx | 4 +- .../src/layouts/SettingsSidebar.tsx | 8 +- .../src/layouts/SidebarDetailLayout.tsx | 14 +- .../dashboard-common/src/lib/appMetrics.ts | 6 +- .../dashboard-common/src/lib/deploymentApi.ts | 10 +- .../src/lib/deploymentContext.tsx | 6 +- .../dashboard-common/src/lib/format.test.ts | 2 +- .../src/lib/functions/FunctionsProvider.tsx | 14 +- .../src/lib/functions/generateFileTree.ts | 4 +- .../src/lib/functions/useListModules.ts | 4 +- .../src/lib/functions/useSourceCode.ts | 6 +- .../src/lib/integrationHelpers.tsx | 12 +- .../src/lib/stringifyValue.test.ts | 2 +- .../src/lib/stringifyValue.ts | 2 +- .../src/lib/useCollapseSidebarState.ts | 2 +- .../dashboard-common/src/lib/useCopy.tsx | 2 +- .../src/lib/useDeploymentAuditLog.ts | 2 +- .../src/lib/useIsOverflowing.test.tsx | 2 +- .../dashboard-common/src/lib/useLogs.test.ts | 6 +- .../dashboard-common/src/lib/useLogs.ts | 15 +- .../src/lib/usePrettyReadonlyCode.tsx | 5 +- .../src/lib/useTableMetadata.tsx | 2 +- npm-packages/dashboard-common/tsconfig.json | 14 +- .../dashboard-self-hosted/next.config.js | 27 ++++ .../dashboard-self-hosted/package.json | 1 + .../src/react-table-config.d.ts | 150 ++++++++++++++++++ .../dashboard-self-hosted/tsconfig.json | 6 +- npm-packages/dashboard/jest.config.ts | 1 + npm-packages/dashboard/next.config.js | 27 ++++ npm-packages/dashboard/tsconfig.json | 6 +- 240 files changed, 1228 insertions(+), 1025 deletions(-) delete mode 100644 npm-packages/dashboard-common/config/rush-project.json create mode 100644 npm-packages/dashboard-self-hosted/src/react-table-config.d.ts diff --git a/npm-packages/common/config/rush/pnpm-lock.yaml b/npm-packages/common/config/rush/pnpm-lock.yaml index f6dcdebfa..3ab2af62c 100644 --- a/npm-packages/common/config/rush/pnpm-lock.yaml +++ b/npm-packages/common/config/rush/pnpm-lock.yaml @@ -1196,12 +1196,12 @@ importers: storybook: specifier: ^7.6.16 version: 7.6.20(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.0.0)(utf-8-validate@5.0.10) + tailwind-scrollbar: + specifier: 3.0.3 + version: 3.0.3(tailwindcss@3.4.17(ts-node@10.9.1(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.0.4))) tailwindcss: specifier: ^3.2.4 version: 3.4.17(ts-node@10.9.1(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.0.4)) - tsc-alias: - specifier: ~1.8.10 - version: 1.8.10 typescript: specifier: ~5.0.3 version: 5.0.4 @@ -1242,6 +1242,9 @@ importers: '@types/react-dom': specifier: ^18.0.0 version: 18.3.5(@types/react@18.3.18) + '@types/react-table': + specifier: ^7.7.2 + version: 7.7.20 '@typescript-eslint/eslint-plugin': specifier: ^6.7.4 version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.0.4))(eslint@8.57.1)(typescript@5.0.4) @@ -11698,10 +11701,6 @@ packages: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} - commander@9.5.0: - resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} - engines: {node: ^12.20.0 || >=14} - comment-json@4.2.5: resolution: {integrity: sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==} engines: {node: '>= 6'} @@ -16263,10 +16262,6 @@ packages: resolution: {integrity: sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==} engines: {node: '>=0.8.0'} - mylas@2.1.13: - resolution: {integrity: sha512-+MrqnJRtxdF+xngFfUUkIMQrUUL0KsxbADUkn23Z/4ibGg192Q+z+CQyiYwvWTsYjJygmMR8+w3ZDa98Zh6ESg==} - engines: {node: '>=12.0.0'} - mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} @@ -17059,10 +17054,6 @@ packages: please-upgrade-node@3.2.0: resolution: {integrity: sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==} - plimit-lit@1.6.1: - resolution: {integrity: sha512-B7+VDyb8Tl6oMJT9oSO2CW8XC/T4UcJGrwOVoNGwOQsQYhlpfajmrMj5xeejqaASq3V/EqThyOeATEOMuSEXiA==} - engines: {node: '>=12'} - pluralize@8.0.0: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} @@ -17614,10 +17605,6 @@ packages: querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} - queue-lit@1.5.2: - resolution: {integrity: sha512-tLc36IOPeMAubu8BkW8YDBV+WyIgKlYU7zUNs0J5Vk9skSZ4JfGlPOqplP0aHdfv7HL0B2Pg6nwiq60Qc6M2Hw==} - engines: {node: '>=12'} - queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -19523,10 +19510,6 @@ packages: ts.cryptojs256@1.0.1: resolution: {integrity: sha512-9XtEgRVOZBCdpPcCEhfvv9I2AVXdvfI81I/KpFM0wEfbq5JVHlXH7bfIjGQmYrIHGiBEHKsIaStQ87k926J7dA==} - tsc-alias@1.8.10: - resolution: {integrity: sha512-Ibv4KAWfFkFdKJxnWfVtdOmB0Zi1RJVxcbPGiCDsFpCQSsmpWyuzHG3rQyI5YkobWwxFPEyQfu1hdo4qLG2zPw==} - hasBin: true - tsconfck@3.1.4: resolution: {integrity: sha512-kdqWFGVJqe+KGYvlSO9NIaWn9jT1Ny4oKVzAJsKii5eoE9snzTJzL4+MMVOMn+fikWGFmKEylcXL710V/kIPJQ==} engines: {node: ^18 || >=20} @@ -32375,8 +32358,6 @@ snapshots: commander@8.3.0: {} - commander@9.5.0: {} - comment-json@4.2.5: dependencies: array-timsort: 1.0.3 @@ -38632,8 +38613,6 @@ snapshots: ncp: 2.0.0 rimraf: 2.4.5 - mylas@2.1.13: {} - mz@2.7.0: dependencies: any-promise: 1.3.0 @@ -39749,10 +39728,6 @@ snapshots: dependencies: semver-compare: 1.0.0 - plimit-lit@1.6.1: - dependencies: - queue-lit: 1.5.2 - pluralize@8.0.0: {} pnp-webpack-plugin@1.7.0(typescript@5.0.4): @@ -40291,8 +40266,6 @@ snapshots: querystringify@2.2.0: {} - queue-lit@1.5.2: {} - queue-microtask@1.2.3: {} queue-tick@1.0.1: {} @@ -42823,15 +42796,6 @@ snapshots: ts.cryptojs256@1.0.1: {} - tsc-alias@1.8.10: - dependencies: - chokidar: 3.5.3 - commander: 9.5.0 - globby: 11.1.0 - mylas: 2.1.13 - normalize-path: 3.0.0 - plimit-lit: 1.6.1 - tsconfck@3.1.4(typescript@5.7.2): optionalDependencies: typescript: 5.7.2 diff --git a/npm-packages/dashboard-common/config/rush-project.json b/npm-packages/dashboard-common/config/rush-project.json deleted file mode 100644 index 31ff743c2..000000000 --- a/npm-packages/dashboard-common/config/rush-project.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "incrementalBuildIgnoredGlobs": [], - "disableBuildCacheForProject": false, - "operationSettings": [ - { - "operationName": "build", - "outputFolderNames": ["dist"] - } - ] -} diff --git a/npm-packages/dashboard-common/jest.config.ts b/npm-packages/dashboard-common/jest.config.ts index 02492e57a..74c21148e 100644 --- a/npm-packages/dashboard-common/jest.config.ts +++ b/npm-packages/dashboard-common/jest.config.ts @@ -6,7 +6,6 @@ const createJestConfig = nextJest({ const customJestConfig = { moduleDirectories: ["node_modules", "src"], - testPathIgnorePatterns: ["dist"], testEnvironment: "jest-environment-jsdom", setupFilesAfterEnv: ["/setupTests.ts"], moduleNameMapper: { diff --git a/npm-packages/dashboard-common/package.json b/npm-packages/dashboard-common/package.json index aa01ae1ff..890e051ba 100644 --- a/npm-packages/dashboard-common/package.json +++ b/npm-packages/dashboard-common/package.json @@ -3,11 +3,11 @@ "version": "0.1.0", "private": true, "type": "module", - "main": "./dist/index.js", - "types": "./dist/index.d.ts", + "main": "./src/index.js", + "types": "./src/index.ts", "sideEffects": false, "scripts": { - "build": "npm run build:generated && tsc && tsc-alias", + "build": "npm run build:generated && tsc --noEmit", "build:generated": "python3 scripts/build-convexServerTypes.py", "test": "npm run build:generated && jest", "storybook": "storybook dev -s ./public -p 6006", @@ -124,7 +124,7 @@ "prettier-plugin-tailwindcss": "~0.3.0", "storybook": "^7.6.16", "tailwindcss": "^3.2.4", - "tsc-alias": "~1.8.10", + "tailwind-scrollbar": "3.0.3", "typescript": "~5.0.3" } } diff --git a/npm-packages/dashboard-common/src/elements/BigChart.tsx b/npm-packages/dashboard-common/src/elements/BigChart.tsx index faf71de8b..78eb7c3cd 100644 --- a/npm-packages/dashboard-common/src/elements/BigChart.tsx +++ b/npm-packages/dashboard-common/src/elements/BigChart.tsx @@ -10,10 +10,10 @@ import { XAxis, YAxis, } from "recharts"; -import { LoadingTransition } from "elements/Loading"; -import { ChartData, ChartDataSource } from "lib/charts/types"; -import { Callout } from "elements/Callout"; -import { ChartTooltip } from "elements/ChartTooltip"; +import { LoadingTransition } from "@common/elements/Loading"; +import { ChartData, ChartDataSource } from "@common/lib/charts/types"; +import { Callout } from "@common/elements/Callout"; +import { ChartTooltip } from "@common/elements/ChartTooltip"; export function BigChart({ dataSources, diff --git a/npm-packages/dashboard-common/src/elements/BigMetric.tsx b/npm-packages/dashboard-common/src/elements/BigMetric.tsx index ff7bae653..77219d3a8 100644 --- a/npm-packages/dashboard-common/src/elements/BigMetric.tsx +++ b/npm-packages/dashboard-common/src/elements/BigMetric.tsx @@ -1,4 +1,4 @@ -import { cn } from "lib/cn"; +import { cn } from "@common/lib/cn"; import { ReactNode } from "react"; export type MetricHealth = "healthy" | "warning" | "error"; diff --git a/npm-packages/dashboard-common/src/elements/Button.stories.tsx b/npm-packages/dashboard-common/src/elements/Button.stories.tsx index 4db00b1c8..95e2b7141 100644 --- a/npm-packages/dashboard-common/src/elements/Button.stories.tsx +++ b/npm-packages/dashboard-common/src/elements/Button.stories.tsx @@ -1,6 +1,6 @@ import { Meta, StoryObj } from "@storybook/react"; import { PlusIcon } from "@radix-ui/react-icons"; -import { Button } from "elements/Button"; +import { Button } from "@common/elements/Button"; export default { component: Button, diff --git a/npm-packages/dashboard-common/src/elements/Button.tsx b/npm-packages/dashboard-common/src/elements/Button.tsx index d1cdb26ac..3765e9739 100644 --- a/npm-packages/dashboard-common/src/elements/Button.tsx +++ b/npm-packages/dashboard-common/src/elements/Button.tsx @@ -2,7 +2,7 @@ import classNames from "classnames"; import Link, { LinkProps } from "next/link"; import { tv } from "tailwind-variants"; import { forwardRef } from "react"; -import { Tooltip, TooltipSide } from "elements/Tooltip"; +import { Tooltip, TooltipSide } from "@common/elements/Tooltip"; export type ButtonProps = { children?: React.ReactNode; diff --git a/npm-packages/dashboard-common/src/elements/Calendar.stories.tsx b/npm-packages/dashboard-common/src/elements/Calendar.stories.tsx index b02b63240..bd4c683c5 100644 --- a/npm-packages/dashboard-common/src/elements/Calendar.stories.tsx +++ b/npm-packages/dashboard-common/src/elements/Calendar.stories.tsx @@ -1,5 +1,5 @@ import { StoryFn, StoryObj } from "@storybook/react"; -import { Calendar } from "elements/Calendar"; +import { Calendar } from "@common/elements/Calendar"; export const Single: StoryObj = { args: { diff --git a/npm-packages/dashboard-common/src/elements/Calendar.tsx b/npm-packages/dashboard-common/src/elements/Calendar.tsx index f16048a21..dddefa0a8 100644 --- a/npm-packages/dashboard-common/src/elements/Calendar.tsx +++ b/npm-packages/dashboard-common/src/elements/Calendar.tsx @@ -4,7 +4,7 @@ import * as React from "react"; import { ChevronLeftIcon, ChevronRightIcon } from "@radix-ui/react-icons"; import { DayPicker } from "react-day-picker"; -import { cn } from "lib/cn"; +import { cn } from "@common/lib/cn"; export type CalendarProps = React.ComponentProps; diff --git a/npm-packages/dashboard-common/src/elements/Callout.tsx b/npm-packages/dashboard-common/src/elements/Callout.tsx index aacb37c77..b4aa36b00 100644 --- a/npm-packages/dashboard-common/src/elements/Callout.tsx +++ b/npm-packages/dashboard-common/src/elements/Callout.tsx @@ -1,5 +1,5 @@ -import { cn } from "lib/cn"; -import { Snippet } from "elements/Snippet"; +import { cn } from "@common/lib/cn"; +import { Snippet } from "@common/elements/Snippet"; type CalloutVariant = "instructions" | "error" | "localDev" | "upsell"; diff --git a/npm-packages/dashboard-common/src/elements/ChartModal.tsx b/npm-packages/dashboard-common/src/elements/ChartModal.tsx index 26ac21220..049f81b30 100644 --- a/npm-packages/dashboard-common/src/elements/ChartModal.tsx +++ b/npm-packages/dashboard-common/src/elements/ChartModal.tsx @@ -1,7 +1,7 @@ import React from "react"; -import { Modal } from "elements/Modal"; -import { BigChart } from "elements/BigChart"; -import { ChartDataSource } from "lib/charts/types"; +import { Modal } from "@common/elements/Modal"; +import { BigChart } from "@common/elements/BigChart"; +import { ChartDataSource } from "@common/lib/charts/types"; export function ChartModal({ onClose, diff --git a/npm-packages/dashboard-common/src/elements/ClosePanelButton.tsx b/npm-packages/dashboard-common/src/elements/ClosePanelButton.tsx index 3d1655fad..12e4e2b40 100644 --- a/npm-packages/dashboard-common/src/elements/ClosePanelButton.tsx +++ b/npm-packages/dashboard-common/src/elements/ClosePanelButton.tsx @@ -1,6 +1,6 @@ import { Cross2Icon } from "@radix-ui/react-icons"; import { forwardRef } from "react"; -import { Button } from "elements/Button"; +import { Button } from "@common/elements/Button"; export const ClosePanelButton = forwardRef< HTMLElement, diff --git a/npm-packages/dashboard-common/src/elements/Combobox.stories.tsx b/npm-packages/dashboard-common/src/elements/Combobox.stories.tsx index cfce7d424..40ff4836a 100644 --- a/npm-packages/dashboard-common/src/elements/Combobox.stories.tsx +++ b/npm-packages/dashboard-common/src/elements/Combobox.stories.tsx @@ -1,6 +1,6 @@ import { Meta, StoryObj } from "@storybook/react"; import { ComponentProps, useState } from "react"; -import { Combobox } from "elements/Combobox"; +import { Combobox } from "@common/elements/Combobox"; export default { component: Combobox, diff --git a/npm-packages/dashboard-common/src/elements/Combobox.tsx b/npm-packages/dashboard-common/src/elements/Combobox.tsx index d1b9512c1..6c8c7f38d 100644 --- a/npm-packages/dashboard-common/src/elements/Combobox.tsx +++ b/npm-packages/dashboard-common/src/elements/Combobox.tsx @@ -1,10 +1,10 @@ import { useState } from "react"; import { Combobox as HeadlessCombobox } from "@headlessui/react"; import { CaretSortIcon, MagnifyingGlassIcon } from "@radix-ui/react-icons"; -import { cn } from "lib/cn"; +import { cn } from "@common/lib/cn"; import isEqual from "lodash/isEqual"; import { test } from "fuzzy"; -import { Button, ButtonProps } from "elements/Button"; +import { Button, ButtonProps } from "@common/elements/Button"; export type Option = { label: string; value: T }; diff --git a/npm-packages/dashboard-common/src/elements/ConfirmationDialog.tsx b/npm-packages/dashboard-common/src/elements/ConfirmationDialog.tsx index 5d9f30551..d6824551e 100644 --- a/npm-packages/dashboard-common/src/elements/ConfirmationDialog.tsx +++ b/npm-packages/dashboard-common/src/elements/ConfirmationDialog.tsx @@ -1,8 +1,8 @@ import React, { ReactNode, useState } from "react"; -import { TextInput } from "elements/TextInput"; -import { Button } from "elements/Button"; -import { Spinner } from "elements/Spinner"; -import { Modal } from "elements/Modal"; +import { TextInput } from "@common/elements/TextInput"; +import { Button } from "@common/elements/Button"; +import { Spinner } from "@common/elements/Spinner"; +import { Modal } from "@common/elements/Modal"; export function ConfirmationDialog({ onClose, diff --git a/npm-packages/dashboard-common/src/elements/CopyButton.stories.tsx b/npm-packages/dashboard-common/src/elements/CopyButton.stories.tsx index 0e96101aa..6e3afb3b5 100644 --- a/npm-packages/dashboard-common/src/elements/CopyButton.stories.tsx +++ b/npm-packages/dashboard-common/src/elements/CopyButton.stories.tsx @@ -1,5 +1,5 @@ import { StoryObj } from "@storybook/react"; -import { CopyButton } from "elements/CopyButton"; +import { CopyButton } from "@common/elements/CopyButton"; export default { component: CopyButton }; diff --git a/npm-packages/dashboard-common/src/elements/CopyButton.tsx b/npm-packages/dashboard-common/src/elements/CopyButton.tsx index 4e14373bd..801913a25 100644 --- a/npm-packages/dashboard-common/src/elements/CopyButton.tsx +++ b/npm-packages/dashboard-common/src/elements/CopyButton.tsx @@ -1,7 +1,7 @@ import React, { useState } from "react"; import { CopyIcon } from "@radix-ui/react-icons"; -import { copyTextToClipboard } from "lib/utils"; -import { Button } from "elements/Button"; +import { copyTextToClipboard } from "@common/lib/utils"; +import { Button } from "@common/elements/Button"; export function CopyButton({ text, diff --git a/npm-packages/dashboard-common/src/elements/CopyTextButton.tsx b/npm-packages/dashboard-common/src/elements/CopyTextButton.tsx index cae52c0f4..838b89ab0 100644 --- a/npm-packages/dashboard-common/src/elements/CopyTextButton.tsx +++ b/npm-packages/dashboard-common/src/elements/CopyTextButton.tsx @@ -1,8 +1,8 @@ import { CopyIcon } from "@radix-ui/react-icons"; import classNames from "classnames"; import { useState } from "react"; -import { copyTextToClipboard } from "lib/utils"; -import { Button } from "elements/Button"; +import { copyTextToClipboard } from "@common/lib/utils"; +import { Button } from "@common/elements/Button"; export function CopyTextButton({ text, diff --git a/npm-packages/dashboard-common/src/elements/DateRangePicker.stories.tsx b/npm-packages/dashboard-common/src/elements/DateRangePicker.stories.tsx index 702f98730..c349e3a0f 100644 --- a/npm-packages/dashboard-common/src/elements/DateRangePicker.stories.tsx +++ b/npm-packages/dashboard-common/src/elements/DateRangePicker.stories.tsx @@ -1,5 +1,5 @@ import { StoryObj } from "@storybook/react"; -import { DateRangePicker } from "elements/DateRangePicker"; +import { DateRangePicker } from "@common/elements/DateRangePicker"; export const Primary: StoryObj = { args: { diff --git a/npm-packages/dashboard-common/src/elements/DateRangePicker.tsx b/npm-packages/dashboard-common/src/elements/DateRangePicker.tsx index 8deea1b7e..8ee7575bf 100644 --- a/npm-packages/dashboard-common/src/elements/DateRangePicker.tsx +++ b/npm-packages/dashboard-common/src/elements/DateRangePicker.tsx @@ -5,9 +5,9 @@ import { endOfToday, parse, startOfDay, format } from "date-fns"; import { NextRouter } from "next/router"; import * as React from "react"; import { DateRange } from "react-day-picker"; -import { Popover } from "elements/Popover"; -import { Button } from "elements/Button"; -import { Calendar } from "elements/Calendar"; +import { Popover } from "@common/elements/Popover"; +import { Button } from "@common/elements/Button"; +import { Calendar } from "@common/elements/Calendar"; export function DateRangePicker({ minDate, diff --git a/npm-packages/dashboard-common/src/elements/DeploymentEventContent.stories.tsx b/npm-packages/dashboard-common/src/elements/DeploymentEventContent.stories.tsx index f54dd6ea9..a1fe2a538 100644 --- a/npm-packages/dashboard-common/src/elements/DeploymentEventContent.stories.tsx +++ b/npm-packages/dashboard-common/src/elements/DeploymentEventContent.stories.tsx @@ -2,7 +2,7 @@ // TODO: CX-4916 fix the types in this file. import { StoryObj } from "@storybook/react"; import { Id } from "system-udfs/convex/_generated/dataModel"; -import { DeploymentEventContent } from "elements/DeploymentEventContent"; +import { DeploymentEventContent } from "@common/elements/DeploymentEventContent"; export default { component: DeploymentEventContent }; diff --git a/npm-packages/dashboard-common/src/elements/DeploymentEventContent.tsx b/npm-packages/dashboard-common/src/elements/DeploymentEventContent.tsx index 6dfabcf59..ef93f7671 100644 --- a/npm-packages/dashboard-common/src/elements/DeploymentEventContent.tsx +++ b/npm-packages/dashboard-common/src/elements/DeploymentEventContent.tsx @@ -14,14 +14,14 @@ import { cronDiffType, schemaDiffType, } from "system-udfs/convex/tableDefs/deploymentAuditLogTable"; -import { SchemaJson, displaySchema } from "lib/format"; -import { DeploymentAuditLogEvent } from "lib/useDeploymentAuditLog"; -import { DeploymentInfoContext } from "lib/deploymentContext"; -import { TimestampDistance } from "elements/TimestampDistance"; -import { Button } from "elements/Button"; -import { ReadonlyCodeDiff } from "elements/ReadonlyCode"; -import { NentNameOption } from "elements/NentSwitcher"; -import { NENT_APP_PLACEHOLDER } from "lib/useNents"; +import { SchemaJson, displaySchema } from "@common/lib/format"; +import { DeploymentAuditLogEvent } from "@common/lib/useDeploymentAuditLog"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; +import { TimestampDistance } from "@common/elements/TimestampDistance"; +import { Button } from "@common/elements/Button"; +import { ReadonlyCodeDiff } from "@common/elements/ReadonlyCode"; +import { NentNameOption } from "@common/elements/NentSwitcher"; +import { NENT_APP_PLACEHOLDER } from "@common/lib/useNents"; function useSchemaCode(schema: null | string): string { return useMemo(() => { diff --git a/npm-packages/dashboard-common/src/elements/DeploymentPageTitle.tsx b/npm-packages/dashboard-common/src/elements/DeploymentPageTitle.tsx index 3c2971858..536dfc9d4 100644 --- a/npm-packages/dashboard-common/src/elements/DeploymentPageTitle.tsx +++ b/npm-packages/dashboard-common/src/elements/DeploymentPageTitle.tsx @@ -1,6 +1,6 @@ import Head from "next/head"; import { useContext } from "react"; -import { DeploymentInfoContext } from "lib/deploymentContext"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; export function DeploymentPageTitle({ title, diff --git a/npm-packages/dashboard-common/src/elements/DetailPanel.tsx b/npm-packages/dashboard-common/src/elements/DetailPanel.tsx index bfac42421..498443eab 100644 --- a/npm-packages/dashboard-common/src/elements/DetailPanel.tsx +++ b/npm-packages/dashboard-common/src/elements/DetailPanel.tsx @@ -1,9 +1,9 @@ /* This example requires Tailwind CSS v2.0+ */ import { Dialog, Transition } from "@headlessui/react"; import { Fragment, ReactNode, useState } from "react"; -import { Loading } from "elements/Loading"; -import { Callout } from "elements/Callout"; -import { ClosePanelButton } from "elements/ClosePanelButton"; +import { Loading } from "@common/elements/Loading"; +import { Callout } from "@common/elements/Callout"; +import { ClosePanelButton } from "@common/elements/ClosePanelButton"; export function DetailPanel({ onClose, diff --git a/npm-packages/dashboard-common/src/elements/EmptySection.tsx b/npm-packages/dashboard-common/src/elements/EmptySection.tsx index fe60acc23..25c1fd480 100644 --- a/npm-packages/dashboard-common/src/elements/EmptySection.tsx +++ b/npm-packages/dashboard-common/src/elements/EmptySection.tsx @@ -1,8 +1,8 @@ import React from "react"; -import { cn } from "lib/cn"; +import { cn } from "@common/lib/cn"; import { ExternalLinkIcon } from "@radix-ui/react-icons"; -import { Button, ButtonProps } from "elements/Button"; -import { Sheet } from "elements/Sheet"; +import { Button, ButtonProps } from "@common/elements/Button"; +import { Sheet } from "@common/elements/Sheet"; export function EmptySection({ Icon, diff --git a/npm-packages/dashboard-common/src/elements/FunctionNameOption.tsx b/npm-packages/dashboard-common/src/elements/FunctionNameOption.tsx index 771a48dc5..98826ea52 100644 --- a/npm-packages/dashboard-common/src/elements/FunctionNameOption.tsx +++ b/npm-packages/dashboard-common/src/elements/FunctionNameOption.tsx @@ -1,13 +1,13 @@ import { ROUTABLE_HTTP_METHODS } from "convex/server"; import { useHoverDirty } from "react-use"; import { useRef } from "react"; -import { cn } from "lib/cn"; +import { cn } from "@common/lib/cn"; import { displayName, functionIdentifierFromValue, -} from "lib/functions/generateFileTree"; -import { Tooltip } from "elements/Tooltip"; -import { PuzzlePieceIcon } from "elements/icons"; +} from "@common/lib/functions/generateFileTree"; +import { Tooltip } from "@common/elements/Tooltip"; +import { PuzzlePieceIcon } from "@common/elements/icons"; function splitFunctionName(functionName: string) { for (const method of ROUTABLE_HTTP_METHODS) { diff --git a/npm-packages/dashboard-common/src/elements/HealthCard.tsx b/npm-packages/dashboard-common/src/elements/HealthCard.tsx index 310892487..7391a2c3a 100644 --- a/npm-packages/dashboard-common/src/elements/HealthCard.tsx +++ b/npm-packages/dashboard-common/src/elements/HealthCard.tsx @@ -3,11 +3,11 @@ import { ExclamationTriangleIcon, InfoCircledIcon, } from "@radix-ui/react-icons"; -import { cn } from "lib/cn"; +import { cn } from "@common/lib/cn"; import React from "react"; -import { Sheet } from "elements/Sheet"; -import { Tooltip } from "elements/Tooltip"; -import { LoadingTransition } from "elements/Loading"; +import { Sheet } from "@common/elements/Sheet"; +import { Tooltip } from "@common/elements/Tooltip"; +import { LoadingTransition } from "@common/elements/Loading"; export function HealthCard({ title, diff --git a/npm-packages/dashboard-common/src/elements/KeyboardShortcut.stories.tsx b/npm-packages/dashboard-common/src/elements/KeyboardShortcut.stories.tsx index a3a3be1eb..ef69c6102 100644 --- a/npm-packages/dashboard-common/src/elements/KeyboardShortcut.stories.tsx +++ b/npm-packages/dashboard-common/src/elements/KeyboardShortcut.stories.tsx @@ -1,5 +1,5 @@ import { Meta, StoryObj } from "@storybook/react"; -import { KeyboardShortcut } from "elements/KeyboardShortcut"; +import { KeyboardShortcut } from "@common/elements/KeyboardShortcut"; const meta: Meta = { component: KeyboardShortcut, diff --git a/npm-packages/dashboard-common/src/elements/Loading.tsx b/npm-packages/dashboard-common/src/elements/Loading.tsx index 21004d366..5f824582a 100644 --- a/npm-packages/dashboard-common/src/elements/Loading.tsx +++ b/npm-packages/dashboard-common/src/elements/Loading.tsx @@ -1,4 +1,4 @@ -import { cn } from "lib/cn"; +import { cn } from "@common/lib/cn"; export function Loading({ className, diff --git a/npm-packages/dashboard-common/src/elements/LogOutput.tsx b/npm-packages/dashboard-common/src/elements/LogOutput.tsx index 0d87a5de1..c4fab319f 100644 --- a/npm-packages/dashboard-common/src/elements/LogOutput.tsx +++ b/npm-packages/dashboard-common/src/elements/LogOutput.tsx @@ -1,6 +1,6 @@ import classNames from "classnames"; -import { UdfLogOutput as Output } from "lib/useLogs"; -import { LogLevel } from "elements/LogLevel"; +import { UdfLogOutput as Output } from "@common/lib/useLogs"; +import { LogLevel } from "@common/elements/LogLevel"; export function LogOutput({ output, diff --git a/npm-packages/dashboard-common/src/elements/Menu.stories.tsx b/npm-packages/dashboard-common/src/elements/Menu.stories.tsx index 60043a3a8..9117f7edf 100644 --- a/npm-packages/dashboard-common/src/elements/Menu.stories.tsx +++ b/npm-packages/dashboard-common/src/elements/Menu.stories.tsx @@ -1,5 +1,5 @@ import { Meta, StoryObj } from "@storybook/react"; -import { Menu, MenuItem, MenuLink } from "elements/Menu"; +import { Menu, MenuItem, MenuLink } from "@common/elements/Menu"; export default { component: Menu, diff --git a/npm-packages/dashboard-common/src/elements/Menu.test.tsx b/npm-packages/dashboard-common/src/elements/Menu.test.tsx index 42b1e7e5a..65791d257 100644 --- a/npm-packages/dashboard-common/src/elements/Menu.test.tsx +++ b/npm-packages/dashboard-common/src/elements/Menu.test.tsx @@ -1,6 +1,6 @@ import { act, render } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; -import { Menu, MenuItem, MenuLink, MenuProps } from "elements/Menu"; +import { Menu, MenuItem, MenuLink, MenuProps } from "@common/elements/Menu"; describe("Menu", () => { beforeEach(jest.clearAllMocks); diff --git a/npm-packages/dashboard-common/src/elements/Menu.tsx b/npm-packages/dashboard-common/src/elements/Menu.tsx index 9d5b7316e..b9d23f719 100644 --- a/npm-packages/dashboard-common/src/elements/Menu.tsx +++ b/npm-packages/dashboard-common/src/elements/Menu.tsx @@ -2,9 +2,9 @@ import { Fragment, ReactNode, useState } from "react"; import { Menu as HeadlessMenu, Portal } from "@headlessui/react"; import { PopperChildrenProps, usePopper } from "react-popper"; import classNames from "classnames"; -import { Button, ButtonProps } from "elements/Button"; -import { Key, KeyboardShortcut } from "elements/KeyboardShortcut"; -import { TooltipSide } from "elements/Tooltip"; +import { Button, ButtonProps } from "@common/elements/Button"; +import { Key, KeyboardShortcut } from "@common/elements/KeyboardShortcut"; +import { TooltipSide } from "@common/elements/Tooltip"; export type MenuProps = { children: React.ReactElement | (React.ReactElement | null)[]; diff --git a/npm-packages/dashboard-common/src/elements/Modal.stories.tsx b/npm-packages/dashboard-common/src/elements/Modal.stories.tsx index a315c47c4..9a5d65373 100644 --- a/npm-packages/dashboard-common/src/elements/Modal.stories.tsx +++ b/npm-packages/dashboard-common/src/elements/Modal.stories.tsx @@ -1,5 +1,5 @@ import { Meta, StoryObj } from "@storybook/react"; -import { Modal } from "elements/Modal"; +import { Modal } from "@common/elements/Modal"; export default { component: Modal, diff --git a/npm-packages/dashboard-common/src/elements/Modal.tsx b/npm-packages/dashboard-common/src/elements/Modal.tsx index c9942f20f..d77727b9b 100644 --- a/npm-packages/dashboard-common/src/elements/Modal.tsx +++ b/npm-packages/dashboard-common/src/elements/Modal.tsx @@ -1,7 +1,7 @@ import React, { Fragment, ReactNode, useState } from "react"; import { Dialog, Transition } from "@headlessui/react"; import classNames from "classnames"; -import { ClosePanelButton } from "elements/ClosePanelButton"; +import { ClosePanelButton } from "@common/elements/ClosePanelButton"; type ModalProps = { onClose: () => void; diff --git a/npm-packages/dashboard-common/src/elements/MultiSelectCombobox.tsx b/npm-packages/dashboard-common/src/elements/MultiSelectCombobox.tsx index aed33f94d..11f74b23f 100644 --- a/npm-packages/dashboard-common/src/elements/MultiSelectCombobox.tsx +++ b/npm-packages/dashboard-common/src/elements/MultiSelectCombobox.tsx @@ -6,10 +6,10 @@ import { import { Combobox } from "@headlessui/react"; import React, { useRef, useState } from "react"; import classNames from "classnames"; -import { cn } from "lib/cn"; +import { cn } from "@common/lib/cn"; import { useHoverDirty } from "react-use"; import { test } from "fuzzy"; -import { Button } from "elements/Button"; +import { Button } from "@common/elements/Button"; export function MultiSelectCombobox({ options, diff --git a/npm-packages/dashboard-common/src/elements/NentSwitcher.tsx b/npm-packages/dashboard-common/src/elements/NentSwitcher.tsx index 906010aa9..f1ac0c856 100644 --- a/npm-packages/dashboard-common/src/elements/NentSwitcher.tsx +++ b/npm-packages/dashboard-common/src/elements/NentSwitcher.tsx @@ -1,8 +1,8 @@ -import { cn } from "lib/cn"; -import { Combobox } from "elements/Combobox"; -import { PuzzlePieceIcon } from "elements/icons"; -import { Tooltip } from "elements/Tooltip"; -import { NENT_APP_PLACEHOLDER, Nent, useNents } from "lib/useNents"; +import { cn } from "@common/lib/cn"; +import { Combobox } from "@common/elements/Combobox"; +import { PuzzlePieceIcon } from "@common/elements/icons"; +import { Tooltip } from "@common/elements/Tooltip"; +import { NENT_APP_PLACEHOLDER, Nent, useNents } from "@common/lib/useNents"; export function NentSwitcher({ onChange, diff --git a/npm-packages/dashboard-common/src/elements/ObjectEditor/ObjectEditor.stories.tsx b/npm-packages/dashboard-common/src/elements/ObjectEditor/ObjectEditor.stories.tsx index 7bcf5afaa..ad7da46d2 100644 --- a/npm-packages/dashboard-common/src/elements/ObjectEditor/ObjectEditor.stories.tsx +++ b/npm-packages/dashboard-common/src/elements/ObjectEditor/ObjectEditor.stories.tsx @@ -1,8 +1,8 @@ import { Meta, StoryObj } from "@storybook/react"; import { ConvexProvider } from "convex/react"; import udfs from "udfs"; -import { ObjectEditor } from "elements/ObjectEditor/ObjectEditor"; -import { mockConvexReactClient } from "lib/mockConvexReactClient"; +import { ObjectEditor } from "@common/elements/ObjectEditor/ObjectEditor"; +import { mockConvexReactClient } from "@common/lib/mockConvexReactClient"; const mockClient = mockConvexReactClient().registerQueryFake( udfs.listById.default, diff --git a/npm-packages/dashboard-common/src/elements/ObjectEditor/ObjectEditor.test.tsx b/npm-packages/dashboard-common/src/elements/ObjectEditor/ObjectEditor.test.tsx index a5282527a..9526a491a 100644 --- a/npm-packages/dashboard-common/src/elements/ObjectEditor/ObjectEditor.test.tsx +++ b/npm-packages/dashboard-common/src/elements/ObjectEditor/ObjectEditor.test.tsx @@ -1,14 +1,14 @@ import { render, screen } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; import { ConvexProvider, ConvexReactClient } from "convex/react"; -import { mockConvexReactClient } from "lib/mockConvexReactClient"; +import { mockConvexReactClient } from "@common/lib/mockConvexReactClient"; import { useEffectOnce } from "react-use"; import udfs from "udfs"; import { UNDEFINED_PLACEHOLDER } from "system-udfs/convex/_system/frontend/patchDocumentsFields"; import { ObjectEditor, ObjectEditorProps, -} from "elements/ObjectEditor/ObjectEditor"; +} from "@common/elements/ObjectEditor/ObjectEditor"; jest.mock("next/router", () => jest.requireActual("next-router-mock")); diff --git a/npm-packages/dashboard-common/src/elements/ObjectEditor/ObjectEditor.tsx b/npm-packages/dashboard-common/src/elements/ObjectEditor/ObjectEditor.tsx index ebb8545b1..b6fd76dee 100644 --- a/npm-packages/dashboard-common/src/elements/ObjectEditor/ObjectEditor.tsx +++ b/npm-packages/dashboard-common/src/elements/ObjectEditor/ObjectEditor.tsx @@ -14,8 +14,8 @@ import { UNDEFINED_PLACEHOLDER } from "system-udfs/convex/_system/frontend/patch import { captureMessage } from "@sentry/nextjs"; import { useMount } from "react-use"; import { useRouter } from "next/router"; -import { stringifyValue } from "lib/stringifyValue"; -import { cn } from "lib/cn"; +import { stringifyValue } from "@common/lib/stringifyValue"; +import { cn } from "@common/lib/cn"; import { ConvexSchemaValidationError, ConvexValidationError, diff --git a/npm-packages/dashboard-common/src/elements/ObjectEditor/ast/ast.ts b/npm-packages/dashboard-common/src/elements/ObjectEditor/ast/ast.ts index 9a3f7b3cb..962f67195 100644 --- a/npm-packages/dashboard-common/src/elements/ObjectEditor/ast/ast.ts +++ b/npm-packages/dashboard-common/src/elements/ObjectEditor/ast/ast.ts @@ -13,8 +13,8 @@ import { TemplateLiteralNode, CallExpressionNode, ConvexSchemaValidationError, -} from "elements/ObjectEditor/ast/types"; -import { isValidValue } from "elements/ObjectEditor/ast/helpers"; +} from "@common/elements/ObjectEditor/ast/types"; +import { isValidValue } from "@common/elements/ObjectEditor/ast/helpers"; function unsupportedSyntax(n: Node) { return { diff --git a/npm-packages/dashboard-common/src/elements/ObjectEditor/ast/astIds.ts b/npm-packages/dashboard-common/src/elements/ObjectEditor/ast/astIds.ts index de1748003..7bb18c22d 100644 --- a/npm-packages/dashboard-common/src/elements/ObjectEditor/ast/astIds.ts +++ b/npm-packages/dashboard-common/src/elements/ObjectEditor/ast/astIds.ts @@ -1,5 +1,5 @@ import { isId } from "id-encoding"; -import { Node, LiteralNode } from "elements/ObjectEditor/ast/types"; +import { Node, LiteralNode } from "@common/elements/ObjectEditor/ast/types"; export class IdWalker { private ids: LiteralNode[] = []; diff --git a/npm-packages/dashboard-common/src/elements/ObjectEditor/ast/types.ts b/npm-packages/dashboard-common/src/elements/ObjectEditor/ast/types.ts index 7ab92743f..f71f20da3 100644 --- a/npm-packages/dashboard-common/src/elements/ObjectEditor/ast/types.ts +++ b/npm-packages/dashboard-common/src/elements/ObjectEditor/ast/types.ts @@ -2,8 +2,8 @@ import { Node as AcornNode, Position, SourceLocation } from "acorn"; import { ValidatorJSON, Value } from "convex/values"; import type { editor } from "monaco-editor"; -import { displayValidatorPretty } from "lib/format"; -import { typeForValue } from "elements/ObjectEditor/ast/helpers"; +import { displayValidatorPretty } from "@common/lib/format"; +import { typeForValue } from "@common/elements/ObjectEditor/ast/helpers"; export type Node = | ProgramNode diff --git a/npm-packages/dashboard-common/src/elements/ObjectEditor/ast/walkAst.test.ts b/npm-packages/dashboard-common/src/elements/ObjectEditor/ast/walkAst.test.ts index 35ff8328b..0d2efbc6f 100644 --- a/npm-packages/dashboard-common/src/elements/ObjectEditor/ast/walkAst.test.ts +++ b/npm-packages/dashboard-common/src/elements/ObjectEditor/ast/walkAst.test.ts @@ -1,10 +1,10 @@ import { ValidatorJSON, Value } from "convex/values"; import { UNDEFINED_PLACEHOLDER } from "system-udfs/convex/_system/frontend/patchDocumentsFields"; import * as Base64 from "base64-js"; -import { stringifyValue } from "lib/stringifyValue"; -import { walkAst } from "elements/ObjectEditor/ast/walkAst"; -import { SchemaValidationErrorCode } from "elements/ObjectEditor/ast/types"; -import { validateConvexFieldName } from "elements/ObjectEditor/ast/ast"; +import { stringifyValue } from "@common/lib/stringifyValue"; +import { walkAst } from "@common/elements/ObjectEditor/ast/walkAst"; +import { SchemaValidationErrorCode } from "@common/elements/ObjectEditor/ast/types"; +import { validateConvexFieldName } from "@common/elements/ObjectEditor/ast/ast"; const validators: Record = { number: { type: "number" }, diff --git a/npm-packages/dashboard-common/src/elements/ObjectEditor/ast/walkAst.ts b/npm-packages/dashboard-common/src/elements/ObjectEditor/ast/walkAst.ts index 68538ba56..b942bac69 100644 --- a/npm-packages/dashboard-common/src/elements/ObjectEditor/ast/walkAst.ts +++ b/npm-packages/dashboard-common/src/elements/ObjectEditor/ast/walkAst.ts @@ -5,11 +5,11 @@ import { Node, ExpressionNode, isUndefined, -} from "elements/ObjectEditor/ast/types"; -import { walkPatchDocuments } from "elements/ObjectEditor/ast/walkPatchDocuments"; -import { Walker } from "elements/ObjectEditor/ast/ast"; -import { walkMultipleDocuments } from "elements/ObjectEditor/ast/walkMultipleDocuments"; -import { IdWalker } from "elements/ObjectEditor/ast/astIds"; +} from "@common/elements/ObjectEditor/ast/types"; +import { walkPatchDocuments } from "@common/elements/ObjectEditor/ast/walkPatchDocuments"; +import { Walker } from "@common/elements/ObjectEditor/ast/ast"; +import { walkMultipleDocuments } from "@common/elements/ObjectEditor/ast/walkMultipleDocuments"; +import { IdWalker } from "@common/elements/ObjectEditor/ast/astIds"; export type WalkAstOptions = { validator?: ValidatorJSON; diff --git a/npm-packages/dashboard-common/src/elements/ObjectEditor/ast/walkMultipleDocuments.ts b/npm-packages/dashboard-common/src/elements/ObjectEditor/ast/walkMultipleDocuments.ts index 9174ead2d..77bfe4861 100644 --- a/npm-packages/dashboard-common/src/elements/ObjectEditor/ast/walkMultipleDocuments.ts +++ b/npm-packages/dashboard-common/src/elements/ObjectEditor/ast/walkMultipleDocuments.ts @@ -1,9 +1,9 @@ import { ValidatorJSON, Value } from "convex/values"; -import { Walker } from "elements/ObjectEditor/ast/ast"; +import { Walker } from "@common/elements/ObjectEditor/ast/ast"; import { ArrayNode, ConvexValidationError, -} from "elements/ObjectEditor/ast/types"; +} from "@common/elements/ObjectEditor/ast/types"; export function walkMultipleDocuments( array: ArrayNode, diff --git a/npm-packages/dashboard-common/src/elements/ObjectEditor/ast/walkPatchDocuments.ts b/npm-packages/dashboard-common/src/elements/ObjectEditor/ast/walkPatchDocuments.ts index 9808cf65b..0354ffec6 100644 --- a/npm-packages/dashboard-common/src/elements/ObjectEditor/ast/walkPatchDocuments.ts +++ b/npm-packages/dashboard-common/src/elements/ObjectEditor/ast/walkPatchDocuments.ts @@ -7,8 +7,8 @@ import { isUndefined, Node, ObjectPropertyNode, -} from "elements/ObjectEditor/ast/types"; -import { Walker } from "elements/ObjectEditor/ast/ast"; +} from "@common/elements/ObjectEditor/ast/types"; +import { Walker } from "@common/elements/ObjectEditor/ast/ast"; // This function walks an AST when the mode is "patchDocuments". export function walkPatchDocuments(node: Node, validator?: ValidatorJSON) { diff --git a/npm-packages/dashboard-common/src/elements/ObjectEditor/useIdDecorations.tsx b/npm-packages/dashboard-common/src/elements/ObjectEditor/useIdDecorations.tsx index 8e1e9055c..a764c187b 100644 --- a/npm-packages/dashboard-common/src/elements/ObjectEditor/useIdDecorations.tsx +++ b/npm-packages/dashboard-common/src/elements/ObjectEditor/useIdDecorations.tsx @@ -4,20 +4,20 @@ import { useTheme } from "next-themes"; import { useState, useEffect } from "react"; import udfs from "udfs"; import { useRouter } from "next/router"; -import { cn } from "lib/cn"; +import { cn } from "@common/lib/cn"; import { GenericDocument } from "convex/server"; import { SourceLocation } from "acorn"; import { captureMessage } from "@sentry/nextjs"; import type { editor } from "monaco-editor/esm/vs/editor/editor.api"; -import { stringifyValue } from "lib/stringifyValue"; +import { stringifyValue } from "@common/lib/stringifyValue"; import { copyTextToClipboard, documentHref, getReferencedTableName, toast, -} from "lib/utils"; -import { useNents } from "lib/useNents"; -import { LiteralNode } from "elements/ObjectEditor/ast/types"; +} from "@common/lib/utils"; +import { useNents } from "@common/lib/useNents"; +import { LiteralNode } from "@common/elements/ObjectEditor/ast/types"; export function useIdDecorations( monaco: Parameters[0] | undefined, diff --git a/npm-packages/dashboard-common/src/elements/ProductionEditsConfirmationDialog.tsx b/npm-packages/dashboard-common/src/elements/ProductionEditsConfirmationDialog.tsx index 6b65a8651..9476ef8f9 100644 --- a/npm-packages/dashboard-common/src/elements/ProductionEditsConfirmationDialog.tsx +++ b/npm-packages/dashboard-common/src/elements/ProductionEditsConfirmationDialog.tsx @@ -1,4 +1,4 @@ -import { ConfirmationDialog } from "elements/ConfirmationDialog"; +import { ConfirmationDialog } from "@common/elements/ConfirmationDialog"; export function ProductionEditsConfirmationDialog({ onClose, diff --git a/npm-packages/dashboard-common/src/elements/ReadonlyCode.stories.tsx b/npm-packages/dashboard-common/src/elements/ReadonlyCode.stories.tsx index 3782fe6f7..c2b111f6f 100644 --- a/npm-packages/dashboard-common/src/elements/ReadonlyCode.stories.tsx +++ b/npm-packages/dashboard-common/src/elements/ReadonlyCode.stories.tsx @@ -1,5 +1,5 @@ import { Meta, StoryObj } from "@storybook/react"; -import { ReadonlyCode } from "elements/ReadonlyCode"; +import { ReadonlyCode } from "@common/elements/ReadonlyCode"; export default { component: ReadonlyCode, diff --git a/npm-packages/dashboard-common/src/elements/ReadonlyCode.tsx b/npm-packages/dashboard-common/src/elements/ReadonlyCode.tsx index ffc1c4b10..e49409cd1 100644 --- a/npm-packages/dashboard-common/src/elements/ReadonlyCode.tsx +++ b/npm-packages/dashboard-common/src/elements/ReadonlyCode.tsx @@ -6,7 +6,7 @@ import Editor, { } from "@monaco-editor/react"; import { RefObject, useEffect, useRef, useState } from "react"; import { useTheme } from "next-themes"; -import { editorOptions } from "elements/ObjectEditor/ObjectEditor"; +import { editorOptions } from "@common/elements/ObjectEditor/ObjectEditor"; // The editor will have a height of 100% and will scroll. type ParentHeight = { diff --git a/npm-packages/dashboard-common/src/elements/ReadonlyCodeDiff.stories.tsx b/npm-packages/dashboard-common/src/elements/ReadonlyCodeDiff.stories.tsx index 12e78aa32..90a1b0de5 100644 --- a/npm-packages/dashboard-common/src/elements/ReadonlyCodeDiff.stories.tsx +++ b/npm-packages/dashboard-common/src/elements/ReadonlyCodeDiff.stories.tsx @@ -1,5 +1,5 @@ import { Meta, StoryObj } from "@storybook/react"; -import { ReadonlyCodeDiff } from "elements/ReadonlyCode"; +import { ReadonlyCodeDiff } from "@common/elements/ReadonlyCode"; export default { component: ReadonlyCodeDiff, diff --git a/npm-packages/dashboard-common/src/elements/SchedulerStatus.tsx b/npm-packages/dashboard-common/src/elements/SchedulerStatus.tsx index 2b751a228..f81cca737 100644 --- a/npm-packages/dashboard-common/src/elements/SchedulerStatus.tsx +++ b/npm-packages/dashboard-common/src/elements/SchedulerStatus.tsx @@ -1,13 +1,13 @@ import { formatDistance } from "date-fns"; import { useContext, useState } from "react"; import { BarChartIcon, ResetIcon } from "@radix-ui/react-icons"; -import { cn } from "lib/cn"; -import { HealthCard } from "elements/HealthCard"; -import { useSchedulerLag } from "lib/appMetrics"; -import { ChartForFunctionRate } from "features/health/components/ChartForFunctionRate"; -import { BigMetric } from "elements/BigMetric"; -import { Button } from "elements/Button"; -import { DeploymentInfoContext } from "lib/deploymentContext"; +import { cn } from "@common/lib/cn"; +import { HealthCard } from "@common/elements/HealthCard"; +import { useSchedulerLag } from "@common/lib/appMetrics"; +import { ChartForFunctionRate } from "@common/features/health/components/ChartForFunctionRate"; +import { BigMetric } from "@common/elements/BigMetric"; +import { Button } from "@common/elements/Button"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; export function SchedulerStatus({ small = false }: { small?: boolean }) { const lag = useSchedulerLag(); diff --git a/npm-packages/dashboard-common/src/elements/Sidebar.stories.tsx b/npm-packages/dashboard-common/src/elements/Sidebar.stories.tsx index 8b32b9810..3a1872159 100644 --- a/npm-packages/dashboard-common/src/elements/Sidebar.stories.tsx +++ b/npm-packages/dashboard-common/src/elements/Sidebar.stories.tsx @@ -7,7 +7,7 @@ import { PersonIcon, Cross1Icon, } from "@radix-ui/react-icons"; -import { Sidebar } from "elements/Sidebar"; +import { Sidebar } from "@common/elements/Sidebar"; export default { component: Sidebar, diff --git a/npm-packages/dashboard-common/src/elements/Sidebar.tsx b/npm-packages/dashboard-common/src/elements/Sidebar.tsx index 3a7629abc..97cd1e076 100644 --- a/npm-packages/dashboard-common/src/elements/Sidebar.tsx +++ b/npm-packages/dashboard-common/src/elements/Sidebar.tsx @@ -8,8 +8,8 @@ import { DoubleArrowLeftIcon, DoubleArrowRightIcon, } from "@radix-ui/react-icons"; -import { Tooltip } from "elements/Tooltip"; -import { Button } from "elements/Button"; +import { Tooltip } from "@common/elements/Tooltip"; +import { Button } from "@common/elements/Button"; export type SidebarItem = { key: string | null; diff --git a/npm-packages/dashboard-common/src/elements/Snippet.stories.tsx b/npm-packages/dashboard-common/src/elements/Snippet.stories.tsx index 53d9a4992..235528844 100644 --- a/npm-packages/dashboard-common/src/elements/Snippet.stories.tsx +++ b/npm-packages/dashboard-common/src/elements/Snippet.stories.tsx @@ -1,5 +1,5 @@ import { Meta, StoryObj } from "@storybook/react"; -import { Snippet } from "elements/Snippet"; +import { Snippet } from "@common/elements/Snippet"; export default { component: Snippet, diff --git a/npm-packages/dashboard-common/src/elements/Snippet.tsx b/npm-packages/dashboard-common/src/elements/Snippet.tsx index 10a1161c0..dd0968d4d 100644 --- a/npm-packages/dashboard-common/src/elements/Snippet.tsx +++ b/npm-packages/dashboard-common/src/elements/Snippet.tsx @@ -1,8 +1,8 @@ import { CopyIcon } from "@radix-ui/react-icons"; import classNames from "classnames"; import { useCallback } from "react"; -import { Button } from "elements/Button"; -import { useCopy } from "lib/useCopy"; +import { Button } from "@common/elements/Button"; +import { useCopy } from "@common/lib/useCopy"; type Props = { value: string; diff --git a/npm-packages/dashboard-common/src/elements/Spinner.tsx b/npm-packages/dashboard-common/src/elements/Spinner.tsx index fc75e3d38..00337c3d6 100644 --- a/npm-packages/dashboard-common/src/elements/Spinner.tsx +++ b/npm-packages/dashboard-common/src/elements/Spinner.tsx @@ -1,4 +1,4 @@ -import { cn } from "lib/cn"; +import { cn } from "@common/lib/cn"; export function Spinner({ className }: { className?: string }) { return ( diff --git a/npm-packages/dashboard-common/src/elements/Tab.tsx b/npm-packages/dashboard-common/src/elements/Tab.tsx index afc203c3d..63bbb96b5 100644 --- a/npm-packages/dashboard-common/src/elements/Tab.tsx +++ b/npm-packages/dashboard-common/src/elements/Tab.tsx @@ -1,7 +1,7 @@ import { Tab as HeadlessTab } from "@headlessui/react"; import classNames from "classnames"; import { Fragment, PropsWithChildren } from "react"; -import { Button, ButtonProps } from "elements/Button"; +import { Button, ButtonProps } from "@common/elements/Button"; export function Tab({ disabled, diff --git a/npm-packages/dashboard-common/src/elements/TextInput.stories.tsx b/npm-packages/dashboard-common/src/elements/TextInput.stories.tsx index 889d02d19..0c097ee63 100644 --- a/npm-packages/dashboard-common/src/elements/TextInput.stories.tsx +++ b/npm-packages/dashboard-common/src/elements/TextInput.stories.tsx @@ -1,6 +1,6 @@ import { Meta, StoryObj } from "@storybook/react"; import { ComponentProps, useState } from "react"; -import { TextInput } from "elements/TextInput"; +import { TextInput } from "@common/elements/TextInput"; export default { component: TextInput, diff --git a/npm-packages/dashboard-common/src/elements/TextInput.tsx b/npm-packages/dashboard-common/src/elements/TextInput.tsx index 7d69fb0dc..a532e20e9 100644 --- a/npm-packages/dashboard-common/src/elements/TextInput.tsx +++ b/npm-packages/dashboard-common/src/elements/TextInput.tsx @@ -1,7 +1,7 @@ import { MagnifyingGlassIcon } from "@radix-ui/react-icons"; import classNames from "classnames"; import React, { forwardRef } from "react"; -import { Button } from "elements/Button"; +import { Button } from "@common/elements/Button"; type InputProps = { label?: string; diff --git a/npm-packages/dashboard-common/src/elements/TimestampDistance.stories.tsx b/npm-packages/dashboard-common/src/elements/TimestampDistance.stories.tsx index 7c2df4bb9..76bdc2ecf 100644 --- a/npm-packages/dashboard-common/src/elements/TimestampDistance.stories.tsx +++ b/npm-packages/dashboard-common/src/elements/TimestampDistance.stories.tsx @@ -1,5 +1,5 @@ import { Meta, StoryObj } from "@storybook/react"; -import { TimestampDistance } from "elements/TimestampDistance"; +import { TimestampDistance } from "@common/elements/TimestampDistance"; export default { component: TimestampDistance, diff --git a/npm-packages/dashboard-common/src/elements/TimestampDistance.tsx b/npm-packages/dashboard-common/src/elements/TimestampDistance.tsx index 398914d88..a97a4023a 100644 --- a/npm-packages/dashboard-common/src/elements/TimestampDistance.tsx +++ b/npm-packages/dashboard-common/src/elements/TimestampDistance.tsx @@ -1,7 +1,7 @@ import { formatDistanceToNow } from "date-fns"; -import { useRefresh } from "lib/useRefresh"; -import { cn } from "lib/cn"; -import { Tooltip } from "elements/Tooltip"; +import { useRefresh } from "@common/lib/useRefresh"; +import { cn } from "@common/lib/cn"; +import { Tooltip } from "@common/elements/Tooltip"; export function TimestampDistance({ prefix = "", diff --git a/npm-packages/dashboard-common/src/elements/ToastContainer.stories.tsx b/npm-packages/dashboard-common/src/elements/ToastContainer.stories.tsx index ea050470a..78f5fb730 100644 --- a/npm-packages/dashboard-common/src/elements/ToastContainer.stories.tsx +++ b/npm-packages/dashboard-common/src/elements/ToastContainer.stories.tsx @@ -1,10 +1,10 @@ import type { Meta, StoryObj } from "@storybook/react"; import { useState } from "react"; -import { ToastContainer } from "elements/ToastContainer"; -import { toast } from "lib/utils"; -import { Sheet } from "elements/Sheet"; -import { TextInput } from "elements/TextInput"; -import { Button } from "elements/Button"; +import { ToastContainer } from "@common/elements/ToastContainer"; +import { toast } from "@common/lib/utils"; +import { Sheet } from "@common/elements/Sheet"; +import { TextInput } from "@common/elements/TextInput"; +import { Button } from "@common/elements/Button"; export default { component: ToastContainer, diff --git a/npm-packages/dashboard-common/src/elements/ToastContainer.tsx b/npm-packages/dashboard-common/src/elements/ToastContainer.tsx index 94c2c36ff..51d02a978 100644 --- a/npm-packages/dashboard-common/src/elements/ToastContainer.tsx +++ b/npm-packages/dashboard-common/src/elements/ToastContainer.tsx @@ -1,5 +1,5 @@ import { Toaster } from "sonner"; -import { useTheme } from "elements/ThemeConsumer"; +import { useTheme } from "@common/elements/ThemeConsumer"; export function ToastContainer() { const { resolvedTheme } = useTheme(); diff --git a/npm-packages/dashboard-common/src/elements/ToggleTheme.tsx b/npm-packages/dashboard-common/src/elements/ToggleTheme.tsx index 80685c50d..c3a2f76a0 100644 --- a/npm-packages/dashboard-common/src/elements/ToggleTheme.tsx +++ b/npm-packages/dashboard-common/src/elements/ToggleTheme.tsx @@ -1,7 +1,7 @@ import { SunIcon, MoonIcon, LightningBoltIcon } from "@radix-ui/react-icons"; import startCase from "lodash/startCase"; import { useTheme } from "next-themes"; -import { cn } from "lib/cn"; +import { cn } from "@common/lib/cn"; import { Tooltip } from "./Tooltip"; export function ToggleTheme() { diff --git a/npm-packages/dashboard-common/src/features/data/components/ContextMenu.stories.tsx b/npm-packages/dashboard-common/src/features/data/components/ContextMenu.stories.tsx index d241b0154..519e6baff 100644 --- a/npm-packages/dashboard-common/src/features/data/components/ContextMenu.stories.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/ContextMenu.stories.tsx @@ -1,8 +1,8 @@ import { StoryObj } from "@storybook/react"; import { useRef, useState } from "react"; import { ExternalLinkIcon, StarIcon, TrashIcon } from "@radix-ui/react-icons"; -import { ContextMenu } from "features/data/components/ContextMenu"; -import { useContextMenuTrigger } from "features/data/lib/useContextMenuTrigger"; +import { ContextMenu } from "@common/features/data/components/ContextMenu"; +import { useContextMenuTrigger } from "@common/features/data/lib/useContextMenuTrigger"; export default { component: ContextMenu }; diff --git a/npm-packages/dashboard-common/src/features/data/components/ContextMenu.tsx b/npm-packages/dashboard-common/src/features/data/components/ContextMenu.tsx index 090b60d43..4f7973a4a 100644 --- a/npm-packages/dashboard-common/src/features/data/components/ContextMenu.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/ContextMenu.tsx @@ -37,9 +37,9 @@ import { import classNames from "classnames"; import { ChevronRightIcon } from "@radix-ui/react-icons"; import { UrlObject } from "url"; -import { Button } from "elements/Button"; -import { TooltipSide } from "elements/Tooltip"; -import { Key, KeyboardShortcut } from "elements/KeyboardShortcut"; +import { Button } from "@common/elements/Button"; +import { TooltipSide } from "@common/elements/Tooltip"; +import { Key, KeyboardShortcut } from "@common/elements/KeyboardShortcut"; const ContextMenuContext = React.createContext<{ getItemProps: ( diff --git a/npm-packages/dashboard-common/src/features/data/components/ConvexSchemaFilePath.tsx b/npm-packages/dashboard-common/src/features/data/components/ConvexSchemaFilePath.tsx index 9e8c4ab42..35cae9771 100644 --- a/npm-packages/dashboard-common/src/features/data/components/ConvexSchemaFilePath.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/ConvexSchemaFilePath.tsx @@ -1,4 +1,4 @@ -import { cn } from "lib/cn"; +import { cn } from "@common/lib/cn"; export function ConvexSchemaFilePath({ className }: { className?: string }) { return ( diff --git a/npm-packages/dashboard-common/src/features/data/components/DataContent.tsx b/npm-packages/dashboard-common/src/features/data/components/DataContent.tsx index 0418399db..8cf93f6e8 100644 --- a/npm-packages/dashboard-common/src/features/data/components/DataContent.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/DataContent.tsx @@ -18,28 +18,31 @@ import { SchemaJson, } from "system-udfs/convex/_system/frontend/lib/filters"; import { Shape } from "shapes"; -import { LoadingLogo, LoadingTransition } from "elements/Loading"; -import { Sheet } from "elements/Sheet"; -import { Button } from "elements/Button"; -import { DeploymentInfoContext } from "lib/deploymentContext"; -import { useSelectionState } from "features/data/lib/useSelectionState"; -import { useDataToolbarActions } from "features/data/lib/useDataToolbarActions"; -import { useTableFilters } from "features/data/lib/useTableFilters"; -import { useToolPopup } from "features/data/lib/useToolPopup"; -import { useAuthorizeProdEdits } from "features/data/lib/useAuthorizeProdEdits"; -import { usePatchDocumentField } from "features/data/components/Table/utils/usePatchDocumentField"; -import { Table, TableSkeleton } from "features/data/components/Table/Table"; +import { LoadingLogo, LoadingTransition } from "@common/elements/Loading"; +import { Sheet } from "@common/elements/Sheet"; +import { Button } from "@common/elements/Button"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; +import { useSelectionState } from "@common/features/data/lib/useSelectionState"; +import { useDataToolbarActions } from "@common/features/data/lib/useDataToolbarActions"; +import { useTableFilters } from "@common/features/data/lib/useTableFilters"; +import { useToolPopup } from "@common/features/data/lib/useToolPopup"; +import { useAuthorizeProdEdits } from "@common/features/data/lib/useAuthorizeProdEdits"; +import { usePatchDocumentField } from "@common/features/data/components/Table/utils/usePatchDocumentField"; +import { + Table, + TableSkeleton, +} from "@common/features/data/components/Table/Table"; import { DataToolbar, DataToolbarSkeleton, -} from "features/data/components/DataToolbar/DataToolbar"; -import { EmptyDataContent } from "features/data/components/EmptyData"; -import { useDataColumns } from "features/data/components/Table/utils/useDataColumns"; -import { useQueryFilteredTable } from "features/data/components/Table/utils/useQueryFilteredTable"; -import { useSingleTableSchemaStatus } from "features/data/components/TableSchema"; -import { DataFilters } from "features/data/components/DataFilters/DataFilters"; -import { useTableFields } from "features/data/components/Table/utils/useTableFields"; -import { useDefaultDocument } from "features/data/lib/useDefaultDocument"; +} from "@common/features/data/components/DataToolbar/DataToolbar"; +import { EmptyDataContent } from "@common/features/data/components/EmptyData"; +import { useDataColumns } from "@common/features/data/components/Table/utils/useDataColumns"; +import { useQueryFilteredTable } from "@common/features/data/components/Table/utils/useQueryFilteredTable"; +import { useSingleTableSchemaStatus } from "@common/features/data/components/TableSchema"; +import { DataFilters } from "@common/features/data/components/DataFilters/DataFilters"; +import { useTableFields } from "@common/features/data/components/Table/utils/useTableFields"; +import { useDefaultDocument } from "@common/features/data/lib/useDefaultDocument"; export function DataContent({ tableName, diff --git a/npm-packages/dashboard-common/src/features/data/components/DataFilters/DataFilters.stories.tsx b/npm-packages/dashboard-common/src/features/data/components/DataFilters/DataFilters.stories.tsx index b8dd5422c..b300c1c13 100644 --- a/npm-packages/dashboard-common/src/features/data/components/DataFilters/DataFilters.stories.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/DataFilters/DataFilters.stories.tsx @@ -2,8 +2,8 @@ import { Meta, StoryObj } from "@storybook/react"; import { ConvexProvider } from "convex/react"; import { ComponentProps } from "react"; import udfs from "udfs"; -import { DataFilters } from "features/data/components/DataFilters/DataFilters"; -import { mockConvexReactClient } from "lib/mockConvexReactClient"; +import { DataFilters } from "@common/features/data/components/DataFilters/DataFilters"; +import { mockConvexReactClient } from "@common/lib/mockConvexReactClient"; const mockClient = mockConvexReactClient() .registerQueryFake(udfs.listById.default, ({ ids }) => ids.map(() => null)) diff --git a/npm-packages/dashboard-common/src/features/data/components/DataFilters/DataFilters.tsx b/npm-packages/dashboard-common/src/features/data/components/DataFilters/DataFilters.tsx index b2d0a86ca..f714e8b26 100644 --- a/npm-packages/dashboard-common/src/features/data/components/DataFilters/DataFilters.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/DataFilters/DataFilters.tsx @@ -15,19 +15,19 @@ import { } from "system-udfs/convex/_system/frontend/lib/filters"; import isEqual from "lodash/isEqual"; import cloneDeep from "lodash/cloneDeep"; -import { useFilterHistory } from "features/data/lib/useTableFilters"; +import { useFilterHistory } from "@common/features/data/lib/useTableFilters"; import { FilterEditor, FilterState, -} from "features/data/components/FilterEditor/FilterEditor"; +} from "@common/features/data/components/FilterEditor/FilterEditor"; import { documentValidatorForTable, validatorForColumn, -} from "features/data/components/Table/utils/validators"; -import { SchemaJson } from "lib/format"; -import { Sheet } from "elements/Sheet"; -import { Button } from "elements/Button"; -import { Tooltip } from "elements/Tooltip"; +} from "@common/features/data/components/Table/utils/validators"; +import { SchemaJson } from "@common/lib/format"; +import { Sheet } from "@common/elements/Sheet"; +import { Button } from "@common/elements/Button"; +import { Tooltip } from "@common/elements/Tooltip"; export const filterMenuId = "filterMenu"; export function DataFilters({ diff --git a/npm-packages/dashboard-common/src/features/data/components/DataFilters/FilterButton.tsx b/npm-packages/dashboard-common/src/features/data/components/DataFilters/FilterButton.tsx index fa79b2d1a..c11af0508 100644 --- a/npm-packages/dashboard-common/src/features/data/components/DataFilters/FilterButton.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/DataFilters/FilterButton.tsx @@ -1,8 +1,8 @@ import FunnelIcon from "@heroicons/react/24/outline/FunnelIcon"; import { ChevronUpIcon, ChevronDownIcon } from "@radix-ui/react-icons"; import { FilterExpression } from "system-udfs/convex/_system/frontend/lib/filters"; -import { Button } from "elements/Button"; -import { filterMenuId } from "features/data/components/DataFilters/DataFilters"; +import { Button } from "@common/elements/Button"; +import { filterMenuId } from "@common/features/data/components/DataFilters/DataFilters"; export function FilterButton({ filters, diff --git a/npm-packages/dashboard-common/src/features/data/components/DataOverflowMenu/DataOverflowMenu.tsx b/npm-packages/dashboard-common/src/features/data/components/DataOverflowMenu/DataOverflowMenu.tsx index 238ed6081..e0a259c7a 100644 --- a/npm-packages/dashboard-common/src/features/data/components/DataOverflowMenu/DataOverflowMenu.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/DataOverflowMenu/DataOverflowMenu.tsx @@ -7,10 +7,10 @@ import { CardStackIcon, } from "@radix-ui/react-icons"; import { useContext } from "react"; -import { DeploymentInfoContext } from "lib/deploymentContext"; -import { useNents } from "lib/useNents"; -import { Menu, MenuItem } from "elements/Menu"; -import { TableSchemaStatus } from "features/data/components/TableSchema"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; +import { useNents } from "@common/lib/useNents"; +import { Menu, MenuItem } from "@common/elements/Menu"; +import { TableSchemaStatus } from "@common/features/data/components/TableSchema"; export function DataOverflowMenu({ tableSchemaStatus, diff --git a/npm-packages/dashboard-common/src/features/data/components/DataSidebar.tsx b/npm-packages/dashboard-common/src/features/data/components/DataSidebar.tsx index c45db3258..6b2b9c6e9 100644 --- a/npm-packages/dashboard-common/src/features/data/components/DataSidebar.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/DataSidebar.tsx @@ -3,22 +3,22 @@ import { useMutation } from "convex/react"; import classNames from "classnames"; import { useContext, useState } from "react"; import udfs from "udfs"; -import { cn } from "lib/cn"; -import { useInvalidateShapes } from "features/data/lib/api"; -import { TextInput } from "elements/TextInput"; +import { cn } from "@common/lib/cn"; +import { useInvalidateShapes } from "@common/features/data/lib/api"; +import { TextInput } from "@common/elements/TextInput"; import { isTableMissingFromSchema, useActiveSchema, validateConvexIdentifier, -} from "features/data/lib/helpers"; -import { TableTab } from "features/data/components/TableTab"; -import { TableMetadata } from "lib/useTableMetadata"; -import { NentSwitcher } from "elements/NentSwitcher"; -import { Loading } from "elements/Loading"; -import { Button } from "elements/Button"; -import { useNents } from "lib/useNents"; -import { DeploymentInfoContext } from "lib/deploymentContext"; -import { toast } from "lib/utils"; +} from "@common/features/data/lib/helpers"; +import { TableTab } from "@common/features/data/components/TableTab"; +import { TableMetadata } from "@common/lib/useTableMetadata"; +import { NentSwitcher } from "@common/elements/NentSwitcher"; +import { Loading } from "@common/elements/Loading"; +import { Button } from "@common/elements/Button"; +import { useNents } from "@common/lib/useNents"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; +import { toast } from "@common/lib/utils"; export function DataSidebar({ tableData, diff --git a/npm-packages/dashboard-common/src/features/data/components/DataToolbar/ClearTableConfirmation.tsx b/npm-packages/dashboard-common/src/features/data/components/DataToolbar/ClearTableConfirmation.tsx index df2cefb7f..244bf57f6 100644 --- a/npm-packages/dashboard-common/src/features/data/components/DataToolbar/ClearTableConfirmation.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/DataToolbar/ClearTableConfirmation.tsx @@ -2,9 +2,9 @@ import { captureException } from "@sentry/nextjs"; import { Cursor } from "convex/server"; import { useState } from "react"; import { useMountedState } from "react-use"; -import { useInvalidateShapes } from "features/data/lib/api"; -import { ConfirmationDialog } from "elements/ConfirmationDialog"; -import { toast } from "lib/utils"; +import { useInvalidateShapes } from "@common/features/data/lib/api"; +import { ConfirmationDialog } from "@common/elements/ConfirmationDialog"; +import { toast } from "@common/lib/utils"; export function ClearTableConfirmation({ numRows, diff --git a/npm-packages/dashboard-common/src/features/data/components/DataToolbar/DataToolbar.test.tsx b/npm-packages/dashboard-common/src/features/data/components/DataToolbar/DataToolbar.test.tsx index 177e85d28..4f08daa49 100644 --- a/npm-packages/dashboard-common/src/features/data/components/DataToolbar/DataToolbar.test.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/DataToolbar/DataToolbar.test.tsx @@ -2,15 +2,18 @@ import { screen, render } from "@testing-library/react"; import { useRouter } from "next/router"; import userEvent from "@testing-library/user-event"; import { useMemo } from "react"; -import { useTableFilters } from "features/data/lib/useTableFilters"; -import { useToolPopup } from "features/data/lib/useToolPopup"; -import { useAuthorizeProdEdits } from "features/data/lib/useAuthorizeProdEdits"; +import { useTableFilters } from "@common/features/data/lib/useTableFilters"; +import { useToolPopup } from "@common/features/data/lib/useToolPopup"; +import { useAuthorizeProdEdits } from "@common/features/data/lib/useAuthorizeProdEdits"; import { DataToolbar, DataToolbarProps, -} from "features/data/components/DataToolbar/DataToolbar"; -import { DeploymentInfo, DeploymentInfoContext } from "lib/deploymentContext"; -import { FunctionsContext } from "lib/functions/FunctionsProvider"; +} from "@common/features/data/components/DataToolbar/DataToolbar"; +import { + DeploymentInfo, + DeploymentInfoContext, +} from "@common/lib/deploymentContext"; +import { FunctionsContext } from "@common/lib/functions/FunctionsProvider"; const deploymentInfo: DeploymentInfo = { ok: true, diff --git a/npm-packages/dashboard-common/src/features/data/components/DataToolbar/DataToolbar.tsx b/npm-packages/dashboard-common/src/features/data/components/DataToolbar/DataToolbar.tsx index 9d82fcf0f..b343f9f79 100644 --- a/npm-packages/dashboard-common/src/features/data/components/DataToolbar/DataToolbar.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/DataToolbar/DataToolbar.tsx @@ -7,22 +7,22 @@ import { import classNames from "classnames"; import { FilterExpression } from "system-udfs/convex/_system/frontend/lib/filters"; import { useContext } from "react"; -import { Button } from "elements/Button"; -import { LoadingTransition } from "elements/Loading"; -import { Tooltip } from "elements/Tooltip"; -import { Spinner } from "elements/Spinner"; -import { useShowGlobalRunner } from "features/functionRunner/lib/functionRunner"; -import { DeploymentInfoContext } from "lib/deploymentContext"; -import { useNents } from "lib/useNents"; -import { PopupState } from "features/data/lib/useToolPopup"; -import { useEnabledDebounced } from "features/data/lib/useEnabledDebounced"; -import { FilterButton } from "features/data/components/DataFilters/FilterButton"; -import { DataOverflowMenu } from "features/data/components/DataOverflowMenu/DataOverflowMenu"; +import { Button } from "@common/elements/Button"; +import { LoadingTransition } from "@common/elements/Loading"; +import { Tooltip } from "@common/elements/Tooltip"; +import { Spinner } from "@common/elements/Spinner"; +import { useShowGlobalRunner } from "@common/features/functionRunner/lib/functionRunner"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; +import { useNents } from "@common/lib/useNents"; +import { PopupState } from "@common/features/data/lib/useToolPopup"; +import { useEnabledDebounced } from "@common/features/data/lib/useEnabledDebounced"; +import { FilterButton } from "@common/features/data/components/DataFilters/FilterButton"; +import { DataOverflowMenu } from "@common/features/data/components/DataOverflowMenu/DataOverflowMenu"; import { isTableMissingFromSchema, useActiveSchema, -} from "features/data/lib/helpers"; -import { TableSchemaStatus } from "features/data/components/TableSchema"; +} from "@common/features/data/lib/helpers"; +import { TableSchemaStatus } from "@common/features/data/components/TableSchema"; export type DataToolbarProps = { popupState: PopupState; diff --git a/npm-packages/dashboard-common/src/features/data/components/DataView.tsx b/npm-packages/dashboard-common/src/features/data/components/DataView.tsx index 6d44bf810..238979dd8 100644 --- a/npm-packages/dashboard-common/src/features/data/components/DataView.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/DataView.tsx @@ -1,25 +1,25 @@ import React, { useContext, useMemo, useState } from "react"; import { useQuery } from "convex/react"; import udfs from "udfs"; -import { SidebarDetailLayout } from "layouts/SidebarDetailLayout"; -import { EmptyData } from "features/data/components/EmptyData"; +import { SidebarDetailLayout } from "@common/layouts/SidebarDetailLayout"; +import { EmptyData } from "@common/features/data/components/EmptyData"; import { DataContent, DataContentSkeleton, -} from "features/data/components/DataContent"; +} from "@common/features/data/components/DataContent"; import { DataSidebar, DataSideBarSkeleton, -} from "features/data/components/DataSidebar"; -import { ShowSchema } from "features/data/components/ShowSchema"; -import { DeploymentInfoContext } from "lib/deploymentContext"; -import { useTableMetadataAndUpdateURL } from "lib/useTableMetadata"; -import { useNents } from "lib/useNents"; -import { SchemaJson } from "lib/format"; -import { useTableShapes } from "lib/deploymentApi"; -import { Modal } from "elements/Modal"; -import { LoadingTransition } from "elements/Loading"; -import { DeploymentPageTitle } from "elements/DeploymentPageTitle"; +} from "@common/features/data/components/DataSidebar"; +import { ShowSchema } from "@common/features/data/components/ShowSchema"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; +import { useTableMetadataAndUpdateURL } from "@common/lib/useTableMetadata"; +import { useNents } from "@common/lib/useNents"; +import { SchemaJson } from "@common/lib/format"; +import { useTableShapes } from "@common/lib/deploymentApi"; +import { Modal } from "@common/elements/Modal"; +import { LoadingTransition } from "@common/elements/Loading"; +import { DeploymentPageTitle } from "@common/elements/DeploymentPageTitle"; export function DataView() { const { useCurrentDeployment } = useContext(DeploymentInfoContext); diff --git a/npm-packages/dashboard-common/src/features/data/components/EmptyData.tsx b/npm-packages/dashboard-common/src/features/data/components/EmptyData.tsx index 2a323ed31..f9f184131 100644 --- a/npm-packages/dashboard-common/src/features/data/components/EmptyData.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/EmptyData.tsx @@ -1,12 +1,12 @@ import { PlusIcon, TableIcon } from "@radix-ui/react-icons"; import { useContext } from "react"; -import { CreateNewTable } from "features/data/components/DataSidebar"; -import { EmptySection } from "elements/EmptySection"; -import { useNents } from "lib/useNents"; -import { DeploymentInfoContext } from "lib/deploymentContext"; -import { useTableMetadata } from "lib/useTableMetadata"; -import { Loading } from "elements/Loading"; -import { Button } from "elements/Button"; +import { CreateNewTable } from "@common/features/data/components/DataSidebar"; +import { EmptySection } from "@common/elements/EmptySection"; +import { useNents } from "@common/lib/useNents"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; +import { useTableMetadata } from "@common/lib/useTableMetadata"; +import { Loading } from "@common/elements/Loading"; +import { Button } from "@common/elements/Button"; export function EmptyData() { return ( diff --git a/npm-packages/dashboard-common/src/features/data/components/FilterEditor/DateTimePicker.stories.tsx b/npm-packages/dashboard-common/src/features/data/components/FilterEditor/DateTimePicker.stories.tsx index 84d66ce9d..548798420 100644 --- a/npm-packages/dashboard-common/src/features/data/components/FilterEditor/DateTimePicker.stories.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/FilterEditor/DateTimePicker.stories.tsx @@ -1,5 +1,5 @@ import { StoryObj } from "@storybook/react"; -import { DateTimePicker } from "features/data/components/FilterEditor/DateTimePicker"; +import { DateTimePicker } from "@common/features/data/components/FilterEditor/DateTimePicker"; export const Primary: StoryObj = { args: { diff --git a/npm-packages/dashboard-common/src/features/data/components/FilterEditor/DateTimePicker.test.tsx b/npm-packages/dashboard-common/src/features/data/components/FilterEditor/DateTimePicker.test.tsx index b6dd7f8e2..1a47cee27 100644 --- a/npm-packages/dashboard-common/src/features/data/components/FilterEditor/DateTimePicker.test.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/FilterEditor/DateTimePicker.test.tsx @@ -1,6 +1,6 @@ import { render, screen } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; -import { DateTimePicker } from "features/data/components/FilterEditor/DateTimePicker"; +import { DateTimePicker } from "@common/features/data/components/FilterEditor/DateTimePicker"; describe("DateTimePicker", () => { const mockOnChange = jest.fn(); diff --git a/npm-packages/dashboard-common/src/features/data/components/FilterEditor/DateTimePicker.tsx b/npm-packages/dashboard-common/src/features/data/components/FilterEditor/DateTimePicker.tsx index 27005644d..c3f1364d3 100644 --- a/npm-packages/dashboard-common/src/features/data/components/FilterEditor/DateTimePicker.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/FilterEditor/DateTimePicker.tsx @@ -1,10 +1,10 @@ import { format, parse } from "date-fns"; -import { cn } from "lib/cn"; +import { cn } from "@common/lib/cn"; import { useEffect, useRef, useState } from "react"; import { usePopper } from "react-popper"; -import { Calendar } from "elements/Calendar"; -import { useInteractOutside } from "features/data/lib/useInteractOutside"; -import { TextInput } from "elements/TextInput"; +import { Calendar } from "@common/elements/Calendar"; +import { useInteractOutside } from "@common/features/data/lib/useInteractOutside"; +import { TextInput } from "@common/elements/TextInput"; const dateTimeFormat = "M/d/yyyy, h:mm:ss aa"; diff --git a/npm-packages/dashboard-common/src/features/data/components/FilterEditor/FilterEditor.stories.tsx b/npm-packages/dashboard-common/src/features/data/components/FilterEditor/FilterEditor.stories.tsx index 2e8d63947..ebf9334da 100644 --- a/npm-packages/dashboard-common/src/features/data/components/FilterEditor/FilterEditor.stories.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/FilterEditor/FilterEditor.stories.tsx @@ -1,8 +1,8 @@ import { Meta, StoryObj } from "@storybook/react"; import { ConvexProvider } from "convex/react"; import udfs from "udfs"; -import { FilterEditor } from "features/data/components/FilterEditor/FilterEditor"; -import { mockConvexReactClient } from "lib/mockConvexReactClient"; +import { FilterEditor } from "@common/features/data/components/FilterEditor/FilterEditor"; +import { mockConvexReactClient } from "@common/lib/mockConvexReactClient"; const mockClient = mockConvexReactClient() .registerQueryFake(udfs.listById.default, ({ ids }) => ids.map(() => null)) diff --git a/npm-packages/dashboard-common/src/features/data/components/FilterEditor/FilterEditor.test.tsx b/npm-packages/dashboard-common/src/features/data/components/FilterEditor/FilterEditor.test.tsx index 8bc70ee6d..262a65308 100644 --- a/npm-packages/dashboard-common/src/features/data/components/FilterEditor/FilterEditor.test.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/FilterEditor/FilterEditor.test.tsx @@ -1,13 +1,13 @@ import { screen, render } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; -import { mockConvexReactClient } from "lib/mockConvexReactClient"; +import { mockConvexReactClient } from "@common/lib/mockConvexReactClient"; import { ConvexProvider } from "convex/react"; import udfs from "udfs"; -import { MockMonaco } from "features/data/components/MockMonaco.test"; +import { MockMonaco } from "@common/features/data/components/MockMonaco.test"; import { FilterEditor, FilterEditorProps, -} from "features/data/components/FilterEditor/FilterEditor"; +} from "@common/features/data/components/FilterEditor/FilterEditor"; const mockClient = mockConvexReactClient() .registerQueryFake(udfs.listById.default, ({ ids }) => ids.map(() => null)) diff --git a/npm-packages/dashboard-common/src/features/data/components/FilterEditor/FilterEditor.tsx b/npm-packages/dashboard-common/src/features/data/components/FilterEditor/FilterEditor.tsx index 5558ff433..a499df445 100644 --- a/npm-packages/dashboard-common/src/features/data/components/FilterEditor/FilterEditor.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/FilterEditor/FilterEditor.tsx @@ -14,10 +14,10 @@ import { isTypeFilterOp, typeOf, } from "system-udfs/convex/_system/frontend/lib/filters"; -import { Combobox, type Option } from "elements/Combobox"; -import { DateTimePicker } from "features/data/components/FilterEditor/DateTimePicker"; -import { Button } from "elements/Button"; -import { ObjectEditor } from "elements/ObjectEditor/ObjectEditor"; +import { Combobox, type Option } from "@common/elements/Combobox"; +import { DateTimePicker } from "@common/features/data/components/FilterEditor/DateTimePicker"; +import { Button } from "@common/elements/Button"; +import { ObjectEditor } from "@common/elements/ObjectEditor/ObjectEditor"; export const operatorOptions: Readonly< Option<(FilterByType | FilterByBuiltin)["op"]>[] diff --git a/npm-packages/dashboard-common/src/features/data/components/GenerateSchema.tsx b/npm-packages/dashboard-common/src/features/data/components/GenerateSchema.tsx index e9eec7f08..4fb9932a4 100644 --- a/npm-packages/dashboard-common/src/features/data/components/GenerateSchema.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/GenerateSchema.tsx @@ -2,11 +2,11 @@ import Link from "next/link"; import React, { useMemo } from "react"; import { Shape } from "shapes"; import { ExternalLinkIcon } from "@radix-ui/react-icons"; -import { ConvexSchemaFilePath } from "features/data/components/ConvexSchemaFilePath"; -import { HighlightLines, ReadonlyCode } from "elements/ReadonlyCode"; -import { displaySchemaFromShapes } from "lib/format"; -import { Callout } from "elements/Callout"; -import { CopyButton } from "elements/CopyButton"; +import { ConvexSchemaFilePath } from "@common/features/data/components/ConvexSchemaFilePath"; +import { HighlightLines, ReadonlyCode } from "@common/elements/ReadonlyCode"; +import { displaySchemaFromShapes } from "@common/lib/format"; +import { Callout } from "@common/elements/Callout"; +import { CopyButton } from "@common/elements/CopyButton"; export type LineHighlighter = (code: string) => HighlightLines; export type CodeTransformation = (code: string) => string; diff --git a/npm-packages/dashboard-common/src/features/data/components/IndexList.stories.tsx b/npm-packages/dashboard-common/src/features/data/components/IndexList.stories.tsx index 9651c49a2..6d394357d 100644 --- a/npm-packages/dashboard-common/src/features/data/components/IndexList.stories.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/IndexList.stories.tsx @@ -1,5 +1,5 @@ import { StoryObj } from "@storybook/react"; -import { IndexesList as IndexList } from "features/data/components/IndexList"; +import { IndexesList as IndexList } from "@common/features/data/components/IndexList"; export default { component: IndexList }; diff --git a/npm-packages/dashboard-common/src/features/data/components/IndexList.tsx b/npm-packages/dashboard-common/src/features/data/components/IndexList.tsx index 7e46cccc3..7a7930d2a 100644 --- a/npm-packages/dashboard-common/src/features/data/components/IndexList.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/IndexList.tsx @@ -1,8 +1,8 @@ import React from "react"; -import { Index, useTableIndexes } from "features/data/lib/api"; -import { Callout } from "elements/Callout"; -import { Spinner } from "elements/Spinner"; -import { Tooltip } from "elements/Tooltip"; +import { Index, useTableIndexes } from "@common/features/data/lib/api"; +import { Callout } from "@common/elements/Callout"; +import { Spinner } from "@common/elements/Spinner"; +import { Tooltip } from "@common/elements/Tooltip"; function IndexRow({ index }: { index: Index }) { const { type, fields } = getIndexDescription(index); diff --git a/npm-packages/dashboard-common/src/features/data/components/ShowSchema.stories.tsx b/npm-packages/dashboard-common/src/features/data/components/ShowSchema.stories.tsx index de2d41cab..bebb6b4b6 100644 --- a/npm-packages/dashboard-common/src/features/data/components/ShowSchema.stories.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/ShowSchema.stories.tsx @@ -1,7 +1,7 @@ import { Meta, StoryObj } from "@storybook/react"; import { Shape } from "shapes"; -import { ShowSchema } from "features/data/components/ShowSchema"; -import { SchemaJson } from "lib/format"; +import { ShowSchema } from "@common/features/data/components/ShowSchema"; +import { SchemaJson } from "@common/lib/format"; export default { component: ShowSchema, diff --git a/npm-packages/dashboard-common/src/features/data/components/ShowSchema.tsx b/npm-packages/dashboard-common/src/features/data/components/ShowSchema.tsx index 1eaed9da7..870b06743 100644 --- a/npm-packages/dashboard-common/src/features/data/components/ShowSchema.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/ShowSchema.tsx @@ -1,16 +1,16 @@ import { useMemo } from "react"; import { Shape } from "shapes"; import { Tab as HeadlessTab } from "@headlessui/react"; -import { Tab } from "elements/Tab"; -import { ConvexSchemaFilePath } from "features/data/components/ConvexSchemaFilePath"; +import { Tab } from "@common/elements/Tab"; +import { ConvexSchemaFilePath } from "@common/features/data/components/ConvexSchemaFilePath"; import { GenerateSchema, CodeTransformation, LineHighlighter, -} from "features/data/components/GenerateSchema"; -import { SchemaJson, displaySchema } from "lib/format"; -import { ReadonlyCode } from "elements/ReadonlyCode"; -import { Spinner } from "elements/Spinner"; +} from "@common/features/data/components/GenerateSchema"; +import { SchemaJson, displaySchema } from "@common/lib/format"; +import { ReadonlyCode } from "@common/elements/ReadonlyCode"; +import { Spinner } from "@common/elements/Spinner"; export function ShowSchema({ activeSchema, diff --git a/npm-packages/dashboard-common/src/features/data/components/Table/ColumnHeader.tsx b/npm-packages/dashboard-common/src/features/data/components/Table/ColumnHeader.tsx index a30256505..ea312d53e 100644 --- a/npm-packages/dashboard-common/src/features/data/components/Table/ColumnHeader.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/Table/ColumnHeader.tsx @@ -5,14 +5,14 @@ import { HeaderGroup } from "react-table"; import { useDrop, useDrag } from "react-dnd"; import { useEffect, useRef } from "react"; import omit from "lodash/omit"; -import { useContextMenuTrigger } from "features/data/lib/useContextMenuTrigger"; -import { useTableDensity } from "features/data/lib/useTableDensity"; -import { Checkbox } from "elements/Checkbox"; -import { identifierNeedsEscape } from "features/data/lib/helpers"; -import { emptyColumnName } from "features/data/components/Table/utils/useDataColumns"; -import { DataCellProps } from "features/data/components/Table/DataCell/DataCell"; -import { columnWidthToString } from "features/data/components/Table/DataRow"; -import { Tooltip } from "elements/Tooltip"; +import { useContextMenuTrigger } from "@common/features/data/lib/useContextMenuTrigger"; +import { useTableDensity } from "@common/features/data/lib/useTableDensity"; +import { Checkbox } from "@common/elements/Checkbox"; +import { identifierNeedsEscape } from "@common/features/data/lib/helpers"; +import { emptyColumnName } from "@common/features/data/components/Table/utils/useDataColumns"; +import { DataCellProps } from "@common/features/data/components/Table/DataCell/DataCell"; +import { columnWidthToString } from "@common/features/data/components/Table/DataRow"; +import { Tooltip } from "@common/elements/Tooltip"; type ColumnHeaderProps = { column: HeaderGroup; diff --git a/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/CellEditor.tsx b/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/CellEditor.tsx index 1c168cb32..f15e8f11f 100644 --- a/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/CellEditor.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/CellEditor.tsx @@ -2,9 +2,9 @@ import { ValidatorJSON, Value } from "convex/values"; import { useState } from "react"; import isEqual from "lodash/isEqual"; import { UNDEFINED_PLACEHOLDER } from "system-udfs/convex/_system/frontend/patchDocumentsFields"; -import { ObjectEditor } from "elements/ObjectEditor/ObjectEditor"; -import { KeyboardShortcut } from "elements/KeyboardShortcut"; -import { useTableDensity } from "features/data/lib/useTableDensity"; +import { ObjectEditor } from "@common/elements/ObjectEditor/ObjectEditor"; +import { KeyboardShortcut } from "@common/elements/KeyboardShortcut"; +import { useTableDensity } from "@common/features/data/lib/useTableDensity"; export type CellEditorProps = { value?: Value; diff --git a/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/DataCell.test.tsx b/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/DataCell.test.tsx index d78c2ae50..175956d98 100644 --- a/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/DataCell.test.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/DataCell.test.tsx @@ -6,12 +6,12 @@ import mockRouter from "next-router-mock"; import { ConvexProvider } from "convex/react"; import udfs from "udfs"; import userEvent from "@testing-library/user-event"; -import { MockMonaco } from "features/data/components/MockMonaco.test"; +import { MockMonaco } from "@common/features/data/components/MockMonaco.test"; import { DataCell, DataCellProps, -} from "features/data/components/Table/DataCell/DataCell"; -import { mockConvexReactClient } from "lib/mockConvexReactClient"; +} from "@common/features/data/components/Table/DataCell/DataCell"; +import { mockConvexReactClient } from "@common/lib/mockConvexReactClient"; jest.mock("next/router", () => jest.requireActual("next-router-mock")); jest.mock("@monaco-editor/react", () => (p: any) => MockMonaco(p)); diff --git a/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/DataCell.tsx b/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/DataCell.tsx index 7f2357fa0..25e62aa4f 100644 --- a/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/DataCell.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/DataCell.tsx @@ -12,28 +12,28 @@ import { Link2Icon, } from "@radix-ui/react-icons"; import { Portal, Transition } from "@headlessui/react"; -import { useTableDensity } from "features/data/lib/useTableDensity"; +import { useTableDensity } from "@common/features/data/lib/useTableDensity"; -import { ProductionEditsConfirmationDialog } from "elements/ProductionEditsConfirmationDialog"; +import { ProductionEditsConfirmationDialog } from "@common/elements/ProductionEditsConfirmationDialog"; -import { KeyboardShortcut } from "elements/KeyboardShortcut"; -import { DataDetail } from "features/data/components/Table/DataCell/DataDetail"; -import { CellEditor } from "features/data/components/Table/DataCell/CellEditor"; -import { DataCellValue } from "features/data/components/Table/DataCell/DataCellValue"; +import { KeyboardShortcut } from "@common/elements/KeyboardShortcut"; +import { DataDetail } from "@common/features/data/components/Table/DataCell/DataDetail"; +import { CellEditor } from "@common/features/data/components/Table/DataCell/CellEditor"; +import { DataCellValue } from "@common/features/data/components/Table/DataCell/DataCellValue"; -import type { usePatchDocumentField } from "features/data/components/Table/utils/usePatchDocumentField"; -import { arrowKeyHandler } from "features/data/components/Table/utils/arrowKeyHandler"; +import type { usePatchDocumentField } from "@common/features/data/components/Table/utils/usePatchDocumentField"; +import { arrowKeyHandler } from "@common/features/data/components/Table/utils/arrowKeyHandler"; import { OpenContextMenu, useActionHotkeys, useCellActions, -} from "features/data/components/Table/DataCell/utils/cellActions"; -import { usePasteListener } from "features/data/components/Table/DataCell/utils/usePasteListener"; -import { useTrackCellChanges } from "features/data/components/Table/DataCell/utils/useTrackCellChanges"; -import { useValidator } from "features/data/components/Table/DataCell/utils/useValidator"; -import { SchemaJson } from "lib/format"; -import { stringifyValue } from "lib/stringifyValue"; -import { Button } from "elements/Button"; +} from "@common/features/data/components/Table/DataCell/utils/cellActions"; +import { usePasteListener } from "@common/features/data/components/Table/DataCell/utils/usePasteListener"; +import { useTrackCellChanges } from "@common/features/data/components/Table/DataCell/utils/useTrackCellChanges"; +import { useValidator } from "@common/features/data/components/Table/DataCell/utils/useValidator"; +import { SchemaJson } from "@common/lib/format"; +import { stringifyValue } from "@common/lib/stringifyValue"; +import { Button } from "@common/elements/Button"; export type DataCellProps = { value: Value; diff --git a/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/DataCellValue.tsx b/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/DataCellValue.tsx index 61a1c50a3..b05ad6062 100644 --- a/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/DataCellValue.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/DataCellValue.tsx @@ -1,6 +1,6 @@ import { forwardRef } from "react"; -import { isInCommonUTCTimestampRange } from "features/data/lib/helpers"; -import { Tooltip } from "elements/Tooltip"; +import { isInCommonUTCTimestampRange } from "@common/features/data/lib/helpers"; +import { Tooltip } from "@common/elements/Tooltip"; type DataCellValueProps = { isDateField: boolean; diff --git a/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/DataDetail.tsx b/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/DataDetail.tsx index cf90ca881..d79fa73a7 100644 --- a/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/DataDetail.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/DataDetail.tsx @@ -1,8 +1,8 @@ import { Value } from "convex/values"; -import { DetailPanel } from "elements/DetailPanel"; -import { ReadonlyCode } from "elements/ReadonlyCode"; -import { stringifyValue } from "lib/stringifyValue"; +import { DetailPanel } from "@common/elements/DetailPanel"; +import { ReadonlyCode } from "@common/elements/ReadonlyCode"; +import { stringifyValue } from "@common/lib/stringifyValue"; export function DataDetail({ value, diff --git a/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/utils/cellActions.ts b/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/utils/cellActions.ts index 80d35bf35..28d279c65 100644 --- a/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/utils/cellActions.ts +++ b/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/utils/cellActions.ts @@ -6,13 +6,13 @@ import { UrlObject } from "url"; import { GenericDocument } from "convex/server"; import { Value } from "convex/values"; -import { Target } from "features/data/components/ContextMenu"; -import { useContextMenuTrigger } from "features/data/lib/useContextMenuTrigger"; +import { Target } from "@common/features/data/components/ContextMenu"; +import { useContextMenuTrigger } from "@common/features/data/lib/useContextMenuTrigger"; -import { useIdReferenceLink } from "features/data/components/Table/DataCell/utils/useIdReferenceLink"; -import { copyTextToClipboard } from "lib/utils"; -import { stringifyValue } from "lib/stringifyValue"; -import { useNents } from "lib/useNents"; +import { useIdReferenceLink } from "@common/features/data/components/Table/DataCell/utils/useIdReferenceLink"; +import { copyTextToClipboard } from "@common/lib/utils"; +import { stringifyValue } from "@common/lib/stringifyValue"; +import { useNents } from "@common/lib/useNents"; // Handles most of the logic for interacting with a cell in the table. // This includes opening the context menu, copying values, editing values, etc. diff --git a/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/utils/useIdReferenceLink.ts b/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/utils/useIdReferenceLink.ts index c9f0cf7e6..dbf7adc13 100644 --- a/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/utils/useIdReferenceLink.ts +++ b/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/utils/useIdReferenceLink.ts @@ -2,9 +2,9 @@ import { useQuery } from "convex/react"; import { Value } from "convex/values"; import { useRouter } from "next/router"; import udfs from "udfs"; -import { stringifyValue } from "lib/stringifyValue"; -import { useNents } from "lib/useNents"; -import { documentHref, getReferencedTableName } from "lib/utils"; +import { stringifyValue } from "@common/lib/stringifyValue"; +import { useNents } from "@common/lib/useNents"; +import { documentHref, getReferencedTableName } from "@common/lib/utils"; export function useIdReferenceLink(value: Value, columnName: string) { const stringValue = typeof value === "string" ? value : stringifyValue(value); diff --git a/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/utils/usePasteListener.ts b/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/utils/usePasteListener.ts index fb54a98dd..f36359f3b 100644 --- a/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/utils/usePasteListener.ts +++ b/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/utils/usePasteListener.ts @@ -1,6 +1,6 @@ import { Value } from "convex/values"; import { useEffect } from "react"; -import { walkAst } from "elements/ObjectEditor/ast/walkAst"; +import { walkAst } from "@common/elements/ObjectEditor/ast/walkAst"; export function usePasteListener( cellRef: React.RefObject, diff --git a/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/utils/useValidator.ts b/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/utils/useValidator.ts index d0525329c..10461936e 100644 --- a/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/utils/useValidator.ts +++ b/npm-packages/dashboard-common/src/features/data/components/Table/DataCell/utils/useValidator.ts @@ -1,8 +1,8 @@ -import { SchemaJson } from "lib/format"; +import { SchemaJson } from "@common/lib/format"; import { documentValidatorForTable, validatorForColumn, -} from "features/data/components/Table/utils/validators"; +} from "@common/features/data/components/Table/utils/validators"; export function useValidator( activeSchema: SchemaJson | null, diff --git a/npm-packages/dashboard-common/src/features/data/components/Table/DataRow.test.tsx b/npm-packages/dashboard-common/src/features/data/components/Table/DataRow.test.tsx index 5fab8ed19..610464cf5 100644 --- a/npm-packages/dashboard-common/src/features/data/components/Table/DataRow.test.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/Table/DataRow.test.tsx @@ -7,10 +7,10 @@ import * as nextRouter from "next/router"; import { GenericDocument } from "convex/server"; import udfs from "udfs"; import { useMemo } from "react"; -import { useDataColumns } from "features/data/components/Table/utils/useDataColumns"; -import { DataRow } from "features/data/components/Table/DataRow"; -import { ConnectedDeploymentContext } from "lib/deploymentContext"; -import { mockConvexReactClient } from "lib/mockConvexReactClient"; +import { useDataColumns } from "@common/features/data/components/Table/utils/useDataColumns"; +import { DataRow } from "@common/features/data/components/Table/DataRow"; +import { ConnectedDeploymentContext } from "@common/lib/deploymentContext"; +import { mockConvexReactClient } from "@common/lib/mockConvexReactClient"; const mockRouter = jest .fn() diff --git a/npm-packages/dashboard-common/src/features/data/components/Table/DataRow.tsx b/npm-packages/dashboard-common/src/features/data/components/Table/DataRow.tsx index 9c45529d5..9cd536587 100644 --- a/npm-packages/dashboard-common/src/features/data/components/Table/DataRow.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/Table/DataRow.tsx @@ -13,21 +13,21 @@ import { Row } from "react-table"; import classNames from "classnames"; import { useFirstMountState, usePrevious } from "react-use"; import { areEqual } from "react-window"; -import { cn } from "lib/cn"; +import { cn } from "@common/lib/cn"; import omit from "lodash/omit"; -import { useContextMenuTrigger } from "features/data/lib/useContextMenuTrigger"; -import { Target } from "features/data/components/ContextMenu"; -import { useTableDensity } from "features/data/lib/useTableDensity"; -import { TableCheckbox } from "features/data/components/Table/TableCheckbox"; +import { useContextMenuTrigger } from "@common/features/data/lib/useContextMenuTrigger"; +import { Target } from "@common/features/data/components/ContextMenu"; +import { useTableDensity } from "@common/features/data/lib/useTableDensity"; +import { TableCheckbox } from "@common/features/data/components/Table/TableCheckbox"; import { DataCell, DataCellProps, -} from "features/data/components/Table/DataCell/DataCell"; -import { usePatchDocumentField } from "features/data/components/Table/utils/usePatchDocumentField"; -import { arrowKeyHandler } from "features/data/components/Table/utils/arrowKeyHandler"; -import { toggleAdjacent } from "features/data/components/Table/utils/toggleAdjacent"; -import { SchemaJson } from "lib/format"; -import { Loading } from "elements/Loading"; +} from "@common/features/data/components/Table/DataCell/DataCell"; +import { usePatchDocumentField } from "@common/features/data/components/Table/utils/usePatchDocumentField"; +import { arrowKeyHandler } from "@common/features/data/components/Table/utils/arrowKeyHandler"; +import { toggleAdjacent } from "@common/features/data/components/Table/utils/toggleAdjacent"; +import { SchemaJson } from "@common/lib/format"; +import { Loading } from "@common/elements/Loading"; type DataRowProps = { data: { diff --git a/npm-packages/dashboard-common/src/features/data/components/Table/EditDocumentField.tsx b/npm-packages/dashboard-common/src/features/data/components/Table/EditDocumentField.tsx index eadfebffa..f69baf948 100644 --- a/npm-packages/dashboard-common/src/features/data/components/Table/EditDocumentField.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/Table/EditDocumentField.tsx @@ -5,8 +5,8 @@ import udfs from "udfs"; import { ValidatorJSON, Value } from "convex/values"; import isEqual from "lodash/isEqual"; import { UNDEFINED_PLACEHOLDER } from "system-udfs/convex/_system/frontend/patchDocumentsFields"; -import { ObjectEditor } from "elements/ObjectEditor/ObjectEditor"; -import { Button } from "elements/Button"; +import { ObjectEditor } from "@common/elements/ObjectEditor/ObjectEditor"; +import { Button } from "@common/elements/Button"; export function EditDocumentField({ column, diff --git a/npm-packages/dashboard-common/src/features/data/components/Table/EditDocumentPanel/EditDocumentPanel.stories.tsx b/npm-packages/dashboard-common/src/features/data/components/Table/EditDocumentPanel/EditDocumentPanel.stories.tsx index e3d6f30fb..4257e557e 100644 --- a/npm-packages/dashboard-common/src/features/data/components/Table/EditDocumentPanel/EditDocumentPanel.stories.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/Table/EditDocumentPanel/EditDocumentPanel.stories.tsx @@ -2,8 +2,8 @@ import { Meta, StoryObj } from "@storybook/react"; import { ConvexProvider } from "convex/react"; import React from "react"; import udfs from "udfs"; -import { EditDocumentPanel } from "features/data/components/Table/EditDocumentPanel/EditDocumentPanel"; -import { mockConvexReactClient } from "lib/mockConvexReactClient"; +import { EditDocumentPanel } from "@common/features/data/components/Table/EditDocumentPanel/EditDocumentPanel"; +import { mockConvexReactClient } from "@common/lib/mockConvexReactClient"; const mockClient = mockConvexReactClient() .registerQueryFake(udfs.listById.default, ({ ids }) => ids.map(() => null)) diff --git a/npm-packages/dashboard-common/src/features/data/components/Table/EditDocumentPanel/EditDocumentPanel.test.tsx b/npm-packages/dashboard-common/src/features/data/components/Table/EditDocumentPanel/EditDocumentPanel.test.tsx index c69918bcf..1360fd3fd 100644 --- a/npm-packages/dashboard-common/src/features/data/components/Table/EditDocumentPanel/EditDocumentPanel.test.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/Table/EditDocumentPanel/EditDocumentPanel.test.tsx @@ -8,12 +8,12 @@ import { import { ConvexProvider } from "convex/react"; import udfs from "udfs"; import userEvent from "@testing-library/user-event"; -import { mockConvexReactClient } from "lib/mockConvexReactClient"; -import { MockMonaco } from "features/data/components/MockMonaco.test"; +import { mockConvexReactClient } from "@common/lib/mockConvexReactClient"; +import { MockMonaco } from "@common/features/data/components/MockMonaco.test"; import { EditDocumentPanel, useDocumentDrafts, -} from "features/data/components/Table/EditDocumentPanel/EditDocumentPanel"; +} from "@common/features/data/components/Table/EditDocumentPanel/EditDocumentPanel"; jest.mock("@monaco-editor/react", () => (p: any) => MockMonaco(p)); jest.mock("next/router", () => jest.requireActual("next-router-mock")); diff --git a/npm-packages/dashboard-common/src/features/data/components/Table/EditDocumentPanel/EditDocumentPanel.tsx b/npm-packages/dashboard-common/src/features/data/components/Table/EditDocumentPanel/EditDocumentPanel.tsx index ea579e010..58a07c1a2 100644 --- a/npm-packages/dashboard-common/src/features/data/components/Table/EditDocumentPanel/EditDocumentPanel.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/Table/EditDocumentPanel/EditDocumentPanel.tsx @@ -6,9 +6,9 @@ import isEqual from "lodash/isEqual"; import omitBy from "lodash/omitBy"; import Link from "next/link"; import { createGlobalState } from "react-use"; -import { JavascriptDocumentsForm } from "features/data/components/Table/EditDocumentPanel/JavascriptDocumentsForm"; -import { ClosePanelButton } from "elements/ClosePanelButton"; -import { useNents } from "lib/useNents"; +import { JavascriptDocumentsForm } from "@common/features/data/components/Table/EditDocumentPanel/JavascriptDocumentsForm"; +import { ClosePanelButton } from "@common/elements/ClosePanelButton"; +import { useNents } from "@common/lib/useNents"; export type EditDocumentPanelProps = { onClose: () => void; diff --git a/npm-packages/dashboard-common/src/features/data/components/Table/EditDocumentPanel/EditFieldsPanel.tsx b/npm-packages/dashboard-common/src/features/data/components/Table/EditDocumentPanel/EditFieldsPanel.tsx index 4895075fd..0b1c939ab 100644 --- a/npm-packages/dashboard-common/src/features/data/components/Table/EditDocumentPanel/EditFieldsPanel.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/Table/EditDocumentPanel/EditFieldsPanel.tsx @@ -3,8 +3,8 @@ import { GenericDocument } from "convex/server"; import isEqual from "lodash/isEqual"; import { Fragment, useState } from "react"; import { ValidatorJSON } from "convex/values"; -import { JavascriptDocumentsForm } from "features/data/components/Table/EditDocumentPanel/JavascriptDocumentsForm"; -import { ClosePanelButton } from "elements/ClosePanelButton"; +import { JavascriptDocumentsForm } from "@common/features/data/components/Table/EditDocumentPanel/JavascriptDocumentsForm"; +import { ClosePanelButton } from "@common/elements/ClosePanelButton"; export function EditFieldsPanel({ allRowsSelected, diff --git a/npm-packages/dashboard-common/src/features/data/components/Table/EditDocumentPanel/JavascriptDocumentsForm.tsx b/npm-packages/dashboard-common/src/features/data/components/Table/EditDocumentPanel/JavascriptDocumentsForm.tsx index 2e8398866..2e6ecd270 100644 --- a/npm-packages/dashboard-common/src/features/data/components/Table/EditDocumentPanel/JavascriptDocumentsForm.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/Table/EditDocumentPanel/JavascriptDocumentsForm.tsx @@ -5,9 +5,9 @@ import { ValidatorJSON, Value } from "convex/values"; import isPlainObject from "lodash/isPlainObject"; import omitBy from "lodash/omitBy"; import { UNDEFINED_PLACEHOLDER } from "system-udfs/convex/_system/frontend/patchDocumentsFields"; -import { ObjectEditor } from "elements/ObjectEditor/ObjectEditor"; -import { Button } from "elements/Button"; -import { Spinner } from "elements/Spinner"; +import { ObjectEditor } from "@common/elements/ObjectEditor/ObjectEditor"; +import { Button } from "@common/elements/Button"; +import { Spinner } from "@common/elements/Spinner"; function isDocument( value: Value | undefined, diff --git a/npm-packages/dashboard-common/src/features/data/components/Table/Table.tsx b/npm-packages/dashboard-common/src/features/data/components/Table/Table.tsx index 408158f9c..bb7086028 100644 --- a/npm-packages/dashboard-common/src/features/data/components/Table/Table.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/Table/Table.tsx @@ -28,28 +28,28 @@ import { Panel, PanelGroup, } from "react-resizable-panels"; -import { cn } from "lib/cn"; -import { ResizeHandle } from "layouts/SidebarDetailLayout"; -import { useTableDensity } from "features/data/lib/useTableDensity"; -import { InfiniteScrollList } from "elements/InfiniteScrollList"; -import { SelectionState } from "features/data/lib/useSelectionState"; -import { usePatchDocumentField } from "features/data/components/Table/utils/usePatchDocumentField"; -import { DataRow } from "features/data/components/Table/DataRow"; -import { TableScrollbar } from "features/data/components/Table/TableScrollbar"; -import { useTrackColumnWidths } from "features/data/components/Table/utils/useTrackColumnWidths"; -import type { PopupState } from "features/data/lib/useToolPopup"; -import { useMaintainScrollPositionOnChange } from "features/data/components/Table/utils/useMaintainScrollPositionOnChange"; +import { cn } from "@common/lib/cn"; +import { ResizeHandle } from "@common/layouts/SidebarDetailLayout"; +import { useTableDensity } from "@common/features/data/lib/useTableDensity"; +import { InfiniteScrollList } from "@common/elements/InfiniteScrollList"; +import { SelectionState } from "@common/features/data/lib/useSelectionState"; +import { usePatchDocumentField } from "@common/features/data/components/Table/utils/usePatchDocumentField"; +import { DataRow } from "@common/features/data/components/Table/DataRow"; +import { TableScrollbar } from "@common/features/data/components/Table/TableScrollbar"; +import { useTrackColumnWidths } from "@common/features/data/components/Table/utils/useTrackColumnWidths"; +import type { PopupState } from "@common/features/data/lib/useToolPopup"; +import { useMaintainScrollPositionOnChange } from "@common/features/data/components/Table/utils/useMaintainScrollPositionOnChange"; import { TableContextMenu, useTableContextMenuState, -} from "features/data/components/Table/TableContextMenu"; -import { TableHeader } from "features/data/components/Table/TableHeader"; -import { useStoredColumnOrder } from "features/data/components/Table/utils/useDataColumns"; -import { ViewDocument } from "features/data/components/Table/ViewDocument"; -import { pageSize } from "features/data/components/Table/utils/useQueryFilteredTable"; -import { LoadingLogo } from "elements/Loading"; -import { DeploymentInfoContext } from "lib/deploymentContext"; -import { useNents } from "lib/useNents"; +} from "@common/features/data/components/Table/TableContextMenu"; +import { TableHeader } from "@common/features/data/components/Table/TableHeader"; +import { useStoredColumnOrder } from "@common/features/data/components/Table/utils/useDataColumns"; +import { ViewDocument } from "@common/features/data/components/Table/ViewDocument"; +import { pageSize } from "@common/features/data/components/Table/utils/useQueryFilteredTable"; +import { LoadingLogo } from "@common/elements/Loading"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; +import { useNents } from "@common/lib/useNents"; const ScrollingComponent = withScrolling("div"); diff --git a/npm-packages/dashboard-common/src/features/data/components/Table/TableCheckbox.tsx b/npm-packages/dashboard-common/src/features/data/components/Table/TableCheckbox.tsx index d02af9ce2..e0ce07eb4 100644 --- a/npm-packages/dashboard-common/src/features/data/components/Table/TableCheckbox.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/Table/TableCheckbox.tsx @@ -1,6 +1,6 @@ import classNames from "classnames"; import { forwardRef, useId } from "react"; -import { Checkbox } from "elements/Checkbox"; +import { Checkbox } from "@common/elements/Checkbox"; type TableCheckboxProps = { checked: boolean; diff --git a/npm-packages/dashboard-common/src/features/data/components/Table/TableContextMenu.test.tsx b/npm-packages/dashboard-common/src/features/data/components/Table/TableContextMenu.test.tsx index 443ead359..a5f6d158d 100644 --- a/npm-packages/dashboard-common/src/features/data/components/Table/TableContextMenu.test.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/Table/TableContextMenu.test.tsx @@ -7,8 +7,8 @@ import userEvent from "@testing-library/user-event"; import { TableContextMenu, TableContextMenuProps, -} from "features/data/components/Table/TableContextMenu"; -import { mockConvexReactClient } from "lib/mockConvexReactClient"; +} from "@common/features/data/components/Table/TableContextMenu"; +import { mockConvexReactClient } from "@common/lib/mockConvexReactClient"; jest.mock("next/router", () => jest.requireActual("next-router-mock")); diff --git a/npm-packages/dashboard-common/src/features/data/components/Table/TableContextMenu.tsx b/npm-packages/dashboard-common/src/features/data/components/Table/TableContextMenu.tsx index 7d4cd818d..911490bbf 100644 --- a/npm-packages/dashboard-common/src/features/data/components/Table/TableContextMenu.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/Table/TableContextMenu.tsx @@ -16,18 +16,18 @@ import { typeOf, } from "system-udfs/convex/_system/frontend/lib/filters"; import { UrlObject } from "url"; -import { Key } from "elements/KeyboardShortcut"; -import { ContextMenu } from "features/data/components/ContextMenu"; -import { PopupState } from "features/data/lib/useToolPopup"; -import { operatorOptions } from "features/data/components/FilterEditor/FilterEditor"; +import { Key } from "@common/elements/KeyboardShortcut"; +import { ContextMenu } from "@common/features/data/components/ContextMenu"; +import { PopupState } from "@common/features/data/lib/useToolPopup"; +import { operatorOptions } from "@common/features/data/components/FilterEditor/FilterEditor"; import { ActionHotkeysProps, OpenContextMenu, TableContextMenuState, useActionHotkeys, -} from "features/data/components/Table/DataCell/utils/cellActions"; -import { stringifyValue } from "lib/stringifyValue"; -import { useNents } from "lib/useNents"; +} from "@common/features/data/components/Table/DataCell/utils/cellActions"; +import { stringifyValue } from "@common/lib/stringifyValue"; +import { useNents } from "@common/lib/useNents"; export function useTableContextMenuState(): { contextMenuState: TableContextMenuState | null; diff --git a/npm-packages/dashboard-common/src/features/data/components/Table/TableHeader.tsx b/npm-packages/dashboard-common/src/features/data/components/Table/TableHeader.tsx index 72c3ddd94..66a7c550a 100644 --- a/npm-packages/dashboard-common/src/features/data/components/Table/TableHeader.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/Table/TableHeader.tsx @@ -2,8 +2,8 @@ import { HeaderGroup } from "react-table"; import { GenericDocument } from "convex/server"; import classNames from "classnames"; import omit from "lodash/omit"; -import { ColumnHeader } from "features/data/components/Table/ColumnHeader"; -import { DataCellProps } from "features/data/components/Table/DataCell/DataCell"; +import { ColumnHeader } from "@common/features/data/components/Table/ColumnHeader"; +import { DataCellProps } from "@common/features/data/components/Table/DataCell/DataCell"; export function TableHeader({ headerGroups, diff --git a/npm-packages/dashboard-common/src/features/data/components/Table/TableScrollbar.tsx b/npm-packages/dashboard-common/src/features/data/components/Table/TableScrollbar.tsx index 6affb7e7b..ffe29215f 100644 --- a/npm-packages/dashboard-common/src/features/data/components/Table/TableScrollbar.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/Table/TableScrollbar.tsx @@ -1,7 +1,7 @@ import { RefObject, useCallback, useEffect, useState } from "react"; import { useWindowSize } from "react-use"; import { FixedSizeList } from "react-window"; -import { useTableDensity } from "features/data/lib/useTableDensity"; +import { useTableDensity } from "@common/features/data/lib/useTableDensity"; const MIN_SCROLLBAR_SIZE = 12; diff --git a/npm-packages/dashboard-common/src/features/data/components/Table/ViewDocument.tsx b/npm-packages/dashboard-common/src/features/data/components/Table/ViewDocument.tsx index 38476288f..362edb0ff 100644 --- a/npm-packages/dashboard-common/src/features/data/components/Table/ViewDocument.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/Table/ViewDocument.tsx @@ -1,17 +1,17 @@ import { GenericDocument } from "convex/server"; import { useState } from "react"; -import { TextInput } from "elements/TextInput"; -import { ProductionEditsConfirmationDialog } from "elements/ProductionEditsConfirmationDialog"; -import { EditDocumentField } from "features/data/components/Table/EditDocumentField"; +import { TextInput } from "@common/elements/TextInput"; +import { ProductionEditsConfirmationDialog } from "@common/elements/ProductionEditsConfirmationDialog"; +import { EditDocumentField } from "@common/features/data/components/Table/EditDocumentField"; import { documentValidatorForTable, validatorForColumn, -} from "features/data/components/Table/utils/validators"; -import { SchemaJson } from "lib/format"; -import { useNents } from "lib/useNents"; -import { CopyButton } from "elements/CopyButton"; -import { stringifyValue } from "lib/stringifyValue"; -import { Button } from "elements/Button"; +} from "@common/features/data/components/Table/utils/validators"; +import { SchemaJson } from "@common/lib/format"; +import { useNents } from "@common/lib/useNents"; +import { CopyButton } from "@common/elements/CopyButton"; +import { stringifyValue } from "@common/lib/stringifyValue"; +import { Button } from "@common/elements/Button"; export function ViewDocument({ rows, diff --git a/npm-packages/dashboard-common/src/features/data/components/Table/utils/useDataColumns.ts b/npm-packages/dashboard-common/src/features/data/components/Table/utils/useDataColumns.ts index 606183e10..137e4f5c2 100644 --- a/npm-packages/dashboard-common/src/features/data/components/Table/utils/useDataColumns.ts +++ b/npm-packages/dashboard-common/src/features/data/components/Table/utils/useDataColumns.ts @@ -1,8 +1,8 @@ import { useMemo } from "react"; import { GenericDocument } from "convex/server"; import { useLocalStorage } from "react-use"; -import { isInCommonUTCTimestampRange } from "features/data/lib/helpers"; -import { useGlobalLocalStorage } from "lib/useGlobalLocalStorage"; +import { isInCommonUTCTimestampRange } from "@common/features/data/lib/helpers"; +import { useGlobalLocalStorage } from "@common/lib/useGlobalLocalStorage"; const MIN_COLUMN_WIDTH = 50; // Accounts for different locales, prevents truncation if _creationTime is the last column diff --git a/npm-packages/dashboard-common/src/features/data/components/Table/utils/useMaintainScrollPositionOnChange.test.tsx b/npm-packages/dashboard-common/src/features/data/components/Table/utils/useMaintainScrollPositionOnChange.test.tsx index 5c950b297..c0f06e1b1 100644 --- a/npm-packages/dashboard-common/src/features/data/components/Table/utils/useMaintainScrollPositionOnChange.test.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/Table/utils/useMaintainScrollPositionOnChange.test.tsx @@ -1,6 +1,6 @@ import { fireEvent, render } from "@testing-library/react"; import { useRef } from "react"; -import { useMaintainScrollPositionOnChange } from "features/data/components/Table/utils/useMaintainScrollPositionOnChange"; +import { useMaintainScrollPositionOnChange } from "@common/features/data/components/Table/utils/useMaintainScrollPositionOnChange"; const ROW_HEIGHT = 24; diff --git a/npm-packages/dashboard-common/src/features/data/components/Table/utils/usePatchDocumentField.ts b/npm-packages/dashboard-common/src/features/data/components/Table/utils/usePatchDocumentField.ts index 022109933..bb852819d 100644 --- a/npm-packages/dashboard-common/src/features/data/components/Table/utils/usePatchDocumentField.ts +++ b/npm-packages/dashboard-common/src/features/data/components/Table/utils/usePatchDocumentField.ts @@ -9,9 +9,9 @@ import { useCallback } from "react"; import omitBy from "lodash/omitBy"; import { isFilterValidationError } from "system-udfs/convex/_system/frontend/lib/filters"; import { UNDEFINED_PLACEHOLDER } from "system-udfs/convex/_system/frontend/patchDocumentsFields"; -import { useNents } from "lib/useNents"; -import { toast } from "lib/utils"; -import { useInvalidateShapes } from "features/data/lib/api"; +import { useNents } from "@common/lib/useNents"; +import { toast } from "@common/lib/utils"; +import { useInvalidateShapes } from "@common/features/data/lib/api"; export function usePatchDocumentField(tableName: string) { const router = useRouter(); diff --git a/npm-packages/dashboard-common/src/features/data/components/Table/utils/useQueryFilteredTable.ts b/npm-packages/dashboard-common/src/features/data/components/Table/utils/useQueryFilteredTable.ts index 7c0e27a1c..1fb30f196 100644 --- a/npm-packages/dashboard-common/src/features/data/components/Table/utils/useQueryFilteredTable.ts +++ b/npm-packages/dashboard-common/src/features/data/components/Table/utils/useQueryFilteredTable.ts @@ -9,7 +9,7 @@ import { FilterValidationError, } from "system-udfs/convex/_system/frontend/lib/filters"; import { maximumRowsRead } from "system-udfs/convex/_system/paginationLimits"; -import { useNents } from "lib/useNents"; +import { useNents } from "@common/lib/useNents"; const isGenericDocument = ( result: GenericDocument | FilterValidationError, diff --git a/npm-packages/dashboard-common/src/features/data/components/Table/utils/useTableFields.ts b/npm-packages/dashboard-common/src/features/data/components/Table/utils/useTableFields.ts index 292585721..51414618f 100644 --- a/npm-packages/dashboard-common/src/features/data/components/Table/utils/useTableFields.ts +++ b/npm-packages/dashboard-common/src/features/data/components/Table/utils/useTableFields.ts @@ -4,8 +4,8 @@ import { GenericDocument } from "convex/server"; import { topLevelFieldsForValidator, useSingleTableEnforcedSchema, -} from "features/data/components/TableSchema"; -import { sortColumns } from "features/data/lib/helpers"; +} from "@common/features/data/components/TableSchema"; +import { sortColumns } from "@common/features/data/lib/helpers"; export function useTableFields( tableName: string, diff --git a/npm-packages/dashboard-common/src/features/data/components/Table/utils/useTrackColumnWidths.ts b/npm-packages/dashboard-common/src/features/data/components/Table/utils/useTrackColumnWidths.ts index dbcc0ca25..e731c0cec 100644 --- a/npm-packages/dashboard-common/src/features/data/components/Table/utils/useTrackColumnWidths.ts +++ b/npm-packages/dashboard-common/src/features/data/components/Table/utils/useTrackColumnWidths.ts @@ -1,4 +1,4 @@ -import { useGlobalLocalStorage } from "lib/useGlobalLocalStorage"; +import { useGlobalLocalStorage } from "@common/lib/useGlobalLocalStorage"; import { useEffect } from "react"; import { TableState } from "react-table"; import { usePrevious } from "react-use"; diff --git a/npm-packages/dashboard-common/src/features/data/components/Table/utils/validators.ts b/npm-packages/dashboard-common/src/features/data/components/Table/utils/validators.ts index 91d79ca75..b0944650a 100644 --- a/npm-packages/dashboard-common/src/features/data/components/Table/utils/validators.ts +++ b/npm-packages/dashboard-common/src/features/data/components/Table/utils/validators.ts @@ -1,5 +1,5 @@ import { ValidatorJSON } from "convex/values"; -import { SchemaJson } from "lib/format"; +import { SchemaJson } from "@common/lib/format"; export function documentValidatorForTable( activeSchema: SchemaJson, diff --git a/npm-packages/dashboard-common/src/features/data/components/TableMetrics.tsx b/npm-packages/dashboard-common/src/features/data/components/TableMetrics.tsx index c99e425fd..a23dc66af 100644 --- a/npm-packages/dashboard-common/src/features/data/components/TableMetrics.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/TableMetrics.tsx @@ -1,9 +1,12 @@ import React from "react"; -import { useDeploymentAuthHeader, useDeploymentUrl } from "lib/deploymentApi"; -import { ChartModal } from "elements/ChartModal"; -import { calcBuckets } from "lib/charts/buckets"; -import { TableMetric, tableRate } from "lib/appMetrics"; -import { ChartData } from "lib/charts/types"; +import { + useDeploymentAuthHeader, + useDeploymentUrl, +} from "@common/lib/deploymentApi"; +import { ChartModal } from "@common/elements/ChartModal"; +import { calcBuckets } from "@common/lib/charts/buckets"; +import { TableMetric, tableRate } from "@common/lib/appMetrics"; +import { ChartData } from "@common/lib/charts/types"; const useChartData = ( diff --git a/npm-packages/dashboard-common/src/features/data/components/TableSchema.test.tsx b/npm-packages/dashboard-common/src/features/data/components/TableSchema.test.tsx index e76858c59..d8bd7d247 100644 --- a/npm-packages/dashboard-common/src/features/data/components/TableSchema.test.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/TableSchema.test.tsx @@ -2,8 +2,8 @@ import { screen, render } from "@testing-library/react"; import { useRouter } from "next/router"; import { Shape } from "shapes"; import { useQuery } from "convex/react"; -import { MockMonaco } from "features/data/components/MockMonaco.test"; -import { TableSchemaContainer } from "features/data/components/TableSchema"; +import { MockMonaco } from "@common/features/data/components/MockMonaco.test"; +import { TableSchemaContainer } from "@common/features/data/components/TableSchema"; jest.mock("next/router", () => ({ useRouter: jest.fn(), diff --git a/npm-packages/dashboard-common/src/features/data/components/TableSchema.tsx b/npm-packages/dashboard-common/src/features/data/components/TableSchema.tsx index a0defb080..8fbfe575c 100644 --- a/npm-packages/dashboard-common/src/features/data/components/TableSchema.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/TableSchema.tsx @@ -3,11 +3,11 @@ import { useMemo } from "react"; import { Shape } from "shapes"; import udfs from "udfs"; import { parseAndFilterToSingleTable } from "system-udfs/convex/_system/frontend/lib/filters"; -import { SchemaJson } from "lib/format"; -import { useNents } from "lib/useNents"; -import { useTableShapes } from "lib/deploymentApi"; -import { LoadingTransition } from "elements/Loading"; -import { ShowSchema } from "features/data/components/ShowSchema"; +import { SchemaJson } from "@common/lib/format"; +import { useNents } from "@common/lib/useNents"; +import { useTableShapes } from "@common/lib/deploymentApi"; +import { LoadingTransition } from "@common/elements/Loading"; +import { ShowSchema } from "@common/features/data/components/ShowSchema"; export interface TableSchemaStatus { tableName: string; diff --git a/npm-packages/dashboard-common/src/features/data/components/TableSchemaAndIndexes.tsx b/npm-packages/dashboard-common/src/features/data/components/TableSchemaAndIndexes.tsx index f2a3b9584..2ae101f65 100644 --- a/npm-packages/dashboard-common/src/features/data/components/TableSchemaAndIndexes.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/TableSchemaAndIndexes.tsx @@ -2,14 +2,14 @@ import { Fragment } from "react"; import { Transition, Dialog } from "@headlessui/react"; import Link from "next/link"; import { ExternalLinkIcon } from "@radix-ui/react-icons"; -import { ClosePanelButton } from "elements/ClosePanelButton"; -import { Loading } from "elements/Loading"; -import { IndexList } from "features/data/components/IndexList"; +import { ClosePanelButton } from "@common/elements/ClosePanelButton"; +import { Loading } from "@common/elements/Loading"; +import { IndexList } from "@common/features/data/components/IndexList"; import { TableSchemaContainer, useSingleTableSchemaStatus, -} from "features/data/components/TableSchema"; -import { ConvexSchemaFilePath } from "features/data/components/ConvexSchemaFilePath"; +} from "@common/features/data/components/TableSchema"; +import { ConvexSchemaFilePath } from "@common/features/data/components/ConvexSchemaFilePath"; export function TableSchemaAndIndexes({ tableName, diff --git a/npm-packages/dashboard-common/src/features/data/components/TableTab.test.tsx b/npm-packages/dashboard-common/src/features/data/components/TableTab.test.tsx index 61514450c..cd377c004 100644 --- a/npm-packages/dashboard-common/src/features/data/components/TableTab.test.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/TableTab.test.tsx @@ -1,6 +1,6 @@ import { render, screen, fireEvent } from "@testing-library/react"; import mockRouter from "next-router-mock"; -import { TableTab } from "features/data/components/TableTab"; +import { TableTab } from "@common/features/data/components/TableTab"; jest.mock("next/router", () => jest.requireActual("next-router-mock")); diff --git a/npm-packages/dashboard-common/src/features/data/components/TableTab.tsx b/npm-packages/dashboard-common/src/features/data/components/TableTab.tsx index 689d88237..6ef4292c0 100644 --- a/npm-packages/dashboard-common/src/features/data/components/TableTab.tsx +++ b/npm-packages/dashboard-common/src/features/data/components/TableTab.tsx @@ -2,9 +2,9 @@ import { useRef } from "react"; import Link from "next/link"; import { useRouter } from "next/router"; import omit from "lodash/omit"; -import { sidebarLinkClassNames } from "elements/Sidebar"; -import { Tooltip } from "elements/Tooltip"; -import { useIsOverflowing } from "lib/useIsOverflowing"; +import { sidebarLinkClassNames } from "@common/elements/Sidebar"; +import { Tooltip } from "@common/elements/Tooltip"; +import { useIsOverflowing } from "@common/lib/useIsOverflowing"; export function TableTab({ selectedTable, diff --git a/npm-packages/dashboard-common/src/features/data/components/helpers.test.ts b/npm-packages/dashboard-common/src/features/data/components/helpers.test.ts index 059975445..d51006977 100644 --- a/npm-packages/dashboard-common/src/features/data/components/helpers.test.ts +++ b/npm-packages/dashboard-common/src/features/data/components/helpers.test.ts @@ -1,5 +1,8 @@ import { Shape } from "shapes"; -import { defaultValueForShape, sortColumns } from "features/data/lib/helpers"; +import { + defaultValueForShape, + sortColumns, +} from "@common/features/data/lib/helpers"; describe("helpers", () => { it("sorts _id first and _creationTime last", () => { diff --git a/npm-packages/dashboard-common/src/features/data/lib/api.ts b/npm-packages/dashboard-common/src/features/data/lib/api.ts index 979ed434c..328c1d63a 100644 --- a/npm-packages/dashboard-common/src/features/data/lib/api.ts +++ b/npm-packages/dashboard-common/src/features/data/lib/api.ts @@ -1,15 +1,15 @@ import { useCallback } from "react"; import useSWR, { useSWRConfig } from "swr"; -import { reportHttpError } from "lib/utils"; +import { reportHttpError } from "@common/lib/utils"; import { useDeploymentUrl, useAdminKey, useDeploymentAuthHeader, deploymentAuthMiddleware, useDeploymentIsDisconnected, -} from "lib/deploymentApi"; -import { deploymentFetch } from "lib/fetching"; -import { useNents } from "lib/useNents"; +} from "@common/lib/deploymentApi"; +import { deploymentFetch } from "@common/lib/fetching"; +import { useNents } from "@common/lib/useNents"; export function useDeleteTables(): ( tableNames: string[], diff --git a/npm-packages/dashboard-common/src/features/data/lib/helpers.ts b/npm-packages/dashboard-common/src/features/data/lib/helpers.ts index 190e027b5..b9121274a 100644 --- a/npm-packages/dashboard-common/src/features/data/lib/helpers.ts +++ b/npm-packages/dashboard-common/src/features/data/lib/helpers.ts @@ -3,8 +3,8 @@ import { Value } from "convex/values"; import { useMemo } from "react"; import { Shape } from "shapes"; import udfs from "udfs"; -import { useNents } from "lib/useNents"; -import { SchemaJson } from "lib/format"; +import { useNents } from "@common/lib/useNents"; +import { SchemaJson } from "@common/lib/format"; export function sortColumns(fieldNames: string[]): string[] { // Always sort the "_id" field first and the "_creationTime" field last. diff --git a/npm-packages/dashboard-common/src/features/data/lib/useDataToolbarActions.ts b/npm-packages/dashboard-common/src/features/data/lib/useDataToolbarActions.ts index 99b44d052..4a67923cc 100644 --- a/npm-packages/dashboard-common/src/features/data/lib/useDataToolbarActions.ts +++ b/npm-packages/dashboard-common/src/features/data/lib/useDataToolbarActions.ts @@ -4,9 +4,12 @@ import { captureException } from "@sentry/nextjs"; import { useMutation } from "convex/react"; import udfs from "udfs"; import { Id } from "system-udfs/convex/_generated/dataModel"; -import { useInvalidateShapes, useDeleteTables } from "features/data/lib/api"; -import { useNents } from "lib/useNents"; -import { toast } from "lib/utils"; +import { + useInvalidateShapes, + useDeleteTables, +} from "@common/features/data/lib/api"; +import { useNents } from "@common/lib/useNents"; +import { toast } from "@common/lib/utils"; export function useDataToolbarActions({ tableName, diff --git a/npm-packages/dashboard-common/src/features/data/lib/useDefaultDocument.ts b/npm-packages/dashboard-common/src/features/data/lib/useDefaultDocument.ts index 28409c68c..a8fa4ba18 100644 --- a/npm-packages/dashboard-common/src/features/data/lib/useDefaultDocument.ts +++ b/npm-packages/dashboard-common/src/features/data/lib/useDefaultDocument.ts @@ -5,10 +5,10 @@ import { Shape } from "shapes"; import { parseAndFilterToSingleTable } from "system-udfs/convex/_system/frontend/lib/filters"; import udfs from "udfs"; import { Value } from "convex/values"; -import { defaultValueForShape } from "features/data/lib/helpers"; -import { useTableShapes } from "lib/deploymentApi"; -import { useNents } from "lib/useNents"; -import { defaultValueForValidator } from "lib/defaultValueForValidator"; +import { defaultValueForShape } from "@common/features/data/lib/helpers"; +import { useTableShapes } from "@common/lib/deploymentApi"; +import { useNents } from "@common/lib/useNents"; +import { defaultValueForValidator } from "@common/lib/defaultValueForValidator"; export const useDefaultDocument = (tableName: string): GenericDocument => { const { tables } = useTableShapes(); diff --git a/npm-packages/dashboard-common/src/features/data/lib/useTableFilters.test.ts b/npm-packages/dashboard-common/src/features/data/lib/useTableFilters.test.ts index 88f67150a..3f6f4b33d 100644 --- a/npm-packages/dashboard-common/src/features/data/lib/useTableFilters.test.ts +++ b/npm-packages/dashboard-common/src/features/data/lib/useTableFilters.test.ts @@ -5,7 +5,7 @@ import { FilterExpression } from "system-udfs/convex/_system/frontend/lib/filter import { useFilterMap, useTableFilters, -} from "features/data/lib/useTableFilters"; +} from "@common/features/data/lib/useTableFilters"; jest.mock("next/router", () => jest.requireActual("next-router-mock")); describe("useTableFilters", () => { diff --git a/npm-packages/dashboard-common/src/features/data/lib/useTableFilters.ts b/npm-packages/dashboard-common/src/features/data/lib/useTableFilters.ts index b680ab245..24ea586c7 100644 --- a/npm-packages/dashboard-common/src/features/data/lib/useTableFilters.ts +++ b/npm-packages/dashboard-common/src/features/data/lib/useTableFilters.ts @@ -9,7 +9,7 @@ import { isValidFilter, } from "system-udfs/convex/_system/frontend/lib/filters"; import isEqual from "lodash/isEqual"; -import { useGlobalLocalStorage } from "lib/useGlobalLocalStorage"; +import { useGlobalLocalStorage } from "@common/lib/useGlobalLocalStorage"; // Global state keeping track of filters for all tables. export const useFilterMap = createGlobalState( diff --git a/npm-packages/dashboard-common/src/features/data/lib/useToolPopup.tsx b/npm-packages/dashboard-common/src/features/data/lib/useToolPopup.tsx index c6406f438..1117862ea 100644 --- a/npm-packages/dashboard-common/src/features/data/lib/useToolPopup.tsx +++ b/npm-packages/dashboard-common/src/features/data/lib/useToolPopup.tsx @@ -5,16 +5,16 @@ import { ConvexError, ValidatorJSON } from "convex/values"; import { useState } from "react"; import udfs from "udfs"; import { SchemaJson } from "system-udfs/convex/_system/frontend/lib/filters"; -import { useNents } from "lib/useNents"; -import { ConfirmationDialog } from "elements/ConfirmationDialog"; -import { ProductionEditsConfirmationDialog } from "elements/ProductionEditsConfirmationDialog"; -import { useInvalidateShapes } from "features/data/lib/api"; -import { ClearTableConfirmation } from "features/data/components/DataToolbar/ClearTableConfirmation"; -import { EditDocumentPanel } from "features/data/components/Table/EditDocumentPanel/EditDocumentPanel"; -import { EditFieldsPanel } from "features/data/components/Table/EditDocumentPanel/EditFieldsPanel"; -import { TableMetrics } from "features/data/components/TableMetrics"; -import { TableSchemaAndIndexes } from "features/data/components/TableSchemaAndIndexes"; -import { useDefaultDocument } from "features/data/lib/useDefaultDocument"; +import { useNents } from "@common/lib/useNents"; +import { ConfirmationDialog } from "@common/elements/ConfirmationDialog"; +import { ProductionEditsConfirmationDialog } from "@common/elements/ProductionEditsConfirmationDialog"; +import { useInvalidateShapes } from "@common/features/data/lib/api"; +import { ClearTableConfirmation } from "@common/features/data/components/DataToolbar/ClearTableConfirmation"; +import { EditDocumentPanel } from "@common/features/data/components/Table/EditDocumentPanel/EditDocumentPanel"; +import { EditFieldsPanel } from "@common/features/data/components/Table/EditDocumentPanel/EditFieldsPanel"; +import { TableMetrics } from "@common/features/data/components/TableMetrics"; +import { TableSchemaAndIndexes } from "@common/features/data/components/TableSchemaAndIndexes"; +import { useDefaultDocument } from "@common/features/data/lib/useDefaultDocument"; export type PopupState = ReturnType; diff --git a/npm-packages/dashboard-common/src/features/files/components/FileStorageView.test.tsx b/npm-packages/dashboard-common/src/features/files/components/FileStorageView.test.tsx index c6abf228e..60f52763f 100644 --- a/npm-packages/dashboard-common/src/features/files/components/FileStorageView.test.tsx +++ b/npm-packages/dashboard-common/src/features/files/components/FileStorageView.test.tsx @@ -8,9 +8,12 @@ import { FileStorageView, Uploader, useUploadFiles, -} from "features/files/components/FileStorageView"; -import { mockConvexReactClient } from "lib/mockConvexReactClient"; -import { DeploymentInfo, DeploymentInfoContext } from "lib/deploymentContext"; +} from "@common/features/files/components/FileStorageView"; +import { mockConvexReactClient } from "@common/lib/mockConvexReactClient"; +import { + DeploymentInfo, + DeploymentInfoContext, +} from "@common/lib/deploymentContext"; const deploymentInfo: DeploymentInfo = { ok: true, diff --git a/npm-packages/dashboard-common/src/features/files/components/FileStorageView.tsx b/npm-packages/dashboard-common/src/features/files/components/FileStorageView.tsx index fc3df41d7..d158d2da1 100644 --- a/npm-packages/dashboard-common/src/features/files/components/FileStorageView.tsx +++ b/npm-packages/dashboard-common/src/features/files/components/FileStorageView.tsx @@ -20,22 +20,22 @@ import { flexRender, createColumnHelper, } from "@tanstack/react-table"; -import { toast } from "lib/utils"; -import { NentSwitcher } from "elements/NentSwitcher"; -import { useNents } from "lib/useNents"; -import { DeploymentInfoContext } from "lib/deploymentContext"; -import { Button, buttonClasses } from "elements/Button"; -import { Tooltip } from "elements/Tooltip"; -import { Spinner } from "elements/Spinner"; -import { Checkbox } from "elements/Checkbox"; -import { formatBytes } from "lib/format"; -import { Loading } from "elements/Loading"; -import { EmptySection } from "elements/EmptySection"; -import { Sheet } from "elements/Sheet"; -import { ConfirmationDialog } from "elements/ConfirmationDialog"; -import { useCopy } from "lib/useCopy"; -import { DeploymentPageTitle } from "elements/DeploymentPageTitle"; -import { PageContent } from "elements/PageContent"; +import { toast } from "@common/lib/utils"; +import { NentSwitcher } from "@common/elements/NentSwitcher"; +import { useNents } from "@common/lib/useNents"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; +import { Button, buttonClasses } from "@common/elements/Button"; +import { Tooltip } from "@common/elements/Tooltip"; +import { Spinner } from "@common/elements/Spinner"; +import { Checkbox } from "@common/elements/Checkbox"; +import { formatBytes } from "@common/lib/format"; +import { Loading } from "@common/elements/Loading"; +import { EmptySection } from "@common/elements/EmptySection"; +import { Sheet } from "@common/elements/Sheet"; +import { ConfirmationDialog } from "@common/elements/ConfirmationDialog"; +import { useCopy } from "@common/lib/useCopy"; +import { DeploymentPageTitle } from "@common/elements/DeploymentPageTitle"; +import { PageContent } from "@common/elements/PageContent"; const columnHelper = createColumnHelper(); diff --git a/npm-packages/dashboard-common/src/features/functionRunner/components/FunctionEditor.tsx b/npm-packages/dashboard-common/src/features/functionRunner/components/FunctionEditor.tsx index e28471f16..b4c918bd5 100644 --- a/npm-packages/dashboard-common/src/features/functionRunner/components/FunctionEditor.tsx +++ b/npm-packages/dashboard-common/src/features/functionRunner/components/FunctionEditor.tsx @@ -8,19 +8,19 @@ import { useTheme } from "next-themes"; import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import udfs from "udfs"; import { Uri } from "monaco-editor/esm/vs/editor/editor.api"; -import { Button } from "elements/Button"; -import { Loading } from "elements/Loading"; -import { stringifyValue } from "lib/stringifyValue"; -import { SchemaJson, displaySchema } from "lib/format"; -import { useRunTestFunction } from "features/functionRunner/lib/client"; -import { Spinner } from "elements/Spinner"; -import { ComponentId } from "lib/useNents"; -import { Result } from "features/functionRunner/components/Result"; +import { Button } from "@common/elements/Button"; +import { Loading } from "@common/elements/Loading"; +import { stringifyValue } from "@common/lib/stringifyValue"; +import { SchemaJson, displaySchema } from "@common/lib/format"; +import { useRunTestFunction } from "@common/features/functionRunner/lib/client"; +import { Spinner } from "@common/elements/Spinner"; +import { ComponentId } from "@common/lib/useNents"; +import { Result } from "@common/features/functionRunner/components/Result"; import { RunHistory, RunHistoryItem, useRunHistory, -} from "features/functionRunner/components/RunHistory"; +} from "@common/features/functionRunner/components/RunHistory"; import convexServerTypes from "../../../lib/generated/convexServerTypes.json"; // Used for typechecking diff --git a/npm-packages/dashboard-common/src/features/functionRunner/components/FunctionResult.tsx b/npm-packages/dashboard-common/src/features/functionRunner/components/FunctionResult.tsx index fe4e68f21..9270c61be 100644 --- a/npm-packages/dashboard-common/src/features/functionRunner/components/FunctionResult.tsx +++ b/npm-packages/dashboard-common/src/features/functionRunner/components/FunctionResult.tsx @@ -4,19 +4,19 @@ import type { FunctionResult as FunctionResultType } from "convex/browser"; import { useContext, useEffect, useState } from "react"; import { useSessionStorage } from "react-use"; import { Value } from "convex/values"; -import { Button } from "elements/Button"; -import { DeploymentInfoContext } from "lib/deploymentContext"; -import { toast } from "lib/utils"; -import { RequestFilter } from "lib/appMetrics"; -import { Spinner } from "elements/Spinner"; -import { ComponentId } from "lib/useNents"; -import { Result } from "features/functionRunner/components/Result"; +import { Button } from "@common/elements/Button"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; +import { toast } from "@common/lib/utils"; +import { RequestFilter } from "@common/lib/appMetrics"; +import { Spinner } from "@common/elements/Spinner"; +import { ComponentId } from "@common/lib/useNents"; +import { Result } from "@common/features/functionRunner/components/Result"; import { useRunHistory, RunHistoryItem, useImpersonatedUser, useIsImpersonating, -} from "features/functionRunner/components/RunHistory"; +} from "@common/features/functionRunner/components/RunHistory"; // This is a hook because we want to return composable components that can be arranged // vertically or horizontally. diff --git a/npm-packages/dashboard-common/src/features/functionRunner/components/FunctionRunnerWrapper.tsx b/npm-packages/dashboard-common/src/features/functionRunner/components/FunctionRunnerWrapper.tsx index 758977692..5c9ef3728 100644 --- a/npm-packages/dashboard-common/src/features/functionRunner/components/FunctionRunnerWrapper.tsx +++ b/npm-packages/dashboard-common/src/features/functionRunner/components/FunctionRunnerWrapper.tsx @@ -5,17 +5,17 @@ import { useEffect, useCallback, useContext } from "react"; import { usePrevious } from "react-use"; import udfs from "udfs"; import { useHotkeys } from "react-hotkeys-hook"; -import { Button } from "elements/Button"; -import { FunctionIcon } from "elements/icons"; -import { toast } from "lib/utils"; +import { Button } from "@common/elements/Button"; +import { FunctionIcon } from "@common/elements/icons"; +import { toast } from "@common/lib/utils"; import { useHideGlobalRunner, useIsGlobalRunnerShown, useShowGlobalRunner, useGlobalRunnerSelectedItem, -} from "features/functionRunner/lib/functionRunner"; -import { GlobalFunctionTester } from "features/functionRunner/components/FunctionTester"; -import { DeploymentInfoContext } from "lib/deploymentContext"; +} from "@common/features/functionRunner/lib/functionRunner"; +import { GlobalFunctionTester } from "@common/features/functionRunner/components/FunctionTester"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; export function FunctionRunnerWrapper({ isVertical, diff --git a/npm-packages/dashboard-common/src/features/functionRunner/components/FunctionTester.test.tsx b/npm-packages/dashboard-common/src/features/functionRunner/components/FunctionTester.test.tsx index 807518a24..d601f1cc5 100644 --- a/npm-packages/dashboard-common/src/features/functionRunner/components/FunctionTester.test.tsx +++ b/npm-packages/dashboard-common/src/features/functionRunner/components/FunctionTester.test.tsx @@ -2,8 +2,8 @@ import { Module } from "system-udfs/convex/_system/frontend/common"; import { modulesToModuleFunctions, displayNameToIdentifier, -} from "lib/functions/FunctionsProvider"; -import { findFunction } from "features/functionRunner/lib/functionRunner"; +} from "@common/lib/functions/FunctionsProvider"; +import { findFunction } from "@common/features/functionRunner/lib/functionRunner"; describe("FunctionTester", () => { it("finds function with default export + folder with same name", () => { diff --git a/npm-packages/dashboard-common/src/features/functionRunner/components/FunctionTester.tsx b/npm-packages/dashboard-common/src/features/functionRunner/components/FunctionTester.tsx index 4072f6972..e62a20e7f 100644 --- a/npm-packages/dashboard-common/src/features/functionRunner/components/FunctionTester.tsx +++ b/npm-packages/dashboard-common/src/features/functionRunner/components/FunctionTester.tsx @@ -19,22 +19,22 @@ import { UNDEFINED_PLACEHOLDER } from "system-udfs/convex/_system/frontend/patch import { itemIdentifier, useModuleFunctions, -} from "lib/functions/FunctionsProvider"; -import { Button } from "elements/Button"; -import { Tooltip } from "elements/Tooltip"; -import { ClosePanelButton } from "elements/ClosePanelButton"; -import { Combobox, Option } from "elements/Combobox"; -import { FunctionNameOption } from "elements/FunctionNameOption"; +} from "@common/lib/functions/FunctionsProvider"; +import { Button } from "@common/elements/Button"; +import { Tooltip } from "@common/elements/Tooltip"; +import { ClosePanelButton } from "@common/elements/ClosePanelButton"; +import { Combobox, Option } from "@common/elements/Combobox"; +import { FunctionNameOption } from "@common/elements/FunctionNameOption"; import { displayName, functionIdentifierFromValue, functionIdentifierValue, -} from "lib/functions/generateFileTree"; -import { ModuleFunction } from "lib/functions/types"; -import { defaultValueForValidator } from "lib/defaultValueForValidator"; -import { ObjectEditor } from "elements/ObjectEditor/ObjectEditor"; -import { NENT_APP_PLACEHOLDER, useNents } from "lib/useNents"; -import { NentNameOption } from "elements/NentSwitcher"; +} from "@common/lib/functions/generateFileTree"; +import { ModuleFunction } from "@common/lib/functions/types"; +import { defaultValueForValidator } from "@common/lib/defaultValueForValidator"; +import { ObjectEditor } from "@common/elements/ObjectEditor/ObjectEditor"; +import { NENT_APP_PLACEHOLDER, useNents } from "@common/lib/useNents"; +import { NentNameOption } from "@common/elements/NentSwitcher"; import { CustomQuery, findFirstWritingFunction, @@ -42,18 +42,18 @@ import { useGlobalRunnerSelectedItem, useHideGlobalRunner, useIsGlobalRunnerShown, -} from "features/functionRunner/lib/functionRunner"; -import { useFunctionEditor } from "features/functionRunner/components/FunctionEditor"; -import { useFunctionResult } from "features/functionRunner/components/FunctionResult"; -import { QueryResult } from "features/functionRunner/components/QueryResult"; +} from "@common/features/functionRunner/lib/functionRunner"; +import { useFunctionEditor } from "@common/features/functionRunner/components/FunctionEditor"; +import { useFunctionResult } from "@common/features/functionRunner/components/FunctionResult"; +import { QueryResult } from "@common/features/functionRunner/components/QueryResult"; import { RunHistory, RunHistoryItem, useImpersonatedUser, useIsImpersonating, -} from "features/functionRunner/components/RunHistory"; -import { useGlobalReactClient } from "features/functionRunner/lib/client"; -import { DeploymentInfoContext } from "lib/deploymentContext"; +} from "@common/features/functionRunner/components/RunHistory"; +import { useGlobalReactClient } from "@common/features/functionRunner/lib/client"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; const CUSTOM_TEST_QUERY_PLACEHOLDER = "__CONVEX_PLACEHOLDER_custom_test_query_1255035852"; diff --git a/npm-packages/dashboard-common/src/features/functionRunner/components/QueryResult.tsx b/npm-packages/dashboard-common/src/features/functionRunner/components/QueryResult.tsx index 7cc8a5e4b..a6f138bc4 100644 --- a/npm-packages/dashboard-common/src/features/functionRunner/components/QueryResult.tsx +++ b/npm-packages/dashboard-common/src/features/functionRunner/components/QueryResult.tsx @@ -10,9 +10,9 @@ import { getFunctionName, makeFunctionReference, } from "convex/server"; -import { Tooltip } from "elements/Tooltip"; -import * as FunctionTypes from "lib/functions/types"; -import { Result } from "features/functionRunner/components/Result"; +import { Tooltip } from "@common/elements/Tooltip"; +import * as FunctionTypes from "@common/lib/functions/types"; +import { Result } from "@common/features/functionRunner/components/Result"; export function QueryResult({ module, diff --git a/npm-packages/dashboard-common/src/features/functionRunner/components/Result.tsx b/npm-packages/dashboard-common/src/features/functionRunner/components/Result.tsx index e1e7846d9..0c3bd6f98 100644 --- a/npm-packages/dashboard-common/src/features/functionRunner/components/Result.tsx +++ b/npm-packages/dashboard-common/src/features/functionRunner/components/Result.tsx @@ -2,14 +2,14 @@ import { CheckCircledIcon, CrossCircledIcon } from "@radix-ui/react-icons"; import { memo, useRef } from "react"; import { FunctionResult } from "convex/browser"; import classNames from "classnames"; -import { entryOutput, useLogsForSingleFunction } from "lib/useLogs"; -import { LogLinesOutput } from "elements/LogOutput"; -import { usePrettyReadonlyCode } from "lib/usePrettyReadonlyCode"; -import { Spinner } from "elements/Spinner"; -import { RequestFilter } from "lib/appMetrics"; -import { msFormat } from "lib/format"; -import { CopyButton } from "elements/CopyButton"; -import { LiveTimestampDistance } from "elements/TimestampDistance"; +import { entryOutput, useLogsForSingleFunction } from "@common/lib/useLogs"; +import { LogLinesOutput } from "@common/elements/LogOutput"; +import { usePrettyReadonlyCode } from "@common/lib/usePrettyReadonlyCode"; +import { Spinner } from "@common/elements/Spinner"; +import { RequestFilter } from "@common/lib/appMetrics"; +import { msFormat } from "@common/lib/format"; +import { CopyButton } from "@common/elements/CopyButton"; +import { LiveTimestampDistance } from "@common/elements/TimestampDistance"; export const Result = memo(ResultImpl); diff --git a/npm-packages/dashboard-common/src/features/functionRunner/components/RunHistory.tsx b/npm-packages/dashboard-common/src/features/functionRunner/components/RunHistory.tsx index b3d6da75e..043760708 100644 --- a/npm-packages/dashboard-common/src/features/functionRunner/components/RunHistory.tsx +++ b/npm-packages/dashboard-common/src/features/functionRunner/components/RunHistory.tsx @@ -10,11 +10,11 @@ import cloneDeep from "lodash/cloneDeep"; import omit from "lodash/omit"; import { useContext, useEffect, useState } from "react"; import { createGlobalState } from "react-use"; -import { useFunctionUrl } from "lib/deploymentApi"; -import { ComponentId } from "lib/useNents"; -import { Button } from "elements/Button"; -import { DeploymentInfoContext } from "lib/deploymentContext"; -import { useGlobalLocalStorage } from "lib/useGlobalLocalStorage"; +import { useFunctionUrl } from "@common/lib/deploymentApi"; +import { ComponentId } from "@common/lib/useNents"; +import { Button } from "@common/elements/Button"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; +import { useGlobalLocalStorage } from "@common/lib/useGlobalLocalStorage"; // Keep track of a single user across instances of FunctionTester export const useImpersonatedUser = createGlobalState({ diff --git a/npm-packages/dashboard-common/src/features/functionRunner/lib/client.ts b/npm-packages/dashboard-common/src/features/functionRunner/lib/client.ts index 9bcee667e..079103fb0 100644 --- a/npm-packages/dashboard-common/src/features/functionRunner/lib/client.ts +++ b/npm-packages/dashboard-common/src/features/functionRunner/lib/client.ts @@ -5,9 +5,9 @@ import { convexToJson, jsonToConvex } from "convex/values"; import { useReducer, useCallback, useContext } from "react"; import { createGlobalState, usePrevious } from "react-use"; import { Id } from "system-udfs/convex/_generated/dataModel"; -import { DeploymentInfoContext } from "lib/deploymentContext"; -import { useDeploymentUrl, useAdminKey } from "lib/deploymentApi"; -import { useDeepEqualsEffect } from "lib/useDeepEqualsEffect"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; +import { useDeploymentUrl, useAdminKey } from "@common/lib/deploymentApi"; +import { useDeepEqualsEffect } from "@common/lib/useDeepEqualsEffect"; const useGlobalReactClientState = createGlobalState(); diff --git a/npm-packages/dashboard-common/src/features/functionRunner/lib/functionRunner.ts b/npm-packages/dashboard-common/src/features/functionRunner/lib/functionRunner.ts index 6cdda53c5..aff1e2b06 100644 --- a/npm-packages/dashboard-common/src/features/functionRunner/lib/functionRunner.ts +++ b/npm-packages/dashboard-common/src/features/functionRunner/lib/functionRunner.ts @@ -4,11 +4,11 @@ import { useRouter } from "next/router"; import { useModuleFunctions, displayNameToIdentifier, -} from "lib/functions/FunctionsProvider"; -import { ModuleFunction } from "lib/functions/types"; -import { ComponentId, useNents } from "lib/useNents"; -import { useTableMetadata } from "lib/useTableMetadata"; -import { DeploymentInfoContext } from "lib/deploymentContext"; +} from "@common/lib/functions/FunctionsProvider"; +import { ModuleFunction } from "@common/lib/functions/types"; +import { ComponentId, useNents } from "@common/lib/useNents"; +import { useTableMetadata } from "@common/lib/useTableMetadata"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; export const useCurrentGloballyOpenFunction = createGlobalState(null); diff --git a/npm-packages/dashboard-common/src/features/functions/components/DirectorySidebar.tsx b/npm-packages/dashboard-common/src/features/functions/components/DirectorySidebar.tsx index af08f5aca..9f7464938 100644 --- a/npm-packages/dashboard-common/src/features/functions/components/DirectorySidebar.tsx +++ b/npm-packages/dashboard-common/src/features/functions/components/DirectorySidebar.tsx @@ -3,9 +3,9 @@ import classNames from "classnames"; import { useFunctionSearchTerm, useRootEntries, -} from "lib/functions/FunctionsProvider"; -import { FileTree } from "features/functions/components/FileTree"; -import { NentSwitcher } from "elements/NentSwitcher"; +} from "@common/lib/functions/FunctionsProvider"; +import { FileTree } from "@common/features/functions/components/FileTree"; +import { NentSwitcher } from "@common/elements/NentSwitcher"; export function DirectorySidebar({ onChangeFunction, diff --git a/npm-packages/dashboard-common/src/features/functions/components/FileEditor.tsx b/npm-packages/dashboard-common/src/features/functions/components/FileEditor.tsx index 893aae1b5..b738b5a28 100644 --- a/npm-packages/dashboard-common/src/features/functions/components/FileEditor.tsx +++ b/npm-packages/dashboard-common/src/features/functions/components/FileEditor.tsx @@ -1,12 +1,12 @@ import { useEffect, useRef } from "react"; import { useRouter } from "next/router"; import { useMount } from "react-use"; -import { Sheet } from "elements/Sheet"; -import { Loading } from "elements/Loading"; -import { ReadonlyCode } from "elements/ReadonlyCode"; -import { useSourceCode } from "lib/functions/useSourceCode"; -import { SourceMissingPanel } from "elements/SourceMissingPanel"; -import type { ModuleFunction } from "lib/functions/types"; +import { Sheet } from "@common/elements/Sheet"; +import { Loading } from "@common/elements/Loading"; +import { ReadonlyCode } from "@common/elements/ReadonlyCode"; +import { useSourceCode } from "@common/lib/functions/useSourceCode"; +import { SourceMissingPanel } from "@common/elements/SourceMissingPanel"; +import type { ModuleFunction } from "@common/lib/functions/types"; export function FileEditor({ moduleFunction, diff --git a/npm-packages/dashboard-common/src/features/functions/components/FileItem.tsx b/npm-packages/dashboard-common/src/features/functions/components/FileItem.tsx index f6fa51f6b..c01616f65 100644 --- a/npm-packages/dashboard-common/src/features/functions/components/FileItem.tsx +++ b/npm-packages/dashboard-common/src/features/functions/components/FileItem.tsx @@ -1,11 +1,11 @@ import { Disclosure } from "@headlessui/react"; import { CodeIcon } from "@radix-ui/react-icons"; -import type { File } from "lib/functions/types"; +import type { File } from "@common/lib/functions/types"; import { DirectoryItem, FunctionItem, -} from "features/functions/components/FunctionItem"; -import { useCurrentOpenFunction } from "lib/functions/FunctionsProvider"; +} from "@common/features/functions/components/FunctionItem"; +import { useCurrentOpenFunction } from "@common/lib/functions/FunctionsProvider"; export function FileItem({ file, diff --git a/npm-packages/dashboard-common/src/features/functions/components/FileTree.tsx b/npm-packages/dashboard-common/src/features/functions/components/FileTree.tsx index 3dd6bbac7..ca4f5f1e1 100644 --- a/npm-packages/dashboard-common/src/features/functions/components/FileTree.tsx +++ b/npm-packages/dashboard-common/src/features/functions/components/FileTree.tsx @@ -1,10 +1,10 @@ /* eslint-disable jsx-a11y/no-static-element-interactions */ import { FolderIcon, FolderOpenIcon } from "@heroicons/react/24/outline"; import { Disclosure } from "@headlessui/react"; -import { FileItem } from "features/functions/components/FileItem"; -import { DirectoryItem } from "features/functions/components/FunctionItem"; -import type { FileOrFolder, Folder } from "lib/functions/types"; -import { useCurrentOpenFunction } from "lib/functions/FunctionsProvider"; +import { FileItem } from "@common/features/functions/components/FileItem"; +import { DirectoryItem } from "@common/features/functions/components/FunctionItem"; +import type { FileOrFolder, Folder } from "@common/lib/functions/types"; +import { useCurrentOpenFunction } from "@common/lib/functions/FunctionsProvider"; type FileTreeProps = { tree: FileOrFolder[]; diff --git a/npm-packages/dashboard-common/src/features/functions/components/FunctionItem.tsx b/npm-packages/dashboard-common/src/features/functions/components/FunctionItem.tsx index a63ea67ec..7e1b7239b 100644 --- a/npm-packages/dashboard-common/src/features/functions/components/FunctionItem.tsx +++ b/npm-packages/dashboard-common/src/features/functions/components/FunctionItem.tsx @@ -1,16 +1,16 @@ import React, { useContext } from "react"; import { LockClosedIcon } from "@radix-ui/react-icons"; import { useRouter } from "next/router"; -import { cn } from "lib/cn"; +import { cn } from "@common/lib/cn"; import { Disclosure } from "@headlessui/react"; -import { ModuleFunction } from "lib/functions/types"; -import { useCurrentOpenFunction } from "lib/functions/FunctionsProvider"; -import { useCurrentGloballyOpenFunction } from "features/functionRunner/lib/functionRunner"; -import { FunctionIcon } from "elements/icons"; -import { Tooltip } from "elements/Tooltip"; -import { Button } from "elements/Button"; -import { sidebarLinkClassNames } from "elements/Sidebar"; -import { DeploymentInfoContext } from "lib/deploymentContext"; +import { ModuleFunction } from "@common/lib/functions/types"; +import { useCurrentOpenFunction } from "@common/lib/functions/FunctionsProvider"; +import { useCurrentGloballyOpenFunction } from "@common/features/functionRunner/lib/functionRunner"; +import { FunctionIcon } from "@common/elements/icons"; +import { Tooltip } from "@common/elements/Tooltip"; +import { Button } from "@common/elements/Button"; +import { sidebarLinkClassNames } from "@common/elements/Sidebar"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; export function FunctionItem({ item, diff --git a/npm-packages/dashboard-common/src/features/functions/components/FunctionSummary.tsx b/npm-packages/dashboard-common/src/features/functions/components/FunctionSummary.tsx index d65293ac7..c3224626b 100644 --- a/npm-packages/dashboard-common/src/features/functions/components/FunctionSummary.tsx +++ b/npm-packages/dashboard-common/src/features/functions/components/FunctionSummary.tsx @@ -6,14 +6,14 @@ import { useSessionStorage } from "react-use"; import { lt } from "semver"; import udfs from "udfs"; import { UdfType } from "system-udfs/convex/_system/frontend/common"; -import { CopyTextButton } from "elements/CopyTextButton"; -import { FunctionRunnerDisabledWhilePaused } from "features/functions/components/FunctionRunnerDisabledWhilePaused"; -import { DeploymentInfoContext } from "lib/deploymentContext"; -import { useShowGlobalRunner } from "features/functionRunner/lib/functionRunner"; -import { ModuleFunction } from "lib/functions/types"; -import { Loading } from "elements/Loading"; -import { ProductionEditsConfirmationDialog } from "elements/ProductionEditsConfirmationDialog"; -import { Button } from "elements/Button"; +import { CopyTextButton } from "@common/elements/CopyTextButton"; +import { FunctionRunnerDisabledWhilePaused } from "@common/features/functions/components/FunctionRunnerDisabledWhilePaused"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; +import { useShowGlobalRunner } from "@common/features/functionRunner/lib/functionRunner"; +import { ModuleFunction } from "@common/lib/functions/types"; +import { Loading } from "@common/elements/Loading"; +import { ProductionEditsConfirmationDialog } from "@common/elements/ProductionEditsConfirmationDialog"; +import { Button } from "@common/elements/Button"; export function FunctionSummary({ currentOpenFunction, diff --git a/npm-packages/dashboard-common/src/features/functions/components/FunctionsView.tsx b/npm-packages/dashboard-common/src/features/functions/components/FunctionsView.tsx index 5918d13f6..def1e44a5 100644 --- a/npm-packages/dashboard-common/src/features/functions/components/FunctionsView.tsx +++ b/npm-packages/dashboard-common/src/features/functions/components/FunctionsView.tsx @@ -3,15 +3,15 @@ import { CodeIcon } from "@radix-ui/react-icons"; import { useCurrentOpenFunction, useModuleFunctions, -} from "lib/functions/FunctionsProvider"; -import { DirectorySidebar } from "features/functions/components/DirectorySidebar"; -import { FileEditor } from "features/functions/components/FileEditor"; -import { FunctionSummary } from "features/functions/components/FunctionSummary"; -import { PerformanceGraphs } from "features/functions/components/PerformanceGraphs"; -import { DeploymentInfoContext } from "lib/deploymentContext"; -import { SidebarDetailLayout } from "layouts/SidebarDetailLayout"; -import { EmptySection } from "elements/EmptySection"; -import { DeploymentPageTitle } from "elements/DeploymentPageTitle"; +} from "@common/lib/functions/FunctionsProvider"; +import { DirectorySidebar } from "@common/features/functions/components/DirectorySidebar"; +import { FileEditor } from "@common/features/functions/components/FileEditor"; +import { FunctionSummary } from "@common/features/functions/components/FunctionSummary"; +import { PerformanceGraphs } from "@common/features/functions/components/PerformanceGraphs"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; +import { SidebarDetailLayout } from "@common/layouts/SidebarDetailLayout"; +import { EmptySection } from "@common/elements/EmptySection"; +import { DeploymentPageTitle } from "@common/elements/DeploymentPageTitle"; export function FunctionsView() { return ( diff --git a/npm-packages/dashboard-common/src/features/functions/components/PerformanceGraphs.tsx b/npm-packages/dashboard-common/src/features/functions/components/PerformanceGraphs.tsx index 26efe303e..22fa38696 100644 --- a/npm-packages/dashboard-common/src/features/functions/components/PerformanceGraphs.tsx +++ b/npm-packages/dashboard-common/src/features/functions/components/PerformanceGraphs.tsx @@ -1,14 +1,17 @@ import { format } from "date-fns"; -import { useDeploymentAuthHeader, useDeploymentUrl } from "lib/deploymentApi"; -import { SingleGraph } from "features/functions/components/SingleGraph"; -import { useCurrentOpenFunction } from "lib/functions/FunctionsProvider"; +import { + useDeploymentAuthHeader, + useDeploymentUrl, +} from "@common/lib/deploymentApi"; +import { SingleGraph } from "@common/features/functions/components/SingleGraph"; +import { useCurrentOpenFunction } from "@common/lib/functions/FunctionsProvider"; import { UdfMetric, udfRate, cacheHitPercentage, latencyPercentiles, -} from "lib/appMetrics"; -import { calcBuckets } from "lib/charts/buckets"; +} from "@common/lib/appMetrics"; +import { calcBuckets } from "@common/lib/charts/buckets"; export function PerformanceGraphs() { const currentOpenFunction = useCurrentOpenFunction(); diff --git a/npm-packages/dashboard-common/src/features/functions/components/SingleGraph.tsx b/npm-packages/dashboard-common/src/features/functions/components/SingleGraph.tsx index f1df8605d..f1d126820 100644 --- a/npm-packages/dashboard-common/src/features/functions/components/SingleGraph.tsx +++ b/npm-packages/dashboard-common/src/features/functions/components/SingleGraph.tsx @@ -9,11 +9,11 @@ import { CartesianGrid, } from "recharts"; -import { ChartDataSource, ChartData } from "lib/charts/types"; -import { HealthCard } from "elements/HealthCard"; -import { ChartTooltip } from "elements/ChartTooltip"; -import { timeLabel } from "elements/BigChart"; -import { LoadingTransition } from "elements/Loading"; +import { ChartDataSource, ChartData } from "@common/lib/charts/types"; +import { HealthCard } from "@common/elements/HealthCard"; +import { ChartTooltip } from "@common/elements/ChartTooltip"; +import { timeLabel } from "@common/elements/BigChart"; +import { LoadingTransition } from "@common/elements/Loading"; export function SingleGraph({ title, diff --git a/npm-packages/dashboard-common/src/features/health/components/CacheHitRate.tsx b/npm-packages/dashboard-common/src/features/health/components/CacheHitRate.tsx index c0b006c40..5358d7b1c 100644 --- a/npm-packages/dashboard-common/src/features/health/components/CacheHitRate.tsx +++ b/npm-packages/dashboard-common/src/features/health/components/CacheHitRate.tsx @@ -1,6 +1,6 @@ -import { HealthCard } from "elements/HealthCard"; -import { useTopKFunctionMetrics } from "lib/appMetrics"; -import { ChartForFunctionRate } from "features/health/components/ChartForFunctionRate"; +import { HealthCard } from "@common/elements/HealthCard"; +import { useTopKFunctionMetrics } from "@common/lib/appMetrics"; +import { ChartForFunctionRate } from "@common/features/health/components/ChartForFunctionRate"; export function CacheHitRate() { const chartData = useTopKFunctionMetrics("cacheHitPercentage"); diff --git a/npm-packages/dashboard-common/src/features/health/components/ChartForFunctionRate.tsx b/npm-packages/dashboard-common/src/features/health/components/ChartForFunctionRate.tsx index 44245c2a7..aa91d431d 100644 --- a/npm-packages/dashboard-common/src/features/health/components/ChartForFunctionRate.tsx +++ b/npm-packages/dashboard-common/src/features/health/components/ChartForFunctionRate.tsx @@ -12,14 +12,14 @@ import { ReferenceLine, CartesianGrid, } from "recharts"; -import { ChartTooltip } from "elements/ChartTooltip"; -import { useDeploymentAuditLogs } from "lib/useDeploymentAuditLog"; -import { timeLabel } from "elements/BigChart"; -import { ChartData } from "lib/charts/types"; -import { DeploymentTimes } from "features/health/components/DeploymentTimes"; -import { Button } from "elements/Button"; -import { FunctionNameOption } from "elements/FunctionNameOption"; -import { LoadingTransition } from "elements/Loading"; +import { ChartTooltip } from "@common/elements/ChartTooltip"; +import { useDeploymentAuditLogs } from "@common/lib/useDeploymentAuditLog"; +import { timeLabel } from "@common/elements/BigChart"; +import { ChartData } from "@common/lib/charts/types"; +import { DeploymentTimes } from "@common/features/health/components/DeploymentTimes"; +import { Button } from "@common/elements/Button"; +import { FunctionNameOption } from "@common/elements/FunctionNameOption"; +import { LoadingTransition } from "@common/elements/Loading"; export function ChartForFunctionRate({ chartData, diff --git a/npm-packages/dashboard-common/src/features/health/components/ExceptionReporting.tsx b/npm-packages/dashboard-common/src/features/health/components/ExceptionReporting.tsx index 1c09ce67d..daf5846e9 100644 --- a/npm-packages/dashboard-common/src/features/health/components/ExceptionReporting.tsx +++ b/npm-packages/dashboard-common/src/features/health/components/ExceptionReporting.tsx @@ -1,4 +1,4 @@ -import { IntegrationStatus } from "features/health/components/IntegrationStatus"; +import { IntegrationStatus } from "@common/features/health/components/IntegrationStatus"; export function ExceptionReporting() { return ( diff --git a/npm-packages/dashboard-common/src/features/health/components/FailureRate.tsx b/npm-packages/dashboard-common/src/features/health/components/FailureRate.tsx index 7e15dea6f..7ec2ce827 100644 --- a/npm-packages/dashboard-common/src/features/health/components/FailureRate.tsx +++ b/npm-packages/dashboard-common/src/features/health/components/FailureRate.tsx @@ -1,6 +1,6 @@ -import { HealthCard } from "elements/HealthCard"; -import { useTopKFunctionMetrics } from "lib/appMetrics"; -import { ChartForFunctionRate } from "features/health/components/ChartForFunctionRate"; +import { HealthCard } from "@common/elements/HealthCard"; +import { useTopKFunctionMetrics } from "@common/lib/appMetrics"; +import { ChartForFunctionRate } from "@common/features/health/components/ChartForFunctionRate"; export function FailureRate() { const chartData = useTopKFunctionMetrics("failurePercentage"); diff --git a/npm-packages/dashboard-common/src/features/health/components/HealthView.tsx b/npm-packages/dashboard-common/src/features/health/components/HealthView.tsx index 2a5207304..d6a3c5470 100644 --- a/npm-packages/dashboard-common/src/features/health/components/HealthView.tsx +++ b/npm-packages/dashboard-common/src/features/health/components/HealthView.tsx @@ -1,14 +1,14 @@ import React from "react"; import { useSize } from "react-use"; -import { cn } from "lib/cn"; -import { SchedulerStatus } from "elements/SchedulerStatus"; -import { FailureRate } from "features/health/components/FailureRate"; -import { CacheHitRate } from "features/health/components/CacheHitRate"; -import { ExceptionReporting } from "features/health/components/ExceptionReporting"; -import { LogStreams } from "features/health/components/LogStreams"; -import { LastDeployed } from "features/health/components/LastDeployed"; -import { DeploymentPageTitle } from "elements/DeploymentPageTitle"; -import { PageContent } from "elements/PageContent"; +import { cn } from "@common/lib/cn"; +import { SchedulerStatus } from "@common/elements/SchedulerStatus"; +import { FailureRate } from "@common/features/health/components/FailureRate"; +import { CacheHitRate } from "@common/features/health/components/CacheHitRate"; +import { ExceptionReporting } from "@common/features/health/components/ExceptionReporting"; +import { LogStreams } from "@common/features/health/components/LogStreams"; +import { LastDeployed } from "@common/features/health/components/LastDeployed"; +import { DeploymentPageTitle } from "@common/elements/DeploymentPageTitle"; +import { PageContent } from "@common/elements/PageContent"; export function HealthView({ header, diff --git a/npm-packages/dashboard-common/src/features/health/components/IntegrationStatus.tsx b/npm-packages/dashboard-common/src/features/health/components/IntegrationStatus.tsx index c67646bab..bc3af1c91 100644 --- a/npm-packages/dashboard-common/src/features/health/components/IntegrationStatus.tsx +++ b/npm-packages/dashboard-common/src/features/health/components/IntegrationStatus.tsx @@ -8,17 +8,17 @@ import { } from "system-udfs/convex/_system/frontend/common"; import { ExternalLinkIcon, GearIcon } from "@radix-ui/react-icons"; import { useContext } from "react"; -import { HealthCard } from "elements/HealthCard"; -import { DeploymentInfoContext } from "lib/deploymentContext"; -import { Button } from "elements/Button"; -import { Tooltip } from "elements/Tooltip"; -import { Loading } from "elements/Loading"; +import { HealthCard } from "@common/elements/HealthCard"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; +import { Button } from "@common/elements/Button"; +import { Tooltip } from "@common/elements/Tooltip"; +import { Loading } from "@common/elements/Loading"; import { integrationName, configToUrl, integrationUsingLegacyFormat, integrationToLogo, -} from "lib/integrationHelpers"; +} from "@common/lib/integrationHelpers"; export function IntegrationStatus({ integrationTypes, diff --git a/npm-packages/dashboard-common/src/features/health/components/LastDeployed.tsx b/npm-packages/dashboard-common/src/features/health/components/LastDeployed.tsx index a3e6f4600..fdba876ca 100644 --- a/npm-packages/dashboard-common/src/features/health/components/LastDeployed.tsx +++ b/npm-packages/dashboard-common/src/features/health/components/LastDeployed.tsx @@ -1,9 +1,9 @@ import { useQuery } from "convex/react"; import udfs from "udfs"; -import { cn } from "lib/cn"; -import { HealthCard } from "elements/HealthCard"; -import { TimestampDistance } from "elements/TimestampDistance"; -import { Loading } from "elements/Loading"; +import { cn } from "@common/lib/cn"; +import { HealthCard } from "@common/elements/HealthCard"; +import { TimestampDistance } from "@common/elements/TimestampDistance"; +import { Loading } from "@common/elements/Loading"; export function LastDeployed() { const lastPushEvent = useQuery(udfs.deploymentEvents.lastPushEvent, {}); diff --git a/npm-packages/dashboard-common/src/features/health/components/LogStreams.tsx b/npm-packages/dashboard-common/src/features/health/components/LogStreams.tsx index 6851ae0f5..7517e22cc 100644 --- a/npm-packages/dashboard-common/src/features/health/components/LogStreams.tsx +++ b/npm-packages/dashboard-common/src/features/health/components/LogStreams.tsx @@ -1,4 +1,4 @@ -import { IntegrationStatus } from "features/health/components/IntegrationStatus"; +import { IntegrationStatus } from "@common/features/health/components/IntegrationStatus"; export function LogStreams() { return ( diff --git a/npm-packages/dashboard-common/src/features/history/components/HistoryView.tsx b/npm-packages/dashboard-common/src/features/history/components/HistoryView.tsx index c883087de..65aca887c 100644 --- a/npm-packages/dashboard-common/src/features/history/components/HistoryView.tsx +++ b/npm-packages/dashboard-common/src/features/history/components/HistoryView.tsx @@ -2,19 +2,22 @@ import { endOfDay, endOfToday, startOfDay } from "date-fns"; import Link from "next/link"; import { useRouter } from "next/router"; import { useCallback, useContext, useEffect, useState } from "react"; -import { DeploymentEventContent } from "elements/DeploymentEventContent"; -import { DateRangePicker, useDateFilters } from "elements/DateRangePicker"; -import { DeploymentInfoContext } from "lib/deploymentContext"; +import { DeploymentEventContent } from "@common/elements/DeploymentEventContent"; +import { + DateRangePicker, + useDateFilters, +} from "@common/elements/DateRangePicker"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; import { DeploymentAuditLogEvent, DeploymentAuditLogFilters, usePaginatedDeploymentEvents, -} from "lib/useDeploymentAuditLog"; -import { Loading } from "elements/Loading"; -import { toast } from "lib/utils"; -import { Sheet } from "elements/Sheet"; -import { PageContent } from "elements/PageContent"; -import { DeploymentPageTitle } from "elements/DeploymentPageTitle"; +} from "@common/lib/useDeploymentAuditLog"; +import { Loading } from "@common/elements/Loading"; +import { toast } from "@common/lib/utils"; +import { Sheet } from "@common/elements/Sheet"; +import { PageContent } from "@common/elements/PageContent"; +import { DeploymentPageTitle } from "@common/elements/DeploymentPageTitle"; const INITIAL_EVENTS_TO_LOAD = 10; const PAGE_SIZE = 10; diff --git a/npm-packages/dashboard-common/src/features/logs/components/DeploymentEventListItem.tsx b/npm-packages/dashboard-common/src/features/logs/components/DeploymentEventListItem.tsx index 7b1d0cd11..1ae8860cc 100644 --- a/npm-packages/dashboard-common/src/features/logs/components/DeploymentEventListItem.tsx +++ b/npm-packages/dashboard-common/src/features/logs/components/DeploymentEventListItem.tsx @@ -4,13 +4,13 @@ import { GearIcon } from "@radix-ui/react-icons"; import { DeploymentEventContent, ActionText, -} from "elements/DeploymentEventContent"; -import { ITEM_SIZE } from "features/logs/components/LogListItem"; -import { Button } from "elements/Button"; -import { formatDateTime } from "lib/format"; -import { DeploymentAuditLogEvent } from "lib/useDeploymentAuditLog"; -import { DetailPanel } from "elements/DetailPanel"; -import { DeploymentInfoContext } from "lib/deploymentContext"; +} from "@common/elements/DeploymentEventContent"; +import { ITEM_SIZE } from "@common/features/logs/components/LogListItem"; +import { Button } from "@common/elements/Button"; +import { formatDateTime } from "@common/lib/format"; +import { DeploymentAuditLogEvent } from "@common/lib/useDeploymentAuditLog"; +import { DetailPanel } from "@common/elements/DetailPanel"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; export function DeploymentEventListItem({ event, diff --git a/npm-packages/dashboard-common/src/features/logs/components/LogList.tsx b/npm-packages/dashboard-common/src/features/logs/components/LogList.tsx index 7a26db883..0cb906663 100644 --- a/npm-packages/dashboard-common/src/features/logs/components/LogList.tsx +++ b/npm-packages/dashboard-common/src/features/logs/components/LogList.tsx @@ -19,24 +19,27 @@ import { Transition, Dialog } from "@headlessui/react"; import isEqual from "lodash/isEqual"; import difference from "lodash/difference"; import { PauseCircleIcon, PlayCircleIcon } from "@heroicons/react/24/outline"; -import { DeploymentEventListItem } from "features/logs/components/DeploymentEventListItem"; -import { ITEM_SIZE, LogListItem } from "features/logs/components/LogListItem"; -import { LogToolbar } from "features/logs/components/LogToolbar"; -import { filterLogs } from "features/logs/lib/filterLogs"; -import { UdfLog } from "lib/useLogs"; +import { DeploymentEventListItem } from "@common/features/logs/components/DeploymentEventListItem"; +import { + ITEM_SIZE, + LogListItem, +} from "@common/features/logs/components/LogListItem"; +import { LogToolbar } from "@common/features/logs/components/LogToolbar"; +import { filterLogs } from "@common/features/logs/lib/filterLogs"; +import { UdfLog } from "@common/lib/useLogs"; import { InterleavedLog, interleaveLogs, -} from "features/logs/lib/interleaveLogs"; -import { DeploymentAuditLogEvent } from "lib/useDeploymentAuditLog"; -import { NENT_APP_PLACEHOLDER, Nent } from "lib/useNents"; -import { Sheet } from "elements/Sheet"; -import { Tooltip } from "elements/Tooltip"; -import { InfiniteScrollList } from "elements/InfiniteScrollList"; -import { Button } from "elements/Button"; -import { ClosePanelButton } from "elements/ClosePanelButton"; -import { CopyTextButton } from "elements/CopyTextButton"; -import { TextInput } from "elements/TextInput"; +} from "@common/features/logs/lib/interleaveLogs"; +import { DeploymentAuditLogEvent } from "@common/lib/useDeploymentAuditLog"; +import { NENT_APP_PLACEHOLDER, Nent } from "@common/lib/useNents"; +import { Sheet } from "@common/elements/Sheet"; +import { Tooltip } from "@common/elements/Tooltip"; +import { InfiniteScrollList } from "@common/elements/InfiniteScrollList"; +import { Button } from "@common/elements/Button"; +import { ClosePanelButton } from "@common/elements/ClosePanelButton"; +import { CopyTextButton } from "@common/elements/CopyTextButton"; +import { TextInput } from "@common/elements/TextInput"; export type LogListProps = { logs?: UdfLog[]; diff --git a/npm-packages/dashboard-common/src/features/logs/components/LogListItem.test.tsx b/npm-packages/dashboard-common/src/features/logs/components/LogListItem.test.tsx index 2610bd5f4..62b6cf6a6 100644 --- a/npm-packages/dashboard-common/src/features/logs/components/LogListItem.test.tsx +++ b/npm-packages/dashboard-common/src/features/logs/components/LogListItem.test.tsx @@ -1,8 +1,8 @@ import React from "react"; import { render } from "@testing-library/react"; -import { LogListItem } from "features/logs/components/LogListItem"; -import { UdfLog } from "lib/useLogs"; -import { functionIdentifierValue } from "lib/functions/generateFileTree"; +import { LogListItem } from "@common/features/logs/components/LogListItem"; +import { UdfLog } from "@common/lib/useLogs"; +import { functionIdentifierValue } from "@common/lib/functions/generateFileTree"; describe("LogListItem render benchmark", () => { it("should render LogListItem within acceptable time", () => { diff --git a/npm-packages/dashboard-common/src/features/logs/components/LogListItem.tsx b/npm-packages/dashboard-common/src/features/logs/components/LogListItem.tsx index b49fb46df..5424366e4 100644 --- a/npm-packages/dashboard-common/src/features/logs/components/LogListItem.tsx +++ b/npm-packages/dashboard-common/src/features/logs/components/LogListItem.tsx @@ -1,11 +1,11 @@ import classNames from "classnames"; import React, { useEffect, useRef } from "react"; -import { LogStatusLine } from "features/logs/components/LogStatusLine"; -import { UdfLog } from "lib/useLogs"; -import { FunctionNameOption } from "elements/FunctionNameOption"; -import { LogLevel } from "elements/LogLevel"; -import { LogOutput } from "elements/LogOutput"; -import { msFormat } from "lib/format"; +import { LogStatusLine } from "@common/features/logs/components/LogStatusLine"; +import { UdfLog } from "@common/lib/useLogs"; +import { FunctionNameOption } from "@common/elements/FunctionNameOption"; +import { LogLevel } from "@common/elements/LogLevel"; +import { LogOutput } from "@common/elements/LogOutput"; +import { msFormat } from "@common/lib/format"; type LogListItemProps = { log: UdfLog; diff --git a/npm-packages/dashboard-common/src/features/logs/components/LogStatusLine.tsx b/npm-packages/dashboard-common/src/features/logs/components/LogStatusLine.tsx index b29032154..443e456ae 100644 --- a/npm-packages/dashboard-common/src/features/logs/components/LogStatusLine.tsx +++ b/npm-packages/dashboard-common/src/features/logs/components/LogStatusLine.tsx @@ -1,5 +1,5 @@ import { CrossCircledIcon } from "@radix-ui/react-icons"; -import { LogOutcome } from "lib/useLogs"; +import { LogOutcome } from "@common/lib/useLogs"; export function LogStatusLine({ outcome }: { outcome: LogOutcome }) { return ( diff --git a/npm-packages/dashboard-common/src/features/logs/components/LogToolbar.test.tsx b/npm-packages/dashboard-common/src/features/logs/components/LogToolbar.test.tsx index 31772ca36..50f6c2756 100644 --- a/npm-packages/dashboard-common/src/features/logs/components/LogToolbar.test.tsx +++ b/npm-packages/dashboard-common/src/features/logs/components/LogToolbar.test.tsx @@ -1,8 +1,8 @@ -import { functionIdentifierValue } from "lib/functions/generateFileTree"; +import { functionIdentifierValue } from "@common/lib/functions/generateFileTree"; import { functionsForSelectedNents, selectNentOption, -} from "features/logs/components/LogToolbar"; +} from "@common/features/logs/components/LogToolbar"; describe("selectNentOption", () => { const nents = ["_App", "nent1", "nent2"]; diff --git a/npm-packages/dashboard-common/src/features/logs/components/LogToolbar.tsx b/npm-packages/dashboard-common/src/features/logs/components/LogToolbar.tsx index cf755bddb..34891b8e5 100644 --- a/npm-packages/dashboard-common/src/features/logs/components/LogToolbar.tsx +++ b/npm-packages/dashboard-common/src/features/logs/components/LogToolbar.tsx @@ -1,9 +1,9 @@ import difference from "lodash/difference"; -import { MultiSelectCombobox } from "elements/MultiSelectCombobox"; -import { NentNameOption } from "elements/NentSwitcher"; -import { functionIdentifierFromValue } from "lib/functions/generateFileTree"; -import { FunctionNameOption } from "elements/FunctionNameOption"; -import { NENT_APP_PLACEHOLDER } from "lib/useNents"; +import { MultiSelectCombobox } from "@common/elements/MultiSelectCombobox"; +import { NentNameOption } from "@common/elements/NentSwitcher"; +import { functionIdentifierFromValue } from "@common/lib/functions/generateFileTree"; +import { FunctionNameOption } from "@common/elements/FunctionNameOption"; +import { NENT_APP_PLACEHOLDER } from "@common/lib/useNents"; export function LogToolbar({ functions, diff --git a/npm-packages/dashboard-common/src/features/logs/components/Logs.tsx b/npm-packages/dashboard-common/src/features/logs/components/Logs.tsx index 48524afcb..6cffd9e94 100644 --- a/npm-packages/dashboard-common/src/features/logs/components/Logs.tsx +++ b/npm-packages/dashboard-common/src/features/logs/components/Logs.tsx @@ -1,23 +1,23 @@ import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import { useDebounce, usePrevious } from "react-use"; import isEqual from "lodash/isEqual"; -import { dismissToast, toast } from "lib/utils"; -import { LogList } from "features/logs/components/LogList"; +import { dismissToast, toast } from "@common/lib/utils"; +import { LogList } from "@common/features/logs/components/LogList"; import { functionsForSelectedNents, LogToolbar, -} from "features/logs/components/LogToolbar"; -import { filterLogs } from "features/logs/lib/filterLogs"; -import { NENT_APP_PLACEHOLDER, Nent } from "lib/useNents"; +} from "@common/features/logs/components/LogToolbar"; +import { filterLogs } from "@common/features/logs/lib/filterLogs"; +import { NENT_APP_PLACEHOLDER, Nent } from "@common/lib/useNents"; import { itemIdentifier, useModuleFunctions, -} from "lib/functions/FunctionsProvider"; -import { functionIdentifierValue } from "lib/functions/generateFileTree"; -import { MAX_LOGS, UdfLog, useLogs } from "lib/useLogs"; -import { useDeploymentAuditLogs } from "lib/useDeploymentAuditLog"; -import { TextInput } from "elements/TextInput"; -import { Button } from "elements/Button"; +} from "@common/lib/functions/FunctionsProvider"; +import { functionIdentifierValue } from "@common/lib/functions/generateFileTree"; +import { MAX_LOGS, UdfLog, useLogs } from "@common/lib/useLogs"; +import { useDeploymentAuditLogs } from "@common/lib/useDeploymentAuditLog"; +import { TextInput } from "@common/elements/TextInput"; +import { Button } from "@common/elements/Button"; export function Logs({ nents: allNents, diff --git a/npm-packages/dashboard-common/src/features/logs/components/LogsView.tsx b/npm-packages/dashboard-common/src/features/logs/components/LogsView.tsx index 3e1396f6d..aeeaf2191 100644 --- a/npm-packages/dashboard-common/src/features/logs/components/LogsView.tsx +++ b/npm-packages/dashboard-common/src/features/logs/components/LogsView.tsx @@ -1,8 +1,8 @@ -import { DeploymentPageTitle } from "elements/DeploymentPageTitle"; -import { LoadingTransition } from "elements/Loading"; -import { PageContent } from "elements/PageContent"; -import { useNents } from "lib/useNents"; -import { Logs } from "features/logs/components/Logs"; +import { DeploymentPageTitle } from "@common/elements/DeploymentPageTitle"; +import { LoadingTransition } from "@common/elements/Loading"; +import { PageContent } from "@common/elements/PageContent"; +import { useNents } from "@common/lib/useNents"; +import { Logs } from "@common/features/logs/components/Logs"; export function LogsView() { const { nents, selectedNent } = useNents(); diff --git a/npm-packages/dashboard-common/src/features/logs/lib/filterLogs.test.ts b/npm-packages/dashboard-common/src/features/logs/lib/filterLogs.test.ts index 3bacb4c8a..997eff0e1 100644 --- a/npm-packages/dashboard-common/src/features/logs/lib/filterLogs.test.ts +++ b/npm-packages/dashboard-common/src/features/logs/lib/filterLogs.test.ts @@ -1,7 +1,7 @@ import omit from "lodash/omit"; -import { filterLogs, ALL_LEVELS } from "features/logs/lib/filterLogs"; -import { functionIdentifierValue } from "lib/functions/generateFileTree"; -import { UdfLog } from "lib/useLogs"; +import { filterLogs, ALL_LEVELS } from "@common/features/logs/lib/filterLogs"; +import { functionIdentifierValue } from "@common/lib/functions/generateFileTree"; +import { UdfLog } from "@common/lib/useLogs"; const logs: UdfLog[] = [ { diff --git a/npm-packages/dashboard-common/src/features/logs/lib/filterLogs.ts b/npm-packages/dashboard-common/src/features/logs/lib/filterLogs.ts index a4c7857a7..e7a2d3f01 100644 --- a/npm-packages/dashboard-common/src/features/logs/lib/filterLogs.ts +++ b/npm-packages/dashboard-common/src/features/logs/lib/filterLogs.ts @@ -1,8 +1,8 @@ import { functionIdentifierFromValue, functionIdentifierValue, -} from "lib/functions/generateFileTree"; -import { UdfLog } from "lib/useLogs"; +} from "@common/lib/functions/generateFileTree"; +import { UdfLog } from "@common/lib/useLogs"; export const ALL_LEVELS = ["DEBUG", "INFO", "WARN", "ERROR", "FAILURE"]; diff --git a/npm-packages/dashboard-common/src/features/logs/lib/interleaveLogs.test.ts b/npm-packages/dashboard-common/src/features/logs/lib/interleaveLogs.test.ts index 4d858064f..129f24281 100644 --- a/npm-packages/dashboard-common/src/features/logs/lib/interleaveLogs.test.ts +++ b/npm-packages/dashboard-common/src/features/logs/lib/interleaveLogs.test.ts @@ -1,7 +1,7 @@ import { Id } from "system-udfs/convex/_generated/dataModel"; -import { interleaveLogs } from "features/logs/lib/interleaveLogs"; -import { UdfLog } from "lib/useLogs"; -import { DeploymentAuditLogEvent } from "lib/useDeploymentAuditLog"; +import { interleaveLogs } from "@common/features/logs/lib/interleaveLogs"; +import { UdfLog } from "@common/lib/useLogs"; +import { DeploymentAuditLogEvent } from "@common/lib/useDeploymentAuditLog"; function createUdfExecutionLog(creationTime: number): UdfLog { return { diff --git a/npm-packages/dashboard-common/src/features/logs/lib/interleaveLogs.ts b/npm-packages/dashboard-common/src/features/logs/lib/interleaveLogs.ts index 484e21033..171aeaac8 100644 --- a/npm-packages/dashboard-common/src/features/logs/lib/interleaveLogs.ts +++ b/npm-packages/dashboard-common/src/features/logs/lib/interleaveLogs.ts @@ -1,5 +1,5 @@ -import { UdfLog } from "lib/useLogs"; -import { DeploymentAuditLogEvent } from "lib/useDeploymentAuditLog"; +import { UdfLog } from "@common/lib/useLogs"; +import { DeploymentAuditLogEvent } from "@common/lib/useDeploymentAuditLog"; export type InterleavedLog = | { diff --git a/npm-packages/dashboard-common/src/features/schedules/components/ScheduledFunctionsContent.tsx b/npm-packages/dashboard-common/src/features/schedules/components/ScheduledFunctionsContent.tsx index 31eb83444..843529b88 100644 --- a/npm-packages/dashboard-common/src/features/schedules/components/ScheduledFunctionsContent.tsx +++ b/npm-packages/dashboard-common/src/features/schedules/components/ScheduledFunctionsContent.tsx @@ -1,10 +1,10 @@ import { useRef } from "react"; -import { usePaginatedScheduledJobs } from "features/schedules/lib/usePaginatedScheduledJobs"; -import { ScheduledFunctionsContentToolbar } from "features/schedules/components/ScheduledFunctionsContentToolbar"; -import { ScheduledFunctionsListHeader } from "features/schedules/components/ScheduledFunctionsListHeader"; -import { ScheduledFunctionsList } from "features/schedules/components/ScheduledFunctionsList"; -import { Sheet } from "elements/Sheet"; -import { ModuleFunction } from "lib/functions/types"; +import { usePaginatedScheduledJobs } from "@common/features/schedules/lib/usePaginatedScheduledJobs"; +import { ScheduledFunctionsContentToolbar } from "@common/features/schedules/components/ScheduledFunctionsContentToolbar"; +import { ScheduledFunctionsListHeader } from "@common/features/schedules/components/ScheduledFunctionsListHeader"; +import { ScheduledFunctionsList } from "@common/features/schedules/components/ScheduledFunctionsList"; +import { Sheet } from "@common/elements/Sheet"; +import { ModuleFunction } from "@common/lib/functions/types"; export function ScheduledFunctionsContent({ currentOpenFunction, diff --git a/npm-packages/dashboard-common/src/features/schedules/components/ScheduledFunctionsContentToolbar.tsx b/npm-packages/dashboard-common/src/features/schedules/components/ScheduledFunctionsContentToolbar.tsx index 2e0069277..f0d363475 100644 --- a/npm-packages/dashboard-common/src/features/schedules/components/ScheduledFunctionsContentToolbar.tsx +++ b/npm-packages/dashboard-common/src/features/schedules/components/ScheduledFunctionsContentToolbar.tsx @@ -2,23 +2,23 @@ import { TrashIcon } from "@radix-ui/react-icons"; import { useRouter } from "next/router"; import { useContext, useState } from "react"; import { ScheduledJob } from "system-udfs/convex/_system/frontend/common"; -import { useCancelAllJobs } from "features/schedules/lib/api"; -import { DeploymentInfoContext } from "lib/deploymentContext"; +import { useCancelAllJobs } from "@common/features/schedules/lib/api"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; import { itemIdentifier, useCurrentOpenFunction, useModuleFunctions, -} from "lib/functions/FunctionsProvider"; -import { Combobox } from "elements/Combobox"; +} from "@common/lib/functions/FunctionsProvider"; +import { Combobox } from "@common/elements/Combobox"; import { displayName, functionIdentifierFromValue, functionIdentifierValue, -} from "lib/functions/generateFileTree"; -import { FunctionNameOption } from "elements/FunctionNameOption"; -import { Button } from "elements/Button"; -import { SchedulerStatus } from "elements/SchedulerStatus"; -import { ConfirmationDialog } from "elements/ConfirmationDialog"; +} from "@common/lib/functions/generateFileTree"; +import { FunctionNameOption } from "@common/elements/FunctionNameOption"; +import { Button } from "@common/elements/Button"; +import { SchedulerStatus } from "@common/elements/SchedulerStatus"; +import { ConfirmationDialog } from "@common/elements/ConfirmationDialog"; export function ScheduledFunctionsContentToolbar({ jobs, diff --git a/npm-packages/dashboard-common/src/features/schedules/components/ScheduledFunctionsList.tsx b/npm-packages/dashboard-common/src/features/schedules/components/ScheduledFunctionsList.tsx index 186fda3a7..40360ed33 100644 --- a/npm-packages/dashboard-common/src/features/schedules/components/ScheduledFunctionsList.tsx +++ b/npm-packages/dashboard-common/src/features/schedules/components/ScheduledFunctionsList.tsx @@ -2,14 +2,14 @@ import { ScheduledJob } from "system-udfs/convex/_system/frontend/common"; import { NoScheduledJobs, NoScheduledJobsForFunction, -} from "features/schedules/components/emptyStates"; +} from "@common/features/schedules/components/emptyStates"; import { JOB_ITEM_SIZE, ScheduledFunctionsListItem, -} from "features/schedules/components/ScheduledFunctionsListItem"; -import { SCHEDULED_JOBS_PAGE_SIZE } from "features/schedules/lib/usePaginatedScheduledJobs"; -import { InfiniteScrollList } from "elements/InfiniteScrollList"; -import { ModuleFunction } from "lib/functions/types"; +} from "@common/features/schedules/components/ScheduledFunctionsListItem"; +import { SCHEDULED_JOBS_PAGE_SIZE } from "@common/features/schedules/lib/usePaginatedScheduledJobs"; +import { InfiniteScrollList } from "@common/elements/InfiniteScrollList"; +import { ModuleFunction } from "@common/lib/functions/types"; export function ScheduledFunctionsList({ hasScheduledJobs, diff --git a/npm-packages/dashboard-common/src/features/schedules/components/ScheduledFunctionsListHeader.tsx b/npm-packages/dashboard-common/src/features/schedules/components/ScheduledFunctionsListHeader.tsx index 5dd372575..1b6906596 100644 --- a/npm-packages/dashboard-common/src/features/schedules/components/ScheduledFunctionsListHeader.tsx +++ b/npm-packages/dashboard-common/src/features/schedules/components/ScheduledFunctionsListHeader.tsx @@ -5,9 +5,9 @@ import { ExclamationTriangleIcon, ReloadIcon, } from "@radix-ui/react-icons"; -import { Button } from "elements/Button"; -import { Tooltip } from "elements/Tooltip"; -import { Spinner } from "elements/Spinner"; +import { Button } from "@common/elements/Button"; +import { Tooltip } from "@common/elements/Tooltip"; +import { Spinner } from "@common/elements/Spinner"; export function ScheduledFunctionsListHeader({ isPaused, diff --git a/npm-packages/dashboard-common/src/features/schedules/components/ScheduledFunctionsListItem.tsx b/npm-packages/dashboard-common/src/features/schedules/components/ScheduledFunctionsListItem.tsx index 43c5a323d..a784891ef 100644 --- a/npm-packages/dashboard-common/src/features/schedules/components/ScheduledFunctionsListItem.tsx +++ b/npm-packages/dashboard-common/src/features/schedules/components/ScheduledFunctionsListItem.tsx @@ -4,20 +4,20 @@ import Link from "next/link"; import { memo, useContext, useState } from "react"; import { ScheduledJob } from "system-udfs/convex/_system/frontend/common"; import { areEqual } from "react-window"; -import { useCancelJob } from "features/schedules/lib/api"; -import { useNents } from "lib/useNents"; -import { DeploymentInfoContext } from "lib/deploymentContext"; -import { useFunctionUrl } from "lib/deploymentApi"; -import { useCopy } from "lib/useCopy"; -import { DetailPanel } from "elements/DetailPanel"; -import { ReadonlyCode } from "elements/ReadonlyCode"; -import { Loading } from "elements/Loading"; -import { stringifyValue } from "lib/stringifyValue"; -import { prettier } from "lib/format"; -import { FunctionNameOption } from "elements/FunctionNameOption"; -import { functionIdentifierValue } from "lib/functions/generateFileTree"; -import { Menu, MenuItem } from "elements/Menu"; -import { ConfirmationDialog } from "elements/ConfirmationDialog"; +import { useCancelJob } from "@common/features/schedules/lib/api"; +import { useNents } from "@common/lib/useNents"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; +import { useFunctionUrl } from "@common/lib/deploymentApi"; +import { useCopy } from "@common/lib/useCopy"; +import { DetailPanel } from "@common/elements/DetailPanel"; +import { ReadonlyCode } from "@common/elements/ReadonlyCode"; +import { Loading } from "@common/elements/Loading"; +import { stringifyValue } from "@common/lib/stringifyValue"; +import { prettier } from "@common/lib/format"; +import { FunctionNameOption } from "@common/elements/FunctionNameOption"; +import { functionIdentifierValue } from "@common/lib/functions/generateFileTree"; +import { Menu, MenuItem } from "@common/elements/Menu"; +import { ConfirmationDialog } from "@common/elements/ConfirmationDialog"; type JobItemProps = { data: { jobs: ScheduledJob[] }; diff --git a/npm-packages/dashboard-common/src/features/schedules/components/ScheduledFunctionsView.tsx b/npm-packages/dashboard-common/src/features/schedules/components/ScheduledFunctionsView.tsx index aa80293b0..367792c2c 100644 --- a/npm-packages/dashboard-common/src/features/schedules/components/ScheduledFunctionsView.tsx +++ b/npm-packages/dashboard-common/src/features/schedules/components/ScheduledFunctionsView.tsx @@ -1,7 +1,7 @@ -import { DeploymentPageTitle } from "elements/DeploymentPageTitle"; -import { SchedulingLayout } from "layouts/SchedulingLayout"; -import { useCurrentOpenFunction } from "lib/functions/FunctionsProvider"; -import { ScheduledFunctionsContent } from "features/schedules/components/ScheduledFunctionsContent"; +import { DeploymentPageTitle } from "@common/elements/DeploymentPageTitle"; +import { SchedulingLayout } from "@common/layouts/SchedulingLayout"; +import { useCurrentOpenFunction } from "@common/lib/functions/FunctionsProvider"; +import { ScheduledFunctionsContent } from "@common/features/schedules/components/ScheduledFunctionsContent"; export function ScheduledFunctionsView() { const currentOpenFunction = useCurrentOpenFunction(); diff --git a/npm-packages/dashboard-common/src/features/schedules/components/crons/CronJobsContent.tsx b/npm-packages/dashboard-common/src/features/schedules/components/crons/CronJobsContent.tsx index dc20178f8..ace3c2288 100644 --- a/npm-packages/dashboard-common/src/features/schedules/components/crons/CronJobsContent.tsx +++ b/npm-packages/dashboard-common/src/features/schedules/components/crons/CronJobsContent.tsx @@ -16,21 +16,21 @@ import { CronJob, CronJobLog, } from "system-udfs/convex/_system/frontend/common"; -import { FileModal } from "features/schedules/components/crons/FileModal"; -import { CronsTable } from "features/schedules/components/crons/CronsTable"; -import { useCronJobs } from "features/schedules/lib/CronsProvider"; -import { useSourceCode } from "lib/functions/useSourceCode"; -import { Button } from "elements/Button"; -import { PageContent } from "elements/PageContent"; -import { LoadingTransition } from "elements/Loading"; -import { Sheet } from "elements/Sheet"; -import { Tooltip } from "elements/Tooltip"; -import { useFunctionUrl } from "lib/deploymentApi"; -import { formatDateTime, msFormat } from "lib/format"; -import { displayName } from "lib/functions/generateFileTree"; -import { LogLinesOutput } from "elements/LogOutput"; -import { entryOutput } from "lib/useLogs"; -import { EmptySection } from "elements/EmptySection"; +import { FileModal } from "@common/features/schedules/components/crons/FileModal"; +import { CronsTable } from "@common/features/schedules/components/crons/CronsTable"; +import { useCronJobs } from "@common/features/schedules/lib/CronsProvider"; +import { useSourceCode } from "@common/lib/functions/useSourceCode"; +import { Button } from "@common/elements/Button"; +import { PageContent } from "@common/elements/PageContent"; +import { LoadingTransition } from "@common/elements/Loading"; +import { Sheet } from "@common/elements/Sheet"; +import { Tooltip } from "@common/elements/Tooltip"; +import { useFunctionUrl } from "@common/lib/deploymentApi"; +import { formatDateTime, msFormat } from "@common/lib/format"; +import { displayName } from "@common/lib/functions/generateFileTree"; +import { LogLinesOutput } from "@common/elements/LogOutput"; +import { entryOutput } from "@common/lib/useLogs"; +import { EmptySection } from "@common/elements/EmptySection"; export function CronJobsContent() { const { loading, cronJobs, cronsModule, cronJobRuns } = useCronJobs(); diff --git a/npm-packages/dashboard-common/src/features/schedules/components/crons/CronsTable.tsx b/npm-packages/dashboard-common/src/features/schedules/components/crons/CronsTable.tsx index d9481bf06..2a41b5885 100644 --- a/npm-packages/dashboard-common/src/features/schedules/components/crons/CronsTable.tsx +++ b/npm-packages/dashboard-common/src/features/schedules/components/crons/CronsTable.tsx @@ -10,22 +10,22 @@ import { CronJobLog, CronJobWithLastRun, } from "system-udfs/convex/_system/frontend/common"; -import { useWasmCron } from "features/schedules/lib/useWasmCron"; +import { useWasmCron } from "@common/features/schedules/lib/useWasmCron"; import { prettierSaffron, scheduleAsCron, scheduleLiteral, -} from "features/schedules/lib/cronHelpers"; -import { stringifyValue } from "lib/stringifyValue"; -import { prettier } from "lib/format"; -import { Tooltip } from "elements/Tooltip"; -import { useFunctionUrl } from "lib/deploymentApi"; -import { displayName } from "lib/functions/generateFileTree"; -import { LiveTimestampDistance } from "elements/TimestampDistance"; -import { Button } from "elements/Button"; -import { DetailPanel } from "elements/DetailPanel"; -import { ReadonlyCode } from "elements/ReadonlyCode"; -import { Sheet } from "elements/Sheet"; +} from "@common/features/schedules/lib/cronHelpers"; +import { stringifyValue } from "@common/lib/stringifyValue"; +import { prettier } from "@common/lib/format"; +import { Tooltip } from "@common/elements/Tooltip"; +import { useFunctionUrl } from "@common/lib/deploymentApi"; +import { displayName } from "@common/lib/functions/generateFileTree"; +import { LiveTimestampDistance } from "@common/elements/TimestampDistance"; +import { Button } from "@common/elements/Button"; +import { DetailPanel } from "@common/elements/DetailPanel"; +import { ReadonlyCode } from "@common/elements/ReadonlyCode"; +import { Sheet } from "@common/elements/Sheet"; const COLUMN_STYLES = [ { fontWeight: "500", flex: "2 0 80px", fontSize: "0.875rem" }, diff --git a/npm-packages/dashboard-common/src/features/schedules/components/crons/CronsView.tsx b/npm-packages/dashboard-common/src/features/schedules/components/crons/CronsView.tsx index 42993d414..1c4ea0547 100644 --- a/npm-packages/dashboard-common/src/features/schedules/components/crons/CronsView.tsx +++ b/npm-packages/dashboard-common/src/features/schedules/components/crons/CronsView.tsx @@ -1,7 +1,7 @@ -import { DeploymentPageTitle } from "elements/DeploymentPageTitle"; -import { SchedulingLayout } from "layouts/SchedulingLayout"; -import { CronJobsProvider } from "features/schedules/lib/CronsProvider"; -import { CronJobsContent } from "features/schedules/components/crons/CronJobsContent"; +import { DeploymentPageTitle } from "@common/elements/DeploymentPageTitle"; +import { SchedulingLayout } from "@common/layouts/SchedulingLayout"; +import { CronJobsProvider } from "@common/features/schedules/lib/CronsProvider"; +import { CronJobsContent } from "@common/features/schedules/components/crons/CronJobsContent"; export function CronsView() { return ( diff --git a/npm-packages/dashboard-common/src/features/schedules/components/crons/FileModal.tsx b/npm-packages/dashboard-common/src/features/schedules/components/crons/FileModal.tsx index 6a9cac6d8..ae4155a42 100644 --- a/npm-packages/dashboard-common/src/features/schedules/components/crons/FileModal.tsx +++ b/npm-packages/dashboard-common/src/features/schedules/components/crons/FileModal.tsx @@ -1,7 +1,7 @@ import Link from "next/link"; -import { Modal } from "elements/Modal"; -import { ReadonlyCode } from "elements/ReadonlyCode"; -import { SourceMissingPanel } from "elements/SourceMissingPanel"; +import { Modal } from "@common/elements/Modal"; +import { ReadonlyCode } from "@common/elements/ReadonlyCode"; +import { SourceMissingPanel } from "@common/elements/SourceMissingPanel"; type Props = { onClose: () => void; diff --git a/npm-packages/dashboard-common/src/features/schedules/components/emptyStates.tsx b/npm-packages/dashboard-common/src/features/schedules/components/emptyStates.tsx index 5e1b58df3..fafce38b0 100644 --- a/npm-packages/dashboard-common/src/features/schedules/components/emptyStates.tsx +++ b/npm-packages/dashboard-common/src/features/schedules/components/emptyStates.tsx @@ -1,7 +1,7 @@ import { StopwatchIcon } from "@radix-ui/react-icons"; -import { EmptySection } from "elements/EmptySection"; -import { useCurrentOpenFunction } from "lib/functions/FunctionsProvider"; -import { displayName } from "lib/functions/generateFileTree"; +import { EmptySection } from "@common/elements/EmptySection"; +import { useCurrentOpenFunction } from "@common/lib/functions/FunctionsProvider"; +import { displayName } from "@common/lib/functions/generateFileTree"; export function NoScheduledJobs() { return ( diff --git a/npm-packages/dashboard-common/src/features/schedules/lib/CronsProvider.tsx b/npm-packages/dashboard-common/src/features/schedules/lib/CronsProvider.tsx index ef54a97ab..9bf3220a3 100644 --- a/npm-packages/dashboard-common/src/features/schedules/lib/CronsProvider.tsx +++ b/npm-packages/dashboard-common/src/features/schedules/lib/CronsProvider.tsx @@ -8,10 +8,10 @@ import { CronJobWithLastRun, CronJobLog, } from "system-udfs/convex/_system/frontend/common"; -import { useInMemoryDocumentCache } from "features/schedules/lib/useInMemoryDocumentCache"; -import { useListModules } from "lib/functions/useListModules"; -import { createContextHook } from "lib/createContextHook"; -import { useNents } from "lib/useNents"; +import { useInMemoryDocumentCache } from "@common/features/schedules/lib/useInMemoryDocumentCache"; +import { useListModules } from "@common/lib/functions/useListModules"; +import { createContextHook } from "@common/lib/createContextHook"; +import { useNents } from "@common/lib/useNents"; type CronJobsContextType = { cronsModule: Module | undefined; diff --git a/npm-packages/dashboard-common/src/features/schedules/lib/api.tsx b/npm-packages/dashboard-common/src/features/schedules/lib/api.tsx index 346fab679..1b56331b3 100644 --- a/npm-packages/dashboard-common/src/features/schedules/lib/api.tsx +++ b/npm-packages/dashboard-common/src/features/schedules/lib/api.tsx @@ -1,10 +1,10 @@ import { useContext } from "react"; import Link from "next/link"; -import { useAdminKey, useDeploymentUrl } from "lib/deploymentApi"; -import { useNents } from "lib/useNents"; -import { reportHttpError, toast } from "lib/utils"; -import { DeploymentInfoContext } from "lib/deploymentContext"; -import { displayName } from "lib/functions/generateFileTree"; +import { useAdminKey, useDeploymentUrl } from "@common/lib/deploymentApi"; +import { useNents } from "@common/lib/useNents"; +import { reportHttpError, toast } from "@common/lib/utils"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; +import { displayName } from "@common/lib/functions/generateFileTree"; export function useCancelAllJobs(): (udfPath?: string) => Promise { const deploymentUrl = useDeploymentUrl(); diff --git a/npm-packages/dashboard-common/src/features/schedules/lib/useInMemoryDocumentCache.test.tsx b/npm-packages/dashboard-common/src/features/schedules/lib/useInMemoryDocumentCache.test.tsx index f1d5a7bab..e35bba658 100644 --- a/npm-packages/dashboard-common/src/features/schedules/lib/useInMemoryDocumentCache.test.tsx +++ b/npm-packages/dashboard-common/src/features/schedules/lib/useInMemoryDocumentCache.test.tsx @@ -1,6 +1,6 @@ import { renderHook } from "@testing-library/react"; import { Doc, Id } from "system-udfs/convex/_generated/dataModel"; -import { useInMemoryDocumentCache } from "features/schedules/lib/useInMemoryDocumentCache"; +import { useInMemoryDocumentCache } from "@common/features/schedules/lib/useInMemoryDocumentCache"; type NameDoc = Pick, "_creationTime" | "_id" | "name">; let nextCreationTime = 1; diff --git a/npm-packages/dashboard-common/src/features/schedules/lib/usePaginatedScheduledJobs.ts b/npm-packages/dashboard-common/src/features/schedules/lib/usePaginatedScheduledJobs.ts index d99bce776..7fe7bde2a 100644 --- a/npm-packages/dashboard-common/src/features/schedules/lib/usePaginatedScheduledJobs.ts +++ b/npm-packages/dashboard-common/src/features/schedules/lib/usePaginatedScheduledJobs.ts @@ -10,11 +10,11 @@ import { import { useMount } from "react-use"; import { ScheduledJob } from "system-udfs/convex/_system/frontend/common"; import udfs from "udfs"; -import { DeploymentInfoContext } from "lib/deploymentContext"; -import { useGlobalLocalStorage } from "lib/useGlobalLocalStorage"; -import { useNents } from "lib/useNents"; -import { toast } from "lib/utils"; -import { useAdminKey, useDeploymentUrl } from "lib/deploymentApi"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; +import { useGlobalLocalStorage } from "@common/lib/useGlobalLocalStorage"; +import { useNents } from "@common/lib/useNents"; +import { toast } from "@common/lib/utils"; +import { useAdminKey, useDeploymentUrl } from "@common/lib/deploymentApi"; export const SCHEDULED_JOBS_PAGE_SIZE = 50; diff --git a/npm-packages/dashboard-common/src/features/settings/components/AuthConfig.tsx b/npm-packages/dashboard-common/src/features/settings/components/AuthConfig.tsx index 49c237f54..b6bf669f0 100644 --- a/npm-packages/dashboard-common/src/features/settings/components/AuthConfig.tsx +++ b/npm-packages/dashboard-common/src/features/settings/components/AuthConfig.tsx @@ -2,8 +2,8 @@ import Link from "next/link"; import React from "react"; import { useQuery } from "convex/react"; import udfs from "udfs"; -import { Sheet } from "elements/Sheet"; -import { CopyTextButton } from "elements/CopyTextButton"; +import { Sheet } from "@common/elements/Sheet"; +import { CopyTextButton } from "@common/elements/CopyTextButton"; export function AuthConfig() { const authProviders = useQuery(udfs.listAuthProviders.default); diff --git a/npm-packages/dashboard-common/src/features/settings/components/AuthenticationView.tsx b/npm-packages/dashboard-common/src/features/settings/components/AuthenticationView.tsx index ae2aef4da..00253db55 100644 --- a/npm-packages/dashboard-common/src/features/settings/components/AuthenticationView.tsx +++ b/npm-packages/dashboard-common/src/features/settings/components/AuthenticationView.tsx @@ -1,5 +1,5 @@ -import { DeploymentSettingsLayout } from "layouts/DeploymentSettingsLayout"; -import { AuthConfig } from "features/settings/components/AuthConfig"; +import { DeploymentSettingsLayout } from "@common/layouts/DeploymentSettingsLayout"; +import { AuthConfig } from "@common/features/settings/components/AuthConfig"; export function AuthenticationView() { return ( diff --git a/npm-packages/dashboard-common/src/features/settings/components/Components.tsx b/npm-packages/dashboard-common/src/features/settings/components/Components.tsx index c0583d319..9e1b7cf40 100644 --- a/npm-packages/dashboard-common/src/features/settings/components/Components.tsx +++ b/npm-packages/dashboard-common/src/features/settings/components/Components.tsx @@ -1,11 +1,11 @@ import React, { useState } from "react"; import Link from "next/link"; import { TrashIcon } from "@radix-ui/react-icons"; -import { useDeleteComponent } from "features/settings/lib/api"; -import { Sheet } from "elements/Sheet"; -import { Nent } from "lib/useNents"; -import { ConfirmationDialog } from "elements/ConfirmationDialog"; -import { Button } from "elements/Button"; +import { useDeleteComponent } from "@common/features/settings/lib/api"; +import { Sheet } from "@common/elements/Sheet"; +import { Nent } from "@common/lib/useNents"; +import { ConfirmationDialog } from "@common/elements/ConfirmationDialog"; +import { Button } from "@common/elements/Button"; export function Components({ nents }: { nents: Nent[] }) { const sortedNents = [...nents] diff --git a/npm-packages/dashboard-common/src/features/settings/components/ComponentsView.tsx b/npm-packages/dashboard-common/src/features/settings/components/ComponentsView.tsx index 0c503cce9..af15b1bf1 100644 --- a/npm-packages/dashboard-common/src/features/settings/components/ComponentsView.tsx +++ b/npm-packages/dashboard-common/src/features/settings/components/ComponentsView.tsx @@ -1,7 +1,7 @@ -import { LoadingTransition } from "elements/Loading"; -import { DeploymentSettingsLayout } from "layouts/DeploymentSettingsLayout"; -import { useNents } from "lib/useNents"; -import { Components } from "features/settings/components/Components"; +import { LoadingTransition } from "@common/elements/Loading"; +import { DeploymentSettingsLayout } from "@common/layouts/DeploymentSettingsLayout"; +import { useNents } from "@common/lib/useNents"; +import { Components } from "@common/features/settings/components/Components"; export function ComponentsView() { const { nents } = useNents(); diff --git a/npm-packages/dashboard-common/src/features/settings/components/DeploymentEnvironmentVariables.test.tsx b/npm-packages/dashboard-common/src/features/settings/components/DeploymentEnvironmentVariables.test.tsx index 5ed93bf6a..cbc2b2818 100644 --- a/npm-packages/dashboard-common/src/features/settings/components/DeploymentEnvironmentVariables.test.tsx +++ b/npm-packages/dashboard-common/src/features/settings/components/DeploymentEnvironmentVariables.test.tsx @@ -6,14 +6,14 @@ import { EnvironmentVariable } from "system-udfs/convex/_system/frontend/common" import { DeploymentEnvironmentVariables, diffEnvironmentVariables, -} from "features/settings/components/DeploymentEnvironmentVariables"; -import { mockConvexReactClient } from "lib/mockConvexReactClient"; +} from "@common/features/settings/components/DeploymentEnvironmentVariables"; +import { mockConvexReactClient } from "@common/lib/mockConvexReactClient"; import { ConnectedDeploymentContext, DeploymentInfo, DeploymentInfoContext, -} from "lib/deploymentContext"; -import { ProjectEnvVarConfig } from "features/settings/lib/types"; +} from "@common/lib/deploymentContext"; +import { ProjectEnvVarConfig } from "@common/features/settings/lib/types"; const deploymentInfo: DeploymentInfo = { ok: true, diff --git a/npm-packages/dashboard-common/src/features/settings/components/DeploymentEnvironmentVariables.tsx b/npm-packages/dashboard-common/src/features/settings/components/DeploymentEnvironmentVariables.tsx index 7b5cdd6dc..be2be91fa 100644 --- a/npm-packages/dashboard-common/src/features/settings/components/DeploymentEnvironmentVariables.tsx +++ b/npm-packages/dashboard-common/src/features/settings/components/DeploymentEnvironmentVariables.tsx @@ -8,12 +8,12 @@ import { EnvironmentVariable } from "system-udfs/convex/_system/frontend/common" import { EnvironmentVariables, BaseEnvironmentVariable, -} from "features/settings/components/EnvironmentVariables"; -import { useUpdateEnvVars } from "features/settings/lib/api"; -import { DeploymentInfoContext } from "lib/deploymentContext"; -import { Button } from "elements/Button"; -import { Sheet } from "elements/Sheet"; -import { ProjectEnvVarConfig } from "features/settings/lib/types"; +} from "@common/features/settings/components/EnvironmentVariables"; +import { useUpdateEnvVars } from "@common/features/settings/lib/api"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; +import { Button } from "@common/elements/Button"; +import { Sheet } from "@common/elements/Sheet"; +import { ProjectEnvVarConfig } from "@common/features/settings/lib/types"; export function DeploymentEnvironmentVariables() { const { useCurrentDeployment, useHasProjectAdminPermissions, projectsURI } = diff --git a/npm-packages/dashboard-common/src/features/settings/components/DeploymentUrl.tsx b/npm-packages/dashboard-common/src/features/settings/components/DeploymentUrl.tsx index b9a357200..04a6468b6 100644 --- a/npm-packages/dashboard-common/src/features/settings/components/DeploymentUrl.tsx +++ b/npm-packages/dashboard-common/src/features/settings/components/DeploymentUrl.tsx @@ -2,9 +2,9 @@ import { ReactNode, useContext } from "react"; import Link from "next/link"; import { useQuery } from "convex/react"; import udfs from "udfs"; -import { DeploymentInfoContext } from "lib/deploymentContext"; -import { useDeploymentUrl } from "lib/deploymentApi"; -import { CopyTextButton } from "elements/CopyTextButton"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; +import { useDeploymentUrl } from "@common/lib/deploymentApi"; +import { CopyTextButton } from "@common/elements/CopyTextButton"; // dev/prod sometimes isn't initially loaded. // Optimize for no flash on prod. diff --git a/npm-packages/dashboard-common/src/features/settings/components/EnvironmentVariables.test.tsx b/npm-packages/dashboard-common/src/features/settings/components/EnvironmentVariables.test.tsx index 3ebd3c817..1fabc88da 100644 --- a/npm-packages/dashboard-common/src/features/settings/components/EnvironmentVariables.test.tsx +++ b/npm-packages/dashboard-common/src/features/settings/components/EnvironmentVariables.test.tsx @@ -1,4 +1,4 @@ -import { parseEnvVars } from "features/settings/components/EnvironmentVariables"; +import { parseEnvVars } from "@common/features/settings/components/EnvironmentVariables"; describe("EnvironmentVariables", () => { describe("parseEnvVars", () => { diff --git a/npm-packages/dashboard-common/src/features/settings/components/EnvironmentVariables.tsx b/npm-packages/dashboard-common/src/features/settings/components/EnvironmentVariables.tsx index 0efe16d9b..53a8338b0 100644 --- a/npm-packages/dashboard-common/src/features/settings/components/EnvironmentVariables.tsx +++ b/npm-packages/dashboard-common/src/features/settings/components/EnvironmentVariables.tsx @@ -19,11 +19,11 @@ import { useState, } from "react"; import { z } from "zod"; -import { Spinner } from "elements/Spinner"; -import { Callout } from "elements/Callout"; -import { Button } from "elements/Button"; -import { copyTextToClipboard, toast } from "lib/utils"; -import { TextInput } from "elements/TextInput"; +import { Spinner } from "@common/elements/Spinner"; +import { Callout } from "@common/elements/Callout"; +import { Button } from "@common/elements/Button"; +import { copyTextToClipboard, toast } from "@common/lib/utils"; +import { TextInput } from "@common/elements/TextInput"; const MAX_NUMBER_OF_ENV_VARS = 100; diff --git a/npm-packages/dashboard-common/src/features/settings/components/EnvironmentVariablesView.tsx b/npm-packages/dashboard-common/src/features/settings/components/EnvironmentVariablesView.tsx index 88a0a2e8f..327b6fd79 100644 --- a/npm-packages/dashboard-common/src/features/settings/components/EnvironmentVariablesView.tsx +++ b/npm-packages/dashboard-common/src/features/settings/components/EnvironmentVariablesView.tsx @@ -1,5 +1,5 @@ -import { DeploymentSettingsLayout } from "layouts/DeploymentSettingsLayout"; -import { DeploymentEnvironmentVariables } from "features/settings/components/DeploymentEnvironmentVariables"; +import { DeploymentSettingsLayout } from "@common/layouts/DeploymentSettingsLayout"; +import { DeploymentEnvironmentVariables } from "@common/features/settings/components/DeploymentEnvironmentVariables"; export function EnvironmentVariablesView() { return ( diff --git a/npm-packages/dashboard-common/src/features/settings/lib/api.ts b/npm-packages/dashboard-common/src/features/settings/lib/api.ts index 70b49bad0..b5c367c56 100644 --- a/npm-packages/dashboard-common/src/features/settings/lib/api.ts +++ b/npm-packages/dashboard-common/src/features/settings/lib/api.ts @@ -4,9 +4,9 @@ import { useAdminKey, useDeploymentAuthHeader, useDeploymentUrl, -} from "lib/deploymentApi"; -import { reportHttpError, toast } from "lib/utils"; -import { ConnectedDeploymentContext } from "lib/deploymentContext"; +} from "@common/lib/deploymentApi"; +import { reportHttpError, toast } from "@common/lib/utils"; +import { ConnectedDeploymentContext } from "@common/lib/deploymentContext"; export function useUpdateEnvVars(): ( changes: { diff --git a/npm-packages/dashboard-common/src/index.ts b/npm-packages/dashboard-common/src/index.ts index 6cfe45463..f4f49b911 100644 --- a/npm-packages/dashboard-common/src/index.ts +++ b/npm-packages/dashboard-common/src/index.ts @@ -9,11 +9,11 @@ export { toast, dismissToast, backoffWithJitter, -} from "lib/utils"; -export * from "lib/fetching"; -export * from "lib/useGlobalLocalStorage"; -export * from "lib/useCopy"; -export * from "lib/useIsOverflowing"; +} from "@common/lib/utils"; +export * from "@common/lib/fetching"; +export * from "@common/lib/useGlobalLocalStorage"; +export * from "@common/lib/useCopy"; +export * from "@common/lib/useIsOverflowing"; export { formatBytes, formatNumber, @@ -21,24 +21,24 @@ export { formatDate, msFormat, toNumericUTC, -} from "lib/format"; +} from "@common/lib/format"; // Deployment-related exports for Insights -export { useFunctionUrl } from "lib/deploymentApi"; +export { useFunctionUrl } from "@common/lib/deploymentApi"; export { functionIdentifierFromValue, functionIdentifierValue, -} from "lib/functions/generateFileTree"; -export * from "lib/useNents"; -export { useDeploymentAuditLogs } from "lib/useDeploymentAuditLog"; +} from "@common/lib/functions/generateFileTree"; +export * from "@common/lib/useNents"; +export { useDeploymentAuditLogs } from "@common/lib/useDeploymentAuditLog"; export { useModuleFunctions, itemIdentifier, -} from "lib/functions/FunctionsProvider"; -export { documentHref } from "lib/utils"; -export * from "elements/FunctionNameOption"; -export * from "elements/HealthCard"; -export * from "features/health/components/DeploymentTimes"; +} from "@common/lib/functions/FunctionsProvider"; +export { documentHref } from "@common/lib/utils"; +export * from "@common/elements/FunctionNameOption"; +export * from "@common/elements/HealthCard"; +export * from "@common/features/health/components/DeploymentTimes"; // Re-used in the cloud dashboard for deployment pages export { @@ -47,11 +47,11 @@ export { ConnectedDeploymentContext, DeploymentApiProvider, WaitForDeploymentApi, -} from "lib/deploymentContext"; +} from "@common/lib/deploymentContext"; export type { DeploymentInfo, DeploymentApiProviderProps, -} from "lib/deploymentContext"; +} from "@common/lib/deploymentContext"; // These are used for some deployment-related settings pages // that are not available in the self-hosted dashboard. @@ -59,62 +59,62 @@ export { useDeploymentUrl, useDeploymentAuthHeader, useAdminKey, -} from "lib/deploymentApi"; -export * from "lib/integrationHelpers"; -export * from "lib/stringifyValue"; +} from "@common/lib/deploymentApi"; +export * from "@common/lib/integrationHelpers"; +export * from "@common/lib/stringifyValue"; // Re-usable elements -export * from "elements/Button"; -export * from "elements/Callout"; -export * from "elements/ChartTooltip"; -export * from "elements/Checkbox"; -export * from "elements/ConvexLogo"; -export * from "elements/ClosePanelButton"; -export * from "elements/Combobox"; -export * from "elements/ConfirmationDialog"; -export * from "elements/CopyButton"; -export * from "elements/CopyTextButton"; -export * from "elements/DateRangePicker"; -export * from "elements/DetailPanel"; -export * from "elements/EmptySection"; -export { PuzzlePieceIcon } from "elements/icons"; -export * from "elements/Loading"; -export * from "elements/Menu"; -export * from "elements/Modal"; -export * from "elements/MultiSelectCombobox"; -export * from "elements/PageContent"; -export * from "elements/Popover"; -export * from "elements/ReadonlyCode"; -export * from "elements/Sheet"; -export { SidebarLink, sidebarLinkClassNames } from "elements/Sidebar"; -export * from "elements/Snippet"; -export * from "elements/Spinner"; -export * from "elements/TextInput"; -export * from "elements/ToggleTheme"; -export * from "elements/TimestampDistance"; -export * from "elements/Tooltip"; +export * from "@common/elements/Button"; +export * from "@common/elements/Callout"; +export * from "@common/elements/ChartTooltip"; +export * from "@common/elements/Checkbox"; +export * from "@common/elements/ConvexLogo"; +export * from "@common/elements/ClosePanelButton"; +export * from "@common/elements/Combobox"; +export * from "@common/elements/ConfirmationDialog"; +export * from "@common/elements/CopyButton"; +export * from "@common/elements/CopyTextButton"; +export * from "@common/elements/DateRangePicker"; +export * from "@common/elements/DetailPanel"; +export * from "@common/elements/EmptySection"; +export { PuzzlePieceIcon } from "@common/elements/icons"; +export * from "@common/elements/Loading"; +export * from "@common/elements/Menu"; +export * from "@common/elements/Modal"; +export * from "@common/elements/MultiSelectCombobox"; +export * from "@common/elements/PageContent"; +export * from "@common/elements/Popover"; +export * from "@common/elements/ReadonlyCode"; +export * from "@common/elements/Sheet"; +export { SidebarLink, sidebarLinkClassNames } from "@common/elements/Sidebar"; +export * from "@common/elements/Snippet"; +export * from "@common/elements/Spinner"; +export * from "@common/elements/TextInput"; +export * from "@common/elements/ToggleTheme"; +export * from "@common/elements/TimestampDistance"; +export * from "@common/elements/Tooltip"; // For rendering the dashboard itself -- consider refactoring into a basic provider -export * from "elements/Favicon"; -export * from "elements/ToastContainer"; -export * from "elements/ThemeConsumer"; +export * from "@common/elements/Favicon"; +export * from "@common/elements/ToastContainer"; +export * from "@common/elements/ThemeConsumer"; // For rendering deployment pages in self-hosted dashboard -export * from "layouts/DeploymentDashboardLayout"; -export * from "layouts/DeploymentSettingsLayout"; -export * from "features/health/components/HealthView"; -export * from "features/data/components/DataView"; -export * from "features/functions/components/FunctionsView"; -export * from "features/files/components/FileStorageView"; -export * from "features/logs/components/LogsView"; -export * from "features/history/components/HistoryView"; -export * from "features/schedules/components/ScheduledFunctionsView"; -export * from "features/schedules/components/crons/CronsView"; -export * from "features/settings/components/EnvironmentVariablesView"; -export * from "features/settings/components/AuthenticationView"; -export * from "features/settings/components/ComponentsView"; +export * from "@common/layouts/DeploymentDashboardLayout"; +export * from "@common/layouts/DeploymentSettingsLayout"; +export * from "@common/features/health/components/HealthView"; +export * from "@common/features/data/components/DataView"; +export * from "@common/features/functions/components/FunctionsView"; +export * from "@common/features/files/components/FileStorageView"; +export * from "@common/features/logs/components/LogsView"; +export * from "@common/features/history/components/HistoryView"; +export * from "@common/features/schedules/components/ScheduledFunctionsView"; +export * from "@common/features/schedules/components/crons/CronsView"; +export * from "@common/features/settings/components/EnvironmentVariablesView"; +export * from "@common/features/settings/components/AuthenticationView"; +export * from "@common/features/settings/components/ComponentsView"; -export * from "features/settings/components/DeploymentUrl"; -export * from "features/settings/components/EnvironmentVariables"; -export * from "features/settings/components/DeploymentEnvironmentVariables"; -export * from "features/settings/lib/types"; +export * from "@common/features/settings/components/DeploymentUrl"; +export * from "@common/features/settings/components/EnvironmentVariables"; +export * from "@common/features/settings/components/DeploymentEnvironmentVariables"; +export * from "@common/features/settings/lib/types"; diff --git a/npm-packages/dashboard-common/src/layouts/DeploymentDashboardLayout.tsx b/npm-packages/dashboard-common/src/layouts/DeploymentDashboardLayout.tsx index b762ea26f..4900e2075 100644 --- a/npm-packages/dashboard-common/src/layouts/DeploymentDashboardLayout.tsx +++ b/npm-packages/dashboard-common/src/layouts/DeploymentDashboardLayout.tsx @@ -12,13 +12,13 @@ import Link from "next/link"; import { useContext, useState } from "react"; import udfs from "udfs"; import classNames from "classnames"; -import { DeploymentInfoContext } from "lib/deploymentContext"; -import { useGlobalLocalStorage } from "lib/useGlobalLocalStorage"; -import { useCollapseSidebarState } from "lib/useCollapseSidebarState"; -import { PulseIcon } from "elements/icons"; -import { Sidebar } from "elements/Sidebar"; -import { FunctionRunnerWrapper } from "features/functionRunner/components/FunctionRunnerWrapper"; -import { FunctionsProvider } from "lib/functions/FunctionsProvider"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; +import { useGlobalLocalStorage } from "@common/lib/useGlobalLocalStorage"; +import { useCollapseSidebarState } from "@common/lib/useCollapseSidebarState"; +import { PulseIcon } from "@common/elements/icons"; +import { Sidebar } from "@common/elements/Sidebar"; +import { FunctionRunnerWrapper } from "@common/features/functionRunner/components/FunctionRunnerWrapper"; +import { FunctionsProvider } from "@common/lib/functions/FunctionsProvider"; type LayoutProps = { children: JSX.Element; diff --git a/npm-packages/dashboard-common/src/layouts/DeploymentSettingsLayout.tsx b/npm-packages/dashboard-common/src/layouts/DeploymentSettingsLayout.tsx index c745eaaf0..1538d1e2d 100644 --- a/npm-packages/dashboard-common/src/layouts/DeploymentSettingsLayout.tsx +++ b/npm-packages/dashboard-common/src/layouts/DeploymentSettingsLayout.tsx @@ -1,13 +1,16 @@ import React, { ReactNode, useContext, useRef } from "react"; import { HamburgerMenuIcon } from "@radix-ui/react-icons"; import { useMeasure } from "react-use"; -import { SettingsSidebar, SettingsPageKind } from "layouts/SettingsSidebar"; -import { PageContent } from "elements/PageContent"; -import { Popover } from "elements/Popover"; -import { Button } from "elements/Button"; -import { DeploymentInfoContext } from "lib/deploymentContext"; -import { useIsOverflowing } from "lib/useIsOverflowing"; -import { Tooltip } from "elements/Tooltip"; +import { + SettingsSidebar, + SettingsPageKind, +} from "@common/layouts/SettingsSidebar"; +import { PageContent } from "@common/elements/PageContent"; +import { Popover } from "@common/elements/Popover"; +import { Button } from "@common/elements/Button"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; +import { useIsOverflowing } from "@common/lib/useIsOverflowing"; +import { Tooltip } from "@common/elements/Tooltip"; export function DeploymentSettingsLayout({ page, diff --git a/npm-packages/dashboard-common/src/layouts/SchedulingLayout.tsx b/npm-packages/dashboard-common/src/layouts/SchedulingLayout.tsx index 9836cedb5..3b6320d87 100644 --- a/npm-packages/dashboard-common/src/layouts/SchedulingLayout.tsx +++ b/npm-packages/dashboard-common/src/layouts/SchedulingLayout.tsx @@ -1,7 +1,7 @@ import { Tab as HeadlessTab } from "@headlessui/react"; import { useRouter } from "next/router"; -import { NentSwitcher } from "elements/NentSwitcher"; -import { Tab } from "elements/Tab"; +import { NentSwitcher } from "@common/elements/NentSwitcher"; +import { Tab } from "@common/elements/Tab"; export function SchedulingLayout({ children }: { children: React.ReactNode }) { const { pathname, query } = useRouter(); diff --git a/npm-packages/dashboard-common/src/layouts/SettingsSidebar.tsx b/npm-packages/dashboard-common/src/layouts/SettingsSidebar.tsx index 607697539..a96484863 100644 --- a/npm-packages/dashboard-common/src/layouts/SettingsSidebar.tsx +++ b/npm-packages/dashboard-common/src/layouts/SettingsSidebar.tsx @@ -1,10 +1,10 @@ import classNames from "classnames"; import React, { useContext } from "react"; import { ExternalLinkIcon, LockClosedIcon } from "@radix-ui/react-icons"; -import { DeploymentPageTitle } from "elements/DeploymentPageTitle"; -import { DeploymentInfoContext } from "lib/deploymentContext"; -import { SidebarLink } from "elements/Sidebar"; -import { useNents } from "lib/useNents"; +import { DeploymentPageTitle } from "@common/elements/DeploymentPageTitle"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; +import { SidebarLink } from "@common/elements/Sidebar"; +import { useNents } from "@common/lib/useNents"; export const DEPLOYMENT_SETTINGS_PAGES_AND_NAMES = { "url-and-deploy-key": "URL & Deploy Key", diff --git a/npm-packages/dashboard-common/src/layouts/SidebarDetailLayout.tsx b/npm-packages/dashboard-common/src/layouts/SidebarDetailLayout.tsx index 9530766da..b5ca20530 100644 --- a/npm-packages/dashboard-common/src/layouts/SidebarDetailLayout.tsx +++ b/npm-packages/dashboard-common/src/layouts/SidebarDetailLayout.tsx @@ -14,14 +14,14 @@ import { PanelResizeHandle, } from "react-resizable-panels"; import { DragHandleDots2Icon } from "@radix-ui/react-icons"; -import { cn } from "lib/cn"; +import { cn } from "@common/lib/cn"; -import { Callout } from "elements/Callout"; -import { PageContent } from "elements/PageContent"; -import { DeploymentInfoContext } from "lib/deploymentContext"; -import { Tooltip } from "elements/Tooltip"; -import { ClosePanelButton } from "elements/ClosePanelButton"; -import { Button } from "elements/Button"; +import { Callout } from "@common/elements/Callout"; +import { PageContent } from "@common/elements/PageContent"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; +import { Tooltip } from "@common/elements/Tooltip"; +import { ClosePanelButton } from "@common/elements/ClosePanelButton"; +import { Button } from "@common/elements/Button"; function Fallback({ error }: { error: Error | null }) { return ( diff --git a/npm-packages/dashboard-common/src/lib/appMetrics.ts b/npm-packages/dashboard-common/src/lib/appMetrics.ts index 912bd0c2d..30d241768 100644 --- a/npm-packages/dashboard-common/src/lib/appMetrics.ts +++ b/npm-packages/dashboard-common/src/lib/appMetrics.ts @@ -4,13 +4,13 @@ import { FunctionExecution, UdfType, } from "system-udfs/convex/_system/frontend/common"; -import { deploymentFetch } from "lib/fetching"; +import { deploymentFetch } from "@common/lib/fetching"; import { useDeploymentIsDisconnected, useDeploymentUrl, useDeploymentAuthHeader, -} from "lib/deploymentApi"; -import { functionIdentifierValue } from "lib/functions/generateFileTree"; +} from "@common/lib/deploymentApi"; +import { functionIdentifierValue } from "@common/lib/functions/generateFileTree"; export type UdfMetric = "invocations" | "errors" | "cacheHits" | "cacheMisses"; export type TableMetric = "rowsRead" | "rowsWritten"; diff --git a/npm-packages/dashboard-common/src/lib/deploymentApi.ts b/npm-packages/dashboard-common/src/lib/deploymentApi.ts index 5fd650e14..e26c03b4f 100644 --- a/npm-packages/dashboard-common/src/lib/deploymentApi.ts +++ b/npm-packages/dashboard-common/src/lib/deploymentApi.ts @@ -2,14 +2,14 @@ import { useCallback, useContext, useMemo } from "react"; import { Shape, shapeSchema } from "shapes"; import useSWR, { BareFetcher, Middleware, useSWRConfig } from "swr"; import { z } from "zod"; -import { useNents } from "lib/useNents"; +import { useNents } from "@common/lib/useNents"; import { ConnectedDeploymentContext, DeploymentInfoContext, -} from "lib/deploymentContext"; -import { deploymentFetch } from "lib/fetching"; -import { isUserTableName } from "lib/utils"; -import { displayName } from "lib/functions/generateFileTree"; +} from "@common/lib/deploymentContext"; +import { deploymentFetch } from "@common/lib/fetching"; +import { isUserTableName } from "@common/lib/utils"; +import { displayName } from "@common/lib/functions/generateFileTree"; export function useDeploymentUrl(): string { const { deployment } = useContext(ConnectedDeploymentContext); diff --git a/npm-packages/dashboard-common/src/lib/deploymentContext.tsx b/npm-packages/dashboard-common/src/lib/deploymentContext.tsx index 27064fdbe..e8a08cbcb 100644 --- a/npm-packages/dashboard-common/src/lib/deploymentContext.tsx +++ b/npm-packages/dashboard-common/src/lib/deploymentContext.tsx @@ -11,9 +11,9 @@ import { } from "react"; import { useRouter } from "next/router"; import { captureMessage } from "@sentry/nextjs"; -import { cn } from "lib/cn"; -import { LoadingLogo } from "elements/Loading"; -import { ProjectEnvVarConfig } from "features/settings/lib/types"; +import { cn } from "@common/lib/cn"; +import { LoadingLogo } from "@common/elements/Loading"; +import { ProjectEnvVarConfig } from "@common/features/settings/lib/types"; export const PROVISION_PROD_PAGE_NAME = "production"; diff --git a/npm-packages/dashboard-common/src/lib/format.test.ts b/npm-packages/dashboard-common/src/lib/format.test.ts index 7280927b8..38b02d9d0 100644 --- a/npm-packages/dashboard-common/src/lib/format.test.ts +++ b/npm-packages/dashboard-common/src/lib/format.test.ts @@ -5,7 +5,7 @@ import { displaySchema, displaySchemaFromShapes, prettier, -} from "lib/format"; +} from "@common/lib/format"; type ShapeTypes = Shape["type"]; diff --git a/npm-packages/dashboard-common/src/lib/functions/FunctionsProvider.tsx b/npm-packages/dashboard-common/src/lib/functions/FunctionsProvider.tsx index d24b5ea64..7526705cf 100644 --- a/npm-packages/dashboard-common/src/lib/functions/FunctionsProvider.tsx +++ b/npm-packages/dashboard-common/src/lib/functions/FunctionsProvider.tsx @@ -1,6 +1,6 @@ import { ReactNode, useMemo } from "react"; import { useRouter } from "next/router"; -import { cn } from "lib/cn"; +import { cn } from "@common/lib/cn"; import { captureMessage } from "@sentry/nextjs"; import { Module } from "system-udfs/convex/_system/frontend/common"; import { createGlobalState } from "react-use"; @@ -9,12 +9,12 @@ import { generateFileTreeAllNents, processAnalyzedModuleFunction, ROOT_PATH, -} from "lib/functions/generateFileTree"; -import { ModuleFunction } from "lib/functions/types"; -import { useListModulesAllNents } from "lib/functions/useListModules"; -import { createContextHook } from "lib/createContextHook"; -import { ComponentId, Nent, useNents } from "lib/useNents"; -import { LoadingLogo } from "elements/Loading"; +} from "@common/lib/functions/generateFileTree"; +import { ModuleFunction } from "@common/lib/functions/types"; +import { useListModulesAllNents } from "@common/lib/functions/useListModules"; +import { createContextHook } from "@common/lib/createContextHook"; +import { ComponentId, Nent, useNents } from "@common/lib/useNents"; +import { LoadingLogo } from "@common/elements/Loading"; const [FunctionsContext, useFunctions] = createContextHook< Map> diff --git a/npm-packages/dashboard-common/src/lib/functions/generateFileTree.ts b/npm-packages/dashboard-common/src/lib/functions/generateFileTree.ts index 10d674194..a78b37e40 100644 --- a/npm-packages/dashboard-common/src/lib/functions/generateFileTree.ts +++ b/npm-packages/dashboard-common/src/lib/functions/generateFileTree.ts @@ -4,13 +4,13 @@ import { } from "system-udfs/convex/_system/frontend/common"; import { Id } from "system-udfs/convex/_generated/dataModel"; import { test } from "fuzzy"; -import { ComponentId, Nent } from "lib/useNents"; +import { ComponentId, Nent } from "@common/lib/useNents"; import { File, FileOrFolder, Folder, ModuleFunction, -} from "lib/functions/types"; +} from "@common/lib/functions/types"; export const ROOT_PATH = ""; diff --git a/npm-packages/dashboard-common/src/lib/functions/useListModules.ts b/npm-packages/dashboard-common/src/lib/functions/useListModules.ts index 1ec1c2ec2..7abb95942 100644 --- a/npm-packages/dashboard-common/src/lib/functions/useListModules.ts +++ b/npm-packages/dashboard-common/src/lib/functions/useListModules.ts @@ -2,8 +2,8 @@ import { useQuery } from "convex/react"; import { useMemo } from "react"; import udfs from "udfs"; import { Module } from "system-udfs/convex/_system/frontend/common"; -import { useInvalidateSourceCode } from "lib/deploymentApi"; -import { ComponentId, useNents } from "lib/useNents"; +import { useInvalidateSourceCode } from "@common/lib/deploymentApi"; +import { ComponentId, useNents } from "@common/lib/useNents"; export function useListModules(): Map | undefined { const { selectedNent } = useNents(); diff --git a/npm-packages/dashboard-common/src/lib/functions/useSourceCode.ts b/npm-packages/dashboard-common/src/lib/functions/useSourceCode.ts index 4d236c062..904b80b23 100644 --- a/npm-packages/dashboard-common/src/lib/functions/useSourceCode.ts +++ b/npm-packages/dashboard-common/src/lib/functions/useSourceCode.ts @@ -1,10 +1,10 @@ import useSWR, { BareFetcher } from "swr"; -import { useNents } from "lib/useNents"; +import { useNents } from "@common/lib/useNents"; import { deploymentAuthMiddleware, useDeploymentIsDisconnected, -} from "lib/deploymentApi"; -import { deploymentFetch } from "lib/fetching"; +} from "@common/lib/deploymentApi"; +import { deploymentFetch } from "@common/lib/fetching"; export function useSourceCode(path: string) { const { selectedNent } = useNents(); diff --git a/npm-packages/dashboard-common/src/lib/integrationHelpers.tsx b/npm-packages/dashboard-common/src/lib/integrationHelpers.tsx index d1d1defe5..39dcb9349 100644 --- a/npm-packages/dashboard-common/src/lib/integrationHelpers.tsx +++ b/npm-packages/dashboard-common/src/lib/integrationHelpers.tsx @@ -15,12 +15,12 @@ import { } from "system-udfs/convex/schema"; import Link from "next/link"; import classNames from "classnames"; -import { WebhookIcon } from "elements/icons"; -import { DatadogLogo } from "lib/logos/DatadogLogo"; -import { AxiomLogo } from "lib/logos/AxiomLogo"; -import { SentryLogo } from "lib/logos/SentryLogo"; -import { AirbyteLogo } from "lib/logos/AirbyteLogo"; -import { FivetranLogo } from "lib/logos/FivetranLogo"; +import { WebhookIcon } from "@common/elements/icons"; +import { DatadogLogo } from "@common/lib/logos/DatadogLogo"; +import { AxiomLogo } from "@common/lib/logos/AxiomLogo"; +import { SentryLogo } from "@common/lib/logos/SentryLogo"; +import { AirbyteLogo } from "@common/lib/logos/AirbyteLogo"; +import { FivetranLogo } from "@common/lib/logos/FivetranLogo"; export type SinkStatus = Doc<"_log_sinks">["status"]; diff --git a/npm-packages/dashboard-common/src/lib/stringifyValue.test.ts b/npm-packages/dashboard-common/src/lib/stringifyValue.test.ts index 09c68e197..bfa7bf871 100644 --- a/npm-packages/dashboard-common/src/lib/stringifyValue.test.ts +++ b/npm-packages/dashboard-common/src/lib/stringifyValue.test.ts @@ -1,4 +1,4 @@ -import { stringifyValue } from "lib/stringifyValue"; +import { stringifyValue } from "@common/lib/stringifyValue"; describe("stringifyValue", () => { test.each([ diff --git a/npm-packages/dashboard-common/src/lib/stringifyValue.ts b/npm-packages/dashboard-common/src/lib/stringifyValue.ts index 4e0bd4687..006862aab 100644 --- a/npm-packages/dashboard-common/src/lib/stringifyValue.ts +++ b/npm-packages/dashboard-common/src/lib/stringifyValue.ts @@ -2,7 +2,7 @@ import { Value } from "convex/values"; import * as Base64 from "base64-js"; // @ts-expect-error import isValidIdentifier from "is-valid-identifier"; -import { prettier } from "lib/format"; +import { prettier } from "@common/lib/format"; function stringify(value: Value): string { // TODO: Remove this branch when we have more type-safety. diff --git a/npm-packages/dashboard-common/src/lib/useCollapseSidebarState.ts b/npm-packages/dashboard-common/src/lib/useCollapseSidebarState.ts index c1a69d4c5..6cda5a42f 100644 --- a/npm-packages/dashboard-common/src/lib/useCollapseSidebarState.ts +++ b/npm-packages/dashboard-common/src/lib/useCollapseSidebarState.ts @@ -1,6 +1,6 @@ import { useCallback } from "react"; import { useWindowSize } from "react-use"; -import { useGlobalLocalStorage } from "lib/useGlobalLocalStorage"; +import { useGlobalLocalStorage } from "@common/lib/useGlobalLocalStorage"; export function useCollapseSidebarState() { const { width } = useWindowSize(); diff --git a/npm-packages/dashboard-common/src/lib/useCopy.tsx b/npm-packages/dashboard-common/src/lib/useCopy.tsx index d2f25a412..b875765df 100644 --- a/npm-packages/dashboard-common/src/lib/useCopy.tsx +++ b/npm-packages/dashboard-common/src/lib/useCopy.tsx @@ -1,6 +1,6 @@ import { useCopyToClipboard } from "react-use"; import { useEffect } from "react"; -import { toast } from "lib/utils"; +import { toast } from "@common/lib/utils"; export function useCopy(copying: string) { const [copyState, copyToClipboard] = useCopyToClipboard(); diff --git a/npm-packages/dashboard-common/src/lib/useDeploymentAuditLog.ts b/npm-packages/dashboard-common/src/lib/useDeploymentAuditLog.ts index 4da746d42..e84e7ff73 100644 --- a/npm-packages/dashboard-common/src/lib/useDeploymentAuditLog.ts +++ b/npm-packages/dashboard-common/src/lib/useDeploymentAuditLog.ts @@ -3,7 +3,7 @@ import { usePaginatedQuery } from "convex/react"; import udfs from "udfs"; import { Doc } from "system-udfs/convex/_generated/dataModel"; import { useEffect, useContext } from "react"; -import { DeploymentInfoContext } from "lib/deploymentContext"; +import { DeploymentInfoContext } from "@common/lib/deploymentContext"; export type DeploymentAuditLogEvent = Doc<"_deployment_audit_log"> & { memberName: string; diff --git a/npm-packages/dashboard-common/src/lib/useIsOverflowing.test.tsx b/npm-packages/dashboard-common/src/lib/useIsOverflowing.test.tsx index 62a48f051..38128adf8 100644 --- a/npm-packages/dashboard-common/src/lib/useIsOverflowing.test.tsx +++ b/npm-packages/dashboard-common/src/lib/useIsOverflowing.test.tsx @@ -1,6 +1,6 @@ import React from "react"; import { renderHook } from "@testing-library/react"; -import { useIsOverflowing } from "lib/useIsOverflowing"; +import { useIsOverflowing } from "@common/lib/useIsOverflowing"; type FakeElement = { scrollWidth: number; diff --git a/npm-packages/dashboard-common/src/lib/useLogs.test.ts b/npm-packages/dashboard-common/src/lib/useLogs.test.ts index b90488175..8aca65155 100644 --- a/npm-packages/dashboard-common/src/lib/useLogs.test.ts +++ b/npm-packages/dashboard-common/src/lib/useLogs.test.ts @@ -3,9 +3,9 @@ import { FunctionExecutionCompletion, FunctionExecutionProgess, } from "system-udfs/convex/_system/frontend/common"; -import { entryOutcome, entryOutput, processLogs } from "lib/useLogs"; -import { functionIdentifierValue } from "lib/functions/generateFileTree"; -import { formatDateTime } from "lib/format"; +import { entryOutcome, entryOutput, processLogs } from "@common/lib/useLogs"; +import { functionIdentifierValue } from "@common/lib/functions/generateFileTree"; +import { formatDateTime } from "@common/lib/format"; function createExecutionCompletion( overrides: Partial, diff --git a/npm-packages/dashboard-common/src/lib/useLogs.ts b/npm-packages/dashboard-common/src/lib/useLogs.ts index 143bbbe31..0793dbdfa 100644 --- a/npm-packages/dashboard-common/src/lib/useLogs.ts +++ b/npm-packages/dashboard-common/src/lib/useLogs.ts @@ -8,12 +8,15 @@ import { LogLevel, } from "system-udfs/convex/_system/frontend/common"; import uniqueId from "lodash/uniqueId"; -import { useDeploymentAuthHeader, useDeploymentUrl } from "lib/deploymentApi"; -import { RequestFilter, streamFunctionLogs } from "lib/appMetrics"; -import { backoffWithJitter } from "lib/utils"; -import { formatDateTime } from "lib/format"; -import { functionIdentifierValue } from "lib/functions/generateFileTree"; -import { displayNameToIdentifier } from "lib/functions/FunctionsProvider"; +import { + useDeploymentAuthHeader, + useDeploymentUrl, +} from "@common/lib/deploymentApi"; +import { RequestFilter, streamFunctionLogs } from "@common/lib/appMetrics"; +import { backoffWithJitter } from "@common/lib/utils"; +import { formatDateTime } from "@common/lib/format"; +import { functionIdentifierValue } from "@common/lib/functions/generateFileTree"; +import { displayNameToIdentifier } from "@common/lib/functions/FunctionsProvider"; // backoffWithJitter's initial backoff is 500ms // 500 + 1000 + 2000 + 4000 -> Toast a connection error after 7.5s diff --git a/npm-packages/dashboard-common/src/lib/usePrettyReadonlyCode.tsx b/npm-packages/dashboard-common/src/lib/usePrettyReadonlyCode.tsx index 0416db778..f9aaa7a86 100644 --- a/npm-packages/dashboard-common/src/lib/usePrettyReadonlyCode.tsx +++ b/npm-packages/dashboard-common/src/lib/usePrettyReadonlyCode.tsx @@ -1,7 +1,10 @@ import { convexToJson, Value } from "convex/values"; import { useCallback, useEffect, useRef, useState } from "react"; import sizeof from "object-sizeof"; -import { ReadonlyCode, type ReadonlyCodeProps } from "elements/ReadonlyCode"; +import { + ReadonlyCode, + type ReadonlyCodeProps, +} from "@common/elements/ReadonlyCode"; const MAX_CODE_SIZE_KB = 10; diff --git a/npm-packages/dashboard-common/src/lib/useTableMetadata.tsx b/npm-packages/dashboard-common/src/lib/useTableMetadata.tsx index 62163e80a..6d2413fb8 100644 --- a/npm-packages/dashboard-common/src/lib/useTableMetadata.tsx +++ b/npm-packages/dashboard-common/src/lib/useTableMetadata.tsx @@ -1,7 +1,7 @@ import { useCallback, useEffect } from "react"; import { Shape } from "shapes"; import { NextRouter, useRouter } from "next/router"; -import { useTableShapes } from "lib/deploymentApi"; +import { useTableShapes } from "@common/lib/deploymentApi"; export type TableMetadata = { name: string | null; diff --git a/npm-packages/dashboard-common/tsconfig.json b/npm-packages/dashboard-common/tsconfig.json index 14babac41..0b10b09b9 100644 --- a/npm-packages/dashboard-common/tsconfig.json +++ b/npm-packages/dashboard-common/tsconfig.json @@ -7,10 +7,6 @@ "skipLibCheck": true, "strict": true, "forceConsistentCasingInFileNames": true, - "declaration": true, - "declarationMap": true, - "sourceMap": true, - "emitDeclarationOnly": false, "esModuleInterop": true, "module": "ESNext", "moduleResolution": "bundler", @@ -20,9 +16,13 @@ "baseUrl": "./src", "rootDir": "./src", "customConditions": ["convex-internal-types"], - "outDir": "dist", - "isolatedModules": true + "isolatedModules": true, + "noEmit": true, + "outDir": "./dist", + "paths": { + "@common/*": ["*"] + } }, "include": ["src/**/*", "src/*", "next-env.d.ts"], - "exclude": ["node_modules", "src/**/*.stories.tsx", "dist"] + "exclude": ["node_modules", "src/**/*.stories.tsx"] } diff --git a/npm-packages/dashboard-self-hosted/next.config.js b/npm-packages/dashboard-self-hosted/next.config.js index c944d8513..46c953b28 100644 --- a/npm-packages/dashboard-self-hosted/next.config.js +++ b/npm-packages/dashboard-self-hosted/next.config.js @@ -1,3 +1,5 @@ +const path = require("path"); + const ContentSecurityPolicy = ` frame-ancestors 'self'; `; @@ -60,6 +62,31 @@ const nextConfig = { use: ["@svgr/webpack"], }); + config.resolve.alias = { + ...config.resolve.alias, + "dashboard-common": path.resolve(__dirname, "../dashboard-common/src"), + "@local/elements": path.resolve( + __dirname, + "../dashboard-common/src/elements", + ), + "@local/lib": path.resolve(__dirname, "../dashboard-common/src/lib"), + "@local/features": path.resolve( + __dirname, + "../dashboard-common/src/features", + ), + "@local/layouts": path.resolve( + __dirname, + "../dashboard-common/src/layouts", + ), + }; + config.resolve.symlinks = true; // Ensure Webpack follows symlinks + // Force Webpack to watch changes in the src directory of local packages + config.watchOptions = { + ignored: [ + "**/node_modules/**", // Ignore other node_modules + "!**/node_modules/dashboard-common/src/**", // But watch src/ + ], + }; // Since Webpack 5 doesn't enable WebAssembly by default, we should do it manually config.experiments = { ...config.experiments, asyncWebAssembly: true }; // Fix warnings for async functions in the browser (https://github.com/vercel/next.js/issues/64792) diff --git a/npm-packages/dashboard-self-hosted/package.json b/npm-packages/dashboard-self-hosted/package.json index 294f44827..73f534ff6 100644 --- a/npm-packages/dashboard-self-hosted/package.json +++ b/npm-packages/dashboard-self-hosted/package.json @@ -24,6 +24,7 @@ "@tailwindcss/forms": "^0.5.6", "@types/react": "^18.0.0", "@types/react-dom": "^18.0.0", + "@types/react-table": "^7.7.2", "@typescript-eslint/eslint-plugin": "^6.7.4", "@typescript-eslint/parser": "^6.7.4", "autoprefixer": "^10.4.13", diff --git a/npm-packages/dashboard-self-hosted/src/react-table-config.d.ts b/npm-packages/dashboard-self-hosted/src/react-table-config.d.ts new file mode 100644 index 000000000..2c85749c3 --- /dev/null +++ b/npm-packages/dashboard-self-hosted/src/react-table-config.d.ts @@ -0,0 +1,150 @@ +// https://stackoverflow.com/questions/62758670/something-went-wrong-with-react-table-using-typescript + +import { MouseEventHandler } from "react"; + +import { + TableInstance, + UseColumnOrderInstanceProps, + UseColumnOrderState, + UseExpandedHooks, + UseExpandedInstanceProps, + UseExpandedOptions, + UseExpandedRowProps, + UseExpandedState, + UseFiltersColumnOptions, + UseFiltersColumnProps, + UseFiltersInstanceProps, + UseFiltersOptions, + UseFiltersState, + UseGlobalFiltersInstanceProps, + UseGlobalFiltersOptions, + UseGlobalFiltersState, + UseGroupByCellProps, + UseGroupByColumnOptions, + UseGroupByColumnProps, + UseGroupByHooks, + UseGroupByInstanceProps, + UseGroupByOptions, + UseGroupByRowProps, + UseGroupByState, + UsePaginationInstanceProps, + UsePaginationOptions, + UsePaginationState, + UseResizeColumnsColumnOptions, + UseResizeColumnsColumnProps, + UseResizeColumnsOptions, + UseResizeColumnsState, + UseRowSelectHooks, + UseRowSelectInstanceProps, + UseRowSelectOptions, + UseRowSelectRowProps, + UseRowSelectState, + UseSortByColumnOptions, + UseSortByColumnProps, + UseSortByHooks, + UseSortByInstanceProps, + UseSortByOptions, + UseSortByState, +} from "react-table"; + +declare module "react-table" { + export interface UseFlexLayoutInstanceProps< + // eslint-disable-next-line @typescript-eslint/no-unused-vars + D extends Record, + > { + totalColumnsMinWidth: number; + } + + // eslint-disable-next-line @typescript-eslint/no-unused-vars + export interface UseFlexLayoutColumnProps> { + totalMinWidth: number; + } + + export interface TableOptions> + extends UseExpandedOptions, + UseFiltersOptions, + UseFiltersOptions, + UseGlobalFiltersOptions, + UseGroupByOptions, + UsePaginationOptions, + UseResizeColumnsOptions, + UseRowSelectOptions, + UseSortByOptions {} + + export interface Hooks< + D extends Record = Record, + > extends UseExpandedHooks, + UseGroupByHooks, + UseRowSelectHooks, + UseSortByHooks {} + + export interface TableInstance< + D extends Record = Record, + > extends UseColumnOrderInstanceProps, + UseExpandedInstanceProps, + UseFiltersInstanceProps, + UseGlobalFiltersInstanceProps, + UseGroupByInstanceProps, + UsePaginationInstanceProps, + UseRowSelectInstanceProps, + UseFlexLayoutInstanceProps, + UsePaginationInstanceProps, + UseSortByInstanceProps {} + + export interface TableState< + D extends Record = Record, + > extends UseColumnOrderState, + UseExpandedState, + UseFiltersState, + UseGlobalFiltersState, + UseGroupByState, + UsePaginationState, + UseResizeColumnsState, + UseRowSelectState, + UseSortByState { + rowCount: number; + } + + export interface ColumnInterface< + D extends Record = Record, + > extends UseFiltersColumnOptions, + UseGroupByColumnOptions, + UseResizeColumnsColumnOptions, + UseSortByColumnOptions { + align?: string; + } + + export interface ColumnInstance< + D extends Record = Record, + > extends UseFiltersColumnProps, + UseGroupByColumnProps, + UseResizeColumnsColumnProps, + UseFlexLayoutColumnProps, + UseSortByColumnProps {} + + export interface Cell< + D extends Record = Record, + > extends UseGroupByCellProps {} + + export interface Row + extends UseExpandedRowProps, + UseGroupByRowProps, + UseRowSelectRowProps {} + + export interface TableCommonProps { + title?: string; + "aria-label"?: string; + } + + export interface TableSortByToggleProps { + title?: string; + } + + export interface TableGroupByToggleProps { + title?: string; + } +} + +export type TableMouseEventHandler = ( + instance: TableInstance, +) => MouseEventHandler; diff --git a/npm-packages/dashboard-self-hosted/tsconfig.json b/npm-packages/dashboard-self-hosted/tsconfig.json index 3d7a1e129..497ccdb79 100644 --- a/npm-packages/dashboard-self-hosted/tsconfig.json +++ b/npm-packages/dashboard-self-hosted/tsconfig.json @@ -16,7 +16,11 @@ "jsx": "preserve", "incremental": true, "baseUrl": "src", - "customConditions": ["convex-internal-types"] + "customConditions": ["convex-internal-types"], + "paths": { + "dashboard-common": ["../dashboard-common/src"], + "@common/*": ["../../dashboard-common/src/*"] + } }, "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], "exclude": ["node_modules"] diff --git a/npm-packages/dashboard/jest.config.ts b/npm-packages/dashboard/jest.config.ts index da9d8a7a1..20d7b09b2 100644 --- a/npm-packages/dashboard/jest.config.ts +++ b/npm-packages/dashboard/jest.config.ts @@ -12,6 +12,7 @@ const customJestConfig = { moduleNameMapper: { "react-dnd": "/__mocks__/fileMock.js", "react-dnd-scrolling": "/__mocks__/fileMock.js", + "dashboard-common": "/../dashboard-common/src/$1", }, }; diff --git a/npm-packages/dashboard/next.config.js b/npm-packages/dashboard/next.config.js index dbca3f77f..82e85755c 100644 --- a/npm-packages/dashboard/next.config.js +++ b/npm-packages/dashboard/next.config.js @@ -1,5 +1,6 @@ const { withSentryConfig } = require("@sentry/nextjs"); const { DefinePlugin } = require("webpack"); +const path = require("path"); const ContentSecurityPolicy = ` frame-ancestors 'self'; @@ -113,6 +114,32 @@ const nextConfig = { }, // from https://github.com/vercel/next.js/blob/c110dfd57c754f88cb239dc154a4b7d49e5696a3/examples/with-webassembly/next.config.js webpack(config, { isServer, dev }) { + config.resolve.alias = { + ...config.resolve.alias, + "dashboard-common": path.resolve(__dirname, "../dashboard-common/src"), + "@local/elements": path.resolve( + __dirname, + "../dashboard-common/src/elements", + ), + "@local/lib": path.resolve(__dirname, "../dashboard-common/src/lib"), + "@local/features": path.resolve( + __dirname, + "../dashboard-common/src/features", + ), + "@local/layouts": path.resolve( + __dirname, + "../dashboard-common/src/layouts", + ), + }; + config.resolve.symlinks = true; // Ensure Webpack follows symlinks + // Force Webpack to watch changes in the src directory of local packages + config.watchOptions = { + ignored: [ + "**/node_modules/**", // Ignore other node_modules + "!**/node_modules/dashboard-common/src/**", // But watch src/ + ], + }; + // next.config.js config.module.rules.push({ test: /\.(mp3|wav|m4a)$/, diff --git a/npm-packages/dashboard/tsconfig.json b/npm-packages/dashboard/tsconfig.json index 3d7a1e129..497ccdb79 100644 --- a/npm-packages/dashboard/tsconfig.json +++ b/npm-packages/dashboard/tsconfig.json @@ -16,7 +16,11 @@ "jsx": "preserve", "incremental": true, "baseUrl": "src", - "customConditions": ["convex-internal-types"] + "customConditions": ["convex-internal-types"], + "paths": { + "dashboard-common": ["../dashboard-common/src"], + "@common/*": ["../../dashboard-common/src/*"] + } }, "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], "exclude": ["node_modules"]