diff --git a/.eslintrc.json b/.eslintrc.json index 691ae90c..82f6a122 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -13,13 +13,6 @@ "ecmaVersion": 11, "sourceType": "module" }, - "settings": { - "import/resolver": { - "node": { - "moduleDirectory": ["node_modules", "src/"] - } - } - }, "extends": [ "plugin:@typescript-eslint/recommended", "eslint:recommended", diff --git a/src/app/(main)/App.tsx b/src/app/(main)/App.tsx index aca94bc2..4cbb1c80 100644 --- a/src/app/(main)/App.tsx +++ b/src/app/(main)/App.tsx @@ -2,7 +2,7 @@ import { Loading } from 'react-basics'; import Script from 'next/script'; import { usePathname } from 'next/navigation'; -import { useLogin, useConfig } from 'components/hooks'; +import { useLogin, useConfig } from '@/components/hooks'; import UpdateNotice from './UpdateNotice'; export function App({ children }) { diff --git a/src/app/(main)/NavBar.tsx b/src/app/(main)/NavBar.tsx index a4c70662..147f7085 100644 --- a/src/app/(main)/NavBar.tsx +++ b/src/app/(main)/NavBar.tsx @@ -3,14 +3,14 @@ import { useEffect } from 'react'; import { Icon, Text } from 'react-basics'; import Link from 'next/link'; import classNames from 'classnames'; -import HamburgerButton from 'components/common/HamburgerButton'; -import ThemeButton from 'components/input/ThemeButton'; -import LanguageButton from 'components/input/LanguageButton'; -import ProfileButton from 'components/input/ProfileButton'; -import TeamsButton from 'components/input/TeamsButton'; -import Icons from 'components/icons'; -import { useMessages, useNavigation, useTeamUrl } from 'components/hooks'; -import { getItem, setItem } from 'lib/storage'; +import HamburgerButton from '@/components/common/HamburgerButton'; +import ThemeButton from '@/components/input/ThemeButton'; +import LanguageButton from '@/components/input/LanguageButton'; +import ProfileButton from '@/components/input/ProfileButton'; +import TeamsButton from '@/components/input/TeamsButton'; +import Icons from '@/components/icons'; +import { useMessages, useNavigation, useTeamUrl } from '@/components/hooks'; +import { getItem, setItem } from '@/lib/storage'; import styles from './NavBar.module.css'; export function NavBar() { diff --git a/src/app/(main)/UpdateNotice.tsx b/src/app/(main)/UpdateNotice.tsx index 338d2f14..7504943b 100644 --- a/src/app/(main)/UpdateNotice.tsx +++ b/src/app/(main)/UpdateNotice.tsx @@ -1,10 +1,10 @@ import { useEffect, useCallback, useState } from 'react'; import { createPortal } from 'react-dom'; import { Button } from 'react-basics'; -import { setItem } from 'lib/storage'; -import useStore, { checkVersion } from 'store/version'; -import { REPO_URL, VERSION_CHECK } from 'lib/constants'; -import { useMessages } from 'components/hooks'; +import { setItem } from '@/lib/storage'; +import useStore, { checkVersion } from '@/store/version'; +import { REPO_URL, VERSION_CHECK } from '@/lib/constants'; +import { useMessages } from '@/components/hooks'; import { usePathname } from 'next/navigation'; import styles from './UpdateNotice.module.css'; diff --git a/src/app/(main)/console/TestConsole.tsx b/src/app/(main)/console/TestConsole.tsx index 6842b26d..21b98df6 100644 --- a/src/app/(main)/console/TestConsole.tsx +++ b/src/app/(main)/console/TestConsole.tsx @@ -1,12 +1,12 @@ import { Button } from 'react-basics'; import Link from 'next/link'; import Script from 'next/script'; -import WebsiteSelect from 'components/input/WebsiteSelect'; -import Page from 'components/layout/Page'; -import PageHeader from 'components/layout/PageHeader'; -import EventsChart from 'components/metrics/EventsChart'; +import WebsiteSelect from '@/components/input/WebsiteSelect'; +import Page from '@/components/layout/Page'; +import PageHeader from '@/components/layout/PageHeader'; +import EventsChart from '@/components/metrics/EventsChart'; import WebsiteChart from '../websites/[websiteId]/WebsiteChart'; -import { useApi, useNavigation } from 'components/hooks'; +import { useApi, useNavigation } from '@/components/hooks'; import styles from './TestConsole.module.css'; export function TestConsole({ websiteId }: { websiteId: string }) { diff --git a/src/app/(main)/dashboard/DashboardEdit.tsx b/src/app/(main)/dashboard/DashboardEdit.tsx index 3360aaee..d15ae197 100644 --- a/src/app/(main)/dashboard/DashboardEdit.tsx +++ b/src/app/(main)/dashboard/DashboardEdit.tsx @@ -3,8 +3,8 @@ import { DragDropContext, Draggable, Droppable } from '@hello-pangea/dnd'; import classNames from 'classnames'; import { Button, Loading, Toggle, SearchField } from 'react-basics'; import { firstBy } from 'thenby'; -import useDashboard, { saveDashboard } from 'store/dashboard'; -import { useMessages, useWebsites } from 'components/hooks'; +import useDashboard, { saveDashboard } from '@/store/dashboard'; +import { useMessages, useWebsites } from '@/components/hooks'; import styles from './DashboardEdit.module.css'; const DRAG_ID = 'dashboard-website-ordering'; diff --git a/src/app/(main)/dashboard/DashboardPage.tsx b/src/app/(main)/dashboard/DashboardPage.tsx index 2a4bb916..83b27e09 100644 --- a/src/app/(main)/dashboard/DashboardPage.tsx +++ b/src/app/(main)/dashboard/DashboardPage.tsx @@ -1,14 +1,14 @@ 'use client'; import { Icon, Icons, Loading, Text } from 'react-basics'; -import PageHeader from 'components/layout/PageHeader'; -import Pager from 'components/common/Pager'; +import PageHeader from '@/components/layout/PageHeader'; +import Pager from '@/components/common/Pager'; import WebsiteChartList from '../websites/[websiteId]/WebsiteChartList'; -import DashboardSettingsButton from 'app/(main)/dashboard/DashboardSettingsButton'; -import DashboardEdit from 'app/(main)/dashboard/DashboardEdit'; -import EmptyPlaceholder from 'components/common/EmptyPlaceholder'; -import { useMessages, useLocale, useTeamUrl, useWebsites } from 'components/hooks'; -import useDashboard from 'store/dashboard'; -import LinkButton from 'components/common/LinkButton'; +import DashboardSettingsButton from '@/app/(main)/dashboard/DashboardSettingsButton'; +import DashboardEdit from '@/app/(main)/dashboard/DashboardEdit'; +import EmptyPlaceholder from '@/components/common/EmptyPlaceholder'; +import { useMessages, useLocale, useTeamUrl, useWebsites } from '@/components/hooks'; +import useDashboard from '@/store/dashboard'; +import LinkButton from '@/components/common/LinkButton'; export function DashboardPage() { const { formatMessage, labels, messages } = useMessages(); diff --git a/src/app/(main)/dashboard/DashboardSettingsButton.tsx b/src/app/(main)/dashboard/DashboardSettingsButton.tsx index 9e1d3dbc..1c473a22 100644 --- a/src/app/(main)/dashboard/DashboardSettingsButton.tsx +++ b/src/app/(main)/dashboard/DashboardSettingsButton.tsx @@ -1,7 +1,7 @@ import { TooltipPopup, Icon, Text, Flexbox, Button } from 'react-basics'; -import Icons from 'components/icons'; -import { saveDashboard } from 'store/dashboard'; -import { useMessages } from 'components/hooks'; +import Icons from '@/components/icons'; +import { saveDashboard } from '@/store/dashboard'; +import { useMessages } from '@/components/hooks'; export function DashboardSettingsButton() { const { formatMessage, labels } = useMessages(); diff --git a/src/app/(main)/layout.tsx b/src/app/(main)/layout.tsx index 8e47d7ee..dd1baec8 100644 --- a/src/app/(main)/layout.tsx +++ b/src/app/(main)/layout.tsx @@ -1,7 +1,7 @@ import { Metadata } from 'next'; import App from './App'; import NavBar from './NavBar'; -import Page from 'components/layout/Page'; +import Page from '@/components/layout/Page'; import styles from './layout.module.css'; export default async function ({ children }) { diff --git a/src/app/(main)/profile/DateRangeSetting.tsx b/src/app/(main)/profile/DateRangeSetting.tsx index 25b5afbd..37d2ca43 100644 --- a/src/app/(main)/profile/DateRangeSetting.tsx +++ b/src/app/(main)/profile/DateRangeSetting.tsx @@ -1,8 +1,8 @@ -import DateFilter from 'components/input/DateFilter'; +import DateFilter from '@/components/input/DateFilter'; import { Button, Flexbox } from 'react-basics'; -import { useDateRange, useMessages } from 'components/hooks'; -import { DEFAULT_DATE_RANGE } from 'lib/constants'; -import { DateRange } from 'lib/types'; +import { useDateRange, useMessages } from '@/components/hooks'; +import { DEFAULT_DATE_RANGE } from '@/lib/constants'; +import { DateRange } from '@/lib/types'; import styles from './DateRangeSetting.module.css'; export function DateRangeSetting() { diff --git a/src/app/(main)/profile/LanguageSetting.tsx b/src/app/(main)/profile/LanguageSetting.tsx index 41ff3dde..a47394b3 100644 --- a/src/app/(main)/profile/LanguageSetting.tsx +++ b/src/app/(main)/profile/LanguageSetting.tsx @@ -1,8 +1,8 @@ import { useState } from 'react'; import { Button, Dropdown, Item, Flexbox } from 'react-basics'; -import { useLocale, useMessages } from 'components/hooks'; -import { DEFAULT_LOCALE } from 'lib/constants'; -import { languages } from 'lib/lang'; +import { useLocale, useMessages } from '@/components/hooks'; +import { DEFAULT_LOCALE } from '@/lib/constants'; +import { languages } from '@/lib/lang'; import styles from './LanguageSetting.module.css'; export function LanguageSetting() { diff --git a/src/app/(main)/profile/PasswordChangeButton.tsx b/src/app/(main)/profile/PasswordChangeButton.tsx index 552663ca..63249a2b 100644 --- a/src/app/(main)/profile/PasswordChangeButton.tsx +++ b/src/app/(main)/profile/PasswordChangeButton.tsx @@ -1,7 +1,7 @@ import { Button, Icon, Text, useToasts, ModalTrigger, Modal } from 'react-basics'; -import PasswordEditForm from 'app/(main)/profile/PasswordEditForm'; -import Icons from 'components/icons'; -import { useMessages } from 'components/hooks'; +import PasswordEditForm from '@/app/(main)/profile/PasswordEditForm'; +import Icons from '@/components/icons'; +import { useMessages } from '@/components/hooks'; export function PasswordChangeButton() { const { formatMessage, labels, messages } = useMessages(); diff --git a/src/app/(main)/profile/PasswordEditForm.tsx b/src/app/(main)/profile/PasswordEditForm.tsx index 1402efa2..c352d516 100644 --- a/src/app/(main)/profile/PasswordEditForm.tsx +++ b/src/app/(main)/profile/PasswordEditForm.tsx @@ -1,6 +1,6 @@ import { useRef } from 'react'; import { Form, FormRow, FormInput, FormButtons, PasswordField, Button } from 'react-basics'; -import { useApi, useMessages } from 'components/hooks'; +import { useApi, useMessages } from '@/components/hooks'; export function PasswordEditForm({ onSave, onClose }) { const { formatMessage, labels, messages } = useMessages(); diff --git a/src/app/(main)/profile/ProfileHeader.tsx b/src/app/(main)/profile/ProfileHeader.tsx index e2d69cc7..05871fba 100644 --- a/src/app/(main)/profile/ProfileHeader.tsx +++ b/src/app/(main)/profile/ProfileHeader.tsx @@ -1,5 +1,5 @@ -import PageHeader from 'components/layout/PageHeader'; -import { useMessages } from 'components/hooks'; +import PageHeader from '@/components/layout/PageHeader'; +import { useMessages } from '@/components/hooks'; export function ProfileHeader() { const { formatMessage, labels } = useMessages(); diff --git a/src/app/(main)/profile/ProfileSettings.tsx b/src/app/(main)/profile/ProfileSettings.tsx index 9c7db39f..f9dfe06d 100644 --- a/src/app/(main)/profile/ProfileSettings.tsx +++ b/src/app/(main)/profile/ProfileSettings.tsx @@ -1,11 +1,11 @@ import { Form, FormRow } from 'react-basics'; -import TimezoneSetting from 'app/(main)/profile/TimezoneSetting'; -import DateRangeSetting from 'app/(main)/profile/DateRangeSetting'; -import LanguageSetting from 'app/(main)/profile/LanguageSetting'; -import ThemeSetting from 'app/(main)/profile/ThemeSetting'; +import TimezoneSetting from '@/app/(main)/profile/TimezoneSetting'; +import DateRangeSetting from '@/app/(main)/profile/DateRangeSetting'; +import LanguageSetting from '@/app/(main)/profile/LanguageSetting'; +import ThemeSetting from '@/app/(main)/profile/ThemeSetting'; import PasswordChangeButton from './PasswordChangeButton'; -import { useLogin, useMessages } from 'components/hooks'; -import { ROLES } from 'lib/constants'; +import { useLogin, useMessages } from '@/components/hooks'; +import { ROLES } from '@/lib/constants'; export function ProfileSettings() { const { user } = useLogin(); diff --git a/src/app/(main)/profile/ThemeSetting.tsx b/src/app/(main)/profile/ThemeSetting.tsx index 577728b7..49ea7161 100644 --- a/src/app/(main)/profile/ThemeSetting.tsx +++ b/src/app/(main)/profile/ThemeSetting.tsx @@ -1,8 +1,8 @@ import classNames from 'classnames'; import { Button, Icon } from 'react-basics'; -import { useTheme } from 'components/hooks'; -import Sun from 'assets/sun.svg'; -import Moon from 'assets/moon.svg'; +import { useTheme } from '@/components/hooks'; +import Sun from '@/assets/sun.svg'; +import Moon from '@/assets/moon.svg'; import styles from './ThemeSetting.module.css'; export function ThemeSetting() { diff --git a/src/app/(main)/profile/TimezoneSetting.tsx b/src/app/(main)/profile/TimezoneSetting.tsx index 00858ac7..56c85813 100644 --- a/src/app/(main)/profile/TimezoneSetting.tsx +++ b/src/app/(main)/profile/TimezoneSetting.tsx @@ -1,7 +1,7 @@ import { useState } from 'react'; import { Dropdown, Item, Button, Flexbox } from 'react-basics'; -import { useTimezone, useMessages } from 'components/hooks'; -import { getTimezone } from 'lib/date'; +import { useTimezone, useMessages } from '@/components/hooks'; +import { getTimezone } from '@/lib/date'; import styles from './TimezoneSetting.module.css'; const timezones = Intl.supportedValuesOf('timeZone'); diff --git a/src/app/(main)/reports/ReportDeleteButton.tsx b/src/app/(main)/reports/ReportDeleteButton.tsx index d51f7144..504f4ee3 100644 --- a/src/app/(main)/reports/ReportDeleteButton.tsx +++ b/src/app/(main)/reports/ReportDeleteButton.tsx @@ -1,6 +1,6 @@ import { Button, Icon, Icons, Modal, ModalTrigger, Text } from 'react-basics'; -import { useApi, useMessages, useModified } from 'components/hooks'; -import ConfirmationForm from 'components/common/ConfirmationForm'; +import { useApi, useMessages, useModified } from '@/components/hooks'; +import ConfirmationForm from '@/components/common/ConfirmationForm'; export function ReportDeleteButton({ reportId, diff --git a/src/app/(main)/reports/ReportsDataTable.tsx b/src/app/(main)/reports/ReportsDataTable.tsx index b03edfc2..0cc5a96c 100644 --- a/src/app/(main)/reports/ReportsDataTable.tsx +++ b/src/app/(main)/reports/ReportsDataTable.tsx @@ -1,6 +1,6 @@ -import { useReports } from 'components/hooks'; +import { useReports } from '@/components/hooks'; import ReportsTable from './ReportsTable'; -import DataTable from 'components/common/DataTable'; +import DataTable from '@/components/common/DataTable'; import { ReactNode } from 'react'; export default function ReportsDataTable({ diff --git a/src/app/(main)/reports/ReportsHeader.tsx b/src/app/(main)/reports/ReportsHeader.tsx index 92f538ea..ff9cb294 100644 --- a/src/app/(main)/reports/ReportsHeader.tsx +++ b/src/app/(main)/reports/ReportsHeader.tsx @@ -1,8 +1,8 @@ -import PageHeader from 'components/layout/PageHeader'; +import PageHeader from '@/components/layout/PageHeader'; import { Icon, Icons, Text } from 'react-basics'; -import { useLogin, useMessages, useTeamUrl } from 'components/hooks'; -import LinkButton from 'components/common/LinkButton'; -import { ROLES } from 'lib/constants'; +import { useLogin, useMessages, useTeamUrl } from '@/components/hooks'; +import LinkButton from '@/components/common/LinkButton'; +import { ROLES } from '@/lib/constants'; export function ReportsHeader() { const { formatMessage, labels } = useMessages(); diff --git a/src/app/(main)/reports/ReportsPage.tsx b/src/app/(main)/reports/ReportsPage.tsx index 5b031cfa..64d43c70 100644 --- a/src/app/(main)/reports/ReportsPage.tsx +++ b/src/app/(main)/reports/ReportsPage.tsx @@ -2,7 +2,7 @@ import { Metadata } from 'next'; import ReportsHeader from './ReportsHeader'; import ReportsDataTable from './ReportsDataTable'; -import { useTeamUrl } from 'components/hooks'; +import { useTeamUrl } from '@/components/hooks'; export default function ReportsPage() { const { teamId } = useTeamUrl(); diff --git a/src/app/(main)/reports/ReportsTable.tsx b/src/app/(main)/reports/ReportsTable.tsx index c35468aa..a891b6d0 100644 --- a/src/app/(main)/reports/ReportsTable.tsx +++ b/src/app/(main)/reports/ReportsTable.tsx @@ -1,7 +1,7 @@ import { GridColumn, GridTable, Icon, Icons, Text } from 'react-basics'; -import LinkButton from 'components/common/LinkButton'; -import { useMessages, useLogin, useTeamUrl } from 'components/hooks'; -import { REPORT_TYPES } from 'lib/constants'; +import LinkButton from '@/components/common/LinkButton'; +import { useMessages, useLogin, useTeamUrl } from '@/components/hooks'; +import { REPORT_TYPES } from '@/lib/constants'; import ReportDeleteButton from './ReportDeleteButton'; export function ReportsTable({ data = [], showDomain }: { data: any[]; showDomain?: boolean }) { diff --git a/src/app/(main)/reports/[reportId]/BaseParameters.tsx b/src/app/(main)/reports/[reportId]/BaseParameters.tsx index 77de51f3..1f4881be 100644 --- a/src/app/(main)/reports/[reportId]/BaseParameters.tsx +++ b/src/app/(main)/reports/[reportId]/BaseParameters.tsx @@ -1,9 +1,9 @@ import { useContext } from 'react'; import { FormRow } from 'react-basics'; -import { parseDateRange } from 'lib/date'; -import DateFilter from 'components/input/DateFilter'; -import WebsiteSelect from 'components/input/WebsiteSelect'; -import { useMessages, useTeamUrl, useWebsite } from 'components/hooks'; +import { parseDateRange } from '@/lib/date'; +import DateFilter from '@/components/input/DateFilter'; +import WebsiteSelect from '@/components/input/WebsiteSelect'; +import { useMessages, useTeamUrl, useWebsite } from '@/components/hooks'; import { ReportContext } from './Report'; import styles from './BaseParameters.module.css'; diff --git a/src/app/(main)/reports/[reportId]/FieldAddForm.tsx b/src/app/(main)/reports/[reportId]/FieldAddForm.tsx index 9217ce4d..6560a947 100644 --- a/src/app/(main)/reports/[reportId]/FieldAddForm.tsx +++ b/src/app/(main)/reports/[reportId]/FieldAddForm.tsx @@ -1,6 +1,6 @@ import { useState } from 'react'; import { createPortal } from 'react-dom'; -import { REPORT_PARAMETERS } from 'lib/constants'; +import { REPORT_PARAMETERS } from '@/lib/constants'; import PopupForm from './PopupForm'; import FieldSelectForm from './FieldSelectForm'; diff --git a/src/app/(main)/reports/[reportId]/FieldAggregateForm.tsx b/src/app/(main)/reports/[reportId]/FieldAggregateForm.tsx index 6b5bf636..5db0e580 100644 --- a/src/app/(main)/reports/[reportId]/FieldAggregateForm.tsx +++ b/src/app/(main)/reports/[reportId]/FieldAggregateForm.tsx @@ -1,5 +1,5 @@ import { Form, FormRow, Menu, Item } from 'react-basics'; -import { useMessages } from 'components/hooks'; +import { useMessages } from '@/components/hooks'; export default function FieldAggregateForm({ name, diff --git a/src/app/(main)/reports/[reportId]/FieldFilterEditForm.tsx b/src/app/(main)/reports/[reportId]/FieldFilterEditForm.tsx index bfe4ff5f..d171c780 100644 --- a/src/app/(main)/reports/[reportId]/FieldFilterEditForm.tsx +++ b/src/app/(main)/reports/[reportId]/FieldFilterEditForm.tsx @@ -1,6 +1,12 @@ -import { useFilters, useFormat, useLocale, useMessages, useWebsiteValues } from 'components/hooks'; -import { OPERATORS } from 'lib/constants'; -import { isEqualsOperator } from 'lib/params'; +import { + useFilters, + useFormat, + useLocale, + useMessages, + useWebsiteValues, +} from '@/components/hooks'; +import { OPERATORS } from '@/lib/constants'; +import { isEqualsOperator } from '@/lib/params'; import { useMemo, useState } from 'react'; import { Button, diff --git a/src/app/(main)/reports/[reportId]/FieldParameters.tsx b/src/app/(main)/reports/[reportId]/FieldParameters.tsx index 36cfbda9..de80cc69 100644 --- a/src/app/(main)/reports/[reportId]/FieldParameters.tsx +++ b/src/app/(main)/reports/[reportId]/FieldParameters.tsx @@ -1,5 +1,5 @@ -import { useFields, useMessages } from 'components/hooks'; -import Icons from 'components/icons'; +import { useFields, useMessages } from '@/components/hooks'; +import Icons from '@/components/icons'; import { useContext } from 'react'; import { Button, FormRow, Icon, Popup, PopupTrigger } from 'react-basics'; import FieldSelectForm from '../[reportId]/FieldSelectForm'; diff --git a/src/app/(main)/reports/[reportId]/FieldSelectForm.tsx b/src/app/(main)/reports/[reportId]/FieldSelectForm.tsx index dfd402cf..f73d59f7 100644 --- a/src/app/(main)/reports/[reportId]/FieldSelectForm.tsx +++ b/src/app/(main)/reports/[reportId]/FieldSelectForm.tsx @@ -1,5 +1,5 @@ import { Menu, Item, Form, FormRow } from 'react-basics'; -import { useMessages } from 'components/hooks'; +import { useMessages } from '@/components/hooks'; import styles from './FieldSelectForm.module.css'; import { Key } from 'react'; diff --git a/src/app/(main)/reports/[reportId]/FilterParameters.tsx b/src/app/(main)/reports/[reportId]/FilterParameters.tsx index ddbe4d1e..538c4ce5 100644 --- a/src/app/(main)/reports/[reportId]/FilterParameters.tsx +++ b/src/app/(main)/reports/[reportId]/FilterParameters.tsx @@ -1,13 +1,13 @@ import { useContext } from 'react'; -import { useMessages, useFormat, useFilters, useFields } from 'components/hooks'; -import Icons from 'components/icons'; +import { useMessages, useFormat, useFilters, useFields } from '@/components/hooks'; +import Icons from '@/components/icons'; import { Button, FormRow, Icon, Popup, PopupTrigger } from 'react-basics'; import FilterSelectForm from '../[reportId]/FilterSelectForm'; import ParameterList from '../[reportId]/ParameterList'; import PopupForm from '../[reportId]/PopupForm'; import { ReportContext } from './Report'; import FieldFilterEditForm from '../[reportId]/FieldFilterEditForm'; -import { isSearchOperator } from 'lib/params'; +import { isSearchOperator } from '@/lib/params'; import styles from './FilterParameters.module.css'; export function FilterParameters() { diff --git a/src/app/(main)/reports/[reportId]/ParameterList.tsx b/src/app/(main)/reports/[reportId]/ParameterList.tsx index d4b6477b..3c0401a0 100644 --- a/src/app/(main)/reports/[reportId]/ParameterList.tsx +++ b/src/app/(main)/reports/[reportId]/ParameterList.tsx @@ -1,8 +1,8 @@ import { ReactNode } from 'react'; import { Icon } from 'react-basics'; -import Icons from 'components/icons'; -import Empty from 'components/common/Empty'; -import { useMessages } from 'components/hooks'; +import Icons from '@/components/icons'; +import Empty from '@/components/common/Empty'; +import { useMessages } from '@/components/hooks'; import styles from './ParameterList.module.css'; import classNames from 'classnames'; diff --git a/src/app/(main)/reports/[reportId]/Report.tsx b/src/app/(main)/reports/[reportId]/Report.tsx index d6de9d42..1aed007c 100644 --- a/src/app/(main)/reports/[reportId]/Report.tsx +++ b/src/app/(main)/reports/[reportId]/Report.tsx @@ -1,7 +1,7 @@ import { createContext, ReactNode } from 'react'; import { Loading } from 'react-basics'; import classNames from 'classnames'; -import { useReport } from 'components/hooks'; +import { useReport } from '@/components/hooks'; import styles from './Report.module.css'; export const ReportContext = createContext(null); diff --git a/src/app/(main)/reports/[reportId]/ReportHeader.tsx b/src/app/(main)/reports/[reportId]/ReportHeader.tsx index 7ab80fcd..816a2df3 100644 --- a/src/app/(main)/reports/[reportId]/ReportHeader.tsx +++ b/src/app/(main)/reports/[reportId]/ReportHeader.tsx @@ -1,10 +1,10 @@ import { useContext } from 'react'; import { Icon, LoadingButton, InlineEditField, useToasts } from 'react-basics'; -import { useMessages, useApi, useNavigation, useTeamUrl } from 'components/hooks'; +import { useMessages, useApi, useNavigation, useTeamUrl } from '@/components/hooks'; import { ReportContext } from './Report'; import styles from './ReportHeader.module.css'; -import { REPORT_TYPES } from 'lib/constants'; -import Breadcrumb from 'components/common/Breadcrumb'; +import { REPORT_TYPES } from '@/lib/constants'; +import Breadcrumb from '@/components/common/Breadcrumb'; export function ReportHeader({ icon }) { const { report, updateReport } = useContext(ReportContext); diff --git a/src/app/(main)/reports/[reportId]/ReportPage.tsx b/src/app/(main)/reports/[reportId]/ReportPage.tsx index da1a0342..8a3a94ad 100644 --- a/src/app/(main)/reports/[reportId]/ReportPage.tsx +++ b/src/app/(main)/reports/[reportId]/ReportPage.tsx @@ -1,5 +1,5 @@ 'use client'; -import { useReport } from 'components/hooks'; +import { useReport } from '@/components/hooks'; import EventDataReport from '../event-data/EventDataReport'; import FunnelReport from '../funnel/FunnelReport'; import GoalReport from '../goals/GoalsReport'; diff --git a/src/app/(main)/reports/create/ReportTemplates.tsx b/src/app/(main)/reports/create/ReportTemplates.tsx index af19d4aa..c26e3a91 100644 --- a/src/app/(main)/reports/create/ReportTemplates.tsx +++ b/src/app/(main)/reports/create/ReportTemplates.tsx @@ -1,12 +1,12 @@ -import Funnel from 'assets/funnel.svg'; -import Money from 'assets/money.svg'; -import Lightbulb from 'assets/lightbulb.svg'; -import Magnet from 'assets/magnet.svg'; -import Path from 'assets/path.svg'; -import Tag from 'assets/tag.svg'; -import Target from 'assets/target.svg'; -import { useMessages, useTeamUrl } from 'components/hooks'; -import PageHeader from 'components/layout/PageHeader'; +import Funnel from '@/assets/funnel.svg'; +import Money from '@/assets/money.svg'; +import Lightbulb from '@/assets/lightbulb.svg'; +import Magnet from '@/assets/magnet.svg'; +import Path from '@/assets/path.svg'; +import Tag from '@/assets/tag.svg'; +import Target from '@/assets/target.svg'; +import { useMessages, useTeamUrl } from '@/components/hooks'; +import PageHeader from '@/components/layout/PageHeader'; import Link from 'next/link'; import { Button, Icon, Icons, Text } from 'react-basics'; import styles from './ReportTemplates.module.css'; diff --git a/src/app/(main)/reports/event-data/EventDataParameters.tsx b/src/app/(main)/reports/event-data/EventDataParameters.tsx index 7b61c112..9e931cf5 100644 --- a/src/app/(main)/reports/event-data/EventDataParameters.tsx +++ b/src/app/(main)/reports/event-data/EventDataParameters.tsx @@ -1,9 +1,9 @@ import { useContext } from 'react'; import { Form, FormRow, FormButtons, SubmitButton, PopupTrigger, Icon, Popup } from 'react-basics'; -import Empty from 'components/common/Empty'; -import Icons from 'components/icons'; -import { useApi, useMessages } from 'components/hooks'; -import { DATA_TYPES, REPORT_PARAMETERS } from 'lib/constants'; +import Empty from '@/components/common/Empty'; +import Icons from '@/components/icons'; +import { useApi, useMessages } from '@/components/hooks'; +import { DATA_TYPES, REPORT_PARAMETERS } from '@/lib/constants'; import { ReportContext } from '../[reportId]/Report'; import FieldAddForm from '../[reportId]/FieldAddForm'; import ParameterList from '../[reportId]/ParameterList'; diff --git a/src/app/(main)/reports/event-data/EventDataReport.tsx b/src/app/(main)/reports/event-data/EventDataReport.tsx index fb786b31..8205a488 100644 --- a/src/app/(main)/reports/event-data/EventDataReport.tsx +++ b/src/app/(main)/reports/event-data/EventDataReport.tsx @@ -4,7 +4,7 @@ import ReportMenu from '../[reportId]/ReportMenu'; import ReportBody from '../[reportId]/ReportBody'; import EventDataParameters from './EventDataParameters'; import EventDataTable from './EventDataTable'; -import Nodes from 'assets/nodes.svg'; +import Nodes from '@/assets/nodes.svg'; const defaultParameters = { type: 'event-data', diff --git a/src/app/(main)/reports/event-data/EventDataTable.tsx b/src/app/(main)/reports/event-data/EventDataTable.tsx index 740cbce4..f42e792d 100644 --- a/src/app/(main)/reports/event-data/EventDataTable.tsx +++ b/src/app/(main)/reports/event-data/EventDataTable.tsx @@ -1,6 +1,6 @@ import { useContext } from 'react'; import { GridTable, GridColumn } from 'react-basics'; -import { useMessages } from 'components/hooks'; +import { useMessages } from '@/components/hooks'; import { ReportContext } from '../[reportId]/Report'; export function EventDataTable() { diff --git a/src/app/(main)/reports/funnel/FunnelChart.tsx b/src/app/(main)/reports/funnel/FunnelChart.tsx index 0da71d6f..be3da614 100644 --- a/src/app/(main)/reports/funnel/FunnelChart.tsx +++ b/src/app/(main)/reports/funnel/FunnelChart.tsx @@ -1,8 +1,8 @@ import { useContext } from 'react'; import classNames from 'classnames'; -import { useMessages } from 'components/hooks'; +import { useMessages } from '@/components/hooks'; import { ReportContext } from '../[reportId]/Report'; -import { formatLongNumber } from 'lib/format'; +import { formatLongNumber } from '@/lib/format'; import styles from './FunnelChart.module.css'; export interface FunnelChartProps { diff --git a/src/app/(main)/reports/funnel/FunnelParameters.tsx b/src/app/(main)/reports/funnel/FunnelParameters.tsx index ef4ffbfb..3db57135 100644 --- a/src/app/(main)/reports/funnel/FunnelParameters.tsx +++ b/src/app/(main)/reports/funnel/FunnelParameters.tsx @@ -1,5 +1,5 @@ import { useContext } from 'react'; -import { useMessages } from 'components/hooks'; +import { useMessages } from '@/components/hooks'; import { Icon, Form, @@ -12,7 +12,7 @@ import { TextField, Button, } from 'react-basics'; -import Icons from 'components/icons'; +import Icons from '@/components/icons'; import FunnelStepAddForm from './FunnelStepAddForm'; import { ReportContext } from '../[reportId]/Report'; import BaseParameters from '../[reportId]/BaseParameters'; diff --git a/src/app/(main)/reports/funnel/FunnelReport.tsx b/src/app/(main)/reports/funnel/FunnelReport.tsx index 850bbd90..e0c90e4a 100644 --- a/src/app/(main)/reports/funnel/FunnelReport.tsx +++ b/src/app/(main)/reports/funnel/FunnelReport.tsx @@ -4,8 +4,8 @@ import Report from '../[reportId]/Report'; import ReportHeader from '../[reportId]/ReportHeader'; import ReportMenu from '../[reportId]/ReportMenu'; import ReportBody from '../[reportId]/ReportBody'; -import Funnel from 'assets/funnel.svg'; -import { REPORT_TYPES } from 'lib/constants'; +import Funnel from '@/assets/funnel.svg'; +import { REPORT_TYPES } from '@/lib/constants'; const defaultParameters = { type: REPORT_TYPES.funnel, diff --git a/src/app/(main)/reports/funnel/FunnelStepAddForm.tsx b/src/app/(main)/reports/funnel/FunnelStepAddForm.tsx index 7d77b0c7..d7917d7d 100644 --- a/src/app/(main)/reports/funnel/FunnelStepAddForm.tsx +++ b/src/app/(main)/reports/funnel/FunnelStepAddForm.tsx @@ -1,5 +1,5 @@ import { useState } from 'react'; -import { useMessages } from 'components/hooks'; +import { useMessages } from '@/components/hooks'; import { Button, FormRow, TextField, Flexbox, Dropdown, Item } from 'react-basics'; import styles from './FunnelStepAddForm.module.css'; diff --git a/src/app/(main)/reports/goals/GoalsAddForm.tsx b/src/app/(main)/reports/goals/GoalsAddForm.tsx index a82eea28..b7354533 100644 --- a/src/app/(main)/reports/goals/GoalsAddForm.tsx +++ b/src/app/(main)/reports/goals/GoalsAddForm.tsx @@ -1,4 +1,4 @@ -import { useMessages } from 'components/hooks'; +import { useMessages } from '@/components/hooks'; import { useState } from 'react'; import { Button, Dropdown, Flexbox, FormRow, Item, TextField } from 'react-basics'; import styles from './GoalsAddForm.module.css'; diff --git a/src/app/(main)/reports/goals/GoalsChart.tsx b/src/app/(main)/reports/goals/GoalsChart.tsx index dedbd07c..34ea485e 100644 --- a/src/app/(main)/reports/goals/GoalsChart.tsx +++ b/src/app/(main)/reports/goals/GoalsChart.tsx @@ -1,8 +1,8 @@ import { useContext } from 'react'; import classNames from 'classnames'; -import { useMessages } from 'components/hooks'; +import { useMessages } from '@/components/hooks'; import { ReportContext } from '../[reportId]/Report'; -import { formatLongNumber } from 'lib/format'; +import { formatLongNumber } from '@/lib/format'; import styles from './GoalsChart.module.css'; export function GoalsChart({ className }: { className?: string; isLoading?: boolean }) { diff --git a/src/app/(main)/reports/goals/GoalsParameters.tsx b/src/app/(main)/reports/goals/GoalsParameters.tsx index 8d85dc20..51866645 100644 --- a/src/app/(main)/reports/goals/GoalsParameters.tsx +++ b/src/app/(main)/reports/goals/GoalsParameters.tsx @@ -1,6 +1,6 @@ -import { useMessages } from 'components/hooks'; -import Icons from 'components/icons'; -import { formatNumber } from 'lib/format'; +import { useMessages } from '@/components/hooks'; +import Icons from '@/components/icons'; +import { formatNumber } from '@/lib/format'; import { useContext } from 'react'; import { Button, diff --git a/src/app/(main)/reports/goals/GoalsReport.tsx b/src/app/(main)/reports/goals/GoalsReport.tsx index 020d7d09..ae540f3b 100644 --- a/src/app/(main)/reports/goals/GoalsReport.tsx +++ b/src/app/(main)/reports/goals/GoalsReport.tsx @@ -4,8 +4,8 @@ import Report from '../[reportId]/Report'; import ReportHeader from '../[reportId]/ReportHeader'; import ReportMenu from '../[reportId]/ReportMenu'; import ReportBody from '../[reportId]/ReportBody'; -import Target from 'assets/target.svg'; -import { REPORT_TYPES } from 'lib/constants'; +import Target from '@/assets/target.svg'; +import { REPORT_TYPES } from '@/lib/constants'; const defaultParameters = { type: REPORT_TYPES.goals, diff --git a/src/app/(main)/reports/insights/InsightsParameters.tsx b/src/app/(main)/reports/insights/InsightsParameters.tsx index 7f58de6a..6b3402fb 100644 --- a/src/app/(main)/reports/insights/InsightsParameters.tsx +++ b/src/app/(main)/reports/insights/InsightsParameters.tsx @@ -1,4 +1,4 @@ -import { useMessages } from 'components/hooks'; +import { useMessages } from '@/components/hooks'; import { useContext } from 'react'; import { Form, FormButtons, SubmitButton } from 'react-basics'; import BaseParameters from '../[reportId]/BaseParameters'; diff --git a/src/app/(main)/reports/insights/InsightsReport.tsx b/src/app/(main)/reports/insights/InsightsReport.tsx index adfbbd20..d43576fa 100644 --- a/src/app/(main)/reports/insights/InsightsReport.tsx +++ b/src/app/(main)/reports/insights/InsightsReport.tsx @@ -4,8 +4,8 @@ import ReportMenu from '../[reportId]/ReportMenu'; import ReportBody from '../[reportId]/ReportBody'; import InsightsParameters from './InsightsParameters'; import InsightsTable from './InsightsTable'; -import Lightbulb from 'assets/lightbulb.svg'; -import { REPORT_TYPES } from 'lib/constants'; +import Lightbulb from '@/assets/lightbulb.svg'; +import { REPORT_TYPES } from '@/lib/constants'; const defaultParameters = { type: REPORT_TYPES.insights, diff --git a/src/app/(main)/reports/insights/InsightsTable.tsx b/src/app/(main)/reports/insights/InsightsTable.tsx index 692d7824..6864d919 100644 --- a/src/app/(main)/reports/insights/InsightsTable.tsx +++ b/src/app/(main)/reports/insights/InsightsTable.tsx @@ -1,9 +1,9 @@ import { useContext, useEffect, useState } from 'react'; import { GridTable, GridColumn } from 'react-basics'; -import { useFormat, useMessages } from 'components/hooks'; +import { useFormat, useMessages } from '@/components/hooks'; import { ReportContext } from '../[reportId]/Report'; -import EmptyPlaceholder from 'components/common/EmptyPlaceholder'; -import { formatShortTime } from 'lib/format'; +import EmptyPlaceholder from '@/components/common/EmptyPlaceholder'; +import { formatShortTime } from '@/lib/format'; export function InsightsTable() { const [fields, setFields] = useState([]); diff --git a/src/app/(main)/reports/journey/JourneyParameters.tsx b/src/app/(main)/reports/journey/JourneyParameters.tsx index eca9c42d..ffa5df89 100644 --- a/src/app/(main)/reports/journey/JourneyParameters.tsx +++ b/src/app/(main)/reports/journey/JourneyParameters.tsx @@ -1,5 +1,5 @@ import { useContext } from 'react'; -import { useMessages } from 'components/hooks'; +import { useMessages } from '@/components/hooks'; import { Dropdown, Form, diff --git a/src/app/(main)/reports/journey/JourneyReport.tsx b/src/app/(main)/reports/journey/JourneyReport.tsx index 9048b3d1..4322fa2a 100644 --- a/src/app/(main)/reports/journey/JourneyReport.tsx +++ b/src/app/(main)/reports/journey/JourneyReport.tsx @@ -5,8 +5,8 @@ import ReportMenu from '../[reportId]/ReportMenu'; import ReportBody from '../[reportId]/ReportBody'; import JourneyParameters from './JourneyParameters'; import JourneyView from './JourneyView'; -import Path from 'assets/path.svg'; -import { REPORT_TYPES } from 'lib/constants'; +import Path from '@/assets/path.svg'; +import { REPORT_TYPES } from '@/lib/constants'; const defaultParameters = { type: REPORT_TYPES.journey, diff --git a/src/app/(main)/reports/journey/JourneyView.tsx b/src/app/(main)/reports/journey/JourneyView.tsx index ae980a6e..abddf023 100644 --- a/src/app/(main)/reports/journey/JourneyView.tsx +++ b/src/app/(main)/reports/journey/JourneyView.tsx @@ -2,11 +2,11 @@ import { useContext, useMemo, useState } from 'react'; import { TextOverflow, TooltipPopup } from 'react-basics'; import { firstBy } from 'thenby'; import classNames from 'classnames'; -import { useEscapeKey, useMessages } from 'components/hooks'; -import { objectToArray } from 'lib/data'; +import { useEscapeKey, useMessages } from '@/components/hooks'; +import { objectToArray } from '@/lib/data'; import { ReportContext } from '../[reportId]/Report'; import styles from './JourneyView.module.css'; -import { formatLongNumber } from 'lib/format'; +import { formatLongNumber } from '@/lib/format'; const NODE_HEIGHT = 60; const NODE_GAP = 10; diff --git a/src/app/(main)/reports/retention/RetentionParameters.tsx b/src/app/(main)/reports/retention/RetentionParameters.tsx index f441177c..56cbdbd3 100644 --- a/src/app/(main)/reports/retention/RetentionParameters.tsx +++ b/src/app/(main)/reports/retention/RetentionParameters.tsx @@ -1,10 +1,10 @@ import { useContext } from 'react'; -import { useMessages } from 'components/hooks'; +import { useMessages } from '@/components/hooks'; import { Form, FormButtons, FormRow, SubmitButton } from 'react-basics'; import { ReportContext } from '../[reportId]/Report'; -import { MonthSelect } from 'components/input/MonthSelect'; +import { MonthSelect } from '@/components/input/MonthSelect'; import BaseParameters from '../[reportId]/BaseParameters'; -import { parseDateRange } from 'lib/date'; +import { parseDateRange } from '@/lib/date'; export function RetentionParameters() { const { report, runReport, isRunning, updateReport } = useContext(ReportContext); diff --git a/src/app/(main)/reports/retention/RetentionReport.tsx b/src/app/(main)/reports/retention/RetentionReport.tsx index 81b565dc..054a1a66 100644 --- a/src/app/(main)/reports/retention/RetentionReport.tsx +++ b/src/app/(main)/reports/retention/RetentionReport.tsx @@ -4,9 +4,9 @@ import Report from '../[reportId]/Report'; import ReportHeader from '../[reportId]/ReportHeader'; import ReportMenu from '../[reportId]/ReportMenu'; import ReportBody from '../[reportId]/ReportBody'; -import Magnet from 'assets/magnet.svg'; -import { REPORT_TYPES } from 'lib/constants'; -import { parseDateRange } from 'lib/date'; +import Magnet from '@/assets/magnet.svg'; +import { REPORT_TYPES } from '@/lib/constants'; +import { parseDateRange } from '@/lib/date'; import { endOfMonth, startOfMonth } from 'date-fns'; const defaultParameters = { diff --git a/src/app/(main)/reports/retention/RetentionTable.tsx b/src/app/(main)/reports/retention/RetentionTable.tsx index 6d825567..23f0a8b0 100644 --- a/src/app/(main)/reports/retention/RetentionTable.tsx +++ b/src/app/(main)/reports/retention/RetentionTable.tsx @@ -1,9 +1,9 @@ import { useContext } from 'react'; import classNames from 'classnames'; import { ReportContext } from '../[reportId]/Report'; -import EmptyPlaceholder from 'components/common/EmptyPlaceholder'; -import { useMessages, useLocale } from 'components/hooks'; -import { formatDate } from 'lib/date'; +import EmptyPlaceholder from '@/components/common/EmptyPlaceholder'; +import { useMessages, useLocale } from '@/components/hooks'; +import { formatDate } from '@/lib/date'; import styles from './RetentionTable.module.css'; const DAYS = [1, 2, 3, 4, 5, 6, 7, 14, 21, 28]; diff --git a/src/app/(main)/reports/revenue/RevenueParameters.tsx b/src/app/(main)/reports/revenue/RevenueParameters.tsx index 8e344e4d..5cee14de 100644 --- a/src/app/(main)/reports/revenue/RevenueParameters.tsx +++ b/src/app/(main)/reports/revenue/RevenueParameters.tsx @@ -1,5 +1,5 @@ -import { useMessages } from 'components/hooks'; -import useRevenueValues from 'components/hooks/queries/useRevenueValues'; +import { useMessages } from '@/components/hooks'; +import useRevenueValues from '@/components/hooks/queries/useRevenueValues'; import { useContext } from 'react'; import { Dropdown, Form, FormButtons, FormInput, FormRow, Item, SubmitButton } from 'react-basics'; import BaseParameters from '../[reportId]/BaseParameters'; diff --git a/src/app/(main)/reports/revenue/RevenueReport.tsx b/src/app/(main)/reports/revenue/RevenueReport.tsx index 7b75ebd2..8400c651 100644 --- a/src/app/(main)/reports/revenue/RevenueReport.tsx +++ b/src/app/(main)/reports/revenue/RevenueReport.tsx @@ -1,5 +1,5 @@ -import Money from 'assets/money.svg'; -import { REPORT_TYPES } from 'lib/constants'; +import Money from '@/assets/money.svg'; +import { REPORT_TYPES } from '@/lib/constants'; import Report from '../[reportId]/Report'; import ReportBody from '../[reportId]/ReportBody'; import ReportHeader from '../[reportId]/ReportHeader'; diff --git a/src/app/(main)/reports/revenue/RevenueTable.tsx b/src/app/(main)/reports/revenue/RevenueTable.tsx index 0b9fcdc3..184797e9 100644 --- a/src/app/(main)/reports/revenue/RevenueTable.tsx +++ b/src/app/(main)/reports/revenue/RevenueTable.tsx @@ -1,9 +1,9 @@ -import EmptyPlaceholder from 'components/common/EmptyPlaceholder'; -import { useMessages } from 'components/hooks'; +import EmptyPlaceholder from '@/components/common/EmptyPlaceholder'; +import { useMessages } from '@/components/hooks'; import { useContext } from 'react'; import { GridColumn, GridTable } from 'react-basics'; import { ReportContext } from '../[reportId]/Report'; -import { formatLongCurrency } from 'lib/format'; +import { formatLongCurrency } from '@/lib/format'; export function RevenueTable() { const { report } = useContext(ReportContext); diff --git a/src/app/(main)/reports/revenue/RevenueView.tsx b/src/app/(main)/reports/revenue/RevenueView.tsx index 2d559893..bd3d6c63 100644 --- a/src/app/(main)/reports/revenue/RevenueView.tsx +++ b/src/app/(main)/reports/revenue/RevenueView.tsx @@ -1,16 +1,16 @@ import classNames from 'classnames'; import { colord } from 'colord'; -import BarChart from 'components/charts/BarChart'; -import PieChart from 'components/charts/PieChart'; -import TypeIcon from 'components/common/TypeIcon'; -import { useCountryNames, useLocale, useMessages } from 'components/hooks'; -import { GridRow } from 'components/layout/Grid'; -import ListTable from 'components/metrics/ListTable'; -import MetricCard from 'components/metrics/MetricCard'; -import MetricsBar from 'components/metrics/MetricsBar'; -import { renderDateLabels } from 'lib/charts'; -import { CHART_COLORS } from 'lib/constants'; -import { formatLongCurrency, formatLongNumber } from 'lib/format'; +import BarChart from '@/components/charts/BarChart'; +import PieChart from '@/components/charts/PieChart'; +import TypeIcon from '@/components/common/TypeIcon'; +import { useCountryNames, useLocale, useMessages } from '@/components/hooks'; +import { GridRow } from '@/components/layout/Grid'; +import ListTable from '@/components/metrics/ListTable'; +import MetricCard from '@/components/metrics/MetricCard'; +import MetricsBar from '@/components/metrics/MetricsBar'; +import { renderDateLabels } from '@/lib/charts'; +import { CHART_COLORS } from '@/lib/constants'; +import { formatLongCurrency, formatLongNumber } from '@/lib/format'; import { useCallback, useContext, useMemo } from 'react'; import { ReportContext } from '../[reportId]/Report'; import RevenueTable from './RevenueTable'; diff --git a/src/app/(main)/reports/utm/UTMParameters.tsx b/src/app/(main)/reports/utm/UTMParameters.tsx index c76df77d..5ae6017f 100644 --- a/src/app/(main)/reports/utm/UTMParameters.tsx +++ b/src/app/(main)/reports/utm/UTMParameters.tsx @@ -1,5 +1,5 @@ import { useContext } from 'react'; -import { useMessages } from 'components/hooks'; +import { useMessages } from '@/components/hooks'; import { Form, FormButtons, SubmitButton } from 'react-basics'; import { ReportContext } from '../[reportId]/Report'; import BaseParameters from '../[reportId]/BaseParameters'; diff --git a/src/app/(main)/reports/utm/UTMReport.tsx b/src/app/(main)/reports/utm/UTMReport.tsx index 7183b9f7..d9d2f579 100644 --- a/src/app/(main)/reports/utm/UTMReport.tsx +++ b/src/app/(main)/reports/utm/UTMReport.tsx @@ -5,8 +5,8 @@ import ReportMenu from '../[reportId]/ReportMenu'; import ReportBody from '../[reportId]/ReportBody'; import UTMParameters from './UTMParameters'; import UTMView from './UTMView'; -import Tag from 'assets/tag.svg'; -import { REPORT_TYPES } from 'lib/constants'; +import Tag from '@/assets/tag.svg'; +import { REPORT_TYPES } from '@/lib/constants'; const defaultParameters = { type: REPORT_TYPES.utm, diff --git a/src/app/(main)/reports/utm/UTMView.tsx b/src/app/(main)/reports/utm/UTMView.tsx index f10a68d8..ba025824 100644 --- a/src/app/(main)/reports/utm/UTMView.tsx +++ b/src/app/(main)/reports/utm/UTMView.tsx @@ -1,11 +1,11 @@ import { useContext } from 'react'; import { firstBy } from 'thenby'; import { ReportContext } from '../[reportId]/Report'; -import { CHART_COLORS, UTM_PARAMS } from 'lib/constants'; -import PieChart from 'components/charts/PieChart'; -import ListTable from 'components/metrics/ListTable'; +import { CHART_COLORS, UTM_PARAMS } from '@/lib/constants'; +import PieChart from '@/components/charts/PieChart'; +import ListTable from '@/components/metrics/ListTable'; import styles from './UTMView.module.css'; -import { useMessages } from 'components/hooks'; +import { useMessages } from '@/components/hooks'; function toArray(data: { [key: string]: number } = {}) { return Object.keys(data) diff --git a/src/app/(main)/settings/SettingsLayout.tsx b/src/app/(main)/settings/SettingsLayout.tsx index 28e9a074..08dcc3eb 100644 --- a/src/app/(main)/settings/SettingsLayout.tsx +++ b/src/app/(main)/settings/SettingsLayout.tsx @@ -1,7 +1,7 @@ 'use client'; import { ReactNode } from 'react'; -import { useLogin, useMessages } from 'components/hooks'; -import MenuLayout from 'components/layout/MenuLayout'; +import { useLogin, useMessages } from '@/components/hooks'; +import MenuLayout from '@/components/layout/MenuLayout'; export default function SettingsLayout({ children }: { children: ReactNode }) { const { user } = useLogin(); diff --git a/src/app/(main)/settings/teams/TeamAddForm.tsx b/src/app/(main)/settings/teams/TeamAddForm.tsx index c0fc7513..e940aa17 100644 --- a/src/app/(main)/settings/teams/TeamAddForm.tsx +++ b/src/app/(main)/settings/teams/TeamAddForm.tsx @@ -1,4 +1,4 @@ -import { useApi, useMessages } from 'components/hooks'; +import { useApi, useMessages } from '@/components/hooks'; import { Button, Form, diff --git a/src/app/(main)/settings/teams/TeamJoinForm.tsx b/src/app/(main)/settings/teams/TeamJoinForm.tsx index 939b5d4b..0a82260c 100644 --- a/src/app/(main)/settings/teams/TeamJoinForm.tsx +++ b/src/app/(main)/settings/teams/TeamJoinForm.tsx @@ -8,7 +8,7 @@ import { Button, SubmitButton, } from 'react-basics'; -import { useApi, useMessages, useModified } from 'components/hooks'; +import { useApi, useMessages, useModified } from '@/components/hooks'; export function TeamJoinForm({ onSave, onClose }: { onSave: () => void; onClose: () => void }) { const { formatMessage, labels, getMessage } = useMessages(); diff --git a/src/app/(main)/settings/teams/TeamLeaveButton.tsx b/src/app/(main)/settings/teams/TeamLeaveButton.tsx index b8a24c7e..5f5b54f3 100644 --- a/src/app/(main)/settings/teams/TeamLeaveButton.tsx +++ b/src/app/(main)/settings/teams/TeamLeaveButton.tsx @@ -1,4 +1,4 @@ -import { useLocale, useLogin, useMessages, useModified } from 'components/hooks'; +import { useLocale, useLogin, useMessages, useModified } from '@/components/hooks'; import { useRouter } from 'next/navigation'; import { Button, Icon, Icons, Modal, ModalTrigger, Text } from 'react-basics'; import TeamDeleteForm from './TeamLeaveForm'; diff --git a/src/app/(main)/settings/teams/TeamLeaveForm.tsx b/src/app/(main)/settings/teams/TeamLeaveForm.tsx index 8c9726be..9951aa93 100644 --- a/src/app/(main)/settings/teams/TeamLeaveForm.tsx +++ b/src/app/(main)/settings/teams/TeamLeaveForm.tsx @@ -1,5 +1,5 @@ -import { useApi, useMessages, useModified } from 'components/hooks'; -import ConfirmationForm from 'components/common/ConfirmationForm'; +import { useApi, useMessages, useModified } from '@/components/hooks'; +import ConfirmationForm from '@/components/common/ConfirmationForm'; export function TeamLeaveForm({ teamId, diff --git a/src/app/(main)/settings/teams/TeamsAddButton.tsx b/src/app/(main)/settings/teams/TeamsAddButton.tsx index 6ec4cf39..58c138a8 100644 --- a/src/app/(main)/settings/teams/TeamsAddButton.tsx +++ b/src/app/(main)/settings/teams/TeamsAddButton.tsx @@ -1,8 +1,8 @@ import { Button, Icon, Modal, ModalTrigger, Text, useToasts } from 'react-basics'; -import Icons from 'components/icons'; -import { useMessages, useModified } from 'components/hooks'; +import Icons from '@/components/icons'; +import { useMessages, useModified } from '@/components/hooks'; import TeamAddForm from './TeamAddForm'; -import { messages } from 'components/messages'; +import { messages } from '@/components/messages'; export function TeamsAddButton({ onSave }: { onSave?: () => void }) { const { formatMessage, labels } = useMessages(); diff --git a/src/app/(main)/settings/teams/TeamsDataTable.tsx b/src/app/(main)/settings/teams/TeamsDataTable.tsx index e8563b2e..9b8c9b27 100644 --- a/src/app/(main)/settings/teams/TeamsDataTable.tsx +++ b/src/app/(main)/settings/teams/TeamsDataTable.tsx @@ -1,6 +1,6 @@ -import DataTable from 'components/common/DataTable'; -import TeamsTable from 'app/(main)/settings/teams/TeamsTable'; -import { useLogin, useTeams } from 'components/hooks'; +import DataTable from '@/components/common/DataTable'; +import TeamsTable from '@/app/(main)/settings/teams/TeamsTable'; +import { useLogin, useTeams } from '@/components/hooks'; import { ReactNode } from 'react'; export function TeamsDataTable({ diff --git a/src/app/(main)/settings/teams/TeamsHeader.tsx b/src/app/(main)/settings/teams/TeamsHeader.tsx index 8aa5e7a3..e1911a19 100644 --- a/src/app/(main)/settings/teams/TeamsHeader.tsx +++ b/src/app/(main)/settings/teams/TeamsHeader.tsx @@ -1,7 +1,7 @@ import { Flexbox } from 'react-basics'; -import PageHeader from 'components/layout/PageHeader'; -import { ROLES } from 'lib/constants'; -import { useLogin, useMessages } from 'components/hooks'; +import PageHeader from '@/components/layout/PageHeader'; +import { ROLES } from '@/lib/constants'; +import { useLogin, useMessages } from '@/components/hooks'; import TeamsJoinButton from './TeamsJoinButton'; import TeamsAddButton from './TeamsAddButton'; diff --git a/src/app/(main)/settings/teams/TeamsJoinButton.tsx b/src/app/(main)/settings/teams/TeamsJoinButton.tsx index 24925bb6..bbf2d685 100644 --- a/src/app/(main)/settings/teams/TeamsJoinButton.tsx +++ b/src/app/(main)/settings/teams/TeamsJoinButton.tsx @@ -1,6 +1,6 @@ import { Button, Icon, Modal, ModalTrigger, Text, useToasts } from 'react-basics'; -import Icons from 'components/icons'; -import { useMessages, useModified } from 'components/hooks'; +import Icons from '@/components/icons'; +import { useMessages, useModified } from '@/components/hooks'; import TeamJoinForm from './TeamJoinForm'; export function TeamsJoinButton() { diff --git a/src/app/(main)/settings/teams/TeamsTable.tsx b/src/app/(main)/settings/teams/TeamsTable.tsx index a7a03958..8e7efa27 100644 --- a/src/app/(main)/settings/teams/TeamsTable.tsx +++ b/src/app/(main)/settings/teams/TeamsTable.tsx @@ -1,8 +1,8 @@ import { GridColumn, GridTable, Icon, Text } from 'react-basics'; -import { useMessages } from 'components/hooks'; -import Icons from 'components/icons'; -import { ROLES } from 'lib/constants'; -import LinkButton from 'components/common/LinkButton'; +import { useMessages } from '@/components/hooks'; +import Icons from '@/components/icons'; +import { ROLES } from '@/lib/constants'; +import LinkButton from '@/components/common/LinkButton'; export function TeamsTable({ data = [], diff --git a/src/app/(main)/settings/users/UserAddButton.tsx b/src/app/(main)/settings/users/UserAddButton.tsx index 832cf75b..e1b04842 100644 --- a/src/app/(main)/settings/users/UserAddButton.tsx +++ b/src/app/(main)/settings/users/UserAddButton.tsx @@ -1,6 +1,6 @@ import { Button, Icon, Text, Modal, Icons, ModalTrigger, useToasts } from 'react-basics'; import UserAddForm from './UserAddForm'; -import { useMessages, useModified } from 'components/hooks'; +import { useMessages, useModified } from '@/components/hooks'; export function UserAddButton({ onSave }: { onSave?: () => void }) { const { formatMessage, labels, messages } = useMessages(); diff --git a/src/app/(main)/settings/users/UserAddForm.tsx b/src/app/(main)/settings/users/UserAddForm.tsx index 979f399f..13f2faf5 100644 --- a/src/app/(main)/settings/users/UserAddForm.tsx +++ b/src/app/(main)/settings/users/UserAddForm.tsx @@ -10,8 +10,8 @@ import { SubmitButton, Button, } from 'react-basics'; -import { useApi, useMessages } from 'components/hooks'; -import { ROLES } from 'lib/constants'; +import { useApi, useMessages } from '@/components/hooks'; +import { ROLES } from '@/lib/constants'; export function UserAddForm({ onSave, onClose }) { const { post, useMutation } = useApi(); diff --git a/src/app/(main)/settings/users/UserDeleteButton.tsx b/src/app/(main)/settings/users/UserDeleteButton.tsx index 9f1f8459..0909720e 100644 --- a/src/app/(main)/settings/users/UserDeleteButton.tsx +++ b/src/app/(main)/settings/users/UserDeleteButton.tsx @@ -1,5 +1,5 @@ import { Button, Icon, Icons, Modal, ModalTrigger, Text } from 'react-basics'; -import { useMessages, useLogin } from 'components/hooks'; +import { useMessages, useLogin } from '@/components/hooks'; import UserDeleteForm from './UserDeleteForm'; export function UserDeleteButton({ diff --git a/src/app/(main)/settings/users/UserDeleteForm.tsx b/src/app/(main)/settings/users/UserDeleteForm.tsx index 9b49647f..68a3e85e 100644 --- a/src/app/(main)/settings/users/UserDeleteForm.tsx +++ b/src/app/(main)/settings/users/UserDeleteForm.tsx @@ -1,5 +1,5 @@ -import { useApi, useMessages, useModified } from 'components/hooks'; -import ConfirmationForm from 'components/common/ConfirmationForm'; +import { useApi, useMessages, useModified } from '@/components/hooks'; +import ConfirmationForm from '@/components/common/ConfirmationForm'; export function UserDeleteForm({ userId, username, onSave, onClose }) { const { FormattedMessage, messages, labels, formatMessage } = useMessages(); diff --git a/src/app/(main)/settings/users/UsersDataTable.tsx b/src/app/(main)/settings/users/UsersDataTable.tsx index 03addc74..867f4090 100644 --- a/src/app/(main)/settings/users/UsersDataTable.tsx +++ b/src/app/(main)/settings/users/UsersDataTable.tsx @@ -1,5 +1,5 @@ -import DataTable from 'components/common/DataTable'; -import { useUsers } from 'components/hooks'; +import DataTable from '@/components/common/DataTable'; +import { useUsers } from '@/components/hooks'; import UsersTable from './UsersTable'; import { ReactNode } from 'react'; diff --git a/src/app/(main)/settings/users/UsersHeader.tsx b/src/app/(main)/settings/users/UsersHeader.tsx index 6f4387c7..d07a159f 100644 --- a/src/app/(main)/settings/users/UsersHeader.tsx +++ b/src/app/(main)/settings/users/UsersHeader.tsx @@ -1,5 +1,5 @@ -import PageHeader from 'components/layout/PageHeader'; -import { useMessages } from 'components/hooks'; +import PageHeader from '@/components/layout/PageHeader'; +import { useMessages } from '@/components/hooks'; import UserAddButton from './UserAddButton'; export function UsersHeader({ onAdd }: { onAdd?: () => void }) { diff --git a/src/app/(main)/settings/users/UsersTable.tsx b/src/app/(main)/settings/users/UsersTable.tsx index e074be24..c698f38b 100644 --- a/src/app/(main)/settings/users/UsersTable.tsx +++ b/src/app/(main)/settings/users/UsersTable.tsx @@ -1,9 +1,9 @@ import { Text, Icon, Icons, GridTable, GridColumn } from 'react-basics'; import { formatDistance } from 'date-fns'; -import { ROLES } from 'lib/constants'; -import { useMessages, useLocale } from 'components/hooks'; +import { ROLES } from '@/lib/constants'; +import { useMessages, useLocale } from '@/components/hooks'; import UserDeleteButton from './UserDeleteButton'; -import LinkButton from 'components/common/LinkButton'; +import LinkButton from '@/components/common/LinkButton'; export function UsersTable({ data = [], diff --git a/src/app/(main)/settings/users/[userId]/UserEditForm.tsx b/src/app/(main)/settings/users/[userId]/UserEditForm.tsx index 1acfc581..70f21f63 100644 --- a/src/app/(main)/settings/users/[userId]/UserEditForm.tsx +++ b/src/app/(main)/settings/users/[userId]/UserEditForm.tsx @@ -9,8 +9,8 @@ import { SubmitButton, PasswordField, } from 'react-basics'; -import { useApi, useLogin, useMessages } from 'components/hooks'; -import { ROLES } from 'lib/constants'; +import { useApi, useLogin, useMessages } from '@/components/hooks'; +import { ROLES } from '@/lib/constants'; import { useContext, useRef } from 'react'; import { UserContext } from './UserProvider'; diff --git a/src/app/(main)/settings/users/[userId]/UserProvider.tsx b/src/app/(main)/settings/users/[userId]/UserProvider.tsx index b289fca0..ed559c91 100644 --- a/src/app/(main)/settings/users/[userId]/UserProvider.tsx +++ b/src/app/(main)/settings/users/[userId]/UserProvider.tsx @@ -1,5 +1,5 @@ import { createContext, ReactNode, useEffect } from 'react'; -import { useModified, useUser } from 'components/hooks'; +import { useModified, useUser } from '@/components/hooks'; import { Loading } from 'react-basics'; export const UserContext = createContext(null); diff --git a/src/app/(main)/settings/users/[userId]/UserSettings.tsx b/src/app/(main)/settings/users/[userId]/UserSettings.tsx index f9e17a85..0d98205f 100644 --- a/src/app/(main)/settings/users/[userId]/UserSettings.tsx +++ b/src/app/(main)/settings/users/[userId]/UserSettings.tsx @@ -1,12 +1,12 @@ import { Key, useContext, useState } from 'react'; import { Item, Tabs, useToasts } from 'react-basics'; -import Icons from 'components/icons'; +import Icons from '@/components/icons'; import UserEditForm from './UserEditForm'; -import PageHeader from 'components/layout/PageHeader'; -import { useMessages } from 'components/hooks'; +import PageHeader from '@/components/layout/PageHeader'; +import { useMessages } from '@/components/hooks'; import UserWebsites from './UserWebsites'; import { UserContext } from './UserProvider'; -import Breadcrumb from 'components/common/Breadcrumb'; +import Breadcrumb from '@/components/common/Breadcrumb'; export function UserSettings({ userId }: { userId: string }) { const { formatMessage, labels, messages } = useMessages(); diff --git a/src/app/(main)/settings/users/[userId]/UserWebsites.tsx b/src/app/(main)/settings/users/[userId]/UserWebsites.tsx index bfc6f74b..15521b17 100644 --- a/src/app/(main)/settings/users/[userId]/UserWebsites.tsx +++ b/src/app/(main)/settings/users/[userId]/UserWebsites.tsx @@ -1,6 +1,6 @@ -import WebsitesTable from 'app/(main)/settings/websites/WebsitesTable'; -import DataTable from 'components/common/DataTable'; -import { useWebsites } from 'components/hooks'; +import WebsitesTable from '@/app/(main)/settings/websites/WebsitesTable'; +import DataTable from '@/components/common/DataTable'; +import { useWebsites } from '@/components/hooks'; export function UserWebsites({ userId }) { const queryResult = useWebsites({ userId }); diff --git a/src/app/(main)/settings/websites/WebsiteAddButton.tsx b/src/app/(main)/settings/websites/WebsiteAddButton.tsx index e534461c..6f32fc9f 100644 --- a/src/app/(main)/settings/websites/WebsiteAddButton.tsx +++ b/src/app/(main)/settings/websites/WebsiteAddButton.tsx @@ -1,4 +1,4 @@ -import { useMessages, useModified } from 'components/hooks'; +import { useMessages, useModified } from '@/components/hooks'; import { Button, Icon, Icons, Modal, ModalTrigger, Text, useToasts } from 'react-basics'; import WebsiteAddForm from './WebsiteAddForm'; diff --git a/src/app/(main)/settings/websites/WebsiteAddForm.tsx b/src/app/(main)/settings/websites/WebsiteAddForm.tsx index 2bb4a0a8..90672412 100644 --- a/src/app/(main)/settings/websites/WebsiteAddForm.tsx +++ b/src/app/(main)/settings/websites/WebsiteAddForm.tsx @@ -7,9 +7,9 @@ import { Button, SubmitButton, } from 'react-basics'; -import { useApi } from 'components/hooks'; -import { DOMAIN_REGEX } from 'lib/constants'; -import { useMessages } from 'components/hooks'; +import { useApi } from '@/components/hooks'; +import { DOMAIN_REGEX } from '@/lib/constants'; +import { useMessages } from '@/components/hooks'; export function WebsiteAddForm({ teamId, diff --git a/src/app/(main)/settings/websites/WebsitesDataTable.tsx b/src/app/(main)/settings/websites/WebsitesDataTable.tsx index d91bbeef..023df857 100644 --- a/src/app/(main)/settings/websites/WebsitesDataTable.tsx +++ b/src/app/(main)/settings/websites/WebsitesDataTable.tsx @@ -1,7 +1,7 @@ import { ReactNode } from 'react'; -import WebsitesTable from 'app/(main)/settings/websites/WebsitesTable'; -import DataTable from 'components/common/DataTable'; -import { useWebsites } from 'components/hooks'; +import WebsitesTable from '@/app/(main)/settings/websites/WebsitesTable'; +import DataTable from '@/components/common/DataTable'; +import { useWebsites } from '@/components/hooks'; export function WebsitesDataTable({ teamId, diff --git a/src/app/(main)/settings/websites/WebsitesHeader.tsx b/src/app/(main)/settings/websites/WebsitesHeader.tsx index 6f322371..34e87a13 100644 --- a/src/app/(main)/settings/websites/WebsitesHeader.tsx +++ b/src/app/(main)/settings/websites/WebsitesHeader.tsx @@ -1,5 +1,5 @@ -import { useMessages } from 'components/hooks'; -import PageHeader from 'components/layout/PageHeader'; +import { useMessages } from '@/components/hooks'; +import PageHeader from '@/components/layout/PageHeader'; import WebsiteAddButton from './WebsiteAddButton'; export interface WebsitesHeaderProps { diff --git a/src/app/(main)/settings/websites/WebsitesSettingsPage.tsx b/src/app/(main)/settings/websites/WebsitesSettingsPage.tsx index ff0938d1..61909a9e 100644 --- a/src/app/(main)/settings/websites/WebsitesSettingsPage.tsx +++ b/src/app/(main)/settings/websites/WebsitesSettingsPage.tsx @@ -1,8 +1,8 @@ 'use client'; -import { useLogin } from 'components/hooks'; +import { useLogin } from '@/components/hooks'; import WebsitesDataTable from './WebsitesDataTable'; import WebsitesHeader from './WebsitesHeader'; -import { ROLES } from 'lib/constants'; +import { ROLES } from '@/lib/constants'; export default function WebsitesSettingsPage({ teamId }: { teamId: string }) { const { user } = useLogin(); diff --git a/src/app/(main)/settings/websites/WebsitesTable.tsx b/src/app/(main)/settings/websites/WebsitesTable.tsx index 5e9aef2c..79749b97 100644 --- a/src/app/(main)/settings/websites/WebsitesTable.tsx +++ b/src/app/(main)/settings/websites/WebsitesTable.tsx @@ -1,7 +1,7 @@ import { ReactNode } from 'react'; import { Text, Icon, Icons, GridTable, GridColumn } from 'react-basics'; -import { useMessages, useTeamUrl } from 'components/hooks'; -import LinkButton from 'components/common/LinkButton'; +import { useMessages, useTeamUrl } from '@/components/hooks'; +import LinkButton from '@/components/common/LinkButton'; export interface WebsitesTableProps { data: any[]; diff --git a/src/app/(main)/settings/websites/[websiteId]/ShareUrl.tsx b/src/app/(main)/settings/websites/[websiteId]/ShareUrl.tsx index 1e53e9c3..318e4e95 100644 --- a/src/app/(main)/settings/websites/[websiteId]/ShareUrl.tsx +++ b/src/app/(main)/settings/websites/[websiteId]/ShareUrl.tsx @@ -9,9 +9,9 @@ import { LoadingButton, } from 'react-basics'; import { useContext, useState } from 'react'; -import { getRandomChars } from 'lib/crypto'; -import { useApi, useMessages, useModified } from 'components/hooks'; -import { WebsiteContext } from 'app/(main)/websites/[websiteId]/WebsiteProvider'; +import { getRandomChars } from '@/lib/crypto'; +import { useApi, useMessages, useModified } from '@/components/hooks'; +import { WebsiteContext } from '@/app/(main)/websites/[websiteId]/WebsiteProvider'; const generateId = () => getRandomChars(16); diff --git a/src/app/(main)/settings/websites/[websiteId]/TrackingCode.tsx b/src/app/(main)/settings/websites/[websiteId]/TrackingCode.tsx index 95fb7068..cacdf689 100644 --- a/src/app/(main)/settings/websites/[websiteId]/TrackingCode.tsx +++ b/src/app/(main)/settings/websites/[websiteId]/TrackingCode.tsx @@ -1,5 +1,5 @@ import { TextArea } from 'react-basics'; -import { useMessages, useConfig } from 'components/hooks'; +import { useMessages, useConfig } from '@/components/hooks'; const SCRIPT_NAME = 'script.js'; diff --git a/src/app/(main)/settings/websites/[websiteId]/WebsiteData.tsx b/src/app/(main)/settings/websites/[websiteId]/WebsiteData.tsx index bc6a3169..d11f24df 100644 --- a/src/app/(main)/settings/websites/[websiteId]/WebsiteData.tsx +++ b/src/app/(main)/settings/websites/[websiteId]/WebsiteData.tsx @@ -1,10 +1,10 @@ import { Button, Modal, ModalTrigger, ActionForm } from 'react-basics'; import { useRouter } from 'next/navigation'; -import { useLogin, useMessages, useModified, useTeams, useTeamUrl } from 'components/hooks'; +import { useLogin, useMessages, useModified, useTeams, useTeamUrl } from '@/components/hooks'; import WebsiteDeleteForm from './WebsiteDeleteForm'; import WebsiteResetForm from './WebsiteResetForm'; import WebsiteTransferForm from './WebsiteTransferForm'; -import { ROLES } from 'lib/constants'; +import { ROLES } from '@/lib/constants'; export function WebsiteData({ websiteId, onSave }: { websiteId: string; onSave?: () => void }) { const { formatMessage, labels, messages } = useMessages(); diff --git a/src/app/(main)/settings/websites/[websiteId]/WebsiteDeleteForm.tsx b/src/app/(main)/settings/websites/[websiteId]/WebsiteDeleteForm.tsx index 077a8f4a..5eef3544 100644 --- a/src/app/(main)/settings/websites/[websiteId]/WebsiteDeleteForm.tsx +++ b/src/app/(main)/settings/websites/[websiteId]/WebsiteDeleteForm.tsx @@ -1,5 +1,5 @@ -import { useApi, useMessages } from 'components/hooks'; -import TypeConfirmationForm from 'components/common/TypeConfirmationForm'; +import { useApi, useMessages } from '@/components/hooks'; +import TypeConfirmationForm from '@/components/common/TypeConfirmationForm'; const CONFIRM_VALUE = 'DELETE'; diff --git a/src/app/(main)/settings/websites/[websiteId]/WebsiteEditForm.tsx b/src/app/(main)/settings/websites/[websiteId]/WebsiteEditForm.tsx index 15538661..aeef7f34 100644 --- a/src/app/(main)/settings/websites/[websiteId]/WebsiteEditForm.tsx +++ b/src/app/(main)/settings/websites/[websiteId]/WebsiteEditForm.tsx @@ -1,8 +1,8 @@ import { useContext, useRef } from 'react'; import { SubmitButton, Form, FormInput, FormRow, FormButtons, TextField } from 'react-basics'; -import { useApi, useMessages, useModified } from 'components/hooks'; -import { DOMAIN_REGEX } from 'lib/constants'; -import { WebsiteContext } from 'app/(main)/websites/[websiteId]/WebsiteProvider'; +import { useApi, useMessages, useModified } from '@/components/hooks'; +import { DOMAIN_REGEX } from '@/lib/constants'; +import { WebsiteContext } from '@/app/(main)/websites/[websiteId]/WebsiteProvider'; export function WebsiteEditForm({ websiteId, onSave }: { websiteId: string; onSave?: () => void }) { const website = useContext(WebsiteContext); diff --git a/src/app/(main)/settings/websites/[websiteId]/WebsiteResetForm.tsx b/src/app/(main)/settings/websites/[websiteId]/WebsiteResetForm.tsx index c43f3efb..73886aa9 100644 --- a/src/app/(main)/settings/websites/[websiteId]/WebsiteResetForm.tsx +++ b/src/app/(main)/settings/websites/[websiteId]/WebsiteResetForm.tsx @@ -1,5 +1,5 @@ -import { useApi, useMessages } from 'components/hooks'; -import TypeConfirmationForm from 'components/common/TypeConfirmationForm'; +import { useApi, useMessages } from '@/components/hooks'; +import TypeConfirmationForm from '@/components/common/TypeConfirmationForm'; const CONFIRM_VALUE = 'RESET'; diff --git a/src/app/(main)/settings/websites/[websiteId]/WebsiteSettings.tsx b/src/app/(main)/settings/websites/[websiteId]/WebsiteSettings.tsx index 11f662b1..5bea2704 100644 --- a/src/app/(main)/settings/websites/[websiteId]/WebsiteSettings.tsx +++ b/src/app/(main)/settings/websites/[websiteId]/WebsiteSettings.tsx @@ -1,8 +1,8 @@ -import { WebsiteContext } from 'app/(main)/websites/[websiteId]/WebsiteProvider'; -import Breadcrumb from 'components/common/Breadcrumb'; -import { useMessages } from 'components/hooks'; -import Icons from 'components/icons'; -import PageHeader from 'components/layout/PageHeader'; +import { WebsiteContext } from '@/app/(main)/websites/[websiteId]/WebsiteProvider'; +import Breadcrumb from '@/components/common/Breadcrumb'; +import { useMessages } from '@/components/hooks'; +import Icons from '@/components/icons'; +import PageHeader from '@/components/layout/PageHeader'; import Link from 'next/link'; import { Key, useContext, useState } from 'react'; import { Button, Icon, Item, Tabs, Text, useToasts } from 'react-basics'; diff --git a/src/app/(main)/settings/websites/[websiteId]/WebsiteSettingsPage.tsx b/src/app/(main)/settings/websites/[websiteId]/WebsiteSettingsPage.tsx index 00147629..8d7badb8 100644 --- a/src/app/(main)/settings/websites/[websiteId]/WebsiteSettingsPage.tsx +++ b/src/app/(main)/settings/websites/[websiteId]/WebsiteSettingsPage.tsx @@ -1,5 +1,5 @@ 'use client'; -import WebsiteProvider from 'app/(main)/websites/[websiteId]/WebsiteProvider'; +import WebsiteProvider from '@/app/(main)/websites/[websiteId]/WebsiteProvider'; import WebsiteSettings from './WebsiteSettings'; export default function WebsiteSettingsPage({ websiteId }: { websiteId: string }) { diff --git a/src/app/(main)/settings/websites/[websiteId]/WebsiteTransferForm.tsx b/src/app/(main)/settings/websites/[websiteId]/WebsiteTransferForm.tsx index eb568a7f..8214fb16 100644 --- a/src/app/(main)/settings/websites/[websiteId]/WebsiteTransferForm.tsx +++ b/src/app/(main)/settings/websites/[websiteId]/WebsiteTransferForm.tsx @@ -10,9 +10,9 @@ import { Item, Flexbox, } from 'react-basics'; -import { useApi, useLogin, useMessages, useTeams } from 'components/hooks'; -import { WebsiteContext } from 'app/(main)/websites/[websiteId]/WebsiteProvider'; -import { ROLES } from 'lib/constants'; +import { useApi, useLogin, useMessages, useTeams } from '@/components/hooks'; +import { WebsiteContext } from '@/app/(main)/websites/[websiteId]/WebsiteProvider'; +import { ROLES } from '@/lib/constants'; export function WebsiteTransferForm({ websiteId, @@ -71,7 +71,8 @@ export function WebsiteTransferForm({ {result.data .filter(({ teamUser }) => teamUser.find( - ({ role, userId }) => [ ROLES.teamOwner, ROLES.teamManager ].includes(role) && userId === user.id, + ({ role, userId }) => + [ROLES.teamOwner, ROLES.teamManager].includes(role) && userId === user.id, ), ) .map(({ id, name }) => { diff --git a/src/app/(main)/teams/[teamId]/TeamProvider.tsx b/src/app/(main)/teams/[teamId]/TeamProvider.tsx index 467a5d22..ed2d5467 100644 --- a/src/app/(main)/teams/[teamId]/TeamProvider.tsx +++ b/src/app/(main)/teams/[teamId]/TeamProvider.tsx @@ -1,6 +1,6 @@ 'use client'; import { createContext, ReactNode, useEffect } from 'react'; -import { useTeam, useModified } from 'components/hooks'; +import { useTeam, useModified } from '@/components/hooks'; import { Loading } from 'react-basics'; export const TeamContext = createContext(null); diff --git a/src/app/(main)/teams/[teamId]/settings/TeamSettingsLayout.tsx b/src/app/(main)/teams/[teamId]/settings/TeamSettingsLayout.tsx index f7df620a..8c638d29 100644 --- a/src/app/(main)/teams/[teamId]/settings/TeamSettingsLayout.tsx +++ b/src/app/(main)/teams/[teamId]/settings/TeamSettingsLayout.tsx @@ -1,7 +1,7 @@ 'use client'; import { ReactNode } from 'react'; -import { useMessages, useTeamUrl } from 'components/hooks'; -import MenuLayout from 'components/layout/MenuLayout'; +import { useMessages, useTeamUrl } from '@/components/hooks'; +import MenuLayout from '@/components/layout/MenuLayout'; export default function TeamSettingsLayout({ children }: { children: ReactNode }) { const { formatMessage, labels } = useMessages(); diff --git a/src/app/(main)/teams/[teamId]/settings/members/TeamMemberEditButton.tsx b/src/app/(main)/teams/[teamId]/settings/members/TeamMemberEditButton.tsx index 9cc99869..85292f60 100644 --- a/src/app/(main)/teams/[teamId]/settings/members/TeamMemberEditButton.tsx +++ b/src/app/(main)/teams/[teamId]/settings/members/TeamMemberEditButton.tsx @@ -1,4 +1,4 @@ -import { useMessages, useModified } from 'components/hooks'; +import { useMessages, useModified } from '@/components/hooks'; import { Button, Icon, Icons, Modal, ModalTrigger, Text, useToasts } from 'react-basics'; import TeamMemberEditForm from './TeamMemberEditForm'; diff --git a/src/app/(main)/teams/[teamId]/settings/members/TeamMemberEditForm.tsx b/src/app/(main)/teams/[teamId]/settings/members/TeamMemberEditForm.tsx index 40183989..4ce605df 100644 --- a/src/app/(main)/teams/[teamId]/settings/members/TeamMemberEditForm.tsx +++ b/src/app/(main)/teams/[teamId]/settings/members/TeamMemberEditForm.tsx @@ -1,5 +1,5 @@ -import { useApi, useMessages } from 'components/hooks'; -import { ROLES } from 'lib/constants'; +import { useApi, useMessages } from '@/components/hooks'; +import { ROLES } from '@/lib/constants'; import { Button, Dropdown, diff --git a/src/app/(main)/teams/[teamId]/settings/members/TeamMemberRemoveButton.tsx b/src/app/(main)/teams/[teamId]/settings/members/TeamMemberRemoveButton.tsx index 3f024395..7344f263 100644 --- a/src/app/(main)/teams/[teamId]/settings/members/TeamMemberRemoveButton.tsx +++ b/src/app/(main)/teams/[teamId]/settings/members/TeamMemberRemoveButton.tsx @@ -1,6 +1,6 @@ -import ConfirmationForm from 'components/common/ConfirmationForm'; -import { useApi, useMessages, useModified } from 'components/hooks'; -import { messages } from 'components/messages'; +import ConfirmationForm from '@/components/common/ConfirmationForm'; +import { useApi, useMessages, useModified } from '@/components/hooks'; +import { messages } from '@/components/messages'; import { Button, Icon, Icons, Modal, ModalTrigger, Text } from 'react-basics'; import { FormattedMessage } from 'react-intl'; diff --git a/src/app/(main)/teams/[teamId]/settings/members/TeamMembersDataTable.tsx b/src/app/(main)/teams/[teamId]/settings/members/TeamMembersDataTable.tsx index 996283a7..9de26415 100644 --- a/src/app/(main)/teams/[teamId]/settings/members/TeamMembersDataTable.tsx +++ b/src/app/(main)/teams/[teamId]/settings/members/TeamMembersDataTable.tsx @@ -1,6 +1,6 @@ -import DataTable from 'components/common/DataTable'; +import DataTable from '@/components/common/DataTable'; import TeamMembersTable from './TeamMembersTable'; -import { useTeamMembers } from 'components/hooks'; +import { useTeamMembers } from '@/components/hooks'; export function TeamMembersDataTable({ teamId, diff --git a/src/app/(main)/teams/[teamId]/settings/members/TeamMembersPage.tsx b/src/app/(main)/teams/[teamId]/settings/members/TeamMembersPage.tsx index de0c4c0a..557a40ba 100644 --- a/src/app/(main)/teams/[teamId]/settings/members/TeamMembersPage.tsx +++ b/src/app/(main)/teams/[teamId]/settings/members/TeamMembersPage.tsx @@ -1,9 +1,9 @@ 'use client'; -import { TeamContext } from 'app/(main)/teams/[teamId]/TeamProvider'; +import { TeamContext } from '@/app/(main)/teams/[teamId]/TeamProvider'; import TeamMembersDataTable from './TeamMembersDataTable'; -import PageHeader from 'components/layout/PageHeader'; -import { useLogin, useMessages } from 'components/hooks'; -import { ROLES } from 'lib/constants'; +import PageHeader from '@/components/layout/PageHeader'; +import { useLogin, useMessages } from '@/components/hooks'; +import { ROLES } from '@/lib/constants'; import { useContext } from 'react'; export function TeamMembersPage({ teamId }: { teamId: string }) { diff --git a/src/app/(main)/teams/[teamId]/settings/members/TeamMembersTable.tsx b/src/app/(main)/teams/[teamId]/settings/members/TeamMembersTable.tsx index 67cb23c7..0054437a 100644 --- a/src/app/(main)/teams/[teamId]/settings/members/TeamMembersTable.tsx +++ b/src/app/(main)/teams/[teamId]/settings/members/TeamMembersTable.tsx @@ -1,6 +1,6 @@ import { GridColumn, GridTable } from 'react-basics'; -import { useMessages, useLogin } from 'components/hooks'; -import { ROLES } from 'lib/constants'; +import { useMessages, useLogin } from '@/components/hooks'; +import { ROLES } from '@/lib/constants'; import TeamMemberRemoveButton from './TeamMemberRemoveButton'; import TeamMemberEditButton from './TeamMemberEditButton'; diff --git a/src/app/(main)/teams/[teamId]/settings/team/TeamDeleteForm.tsx b/src/app/(main)/teams/[teamId]/settings/team/TeamDeleteForm.tsx index 3cbdf550..5e7f5cf8 100644 --- a/src/app/(main)/teams/[teamId]/settings/team/TeamDeleteForm.tsx +++ b/src/app/(main)/teams/[teamId]/settings/team/TeamDeleteForm.tsx @@ -1,5 +1,5 @@ -import TypeConfirmationForm from 'components/common/TypeConfirmationForm'; -import { useApi, useMessages } from 'components/hooks'; +import TypeConfirmationForm from '@/components/common/TypeConfirmationForm'; +import { useApi, useMessages } from '@/components/hooks'; const CONFIRM_VALUE = 'DELETE'; diff --git a/src/app/(main)/teams/[teamId]/settings/team/TeamDetails.tsx b/src/app/(main)/teams/[teamId]/settings/team/TeamDetails.tsx index 70858ee4..f3f258bd 100644 --- a/src/app/(main)/teams/[teamId]/settings/team/TeamDetails.tsx +++ b/src/app/(main)/teams/[teamId]/settings/team/TeamDetails.tsx @@ -1,11 +1,11 @@ -import { TeamContext } from 'app/(main)/teams/[teamId]/TeamProvider'; -import { useLogin, useMessages } from 'components/hooks'; -import Icons from 'components/icons'; -import PageHeader from 'components/layout/PageHeader'; -import { ROLES } from 'lib/constants'; +import { TeamContext } from '@/app/(main)/teams/[teamId]/TeamProvider'; +import { useLogin, useMessages } from '@/components/hooks'; +import Icons from '@/components/icons'; +import PageHeader from '@/components/layout/PageHeader'; +import { ROLES } from '@/lib/constants'; import { useContext, useState } from 'react'; import { Flexbox, Item, Tabs } from 'react-basics'; -import TeamLeaveButton from 'app/(main)/settings/teams/TeamLeaveButton'; +import TeamLeaveButton from '@/app/(main)/settings/teams/TeamLeaveButton'; import TeamManage from './TeamManage'; import TeamEditForm from './TeamEditForm'; diff --git a/src/app/(main)/teams/[teamId]/settings/team/TeamEditForm.tsx b/src/app/(main)/teams/[teamId]/settings/team/TeamEditForm.tsx index 19204965..ac158fa7 100644 --- a/src/app/(main)/teams/[teamId]/settings/team/TeamEditForm.tsx +++ b/src/app/(main)/teams/[teamId]/settings/team/TeamEditForm.tsx @@ -9,10 +9,10 @@ import { Flexbox, useToasts, } from 'react-basics'; -import { getRandomChars } from 'lib/crypto'; +import { getRandomChars } from '@/lib/crypto'; import { useContext, useRef, useState } from 'react'; -import { useApi, useMessages, useModified } from 'components/hooks'; -import { TeamContext } from 'app/(main)/teams/[teamId]/TeamProvider'; +import { useApi, useMessages, useModified } from '@/components/hooks'; +import { TeamContext } from '@/app/(main)/teams/[teamId]/TeamProvider'; const generateId = () => getRandomChars(16); diff --git a/src/app/(main)/teams/[teamId]/settings/team/TeamManage.tsx b/src/app/(main)/teams/[teamId]/settings/team/TeamManage.tsx index 40cbee04..24ca93d3 100644 --- a/src/app/(main)/teams/[teamId]/settings/team/TeamManage.tsx +++ b/src/app/(main)/teams/[teamId]/settings/team/TeamManage.tsx @@ -1,4 +1,4 @@ -import { useMessages, useModified } from 'components/hooks'; +import { useMessages, useModified } from '@/components/hooks'; import { useRouter } from 'next/navigation'; import { ActionForm, Button, Modal, ModalTrigger } from 'react-basics'; import TeamDeleteForm from './TeamDeleteForm'; diff --git a/src/app/(main)/teams/[teamId]/settings/websites/TeamWebsiteRemoveButton.tsx b/src/app/(main)/teams/[teamId]/settings/websites/TeamWebsiteRemoveButton.tsx index 336e151a..fdd76cd2 100644 --- a/src/app/(main)/teams/[teamId]/settings/websites/TeamWebsiteRemoveButton.tsx +++ b/src/app/(main)/teams/[teamId]/settings/websites/TeamWebsiteRemoveButton.tsx @@ -1,4 +1,4 @@ -import { useApi, useMessages } from 'components/hooks'; +import { useApi, useMessages } from '@/components/hooks'; import { Icon, Icons, LoadingButton, Text } from 'react-basics'; export function TeamWebsiteRemoveButton({ teamId, websiteId, onSave }) { diff --git a/src/app/(main)/teams/[teamId]/settings/websites/TeamWebsitesDataTable.tsx b/src/app/(main)/teams/[teamId]/settings/websites/TeamWebsitesDataTable.tsx index 9e2985d4..63aa47f5 100644 --- a/src/app/(main)/teams/[teamId]/settings/websites/TeamWebsitesDataTable.tsx +++ b/src/app/(main)/teams/[teamId]/settings/websites/TeamWebsitesDataTable.tsx @@ -1,5 +1,5 @@ -import DataTable from 'components/common/DataTable'; -import { useTeamWebsites } from 'components/hooks'; +import DataTable from '@/components/common/DataTable'; +import { useTeamWebsites } from '@/components/hooks'; import TeamWebsitesTable from './TeamWebsitesTable'; export function TeamWebsitesDataTable({ diff --git a/src/app/(main)/teams/[teamId]/settings/websites/TeamWebsitesPage.tsx b/src/app/(main)/teams/[teamId]/settings/websites/TeamWebsitesPage.tsx index 882ef8ec..d46d928a 100644 --- a/src/app/(main)/teams/[teamId]/settings/websites/TeamWebsitesPage.tsx +++ b/src/app/(main)/teams/[teamId]/settings/websites/TeamWebsitesPage.tsx @@ -1,10 +1,10 @@ 'use client'; -import { TeamContext } from 'app/(main)/teams/[teamId]/TeamProvider'; -import WebsiteAddButton from 'app/(main)/settings/websites/WebsiteAddButton'; -import { useLogin, useMessages } from 'components/hooks'; -import PageHeader from 'components/layout/PageHeader'; +import { TeamContext } from '@/app/(main)/teams/[teamId]/TeamProvider'; +import WebsiteAddButton from '@/app/(main)/settings/websites/WebsiteAddButton'; +import { useLogin, useMessages } from '@/components/hooks'; +import PageHeader from '@/components/layout/PageHeader'; import TeamWebsitesDataTable from './TeamWebsitesDataTable'; -import { ROLES } from 'lib/constants'; +import { ROLES } from '@/lib/constants'; import { useContext } from 'react'; export function TeamWebsitesPage({ teamId }: { teamId: string }) { diff --git a/src/app/(main)/teams/[teamId]/settings/websites/TeamWebsitesTable.tsx b/src/app/(main)/teams/[teamId]/settings/websites/TeamWebsitesTable.tsx index dc6760a6..76c343b1 100644 --- a/src/app/(main)/teams/[teamId]/settings/websites/TeamWebsitesTable.tsx +++ b/src/app/(main)/teams/[teamId]/settings/websites/TeamWebsitesTable.tsx @@ -1,7 +1,7 @@ import { GridColumn, GridTable, Icon, Text } from 'react-basics'; -import { useLogin, useMessages } from 'components/hooks'; -import Icons from 'components/icons'; -import LinkButton from 'components/common/LinkButton'; +import { useLogin, useMessages } from '@/components/hooks'; +import Icons from '@/components/icons'; +import LinkButton from '@/components/common/LinkButton'; export function TeamWebsitesTable({ teamId, diff --git a/src/app/(main)/teams/[teamId]/settings/websites/[websiteId]/page.tsx b/src/app/(main)/teams/[teamId]/settings/websites/[websiteId]/page.tsx index a6895296..a18f8a2e 100644 --- a/src/app/(main)/teams/[teamId]/settings/websites/[websiteId]/page.tsx +++ b/src/app/(main)/teams/[teamId]/settings/websites/[websiteId]/page.tsx @@ -1,4 +1,4 @@ -import Page from 'app/(main)/settings/websites/[websiteId]/page'; +import Page from '@/app/(main)/settings/websites/[websiteId]/page'; export default function ({ params }) { return ; diff --git a/src/app/(main)/websites/WebsitesPage.tsx b/src/app/(main)/websites/WebsitesPage.tsx index d6f8524b..b5e40b30 100644 --- a/src/app/(main)/websites/WebsitesPage.tsx +++ b/src/app/(main)/websites/WebsitesPage.tsx @@ -1,7 +1,7 @@ 'use client'; -import WebsitesHeader from 'app/(main)/settings/websites/WebsitesHeader'; -import WebsitesDataTable from 'app/(main)/settings/websites/WebsitesDataTable'; -import { useTeamUrl } from 'components/hooks'; +import WebsitesHeader from '@/app/(main)/settings/websites/WebsitesHeader'; +import WebsitesDataTable from '@/app/(main)/settings/websites/WebsitesDataTable'; +import { useTeamUrl } from '@/components/hooks'; export default function WebsitesPage() { const { teamId } = useTeamUrl(); diff --git a/src/app/(main)/websites/[websiteId]/WebsiteChart.tsx b/src/app/(main)/websites/[websiteId]/WebsiteChart.tsx index ddeba789..68192307 100644 --- a/src/app/(main)/websites/[websiteId]/WebsiteChart.tsx +++ b/src/app/(main)/websites/[websiteId]/WebsiteChart.tsx @@ -1,7 +1,7 @@ import { useMemo } from 'react'; -import PageviewsChart from 'components/metrics/PageviewsChart'; -import useWebsitePageviews from 'components/hooks/queries/useWebsitePageviews'; -import { useDateRange } from 'components/hooks'; +import PageviewsChart from '@/components/metrics/PageviewsChart'; +import useWebsitePageviews from '@/components/hooks/queries/useWebsitePageviews'; +import { useDateRange } from '@/components/hooks'; export function WebsiteChart({ websiteId, diff --git a/src/app/(main)/websites/[websiteId]/WebsiteChartList.tsx b/src/app/(main)/websites/[websiteId]/WebsiteChartList.tsx index e33e948a..b27f9870 100644 --- a/src/app/(main)/websites/[websiteId]/WebsiteChartList.tsx +++ b/src/app/(main)/websites/[websiteId]/WebsiteChartList.tsx @@ -3,10 +3,10 @@ import { useMemo } from 'react'; import { firstBy } from 'thenby'; import Link from 'next/link'; import WebsiteChart from './WebsiteChart'; -import useDashboard from 'store/dashboard'; +import useDashboard from '@/store/dashboard'; import WebsiteHeader from './WebsiteHeader'; import { WebsiteMetricsBar } from './WebsiteMetricsBar'; -import { useMessages, useLocale, useTeamUrl } from 'components/hooks'; +import { useMessages, useLocale, useTeamUrl } from '@/components/hooks'; export default function WebsiteChartList({ websites, diff --git a/src/app/(main)/websites/[websiteId]/WebsiteDetailsPage.tsx b/src/app/(main)/websites/[websiteId]/WebsiteDetailsPage.tsx index 3eeeb18f..460792ef 100644 --- a/src/app/(main)/websites/[websiteId]/WebsiteDetailsPage.tsx +++ b/src/app/(main)/websites/[websiteId]/WebsiteDetailsPage.tsx @@ -1,13 +1,13 @@ 'use client'; import { usePathname } from 'next/navigation'; -import FilterTags from 'components/metrics/FilterTags'; -import { useNavigation } from 'components/hooks'; +import FilterTags from '@/components/metrics/FilterTags'; +import { useNavigation } from '@/components/hooks'; import WebsiteChart from './WebsiteChart'; import WebsiteExpandedView from './WebsiteExpandedView'; import WebsiteHeader from './WebsiteHeader'; import WebsiteMetricsBar from './WebsiteMetricsBar'; import WebsiteTableView from './WebsiteTableView'; -import { FILTER_COLUMNS } from 'lib/constants'; +import { FILTER_COLUMNS } from '@/lib/constants'; export default function WebsiteDetailsPage({ websiteId }: { websiteId: string }) { const pathname = usePathname(); diff --git a/src/app/(main)/websites/[websiteId]/WebsiteExpandedView.tsx b/src/app/(main)/websites/[websiteId]/WebsiteExpandedView.tsx index 95e718b4..e4a08b05 100644 --- a/src/app/(main)/websites/[websiteId]/WebsiteExpandedView.tsx +++ b/src/app/(main)/websites/[websiteId]/WebsiteExpandedView.tsx @@ -1,21 +1,22 @@ -import LinkButton from 'components/common/LinkButton'; -import { useLocale, useMessages, useNavigation } from 'components/hooks'; -import SideNav from 'components/layout/SideNav'; -import BrowsersTable from 'components/metrics/BrowsersTable'; -import CitiesTable from 'components/metrics/CitiesTable'; -import CountriesTable from 'components/metrics/CountriesTable'; -import DevicesTable from 'components/metrics/DevicesTable'; -import EventsTable from 'components/metrics/EventsTable'; -import HostsTable from 'components/metrics/HostsTable'; -import LanguagesTable from 'components/metrics/LanguagesTable'; -import OSTable from 'components/metrics/OSTable'; -import PagesTable from 'components/metrics/PagesTable'; -import QueryParametersTable from 'components/metrics/QueryParametersTable'; -import ReferrersTable from 'components/metrics/ReferrersTable'; -import RegionsTable from 'components/metrics/RegionsTable'; -import ScreenTable from 'components/metrics/ScreenTable'; -import TagsTable from 'components/metrics/TagsTable'; import { Dropdown, Icon, Icons, Item, Text } from 'react-basics'; +import LinkButton from '@/components/common/LinkButton'; +import { useLocale, useMessages, useNavigation } from '@/components/hooks'; +import SideNav from '@/components/layout/SideNav'; +import BrowsersTable from '@/components/metrics/BrowsersTable'; +import CitiesTable from '@/components/metrics/CitiesTable'; +import CountriesTable from '@/components/metrics/CountriesTable'; +import DevicesTable from '@/components/metrics/DevicesTable'; +import EventsTable from '@/components/metrics/EventsTable'; +import HostsTable from '@/components/metrics/HostsTable'; +import LanguagesTable from '@/components/metrics/LanguagesTable'; +import OSTable from '@/components/metrics/OSTable'; +import PagesTable from '@/components/metrics/PagesTable'; +import QueryParametersTable from '@/components/metrics/QueryParametersTable'; +import ReferrersTable from '@/components/metrics/ReferrersTable'; +import RegionsTable from '@/components/metrics/RegionsTable'; +import ScreenTable from '@/components/metrics/ScreenTable'; +import TagsTable from '@/components/metrics/TagsTable'; +import ChannelsTable from '@/components/metrics/ChannelsTable'; import styles from './WebsiteExpandedView.module.css'; const views = { @@ -36,6 +37,7 @@ const views = { event: EventsTable, query: QueryParametersTable, tag: TagsTable, + channel: ChannelsTable, }; export default function WebsiteExpandedView({ @@ -64,6 +66,11 @@ export default function WebsiteExpandedView({ label: formatMessage(labels.referrers), url: renderUrl({ view: 'referrer' }), }, + { + key: 'channel', + label: formatMessage(labels.channels), + url: renderUrl({ view: 'channel' }), + }, { key: 'browser', label: formatMessage(labels.browsers), diff --git a/src/app/(main)/websites/[websiteId]/WebsiteFilterButton.tsx b/src/app/(main)/websites/[websiteId]/WebsiteFilterButton.tsx index a6229e95..02b74418 100644 --- a/src/app/(main)/websites/[websiteId]/WebsiteFilterButton.tsx +++ b/src/app/(main)/websites/[websiteId]/WebsiteFilterButton.tsx @@ -1,8 +1,8 @@ import { Button, Icon, Icons, Popup, PopupTrigger, Text } from 'react-basics'; -import PopupForm from 'app/(main)/reports/[reportId]/PopupForm'; -import FilterSelectForm from 'app/(main)/reports/[reportId]/FilterSelectForm'; -import { useFields, useMessages, useNavigation, useDateRange } from 'components/hooks'; -import { OPERATOR_PREFIXES } from 'lib/constants'; +import PopupForm from '@/app/(main)/reports/[reportId]/PopupForm'; +import FilterSelectForm from '@/app/(main)/reports/[reportId]/FilterSelectForm'; +import { useFields, useMessages, useNavigation, useDateRange } from '@/components/hooks'; +import { OPERATOR_PREFIXES } from '@/lib/constants'; import styles from './WebsiteFilterButton.module.css'; export function WebsiteFilterButton({ diff --git a/src/app/(main)/websites/[websiteId]/WebsiteHeader.tsx b/src/app/(main)/websites/[websiteId]/WebsiteHeader.tsx index edd10b99..b568dd3d 100644 --- a/src/app/(main)/websites/[websiteId]/WebsiteHeader.tsx +++ b/src/app/(main)/websites/[websiteId]/WebsiteHeader.tsx @@ -1,13 +1,13 @@ import classNames from 'classnames'; -import Favicon from 'components/common/Favicon'; -import { useMessages, useTeamUrl, useWebsite } from 'components/hooks'; -import Icons from 'components/icons'; -import ActiveUsers from 'components/metrics/ActiveUsers'; +import Favicon from '@/components/common/Favicon'; +import { useMessages, useTeamUrl, useWebsite } from '@/components/hooks'; +import Icons from '@/components/icons'; +import ActiveUsers from '@/components/metrics/ActiveUsers'; import Link from 'next/link'; import { usePathname } from 'next/navigation'; import { ReactNode } from 'react'; import { Button, Icon, Text } from 'react-basics'; -import Lightning from 'assets/lightning.svg'; +import Lightning from '@/assets/lightning.svg'; import styles from './WebsiteHeader.module.css'; export function WebsiteHeader({ diff --git a/src/app/(main)/websites/[websiteId]/WebsiteMetricsBar.tsx b/src/app/(main)/websites/[websiteId]/WebsiteMetricsBar.tsx index a6e7ad40..f206d3c9 100644 --- a/src/app/(main)/websites/[websiteId]/WebsiteMetricsBar.tsx +++ b/src/app/(main)/websites/[websiteId]/WebsiteMetricsBar.tsx @@ -1,14 +1,14 @@ -import classNames from 'classnames'; -import { useDateRange, useMessages, useSticky } from 'components/hooks'; -import WebsiteDateFilter from 'components/input/WebsiteDateFilter'; -import MetricCard from 'components/metrics/MetricCard'; -import MetricsBar from 'components/metrics/MetricsBar'; -import { formatShortTime, formatLongNumber } from 'lib/format'; -import WebsiteFilterButton from './WebsiteFilterButton'; -import useWebsiteStats from 'components/hooks/queries/useWebsiteStats'; -import styles from './WebsiteMetricsBar.module.css'; import { Dropdown, Item } from 'react-basics'; -import useStore, { setWebsiteDateCompare } from 'store/websites'; +import classNames from 'classnames'; +import { useDateRange, useMessages, useSticky } from '@/components/hooks'; +import WebsiteDateFilter from '@/components/input/WebsiteDateFilter'; +import MetricCard from '@/components/metrics/MetricCard'; +import MetricsBar from '@/components/metrics/MetricsBar'; +import { formatShortTime, formatLongNumber } from '@/lib/format'; +import useWebsiteStats from '@/components/hooks/queries/useWebsiteStats'; +import useStore, { setWebsiteDateCompare } from '@/store/websites'; +import WebsiteFilterButton from './WebsiteFilterButton'; +import styles from './WebsiteMetricsBar.module.css'; export function WebsiteMetricsBar({ websiteId, diff --git a/src/app/(main)/websites/[websiteId]/WebsiteProvider.tsx b/src/app/(main)/websites/[websiteId]/WebsiteProvider.tsx index 3cdfdd5d..198ad030 100644 --- a/src/app/(main)/websites/[websiteId]/WebsiteProvider.tsx +++ b/src/app/(main)/websites/[websiteId]/WebsiteProvider.tsx @@ -1,6 +1,6 @@ 'use client'; import { createContext, ReactNode, useEffect } from 'react'; -import { useModified, useWebsite } from 'components/hooks'; +import { useModified, useWebsite } from '@/components/hooks'; import { Loading } from 'react-basics'; export const WebsiteContext = createContext(null); diff --git a/src/app/(main)/websites/[websiteId]/WebsiteTableView.tsx b/src/app/(main)/websites/[websiteId]/WebsiteTableView.tsx index 2782cac6..02422075 100644 --- a/src/app/(main)/websites/[websiteId]/WebsiteTableView.tsx +++ b/src/app/(main)/websites/[websiteId]/WebsiteTableView.tsx @@ -1,13 +1,13 @@ -import { Grid, GridRow } from 'components/layout/Grid'; -import PagesTable from 'components/metrics/PagesTable'; -import ReferrersTable from 'components/metrics/ReferrersTable'; -import BrowsersTable from 'components/metrics/BrowsersTable'; -import OSTable from 'components/metrics/OSTable'; -import DevicesTable from 'components/metrics/DevicesTable'; -import WorldMap from 'components/metrics/WorldMap'; -import CountriesTable from 'components/metrics/CountriesTable'; -import EventsTable from 'components/metrics/EventsTable'; -import EventsChart from 'components/metrics/EventsChart'; +import { Grid, GridRow } from '@/components/layout/Grid'; +import PagesTable from '@/components/metrics/PagesTable'; +import ReferrersTable from '@/components/metrics/ReferrersTable'; +import BrowsersTable from '@/components/metrics/BrowsersTable'; +import OSTable from '@/components/metrics/OSTable'; +import DevicesTable from '@/components/metrics/DevicesTable'; +import WorldMap from '@/components/metrics/WorldMap'; +import CountriesTable from '@/components/metrics/CountriesTable'; +import EventsTable from '@/components/metrics/EventsTable'; +import EventsChart from '@/components/metrics/EventsChart'; import { usePathname } from 'next/navigation'; export default function WebsiteTableView({ websiteId }: { websiteId: string }) { diff --git a/src/app/(main)/websites/[websiteId]/compare/WebsiteComparePage.tsx b/src/app/(main)/websites/[websiteId]/compare/WebsiteComparePage.tsx index 21cd6597..10a2eed1 100644 --- a/src/app/(main)/websites/[websiteId]/compare/WebsiteComparePage.tsx +++ b/src/app/(main)/websites/[websiteId]/compare/WebsiteComparePage.tsx @@ -1,9 +1,9 @@ 'use client'; import WebsiteHeader from '../WebsiteHeader'; import WebsiteMetricsBar from '../WebsiteMetricsBar'; -import FilterTags from 'components/metrics/FilterTags'; -import { useNavigation } from 'components/hooks'; -import { FILTER_COLUMNS } from 'lib/constants'; +import FilterTags from '@/components/metrics/FilterTags'; +import { useNavigation } from '@/components/hooks'; +import { FILTER_COLUMNS } from '@/lib/constants'; import WebsiteChart from '../WebsiteChart'; import WebsiteCompareTables from './WebsiteCompareTables'; diff --git a/src/app/(main)/websites/[websiteId]/compare/WebsiteCompareTables.tsx b/src/app/(main)/websites/[websiteId]/compare/WebsiteCompareTables.tsx index af5a06d4..ce7f5b47 100644 --- a/src/app/(main)/websites/[websiteId]/compare/WebsiteCompareTables.tsx +++ b/src/app/(main)/websites/[websiteId]/compare/WebsiteCompareTables.tsx @@ -1,25 +1,25 @@ -import { useDateRange, useMessages, useNavigation } from 'components/hooks'; -import { Grid, GridRow } from 'components/layout/Grid'; -import SideNav from 'components/layout/SideNav'; -import BrowsersTable from 'components/metrics/BrowsersTable'; -import ChangeLabel from 'components/metrics/ChangeLabel'; -import CitiesTable from 'components/metrics/CitiesTable'; -import CountriesTable from 'components/metrics/CountriesTable'; -import DevicesTable from 'components/metrics/DevicesTable'; -import EventsTable from 'components/metrics/EventsTable'; -import LanguagesTable from 'components/metrics/LanguagesTable'; -import MetricsTable from 'components/metrics/MetricsTable'; -import OSTable from 'components/metrics/OSTable'; -import PagesTable from 'components/metrics/PagesTable'; -import QueryParametersTable from 'components/metrics/QueryParametersTable'; -import ReferrersTable from 'components/metrics/ReferrersTable'; -import RegionsTable from 'components/metrics/RegionsTable'; -import ScreenTable from 'components/metrics/ScreenTable'; -import TagsTable from 'components/metrics/TagsTable'; -import { getCompareDate } from 'lib/date'; -import { formatNumber } from 'lib/format'; +import { useDateRange, useMessages, useNavigation } from '@/components/hooks'; +import { Grid, GridRow } from '@/components/layout/Grid'; +import SideNav from '@/components/layout/SideNav'; +import BrowsersTable from '@/components/metrics/BrowsersTable'; +import ChangeLabel from '@/components/metrics/ChangeLabel'; +import CitiesTable from '@/components/metrics/CitiesTable'; +import CountriesTable from '@/components/metrics/CountriesTable'; +import DevicesTable from '@/components/metrics/DevicesTable'; +import EventsTable from '@/components/metrics/EventsTable'; +import LanguagesTable from '@/components/metrics/LanguagesTable'; +import MetricsTable from '@/components/metrics/MetricsTable'; +import OSTable from '@/components/metrics/OSTable'; +import PagesTable from '@/components/metrics/PagesTable'; +import QueryParametersTable from '@/components/metrics/QueryParametersTable'; +import ReferrersTable from '@/components/metrics/ReferrersTable'; +import RegionsTable from '@/components/metrics/RegionsTable'; +import ScreenTable from '@/components/metrics/ScreenTable'; +import TagsTable from '@/components/metrics/TagsTable'; +import { getCompareDate } from '@/lib/date'; +import { formatNumber } from '@/lib/format'; import { useState } from 'react'; -import useStore from 'store/websites'; +import useStore from '@/store/websites'; import styles from './WebsiteCompareTables.module.css'; const views = { diff --git a/src/app/(main)/websites/[websiteId]/events/EventProperties.tsx b/src/app/(main)/websites/[websiteId]/events/EventProperties.tsx index 760f34f9..453aa9a8 100644 --- a/src/app/(main)/websites/[websiteId]/events/EventProperties.tsx +++ b/src/app/(main)/websites/[websiteId]/events/EventProperties.tsx @@ -1,9 +1,9 @@ import { GridColumn, GridTable } from 'react-basics'; -import { useEventDataProperties, useEventDataValues, useMessages } from 'components/hooks'; -import { LoadingPanel } from 'components/common/LoadingPanel'; -import PieChart from 'components/charts/PieChart'; +import { useEventDataProperties, useEventDataValues, useMessages } from '@/components/hooks'; +import { LoadingPanel } from '@/components/common/LoadingPanel'; +import PieChart from '@/components/charts/PieChart'; import { useState } from 'react'; -import { CHART_COLORS } from 'lib/constants'; +import { CHART_COLORS } from '@/lib/constants'; import styles from './EventProperties.module.css'; export function EventProperties({ websiteId }: { websiteId: string }) { diff --git a/src/app/(main)/websites/[websiteId]/events/EventsDataTable.tsx b/src/app/(main)/websites/[websiteId]/events/EventsDataTable.tsx index 32eb985c..ce9048d3 100644 --- a/src/app/(main)/websites/[websiteId]/events/EventsDataTable.tsx +++ b/src/app/(main)/websites/[websiteId]/events/EventsDataTable.tsx @@ -1,6 +1,6 @@ -import { useWebsiteEvents } from 'components/hooks'; +import { useWebsiteEvents } from '@/components/hooks'; import EventsTable from './EventsTable'; -import DataTable from 'components/common/DataTable'; +import DataTable from '@/components/common/DataTable'; import { ReactNode } from 'react'; export default function EventsDataTable({ diff --git a/src/app/(main)/websites/[websiteId]/events/EventsMetricsBar.tsx b/src/app/(main)/websites/[websiteId]/events/EventsMetricsBar.tsx index d039b67f..e90a7790 100644 --- a/src/app/(main)/websites/[websiteId]/events/EventsMetricsBar.tsx +++ b/src/app/(main)/websites/[websiteId]/events/EventsMetricsBar.tsx @@ -1,9 +1,9 @@ -import { useMessages } from 'components/hooks'; -import useWebsiteSessionStats from 'components/hooks/queries/useWebsiteSessionStats'; -import WebsiteDateFilter from 'components/input/WebsiteDateFilter'; -import MetricCard from 'components/metrics/MetricCard'; -import MetricsBar from 'components/metrics/MetricsBar'; -import { formatLongNumber } from 'lib/format'; +import { useMessages } from '@/components/hooks'; +import useWebsiteSessionStats from '@/components/hooks/queries/useWebsiteSessionStats'; +import WebsiteDateFilter from '@/components/input/WebsiteDateFilter'; +import MetricCard from '@/components/metrics/MetricCard'; +import MetricsBar from '@/components/metrics/MetricsBar'; +import { formatLongNumber } from '@/lib/format'; import { Flexbox } from 'react-basics'; export function EventsMetricsBar({ websiteId }: { websiteId: string }) { diff --git a/src/app/(main)/websites/[websiteId]/events/EventsPage.tsx b/src/app/(main)/websites/[websiteId]/events/EventsPage.tsx index 7dfc0394..cf4c19ef 100644 --- a/src/app/(main)/websites/[websiteId]/events/EventsPage.tsx +++ b/src/app/(main)/websites/[websiteId]/events/EventsPage.tsx @@ -2,10 +2,10 @@ import WebsiteHeader from '../WebsiteHeader'; import EventsDataTable from './EventsDataTable'; import EventsMetricsBar from './EventsMetricsBar'; -import EventsChart from 'components/metrics/EventsChart'; -import { GridRow } from 'components/layout/Grid'; -import MetricsTable from 'components/metrics/MetricsTable'; -import { useMessages } from 'components/hooks'; +import EventsChart from '@/components/metrics/EventsChart'; +import { GridRow } from '@/components/layout/Grid'; +import MetricsTable from '@/components/metrics/MetricsTable'; +import { useMessages } from '@/components/hooks'; import { Item, Tabs } from 'react-basics'; import { useState } from 'react'; import EventProperties from './EventProperties'; diff --git a/src/app/(main)/websites/[websiteId]/events/EventsTable.tsx b/src/app/(main)/websites/[websiteId]/events/EventsTable.tsx index 42eb8f7a..8e6cdf76 100644 --- a/src/app/(main)/websites/[websiteId]/events/EventsTable.tsx +++ b/src/app/(main)/websites/[websiteId]/events/EventsTable.tsx @@ -1,9 +1,9 @@ import { GridTable, GridColumn, Icon } from 'react-basics'; -import { useMessages, useTeamUrl, useTimezone } from 'components/hooks'; -import Empty from 'components/common/Empty'; -import Avatar from 'components/common/Avatar'; +import { useMessages, useTeamUrl, useTimezone } from '@/components/hooks'; +import Empty from '@/components/common/Empty'; +import Avatar from '@/components/common/Avatar'; import Link from 'next/link'; -import Icons from 'components/icons'; +import Icons from '@/components/icons'; export function EventsTable({ data = [] }) { const { formatTimezoneDate } = useTimezone(); diff --git a/src/app/(main)/websites/[websiteId]/layout.tsx b/src/app/(main)/websites/[websiteId]/layout.tsx index 1df69cd3..2542f65a 100644 --- a/src/app/(main)/websites/[websiteId]/layout.tsx +++ b/src/app/(main)/websites/[websiteId]/layout.tsx @@ -6,7 +6,7 @@ export default async function ({ params, }: { children: any; - params: { websiteId: string }; + params: Promise<{ websiteId: string }>; }) { const { websiteId } = await params; diff --git a/src/app/(main)/websites/[websiteId]/realtime/RealtimeCountries.tsx b/src/app/(main)/websites/[websiteId]/realtime/RealtimeCountries.tsx index 51663441..c3a3b8f7 100644 --- a/src/app/(main)/websites/[websiteId]/realtime/RealtimeCountries.tsx +++ b/src/app/(main)/websites/[websiteId]/realtime/RealtimeCountries.tsx @@ -1,9 +1,9 @@ import { useCallback } from 'react'; -import ListTable from 'components/metrics/ListTable'; -import { useLocale, useCountryNames, useMessages } from 'components/hooks'; +import ListTable from '@/components/metrics/ListTable'; +import { useLocale, useCountryNames, useMessages } from '@/components/hooks'; import classNames from 'classnames'; import styles from './RealtimeCountries.module.css'; -import TypeIcon from 'components/common/TypeIcon'; +import TypeIcon from '@/components/common/TypeIcon'; export function RealtimeCountries({ data }) { const { formatMessage, labels } = useMessages(); diff --git a/src/app/(main)/websites/[websiteId]/realtime/RealtimeHeader.tsx b/src/app/(main)/websites/[websiteId]/realtime/RealtimeHeader.tsx index c27143aa..6db56b76 100644 --- a/src/app/(main)/websites/[websiteId]/realtime/RealtimeHeader.tsx +++ b/src/app/(main)/websites/[websiteId]/realtime/RealtimeHeader.tsx @@ -1,6 +1,6 @@ -import MetricCard from 'components/metrics/MetricCard'; -import { useMessages } from 'components/hooks'; -import { RealtimeData } from 'lib/types'; +import MetricCard from '@/components/metrics/MetricCard'; +import { useMessages } from '@/components/hooks'; +import { RealtimeData } from '@/lib/types'; import styles from './RealtimeHeader.module.css'; export function RealtimeHeader({ data }: { data: RealtimeData }) { diff --git a/src/app/(main)/websites/[websiteId]/realtime/RealtimeHome.tsx b/src/app/(main)/websites/[websiteId]/realtime/RealtimeHome.tsx index 0ed5fbde..104cf334 100644 --- a/src/app/(main)/websites/[websiteId]/realtime/RealtimeHome.tsx +++ b/src/app/(main)/websites/[websiteId]/realtime/RealtimeHome.tsx @@ -1,9 +1,9 @@ import { useEffect } from 'react'; import { useRouter } from 'next/navigation'; -import Page from 'components/layout/Page'; -import PageHeader from 'components/layout/PageHeader'; -import { useApi, useMessages } from 'components/hooks'; -import EmptyPlaceholder from 'components/common/EmptyPlaceholder'; +import Page from '@/components/layout/Page'; +import PageHeader from '@/components/layout/PageHeader'; +import { useApi, useMessages } from '@/components/hooks'; +import EmptyPlaceholder from '@/components/common/EmptyPlaceholder'; export function RealtimeHome() { const { formatMessage, labels, messages } = useMessages(); diff --git a/src/app/(main)/websites/[websiteId]/realtime/RealtimeLog.tsx b/src/app/(main)/websites/[websiteId]/realtime/RealtimeLog.tsx index 103b5eba..1f56983d 100644 --- a/src/app/(main)/websites/[websiteId]/realtime/RealtimeLog.tsx +++ b/src/app/(main)/websites/[websiteId]/realtime/RealtimeLog.tsx @@ -1,11 +1,11 @@ -import useFormat from 'components//hooks/useFormat'; -import Empty from 'components/common/Empty'; -import FilterButtons from 'components/common/FilterButtons'; -import { useCountryNames, useLocale, useMessages, useTimezone } from 'components/hooks'; -import Icons from 'components/icons'; -import { BROWSERS, OS_NAMES } from 'lib/constants'; -import { stringToColor } from 'lib/format'; -import { RealtimeData } from 'lib/types'; +import useFormat from '@/components//hooks/useFormat'; +import Empty from '@/components/common/Empty'; +import FilterButtons from '@/components/common/FilterButtons'; +import { useCountryNames, useLocale, useMessages, useTimezone } from '@/components/hooks'; +import Icons from '@/components/icons'; +import { BROWSERS, OS_NAMES } from '@/lib/constants'; +import { stringToColor } from '@/lib/format'; +import { RealtimeData } from '@/lib/types'; import { useContext, useMemo, useState } from 'react'; import { Icon, SearchField, StatusLight, Text } from 'react-basics'; import { FixedSizeList } from 'react-window'; diff --git a/src/app/(main)/websites/[websiteId]/realtime/RealtimeUrls.tsx b/src/app/(main)/websites/[websiteId]/realtime/RealtimeUrls.tsx index 15b40f01..ce95bf41 100644 --- a/src/app/(main)/websites/[websiteId]/realtime/RealtimeUrls.tsx +++ b/src/app/(main)/websites/[websiteId]/realtime/RealtimeUrls.tsx @@ -1,11 +1,11 @@ import { Key, useContext, useState } from 'react'; import { ButtonGroup, Button, Flexbox } from 'react-basics'; import thenby from 'thenby'; -import { percentFilter } from 'lib/filters'; -import ListTable from 'components/metrics/ListTable'; -import { FILTER_PAGES, FILTER_REFERRERS } from 'lib/constants'; -import { useMessages } from 'components/hooks'; -import { RealtimeData } from 'lib/types'; +import { percentFilter } from '@/lib/filters'; +import ListTable from '@/components/metrics/ListTable'; +import { FILTER_PAGES, FILTER_REFERRERS } from '@/lib/constants'; +import { useMessages } from '@/components/hooks'; +import { RealtimeData } from '@/lib/types'; import { WebsiteContext } from '../WebsiteProvider'; export function RealtimeUrls({ data }: { data: RealtimeData }) { diff --git a/src/app/(main)/websites/[websiteId]/realtime/WebsiteRealtimePage.tsx b/src/app/(main)/websites/[websiteId]/realtime/WebsiteRealtimePage.tsx index 7030cc32..6edc28f9 100644 --- a/src/app/(main)/websites/[websiteId]/realtime/WebsiteRealtimePage.tsx +++ b/src/app/(main)/websites/[websiteId]/realtime/WebsiteRealtimePage.tsx @@ -1,16 +1,16 @@ 'use client'; import { firstBy } from 'thenby'; -import { Grid, GridRow } from 'components/layout/Grid'; -import Page from 'components/layout/Page'; -import RealtimeChart from 'components/metrics/RealtimeChart'; -import WorldMap from 'components/metrics/WorldMap'; -import { useRealtime } from 'components/hooks'; +import { Grid, GridRow } from '@/components/layout/Grid'; +import Page from '@/components/layout/Page'; +import RealtimeChart from '@/components/metrics/RealtimeChart'; +import WorldMap from '@/components/metrics/WorldMap'; +import { useRealtime } from '@/components/hooks'; import RealtimeLog from './RealtimeLog'; import RealtimeHeader from './RealtimeHeader'; import RealtimeUrls from './RealtimeUrls'; import RealtimeCountries from './RealtimeCountries'; import WebsiteHeader from '../WebsiteHeader'; -import { percentFilter } from 'lib/filters'; +import { percentFilter } from '@/lib/filters'; export function WebsiteRealtimePage({ websiteId }) { const { data, isLoading, error } = useRealtime(websiteId); diff --git a/src/app/(main)/websites/[websiteId]/reports/WebsiteReportsPage.tsx b/src/app/(main)/websites/[websiteId]/reports/WebsiteReportsPage.tsx index 051f6ed3..e61aacb1 100644 --- a/src/app/(main)/websites/[websiteId]/reports/WebsiteReportsPage.tsx +++ b/src/app/(main)/websites/[websiteId]/reports/WebsiteReportsPage.tsx @@ -1,9 +1,9 @@ 'use client'; import Link from 'next/link'; import { Button, Flexbox, Icon, Icons, Text } from 'react-basics'; -import { useMessages, useTeamUrl } from 'components/hooks'; +import { useMessages, useTeamUrl } from '@/components/hooks'; import WebsiteHeader from '../WebsiteHeader'; -import ReportsDataTable from 'app/(main)/reports/ReportsDataTable'; +import ReportsDataTable from '@/app/(main)/reports/ReportsDataTable'; export function WebsiteReportsPage({ websiteId }) { const { formatMessage, labels } = useMessages(); diff --git a/src/app/(main)/websites/[websiteId]/sessions/SessionProperties.tsx b/src/app/(main)/websites/[websiteId]/sessions/SessionProperties.tsx index 49b63e74..a0b47bc9 100644 --- a/src/app/(main)/websites/[websiteId]/sessions/SessionProperties.tsx +++ b/src/app/(main)/websites/[websiteId]/sessions/SessionProperties.tsx @@ -1,9 +1,9 @@ import { GridColumn, GridTable } from 'react-basics'; -import { useSessionDataProperties, useSessionDataValues, useMessages } from 'components/hooks'; -import { LoadingPanel } from 'components/common/LoadingPanel'; -import PieChart from 'components/charts/PieChart'; +import { useSessionDataProperties, useSessionDataValues, useMessages } from '@/components/hooks'; +import { LoadingPanel } from '@/components/common/LoadingPanel'; +import PieChart from '@/components/charts/PieChart'; import { useState } from 'react'; -import { CHART_COLORS } from 'lib/constants'; +import { CHART_COLORS } from '@/lib/constants'; import styles from './SessionProperties.module.css'; export function SessionProperties({ websiteId }: { websiteId: string }) { diff --git a/src/app/(main)/websites/[websiteId]/sessions/SessionsDataTable.tsx b/src/app/(main)/websites/[websiteId]/sessions/SessionsDataTable.tsx index 788d0066..56e0df62 100644 --- a/src/app/(main)/websites/[websiteId]/sessions/SessionsDataTable.tsx +++ b/src/app/(main)/websites/[websiteId]/sessions/SessionsDataTable.tsx @@ -1,6 +1,6 @@ -import { useWebsiteSessions } from 'components/hooks'; +import { useWebsiteSessions } from '@/components/hooks'; import SessionsTable from './SessionsTable'; -import DataTable from 'components/common/DataTable'; +import DataTable from '@/components/common/DataTable'; import { ReactNode } from 'react'; export default function SessionsDataTable({ diff --git a/src/app/(main)/websites/[websiteId]/sessions/SessionsMetricsBar.tsx b/src/app/(main)/websites/[websiteId]/sessions/SessionsMetricsBar.tsx index 803e7a06..62d60de8 100644 --- a/src/app/(main)/websites/[websiteId]/sessions/SessionsMetricsBar.tsx +++ b/src/app/(main)/websites/[websiteId]/sessions/SessionsMetricsBar.tsx @@ -1,9 +1,9 @@ -import { useMessages } from 'components/hooks'; -import useWebsiteSessionStats from 'components/hooks/queries/useWebsiteSessionStats'; -import WebsiteDateFilter from 'components/input/WebsiteDateFilter'; -import MetricCard from 'components/metrics/MetricCard'; -import MetricsBar from 'components/metrics/MetricsBar'; -import { formatLongNumber } from 'lib/format'; +import { useMessages } from '@/components/hooks'; +import useWebsiteSessionStats from '@/components/hooks/queries/useWebsiteSessionStats'; +import WebsiteDateFilter from '@/components/input/WebsiteDateFilter'; +import MetricCard from '@/components/metrics/MetricCard'; +import MetricsBar from '@/components/metrics/MetricsBar'; +import { formatLongNumber } from '@/lib/format'; import { Flexbox } from 'react-basics'; export function SessionsMetricsBar({ websiteId }: { websiteId: string }) { diff --git a/src/app/(main)/websites/[websiteId]/sessions/SessionsPage.tsx b/src/app/(main)/websites/[websiteId]/sessions/SessionsPage.tsx index 30fd193db..2ee044db 100644 --- a/src/app/(main)/websites/[websiteId]/sessions/SessionsPage.tsx +++ b/src/app/(main)/websites/[websiteId]/sessions/SessionsPage.tsx @@ -3,11 +3,11 @@ import WebsiteHeader from '../WebsiteHeader'; import SessionsDataTable from './SessionsDataTable'; import SessionsMetricsBar from './SessionsMetricsBar'; import SessionProperties from './SessionProperties'; -import WorldMap from 'components/metrics/WorldMap'; -import { GridRow } from 'components/layout/Grid'; +import WorldMap from '@/components/metrics/WorldMap'; +import { GridRow } from '@/components/layout/Grid'; import { Item, Tabs } from 'react-basics'; import { useState } from 'react'; -import { useMessages } from 'components/hooks'; +import { useMessages } from '@/components/hooks'; import SessionsWeekly from './SessionsWeekly'; export function SessionsPage({ websiteId }) { diff --git a/src/app/(main)/websites/[websiteId]/sessions/SessionsTable.tsx b/src/app/(main)/websites/[websiteId]/sessions/SessionsTable.tsx index 3fea4836..ddb3ed65 100644 --- a/src/app/(main)/websites/[websiteId]/sessions/SessionsTable.tsx +++ b/src/app/(main)/websites/[websiteId]/sessions/SessionsTable.tsx @@ -1,9 +1,9 @@ import Link from 'next/link'; import { GridColumn, GridTable } from 'react-basics'; -import { useFormat, useMessages, useTimezone } from 'components/hooks'; -import Avatar from 'components/common/Avatar'; +import { useFormat, useMessages, useTimezone } from '@/components/hooks'; +import Avatar from '@/components/common/Avatar'; import styles from './SessionsTable.module.css'; -import TypeIcon from 'components/common/TypeIcon'; +import TypeIcon from '@/components/common/TypeIcon'; export function SessionsTable({ data = [] }: { data: any[]; showDomain?: boolean }) { const { formatTimezoneDate } = useTimezone(); diff --git a/src/app/(main)/websites/[websiteId]/sessions/SessionsWeekly.tsx b/src/app/(main)/websites/[websiteId]/sessions/SessionsWeekly.tsx index 4280b7e9..6082f0e2 100644 --- a/src/app/(main)/websites/[websiteId]/sessions/SessionsWeekly.tsx +++ b/src/app/(main)/websites/[websiteId]/sessions/SessionsWeekly.tsx @@ -1,7 +1,7 @@ import { format, startOfDay, addHours } from 'date-fns'; -import { useLocale, useMessages, useWebsiteSessionsWeekly } from 'components/hooks'; -import { LoadingPanel } from 'components/common/LoadingPanel'; -import { getDayOfWeekAsDate } from 'lib/date'; +import { useLocale, useMessages, useWebsiteSessionsWeekly } from '@/components/hooks'; +import { LoadingPanel } from '@/components/common/LoadingPanel'; +import { getDayOfWeekAsDate } from '@/lib/date'; import styles from './SessionsWeekly.module.css'; import classNames from 'classnames'; import { TooltipPopup } from 'react-basics'; diff --git a/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionActivity.tsx b/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionActivity.tsx index 15b02758..0a020d5c 100644 --- a/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionActivity.tsx +++ b/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionActivity.tsx @@ -1,7 +1,7 @@ import { isSameDay } from 'date-fns'; import { Loading, Icon, StatusLight } from 'react-basics'; -import Icons from 'components/icons'; -import { useSessionActivity, useTimezone } from 'components/hooks'; +import Icons from '@/components/icons'; +import { useSessionActivity, useTimezone } from '@/components/hooks'; import styles from './SessionActivity.module.css'; import { Fragment } from 'react'; diff --git a/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionData.tsx b/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionData.tsx index 39b6afd1..56d4a0d9 100644 --- a/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionData.tsx +++ b/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionData.tsx @@ -1,9 +1,9 @@ import { TextOverflow } from 'react-basics'; -import { useMessages, useSessionData } from 'components/hooks'; -import Empty from 'components/common/Empty'; -import { DATA_TYPES } from 'lib/constants'; +import { useMessages, useSessionData } from '@/components/hooks'; +import Empty from '@/components/common/Empty'; +import { DATA_TYPES } from '@/lib/constants'; import styles from './SessionData.module.css'; -import { LoadingPanel } from 'components/common/LoadingPanel'; +import { LoadingPanel } from '@/components/common/LoadingPanel'; export function SessionData({ websiteId, sessionId }: { websiteId: string; sessionId: string }) { const { formatMessage, labels } = useMessages(); diff --git a/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionDetailsPage.tsx b/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionDetailsPage.tsx index d6a07edc..9ccf275f 100644 --- a/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionDetailsPage.tsx +++ b/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionDetailsPage.tsx @@ -1,7 +1,7 @@ 'use client'; -import Avatar from 'components/common/Avatar'; -import { LoadingPanel } from 'components/common/LoadingPanel'; -import { useWebsiteSession } from 'components/hooks'; +import Avatar from '@/components/common/Avatar'; +import { LoadingPanel } from '@/components/common/LoadingPanel'; +import { useWebsiteSession } from '@/components/hooks'; import WebsiteHeader from '../../WebsiteHeader'; import { SessionActivity } from './SessionActivity'; import { SessionData } from './SessionData'; diff --git a/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionInfo.tsx b/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionInfo.tsx index 6f9a8f3d..889eb972 100644 --- a/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionInfo.tsx +++ b/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionInfo.tsx @@ -1,7 +1,7 @@ -import { useFormat, useLocale, useMessages, useRegionNames, useTimezone } from 'components/hooks'; -import TypeIcon from 'components/common/TypeIcon'; +import { useFormat, useLocale, useMessages, useRegionNames, useTimezone } from '@/components/hooks'; +import TypeIcon from '@/components/common/TypeIcon'; import { Icon, CopyIcon } from 'react-basics'; -import Icons from 'components/icons'; +import Icons from '@/components/icons'; import styles from './SessionInfo.module.css'; export default function SessionInfo({ data }) { diff --git a/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionStats.tsx b/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionStats.tsx index ea606582..eb385e9b 100644 --- a/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionStats.tsx +++ b/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionStats.tsx @@ -1,7 +1,7 @@ -import { useMessages } from 'components/hooks'; -import MetricCard from 'components/metrics/MetricCard'; -import MetricsBar from 'components/metrics/MetricsBar'; -import { formatShortTime } from 'lib/format'; +import { useMessages } from '@/components/hooks'; +import MetricCard from '@/components/metrics/MetricCard'; +import MetricsBar from '@/components/metrics/MetricsBar'; +import { formatShortTime } from '@/lib/format'; export function SessionStats({ data }) { const { formatMessage, labels } = useMessages(); diff --git a/src/app/Providers.tsx b/src/app/Providers.tsx index bbc10a35..66884c2f 100644 --- a/src/app/Providers.tsx +++ b/src/app/Providers.tsx @@ -2,8 +2,8 @@ import { IntlProvider } from 'react-intl'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import { ReactBasicsProvider } from 'react-basics'; -import ErrorBoundary from 'components/common/ErrorBoundary'; -import { useLocale } from 'components/hooks'; +import ErrorBoundary from '@/components/common/ErrorBoundary'; +import { useLocale } from '@/components/hooks'; import 'chartjs-adapter-date-fns'; import { useEffect } from 'react'; diff --git a/src/app/api/admin/users/route.ts b/src/app/api/admin/users/route.ts index 5ed4a8ff..2185e03e 100644 --- a/src/app/api/admin/users/route.ts +++ b/src/app/api/admin/users/route.ts @@ -1,9 +1,9 @@ import { z } from 'zod'; -import { parseRequest } from 'lib/request'; -import { json, unauthorized } from 'lib/response'; -import { pagingParams } from 'lib/schema'; -import { canViewUsers } from 'lib/auth'; -import { getUsers } from 'queries/prisma/user'; +import { parseRequest } from '@/lib/request'; +import { json, unauthorized } from '@/lib/response'; +import { pagingParams } from '@/lib/schema'; +import { canViewUsers } from '@/lib/auth'; +import { getUsers } from '@/queries/prisma/user'; export async function GET(request: Request) { const schema = z.object({ diff --git a/src/app/api/admin/websites/route.ts b/src/app/api/admin/websites/route.ts index 014ef8d5..ec399c0d 100644 --- a/src/app/api/admin/websites/route.ts +++ b/src/app/api/admin/websites/route.ts @@ -1,10 +1,10 @@ import { z } from 'zod'; -import { parseRequest } from 'lib/request'; -import { json, unauthorized } from 'lib/response'; -import { pagingParams } from 'lib/schema'; -import { canViewAllWebsites } from 'lib/auth'; -import { getWebsites } from 'queries/prisma/website'; -import { ROLES } from 'lib/constants'; +import { parseRequest } from '@/lib/request'; +import { json, unauthorized } from '@/lib/response'; +import { pagingParams } from '@/lib/schema'; +import { canViewAllWebsites } from '@/lib/auth'; +import { getWebsites } from '@/queries/prisma/website'; +import { ROLES } from '@/lib/constants'; export async function GET(request: Request) { const schema = z.object({ diff --git a/src/app/api/auth/login/route.ts b/src/app/api/auth/login/route.ts index f972fa05..0b48fe83 100644 --- a/src/app/api/auth/login/route.ts +++ b/src/app/api/auth/login/route.ts @@ -1,13 +1,13 @@ import { z } from 'zod'; -import { checkPassword } from 'lib/auth'; -import { createSecureToken } from 'lib/jwt'; +import { checkPassword } from '@/lib/auth'; +import { createSecureToken } from '@/lib/jwt'; import { redisEnabled } from '@umami/redis-client'; -import { getUserByUsername } from 'queries'; -import { json, unauthorized } from 'lib/response'; -import { parseRequest } from 'lib/request'; -import { saveAuth } from 'lib/auth'; -import { secret } from 'lib/crypto'; -import { ROLES } from 'lib/constants'; +import { getUserByUsername } from '@/queries'; +import { json, unauthorized } from '@/lib/response'; +import { parseRequest } from '@/lib/request'; +import { saveAuth } from '@/lib/auth'; +import { secret } from '@/lib/crypto'; +import { ROLES } from '@/lib/constants'; export async function POST(request: Request) { const schema = z.object({ diff --git a/src/app/api/auth/logout/route.ts b/src/app/api/auth/logout/route.ts index ce7ce7f8..22bb3091 100644 --- a/src/app/api/auth/logout/route.ts +++ b/src/app/api/auth/logout/route.ts @@ -1,5 +1,5 @@ import { getClient, redisEnabled } from '@umami/redis-client'; -import { ok } from 'lib/response'; +import { ok } from '@/lib/response'; export async function POST(request: Request) { if (redisEnabled) { diff --git a/src/app/api/auth/sso/route.ts b/src/app/api/auth/sso/route.ts index e06e403c..4a713424 100644 --- a/src/app/api/auth/sso/route.ts +++ b/src/app/api/auth/sso/route.ts @@ -1,7 +1,7 @@ import { redisEnabled } from '@umami/redis-client'; -import { json } from 'lib/response'; -import { parseRequest } from 'lib/request'; -import { saveAuth } from 'lib/auth'; +import { json } from '@/lib/response'; +import { parseRequest } from '@/lib/request'; +import { saveAuth } from '@/lib/auth'; export async function POST(request: Request) { const { auth, error } = await parseRequest(request); diff --git a/src/app/api/auth/verify/route.ts b/src/app/api/auth/verify/route.ts index db62a339..4d98b554 100644 --- a/src/app/api/auth/verify/route.ts +++ b/src/app/api/auth/verify/route.ts @@ -1,5 +1,5 @@ -import { parseRequest } from 'lib/request'; -import { json } from 'lib/response'; +import { parseRequest } from '@/lib/request'; +import { json } from '@/lib/response'; export async function GET(request: Request) { const { auth, error } = await parseRequest(request); diff --git a/src/app/api/me/password/route.ts b/src/app/api/me/password/route.ts index b4089bf4..69bef49b 100644 --- a/src/app/api/me/password/route.ts +++ b/src/app/api/me/password/route.ts @@ -1,8 +1,8 @@ import { z } from 'zod'; -import { checkPassword, hashPassword } from 'lib/auth'; -import { parseRequest } from 'lib/request'; -import { json, badRequest } from 'lib/response'; -import { getUser, updateUser } from 'queries/prisma/user'; +import { checkPassword, hashPassword } from '@/lib/auth'; +import { parseRequest } from '@/lib/request'; +import { json, badRequest } from '@/lib/response'; +import { getUser, updateUser } from '@/queries/prisma/user'; export async function POST(request: Request) { const schema = z.object({ diff --git a/src/app/api/me/route.ts b/src/app/api/me/route.ts index 60a14271..59a32552 100644 --- a/src/app/api/me/route.ts +++ b/src/app/api/me/route.ts @@ -1,5 +1,5 @@ -import { parseRequest } from 'lib/request'; -import { json } from 'lib/response'; +import { parseRequest } from '@/lib/request'; +import { json } from '@/lib/response'; export async function GET(request: Request) { const { auth, error } = await parseRequest(request); diff --git a/src/app/api/me/teams/route.ts b/src/app/api/me/teams/route.ts index 0624e94f..2ea6575e 100644 --- a/src/app/api/me/teams/route.ts +++ b/src/app/api/me/teams/route.ts @@ -1,8 +1,8 @@ import { z } from 'zod'; -import { pagingParams } from 'lib/schema'; -import { getUserTeams } from 'queries'; -import { json } from 'lib/response'; -import { parseRequest } from 'lib/request'; +import { pagingParams } from '@/lib/schema'; +import { getUserTeams } from '@/queries'; +import { json } from '@/lib/response'; +import { parseRequest } from '@/lib/request'; export async function GET(request: Request) { const schema = z.object({ diff --git a/src/app/api/me/websites/route.ts b/src/app/api/me/websites/route.ts index 725ca94b..a8df856a 100644 --- a/src/app/api/me/websites/route.ts +++ b/src/app/api/me/websites/route.ts @@ -1,8 +1,8 @@ import { z } from 'zod'; -import { pagingParams } from 'lib/schema'; -import { getUserWebsites } from 'queries'; -import { json } from 'lib/response'; -import { parseRequest } from 'lib/request'; +import { pagingParams } from '@/lib/schema'; +import { getUserWebsites } from '@/queries'; +import { json } from '@/lib/response'; +import { parseRequest } from '@/lib/request'; export async function GET(request: Request) { const schema = z.object({ diff --git a/src/app/api/realtime/[websiteId]/route.ts b/src/app/api/realtime/[websiteId]/route.ts index b575ac12..7f9c1a9a 100644 --- a/src/app/api/realtime/[websiteId]/route.ts +++ b/src/app/api/realtime/[websiteId]/route.ts @@ -1,9 +1,9 @@ -import { json, unauthorized } from 'lib/response'; -import { getRealtimeData } from 'queries'; -import { canViewWebsite } from 'lib/auth'; +import { json, unauthorized } from '@/lib/response'; +import { getRealtimeData } from '@/queries'; +import { canViewWebsite } from '@/lib/auth'; import { startOfMinute, subMinutes } from 'date-fns'; -import { REALTIME_RANGE } from 'lib/constants'; -import { parseRequest } from 'lib/request'; +import { REALTIME_RANGE } from '@/lib/constants'; +import { parseRequest } from '@/lib/request'; export async function GET( request: Request, diff --git a/src/app/api/reports/[reportId]/route.ts b/src/app/api/reports/[reportId]/route.ts index 0d7c0845..ba90ee08 100644 --- a/src/app/api/reports/[reportId]/route.ts +++ b/src/app/api/reports/[reportId]/route.ts @@ -1,9 +1,9 @@ import { z } from 'zod'; -import { parseRequest } from 'lib/request'; -import { deleteReport, getReport, updateReport } from 'queries'; -import { canDeleteReport, canUpdateReport, canViewReport } from 'lib/auth'; -import { unauthorized, json, notFound, ok } from 'lib/response'; -import { reportTypeParam } from 'lib/schema'; +import { parseRequest } from '@/lib/request'; +import { deleteReport, getReport, updateReport } from '@/queries'; +import { canDeleteReport, canUpdateReport, canViewReport } from '@/lib/auth'; +import { unauthorized, json, notFound, ok } from '@/lib/response'; +import { reportTypeParam } from '@/lib/schema'; export async function GET(request: Request, { params }: { params: Promise<{ reportId: string }> }) { const { auth, error } = await parseRequest(request); diff --git a/src/app/api/reports/funnel/route.ts b/src/app/api/reports/funnel/route.ts index 23a05014..471ae709 100644 --- a/src/app/api/reports/funnel/route.ts +++ b/src/app/api/reports/funnel/route.ts @@ -1,9 +1,9 @@ import { z } from 'zod'; -import { canViewWebsite } from 'lib/auth'; -import { unauthorized, json } from 'lib/response'; -import { parseRequest } from 'lib/request'; -import { getFunnel } from 'queries'; -import { reportParms } from 'lib/schema'; +import { canViewWebsite } from '@/lib/auth'; +import { unauthorized, json } from '@/lib/response'; +import { parseRequest } from '@/lib/request'; +import { getFunnel } from '@/queries'; +import { reportParms } from '@/lib/schema'; export async function POST(request: Request) { const schema = z.object({ diff --git a/src/app/api/reports/goals/route.ts b/src/app/api/reports/goals/route.ts index 7aceabc8..b419c569 100644 --- a/src/app/api/reports/goals/route.ts +++ b/src/app/api/reports/goals/route.ts @@ -1,9 +1,9 @@ import { z } from 'zod'; -import { canViewWebsite } from 'lib/auth'; -import { unauthorized, json } from 'lib/response'; -import { parseRequest } from 'lib/request'; -import { getGoals } from 'queries/analytics/reports/getGoals'; -import { reportParms } from 'lib/schema'; +import { canViewWebsite } from '@/lib/auth'; +import { unauthorized, json } from '@/lib/response'; +import { parseRequest } from '@/lib/request'; +import { getGoals } from '@/queries/analytics/reports/getGoals'; +import { reportParms } from '@/lib/schema'; export async function POST(request: Request) { const schema = z.object({ diff --git a/src/app/api/reports/insights/route.ts b/src/app/api/reports/insights/route.ts index a7ed1c15..b3569cba 100644 --- a/src/app/api/reports/insights/route.ts +++ b/src/app/api/reports/insights/route.ts @@ -1,9 +1,9 @@ import { z } from 'zod'; -import { canViewWebsite } from 'lib/auth'; -import { unauthorized, json } from 'lib/response'; -import { parseRequest } from 'lib/request'; -import { getInsights } from 'queries'; -import { reportParms } from 'lib/schema'; +import { canViewWebsite } from '@/lib/auth'; +import { unauthorized, json } from '@/lib/response'; +import { parseRequest } from '@/lib/request'; +import { getInsights } from '@/queries'; +import { reportParms } from '@/lib/schema'; function convertFilters(filters: any[]) { return filters.reduce((obj, filter) => { diff --git a/src/app/api/reports/journey/route.ts b/src/app/api/reports/journey/route.ts index f5121fdc..b8a0a0a4 100644 --- a/src/app/api/reports/journey/route.ts +++ b/src/app/api/reports/journey/route.ts @@ -1,9 +1,9 @@ import { z } from 'zod'; -import { canViewWebsite } from 'lib/auth'; -import { unauthorized, json } from 'lib/response'; -import { parseRequest } from 'lib/request'; -import { getJourney } from 'queries'; -import { reportParms } from 'lib/schema'; +import { canViewWebsite } from '@/lib/auth'; +import { unauthorized, json } from '@/lib/response'; +import { parseRequest } from '@/lib/request'; +import { getJourney } from '@/queries'; +import { reportParms } from '@/lib/schema'; export async function POST(request: Request) { const schema = z.object({ diff --git a/src/app/api/reports/retention/route.ts b/src/app/api/reports/retention/route.ts index 8e854fa9..83220bb4 100644 --- a/src/app/api/reports/retention/route.ts +++ b/src/app/api/reports/retention/route.ts @@ -1,9 +1,9 @@ import { z } from 'zod'; -import { canViewWebsite } from 'lib/auth'; -import { unauthorized, json } from 'lib/response'; -import { parseRequest } from 'lib/request'; -import { getRetention } from 'queries'; -import { reportParms, timezoneParam } from 'lib/schema'; +import { canViewWebsite } from '@/lib/auth'; +import { unauthorized, json } from '@/lib/response'; +import { parseRequest } from '@/lib/request'; +import { getRetention } from '@/queries'; +import { reportParms, timezoneParam } from '@/lib/schema'; export async function POST(request: Request) { const schema = z.object({ diff --git a/src/app/api/reports/revenue/route.ts b/src/app/api/reports/revenue/route.ts index abece8a1..db7d036b 100644 --- a/src/app/api/reports/revenue/route.ts +++ b/src/app/api/reports/revenue/route.ts @@ -1,10 +1,10 @@ import { z } from 'zod'; -import { canViewWebsite } from 'lib/auth'; -import { unauthorized, json } from 'lib/response'; -import { parseRequest } from 'lib/request'; -import { reportParms, timezoneParam } from 'lib/schema'; -import { getRevenue } from 'queries/analytics/reports/getRevenue'; -import { getRevenueValues } from 'queries/analytics/reports/getRevenueValues'; +import { canViewWebsite } from '@/lib/auth'; +import { unauthorized, json } from '@/lib/response'; +import { parseRequest } from '@/lib/request'; +import { reportParms, timezoneParam } from '@/lib/schema'; +import { getRevenue } from '@/queries/analytics/reports/getRevenue'; +import { getRevenueValues } from '@/queries/analytics/reports/getRevenueValues'; export async function GET(request: Request) { const { auth, query, error } = await parseRequest(request); diff --git a/src/app/api/reports/route.ts b/src/app/api/reports/route.ts index 19c175bd..e50c57bc 100644 --- a/src/app/api/reports/route.ts +++ b/src/app/api/reports/route.ts @@ -1,10 +1,10 @@ import { z } from 'zod'; -import { uuid } from 'lib/crypto'; -import { pagingParams, reportTypeParam } from 'lib/schema'; -import { parseRequest } from 'lib/request'; -import { canViewTeam, canViewWebsite, canUpdateWebsite } from 'lib/auth'; -import { unauthorized, json } from 'lib/response'; -import { getReports, createReport } from 'queries'; +import { uuid } from '@/lib/crypto'; +import { pagingParams, reportTypeParam } from '@/lib/schema'; +import { parseRequest } from '@/lib/request'; +import { canViewTeam, canViewWebsite, canUpdateWebsite } from '@/lib/auth'; +import { unauthorized, json } from '@/lib/response'; +import { getReports, createReport } from '@/queries'; export async function GET(request: Request) { const schema = z.object({ diff --git a/src/app/api/reports/utm/route.ts b/src/app/api/reports/utm/route.ts index 2412134d..38e88a6d 100644 --- a/src/app/api/reports/utm/route.ts +++ b/src/app/api/reports/utm/route.ts @@ -1,9 +1,9 @@ import { z } from 'zod'; -import { canViewWebsite } from 'lib/auth'; -import { unauthorized, json } from 'lib/response'; -import { parseRequest } from 'lib/request'; -import { getUTM } from 'queries'; -import { reportParms } from 'lib/schema'; +import { canViewWebsite } from '@/lib/auth'; +import { unauthorized, json } from '@/lib/response'; +import { parseRequest } from '@/lib/request'; +import { getUTM } from '@/queries'; +import { reportParms } from '@/lib/schema'; export async function POST(request: Request) { const schema = z.object({ diff --git a/src/app/api/scripts/telemetry/route.ts b/src/app/api/scripts/telemetry/route.ts index ecd83fcb..54cee565 100644 --- a/src/app/api/scripts/telemetry/route.ts +++ b/src/app/api/scripts/telemetry/route.ts @@ -1,4 +1,4 @@ -import { CURRENT_VERSION, TELEMETRY_PIXEL } from 'lib/constants'; +import { CURRENT_VERSION, TELEMETRY_PIXEL } from '@/lib/constants'; export async function GET() { if ( diff --git a/src/app/api/send/route.ts b/src/app/api/send/route.ts index dd3253ba..8c9acad9 100644 --- a/src/app/api/send/route.ts +++ b/src/app/api/send/route.ts @@ -1,15 +1,15 @@ import { z } from 'zod'; import { isbot } from 'isbot'; -import { createToken, parseToken } from 'lib/jwt'; -import { safeDecodeURI } from 'lib/url'; -import clickhouse from 'lib/clickhouse'; -import { parseRequest } from 'lib/request'; -import { badRequest, json, forbidden, serverError } from 'lib/response'; -import { fetchSession, fetchWebsite } from 'lib/load'; -import { getClientInfo, hasBlockedIp } from 'lib/detect'; -import { secret, uuid, visitSalt } from 'lib/crypto'; -import { COLLECTION_TYPE } from 'lib/constants'; -import { createSession, saveEvent, saveSessionData } from 'queries'; +import { createToken, parseToken } from '@/lib/jwt'; +import { safeDecodeURI } from '@/lib/url'; +import clickhouse from '@/lib/clickhouse'; +import { parseRequest } from '@/lib/request'; +import { badRequest, json, forbidden, serverError } from '@/lib/response'; +import { fetchSession, fetchWebsite } from '@/lib/load'; +import { getClientInfo, hasBlockedIp } from '@/lib/detect'; +import { secret, uuid, visitSalt } from '@/lib/crypto'; +import { COLLECTION_TYPE } from '@/lib/constants'; +import { createSession, saveEvent, saveSessionData } from '@/queries'; export async function POST(request: Request) { // Bot check diff --git a/src/app/api/share/[shareId]/route.ts b/src/app/api/share/[shareId]/route.ts index 934d51a1..e387938d 100644 --- a/src/app/api/share/[shareId]/route.ts +++ b/src/app/api/share/[shareId]/route.ts @@ -1,7 +1,7 @@ -import { json, notFound } from 'lib/response'; -import { createToken } from 'lib/jwt'; -import { secret } from 'lib/crypto'; -import { getSharedWebsite } from 'queries'; +import { json, notFound } from '@/lib/response'; +import { createToken } from '@/lib/jwt'; +import { secret } from '@/lib/crypto'; +import { getSharedWebsite } from '@/queries'; export async function GET(request: Request, { params }: { params: Promise<{ shareId: string }> }) { const { shareId } = await params; diff --git a/src/app/api/teams/[teamId]/route.ts b/src/app/api/teams/[teamId]/route.ts index 0c5db380..f7f4b331 100644 --- a/src/app/api/teams/[teamId]/route.ts +++ b/src/app/api/teams/[teamId]/route.ts @@ -1,8 +1,8 @@ import { z } from 'zod'; -import { unauthorized, json, notFound, ok } from 'lib/response'; -import { canDeleteTeam, canUpdateTeam, canViewTeam } from 'lib/auth'; -import { parseRequest } from 'lib/request'; -import { deleteTeam, getTeam, updateTeam } from 'queries'; +import { unauthorized, json, notFound, ok } from '@/lib/response'; +import { canDeleteTeam, canUpdateTeam, canViewTeam } from '@/lib/auth'; +import { parseRequest } from '@/lib/request'; +import { deleteTeam, getTeam, updateTeam } from '@/queries'; export async function GET(request: Request, { params }: { params: Promise<{ teamId: string }> }) { const { auth, error } = await parseRequest(request); diff --git a/src/app/api/teams/[teamId]/users/[userId]/route.ts b/src/app/api/teams/[teamId]/users/[userId]/route.ts index 9276c194..cadcd8b0 100644 --- a/src/app/api/teams/[teamId]/users/[userId]/route.ts +++ b/src/app/api/teams/[teamId]/users/[userId]/route.ts @@ -1,8 +1,8 @@ import { z } from 'zod'; -import { unauthorized, json, badRequest, ok } from 'lib/response'; -import { canDeleteTeam, canUpdateTeam } from 'lib/auth'; -import { parseRequest } from 'lib/request'; -import { deleteTeam, getTeamUser, updateTeamUser } from 'queries'; +import { unauthorized, json, badRequest, ok } from '@/lib/response'; +import { canDeleteTeam, canUpdateTeam } from '@/lib/auth'; +import { parseRequest } from '@/lib/request'; +import { deleteTeam, getTeamUser, updateTeamUser } from '@/queries'; export async function GET( request: Request, diff --git a/src/app/api/teams/[teamId]/users/route.ts b/src/app/api/teams/[teamId]/users/route.ts index a69a6b85..5ec9435f 100644 --- a/src/app/api/teams/[teamId]/users/route.ts +++ b/src/app/api/teams/[teamId]/users/route.ts @@ -1,9 +1,9 @@ import { z } from 'zod'; -import { unauthorized, json, badRequest } from 'lib/response'; -import { canAddUserToTeam, canUpdateTeam } from 'lib/auth'; -import { parseRequest } from 'lib/request'; -import { pagingParams, roleParam } from 'lib/schema'; -import { createTeamUser, getTeamUser, getTeamUsers } from 'queries'; +import { unauthorized, json, badRequest } from '@/lib/response'; +import { canAddUserToTeam, canUpdateTeam } from '@/lib/auth'; +import { parseRequest } from '@/lib/request'; +import { pagingParams, roleParam } from '@/lib/schema'; +import { createTeamUser, getTeamUser, getTeamUsers } from '@/queries'; export async function GET(request: Request, { params }: { params: Promise<{ teamId: string }> }) { const schema = z.object({ diff --git a/src/app/api/teams/[teamId]/websites/route.ts b/src/app/api/teams/[teamId]/websites/route.ts index 9f800e0e..f69ab465 100644 --- a/src/app/api/teams/[teamId]/websites/route.ts +++ b/src/app/api/teams/[teamId]/websites/route.ts @@ -1,9 +1,9 @@ import { z } from 'zod'; -import { unauthorized, json } from 'lib/response'; -import { canViewTeam } from 'lib/auth'; -import { parseRequest } from 'lib/request'; -import { pagingParams } from 'lib/schema'; -import { getTeamWebsites } from 'queries'; +import { unauthorized, json } from '@/lib/response'; +import { canViewTeam } from '@/lib/auth'; +import { parseRequest } from '@/lib/request'; +import { pagingParams } from '@/lib/schema'; +import { getTeamWebsites } from '@/queries'; export async function GET(request: Request, { params }: { params: Promise<{ teamId: string }> }) { const schema = z.object({ diff --git a/src/app/api/teams/join/route.ts b/src/app/api/teams/join/route.ts index 76d4a83f..3464054c 100644 --- a/src/app/api/teams/join/route.ts +++ b/src/app/api/teams/join/route.ts @@ -1,9 +1,9 @@ import { z } from 'zod'; -import { unauthorized, json, badRequest, notFound } from 'lib/response'; -import { canCreateTeam } from 'lib/auth'; -import { parseRequest } from 'lib/request'; -import { ROLES } from 'lib/constants'; -import { createTeamUser, findTeam, getTeamUser } from 'queries'; +import { unauthorized, json, badRequest, notFound } from '@/lib/response'; +import { canCreateTeam } from '@/lib/auth'; +import { parseRequest } from '@/lib/request'; +import { ROLES } from '@/lib/constants'; +import { createTeamUser, findTeam, getTeamUser } from '@/queries'; export async function POST(request: Request) { const schema = z.object({ diff --git a/src/app/api/teams/route.ts b/src/app/api/teams/route.ts index 11be6c5f..d319d87b 100644 --- a/src/app/api/teams/route.ts +++ b/src/app/api/teams/route.ts @@ -1,10 +1,10 @@ import { z } from 'zod'; -import { getRandomChars } from 'lib/crypto'; -import { unauthorized, json } from 'lib/response'; -import { canCreateTeam } from 'lib/auth'; -import { uuid } from 'lib/crypto'; -import { parseRequest } from 'lib/request'; -import { createTeam } from 'queries'; +import { getRandomChars } from '@/lib/crypto'; +import { unauthorized, json } from '@/lib/response'; +import { canCreateTeam } from '@/lib/auth'; +import { uuid } from '@/lib/crypto'; +import { parseRequest } from '@/lib/request'; +import { createTeam } from '@/queries'; export async function POST(request: Request) { const schema = z.object({ diff --git a/src/app/api/users/[userId]/route.ts b/src/app/api/users/[userId]/route.ts index 6bf776f3..abb3331d 100644 --- a/src/app/api/users/[userId]/route.ts +++ b/src/app/api/users/[userId]/route.ts @@ -1,9 +1,9 @@ import { z } from 'zod'; -import { canUpdateUser, canViewUser, canDeleteUser } from 'lib/auth'; -import { getUser, getUserByUsername, updateUser, deleteUser } from 'queries'; -import { json, unauthorized, badRequest, ok } from 'lib/response'; -import { hashPassword } from 'lib/auth'; -import { parseRequest } from 'lib/request'; +import { canUpdateUser, canViewUser, canDeleteUser } from '@/lib/auth'; +import { getUser, getUserByUsername, updateUser, deleteUser } from '@/queries'; +import { json, unauthorized, badRequest, ok } from '@/lib/response'; +import { hashPassword } from '@/lib/auth'; +import { parseRequest } from '@/lib/request'; export async function GET(request: Request, { params }: { params: Promise<{ userId: string }> }) { const { auth, error } = await parseRequest(request); diff --git a/src/app/api/users/[userId]/teams/route.ts b/src/app/api/users/[userId]/teams/route.ts index 329e7413..ff659525 100644 --- a/src/app/api/users/[userId]/teams/route.ts +++ b/src/app/api/users/[userId]/teams/route.ts @@ -1,8 +1,8 @@ import { z } from 'zod'; -import { pagingParams } from 'lib/schema'; -import { getUserTeams } from 'queries'; -import { unauthorized, json } from 'lib/response'; -import { parseRequest } from 'lib/request'; +import { pagingParams } from '@/lib/schema'; +import { getUserTeams } from '@/queries'; +import { unauthorized, json } from '@/lib/response'; +import { parseRequest } from '@/lib/request'; export async function GET(request: Request, { params }: { params: Promise<{ userId: string }> }) { const schema = z.object({ diff --git a/src/app/api/users/[userId]/usage/route.ts b/src/app/api/users/[userId]/usage/route.ts index 72510bd3..168ae42e 100644 --- a/src/app/api/users/[userId]/usage/route.ts +++ b/src/app/api/users/[userId]/usage/route.ts @@ -1,9 +1,9 @@ import { z } from 'zod'; -import { json, unauthorized } from 'lib/response'; -import { getAllUserWebsitesIncludingTeamOwner } from 'queries/prisma/website'; -import { getEventUsage } from 'queries/analytics/events/getEventUsage'; -import { getEventDataUsage } from 'queries/analytics/events/getEventDataUsage'; -import { parseRequest } from 'lib/request'; +import { json, unauthorized } from '@/lib/response'; +import { getAllUserWebsitesIncludingTeamOwner } from '@/queries/prisma/website'; +import { getEventUsage } from '@/queries/analytics/events/getEventUsage'; +import { getEventDataUsage } from '@/queries/analytics/events/getEventDataUsage'; +import { parseRequest } from '@/lib/request'; export async function GET(request: Request, { params }: { params: Promise<{ userId: string }> }) { const schema = z.object({ diff --git a/src/app/api/users/[userId]/websites/route.ts b/src/app/api/users/[userId]/websites/route.ts index 22aced51..77d41084 100644 --- a/src/app/api/users/[userId]/websites/route.ts +++ b/src/app/api/users/[userId]/websites/route.ts @@ -1,8 +1,8 @@ import { z } from 'zod'; -import { unauthorized, json } from 'lib/response'; -import { getUserWebsites } from 'queries/prisma/website'; -import { pagingParams } from 'lib/schema'; -import { parseRequest } from 'lib/request'; +import { unauthorized, json } from '@/lib/response'; +import { getUserWebsites } from '@/queries/prisma/website'; +import { pagingParams } from '@/lib/schema'; +import { parseRequest } from '@/lib/request'; export async function GET(request: Request, { params }: { params: Promise<{ userId: string }> }) { const schema = z.object({ diff --git a/src/app/api/users/route.ts b/src/app/api/users/route.ts index 06c95b5e..320f72bd 100644 --- a/src/app/api/users/route.ts +++ b/src/app/api/users/route.ts @@ -1,10 +1,10 @@ import { z } from 'zod'; -import { hashPassword, canCreateUser } from 'lib/auth'; -import { ROLES } from 'lib/constants'; -import { uuid } from 'lib/crypto'; -import { parseRequest } from 'lib/request'; -import { unauthorized, json, badRequest } from 'lib/response'; -import { createUser, getUserByUsername } from 'queries'; +import { hashPassword, canCreateUser } from '@/lib/auth'; +import { ROLES } from '@/lib/constants'; +import { uuid } from '@/lib/crypto'; +import { parseRequest } from '@/lib/request'; +import { unauthorized, json, badRequest } from '@/lib/response'; +import { createUser, getUserByUsername } from '@/queries'; export async function POST(request: Request) { const schema = z.object({ diff --git a/src/app/api/version/route.ts b/src/app/api/version/route.ts index 605d2583..275a4118 100644 --- a/src/app/api/version/route.ts +++ b/src/app/api/version/route.ts @@ -1,5 +1,5 @@ -import { json } from 'lib/response'; -import { CURRENT_VERSION } from 'lib/constants'; +import { json } from '@/lib/response'; +import { CURRENT_VERSION } from '@/lib/constants'; export async function GET() { return json({ version: CURRENT_VERSION }); diff --git a/src/app/api/websites/[websiteId]/active/route.ts b/src/app/api/websites/[websiteId]/active/route.ts index 9e25cea6..88c0fd17 100644 --- a/src/app/api/websites/[websiteId]/active/route.ts +++ b/src/app/api/websites/[websiteId]/active/route.ts @@ -1,7 +1,7 @@ -import { canViewWebsite } from 'lib/auth'; -import { json, unauthorized } from 'lib/response'; -import { getActiveVisitors } from 'queries'; -import { parseRequest } from 'lib/request'; +import { canViewWebsite } from '@/lib/auth'; +import { json, unauthorized } from '@/lib/response'; +import { getActiveVisitors } from '@/queries'; +import { parseRequest } from '@/lib/request'; export async function GET( request: Request, diff --git a/src/app/api/websites/[websiteId]/daterange/route.ts b/src/app/api/websites/[websiteId]/daterange/route.ts index 75423454..ea2d10d2 100644 --- a/src/app/api/websites/[websiteId]/daterange/route.ts +++ b/src/app/api/websites/[websiteId]/daterange/route.ts @@ -1,7 +1,7 @@ -import { canViewWebsite } from 'lib/auth'; -import { getWebsiteDateRange } from 'queries'; -import { json, unauthorized } from 'lib/response'; -import { parseRequest } from 'lib/request'; +import { canViewWebsite } from '@/lib/auth'; +import { getWebsiteDateRange } from '@/queries'; +import { json, unauthorized } from '@/lib/response'; +import { parseRequest } from '@/lib/request'; export async function GET( request: Request, diff --git a/src/app/api/websites/[websiteId]/event-data/events/route.ts b/src/app/api/websites/[websiteId]/event-data/events/route.ts index 4937482a..3e32aa83 100644 --- a/src/app/api/websites/[websiteId]/event-data/events/route.ts +++ b/src/app/api/websites/[websiteId]/event-data/events/route.ts @@ -1,8 +1,8 @@ import { z } from 'zod'; -import { parseRequest } from 'lib/request'; -import { unauthorized, json } from 'lib/response'; -import { canViewWebsite } from 'lib/auth'; -import { getEventDataEvents } from 'queries/analytics/events/getEventDataEvents'; +import { parseRequest } from '@/lib/request'; +import { unauthorized, json } from '@/lib/response'; +import { canViewWebsite } from '@/lib/auth'; +import { getEventDataEvents } from '@/queries/analytics/events/getEventDataEvents'; export async function GET( request: Request, diff --git a/src/app/api/websites/[websiteId]/event-data/fields/route.ts b/src/app/api/websites/[websiteId]/event-data/fields/route.ts index e95998ed..60101e45 100644 --- a/src/app/api/websites/[websiteId]/event-data/fields/route.ts +++ b/src/app/api/websites/[websiteId]/event-data/fields/route.ts @@ -1,8 +1,8 @@ import { z } from 'zod'; -import { parseRequest } from 'lib/request'; -import { unauthorized, json } from 'lib/response'; -import { canViewWebsite } from 'lib/auth'; -import { getEventDataFields } from 'queries'; +import { parseRequest } from '@/lib/request'; +import { unauthorized, json } from '@/lib/response'; +import { canViewWebsite } from '@/lib/auth'; +import { getEventDataFields } from '@/queries'; export async function GET( request: Request, diff --git a/src/app/api/websites/[websiteId]/event-data/properties/route.ts b/src/app/api/websites/[websiteId]/event-data/properties/route.ts index 25f915b1..fe085f74 100644 --- a/src/app/api/websites/[websiteId]/event-data/properties/route.ts +++ b/src/app/api/websites/[websiteId]/event-data/properties/route.ts @@ -1,8 +1,8 @@ import { z } from 'zod'; -import { parseRequest } from 'lib/request'; -import { unauthorized, json } from 'lib/response'; -import { canViewWebsite } from 'lib/auth'; -import { getEventDataProperties } from 'queries'; +import { parseRequest } from '@/lib/request'; +import { unauthorized, json } from '@/lib/response'; +import { canViewWebsite } from '@/lib/auth'; +import { getEventDataProperties } from '@/queries'; export async function GET( request: Request, diff --git a/src/app/api/websites/[websiteId]/event-data/stats/route.ts b/src/app/api/websites/[websiteId]/event-data/stats/route.ts index a8093e61..6928aa1e 100644 --- a/src/app/api/websites/[websiteId]/event-data/stats/route.ts +++ b/src/app/api/websites/[websiteId]/event-data/stats/route.ts @@ -1,8 +1,8 @@ import { z } from 'zod'; -import { parseRequest } from 'lib/request'; -import { unauthorized, json } from 'lib/response'; -import { canViewWebsite } from 'lib/auth'; -import { getEventDataStats } from 'queries'; +import { parseRequest } from '@/lib/request'; +import { unauthorized, json } from '@/lib/response'; +import { canViewWebsite } from '@/lib/auth'; +import { getEventDataStats } from '@/queries'; export async function GET( request: Request, diff --git a/src/app/api/websites/[websiteId]/event-data/values/route.ts b/src/app/api/websites/[websiteId]/event-data/values/route.ts index 7734d920..2a912439 100644 --- a/src/app/api/websites/[websiteId]/event-data/values/route.ts +++ b/src/app/api/websites/[websiteId]/event-data/values/route.ts @@ -1,8 +1,8 @@ import { z } from 'zod'; -import { parseRequest } from 'lib/request'; -import { unauthorized, json } from 'lib/response'; -import { canViewWebsite } from 'lib/auth'; -import { getEventDataValues } from 'queries'; +import { parseRequest } from '@/lib/request'; +import { unauthorized, json } from '@/lib/response'; +import { canViewWebsite } from '@/lib/auth'; +import { getEventDataValues } from '@/queries'; export async function GET( request: Request, diff --git a/src/app/api/websites/[websiteId]/events/route.ts b/src/app/api/websites/[websiteId]/events/route.ts index 71046b3c..66eaba2c 100644 --- a/src/app/api/websites/[websiteId]/events/route.ts +++ b/src/app/api/websites/[websiteId]/events/route.ts @@ -1,9 +1,9 @@ import { z } from 'zod'; -import { parseRequest } from 'lib/request'; -import { unauthorized, json } from 'lib/response'; -import { canViewWebsite } from 'lib/auth'; -import { pagingParams } from 'lib/schema'; -import { getWebsiteEvents } from 'queries'; +import { parseRequest } from '@/lib/request'; +import { unauthorized, json } from '@/lib/response'; +import { canViewWebsite } from '@/lib/auth'; +import { pagingParams } from '@/lib/schema'; +import { getWebsiteEvents } from '@/queries'; export async function GET( request: Request, diff --git a/src/app/api/websites/[websiteId]/events/series/route.ts b/src/app/api/websites/[websiteId]/events/series/route.ts index f8646e49..da4b0d4f 100644 --- a/src/app/api/websites/[websiteId]/events/series/route.ts +++ b/src/app/api/websites/[websiteId]/events/series/route.ts @@ -1,9 +1,9 @@ import { z } from 'zod'; -import { parseRequest, getRequestDateRange, getRequestFilters } from 'lib/request'; -import { unauthorized, json } from 'lib/response'; -import { canViewWebsite } from 'lib/auth'; -import { filterParams, timezoneParam, unitParam } from 'lib/schema'; -import { getEventMetrics } from 'queries'; +import { parseRequest, getRequestDateRange, getRequestFilters } from '@/lib/request'; +import { unauthorized, json } from '@/lib/response'; +import { canViewWebsite } from '@/lib/auth'; +import { filterParams, timezoneParam, unitParam } from '@/lib/schema'; +import { getEventMetrics } from '@/queries'; export async function GET( request: Request, diff --git a/src/app/api/websites/[websiteId]/metrics/route.ts b/src/app/api/websites/[websiteId]/metrics/route.ts index 44312429..17c8676f 100644 --- a/src/app/api/websites/[websiteId]/metrics/route.ts +++ b/src/app/api/websites/[websiteId]/metrics/route.ts @@ -1,10 +1,10 @@ import { z } from 'zod'; -import { canViewWebsite } from 'lib/auth'; -import { SESSION_COLUMNS, EVENT_COLUMNS, FILTER_COLUMNS, OPERATORS } from 'lib/constants'; -import { getRequestFilters, getRequestDateRange, parseRequest } from 'lib/request'; -import { json, unauthorized, badRequest } from 'lib/response'; -import { getPageviewMetrics, getSessionMetrics } from 'queries'; -import { filterParams } from 'lib/schema'; +import { canViewWebsite } from '@/lib/auth'; +import { SESSION_COLUMNS, EVENT_COLUMNS, FILTER_COLUMNS, OPERATORS } from '@/lib/constants'; +import { getRequestFilters, getRequestDateRange, parseRequest } from '@/lib/request'; +import { json, unauthorized, badRequest } from '@/lib/response'; +import { getPageviewMetrics, getSessionMetrics } from '@/queries'; +import { filterParams } from '@/lib/schema'; export async function GET( request: Request, diff --git a/src/app/api/websites/[websiteId]/pageviews/route.ts b/src/app/api/websites/[websiteId]/pageviews/route.ts index 020e139b..e603ae9c 100644 --- a/src/app/api/websites/[websiteId]/pageviews/route.ts +++ b/src/app/api/websites/[websiteId]/pageviews/route.ts @@ -1,10 +1,10 @@ import { z } from 'zod'; -import { canViewWebsite } from 'lib/auth'; -import { getRequestFilters, getRequestDateRange, parseRequest } from 'lib/request'; -import { unitParam, timezoneParam, filterParams } from 'lib/schema'; -import { getCompareDate } from 'lib/date'; -import { unauthorized, json } from 'lib/response'; -import { getPageviewStats, getSessionStats } from 'queries'; +import { canViewWebsite } from '@/lib/auth'; +import { getRequestFilters, getRequestDateRange, parseRequest } from '@/lib/request'; +import { unitParam, timezoneParam, filterParams } from '@/lib/schema'; +import { getCompareDate } from '@/lib/date'; +import { unauthorized, json } from '@/lib/response'; +import { getPageviewStats, getSessionStats } from '@/queries'; export async function GET( request: Request, diff --git a/src/app/api/websites/[websiteId]/reports/route.ts b/src/app/api/websites/[websiteId]/reports/route.ts index 44f62625..c6941f53 100644 --- a/src/app/api/websites/[websiteId]/reports/route.ts +++ b/src/app/api/websites/[websiteId]/reports/route.ts @@ -1,9 +1,9 @@ import { z } from 'zod'; -import { canViewWebsite } from 'lib/auth'; -import { getWebsiteReports } from 'queries'; -import { pagingParams } from 'lib/schema'; -import { parseRequest } from 'lib/request'; -import { unauthorized, json } from 'lib/response'; +import { canViewWebsite } from '@/lib/auth'; +import { getWebsiteReports } from '@/queries'; +import { pagingParams } from '@/lib/schema'; +import { parseRequest } from '@/lib/request'; +import { unauthorized, json } from '@/lib/response'; export async function GET( request: Request, diff --git a/src/app/api/websites/[websiteId]/reset/route.ts b/src/app/api/websites/[websiteId]/reset/route.ts index 8f2df289..62edceea 100644 --- a/src/app/api/websites/[websiteId]/reset/route.ts +++ b/src/app/api/websites/[websiteId]/reset/route.ts @@ -1,7 +1,7 @@ -import { canUpdateWebsite } from 'lib/auth'; -import { resetWebsite } from 'queries'; -import { unauthorized, ok } from 'lib/response'; -import { parseRequest } from 'lib/request'; +import { canUpdateWebsite } from '@/lib/auth'; +import { resetWebsite } from '@/queries'; +import { unauthorized, ok } from '@/lib/response'; +import { parseRequest } from '@/lib/request'; export async function POST( request: Request, diff --git a/src/app/api/websites/[websiteId]/route.ts b/src/app/api/websites/[websiteId]/route.ts index b72a5e1d..f4ea327b 100644 --- a/src/app/api/websites/[websiteId]/route.ts +++ b/src/app/api/websites/[websiteId]/route.ts @@ -1,9 +1,9 @@ import { z } from 'zod'; -import { canUpdateWebsite, canDeleteWebsite, canViewWebsite } from 'lib/auth'; -import { SHARE_ID_REGEX } from 'lib/constants'; -import { parseRequest } from 'lib/request'; -import { ok, json, unauthorized, serverError } from 'lib/response'; -import { deleteWebsite, getWebsite, updateWebsite } from 'queries'; +import { canUpdateWebsite, canDeleteWebsite, canViewWebsite } from '@/lib/auth'; +import { SHARE_ID_REGEX } from '@/lib/constants'; +import { parseRequest } from '@/lib/request'; +import { ok, json, unauthorized, serverError } from '@/lib/response'; +import { deleteWebsite, getWebsite, updateWebsite } from '@/queries'; export async function GET( request: Request, diff --git a/src/app/api/websites/[websiteId]/session-data/properties/route.ts b/src/app/api/websites/[websiteId]/session-data/properties/route.ts index 5729ddbd..a6d9e2a4 100644 --- a/src/app/api/websites/[websiteId]/session-data/properties/route.ts +++ b/src/app/api/websites/[websiteId]/session-data/properties/route.ts @@ -1,8 +1,8 @@ import { z } from 'zod'; -import { parseRequest } from 'lib/request'; -import { unauthorized, json } from 'lib/response'; -import { canViewWebsite } from 'lib/auth'; -import { getSessionDataProperties } from 'queries'; +import { parseRequest } from '@/lib/request'; +import { unauthorized, json } from '@/lib/response'; +import { canViewWebsite } from '@/lib/auth'; +import { getSessionDataProperties } from '@/queries'; export async function GET( request: Request, diff --git a/src/app/api/websites/[websiteId]/session-data/values/route.ts b/src/app/api/websites/[websiteId]/session-data/values/route.ts index f14b1916..1c12f00d 100644 --- a/src/app/api/websites/[websiteId]/session-data/values/route.ts +++ b/src/app/api/websites/[websiteId]/session-data/values/route.ts @@ -1,8 +1,8 @@ import { z } from 'zod'; -import { parseRequest } from 'lib/request'; -import { unauthorized, json } from 'lib/response'; -import { canViewWebsite } from 'lib/auth'; -import { getEventDataEvents } from 'queries/analytics/events/getEventDataEvents'; +import { parseRequest } from '@/lib/request'; +import { unauthorized, json } from '@/lib/response'; +import { canViewWebsite } from '@/lib/auth'; +import { getEventDataEvents } from '@/queries/analytics/events/getEventDataEvents'; export async function GET( request: Request, diff --git a/src/app/api/websites/[websiteId]/sessions/[sessionId]/activity/route.ts b/src/app/api/websites/[websiteId]/sessions/[sessionId]/activity/route.ts index ccd05d4d..aac40c38 100644 --- a/src/app/api/websites/[websiteId]/sessions/[sessionId]/activity/route.ts +++ b/src/app/api/websites/[websiteId]/sessions/[sessionId]/activity/route.ts @@ -1,8 +1,8 @@ import { z } from 'zod'; -import { parseRequest } from 'lib/request'; -import { unauthorized, json } from 'lib/response'; -import { canViewWebsite } from 'lib/auth'; -import { getSessionActivity } from 'queries'; +import { parseRequest } from '@/lib/request'; +import { unauthorized, json } from '@/lib/response'; +import { canViewWebsite } from '@/lib/auth'; +import { getSessionActivity } from '@/queries'; export async function GET( request: Request, diff --git a/src/app/api/websites/[websiteId]/sessions/[sessionId]/properties/route.ts b/src/app/api/websites/[websiteId]/sessions/[sessionId]/properties/route.ts index a95a0233..9c389c82 100644 --- a/src/app/api/websites/[websiteId]/sessions/[sessionId]/properties/route.ts +++ b/src/app/api/websites/[websiteId]/sessions/[sessionId]/properties/route.ts @@ -1,7 +1,7 @@ -import { unauthorized, json } from 'lib/response'; -import { canViewWebsite } from 'lib/auth'; -import { getSessionData } from 'queries'; -import { parseRequest } from 'lib/request'; +import { unauthorized, json } from '@/lib/response'; +import { canViewWebsite } from '@/lib/auth'; +import { getSessionData } from '@/queries'; +import { parseRequest } from '@/lib/request'; export async function GET( request: Request, diff --git a/src/app/api/websites/[websiteId]/sessions/[sessionId]/route.ts b/src/app/api/websites/[websiteId]/sessions/[sessionId]/route.ts index 0a968eb2..c4621ef4 100644 --- a/src/app/api/websites/[websiteId]/sessions/[sessionId]/route.ts +++ b/src/app/api/websites/[websiteId]/sessions/[sessionId]/route.ts @@ -1,7 +1,7 @@ -import { unauthorized, json } from 'lib/response'; -import { canViewWebsite } from 'lib/auth'; -import { getWebsiteSession } from 'queries'; -import { parseRequest } from 'lib/request'; +import { unauthorized, json } from '@/lib/response'; +import { canViewWebsite } from '@/lib/auth'; +import { getWebsiteSession } from '@/queries'; +import { parseRequest } from '@/lib/request'; export async function GET( request: Request, diff --git a/src/app/api/websites/[websiteId]/sessions/route.ts b/src/app/api/websites/[websiteId]/sessions/route.ts index da8d9d09..5a14f00f 100644 --- a/src/app/api/websites/[websiteId]/sessions/route.ts +++ b/src/app/api/websites/[websiteId]/sessions/route.ts @@ -1,9 +1,9 @@ import { z } from 'zod'; -import { parseRequest } from 'lib/request'; -import { unauthorized, json } from 'lib/response'; -import { canViewWebsite } from 'lib/auth'; -import { pagingParams } from 'lib/schema'; -import { getWebsiteSessions } from 'queries'; +import { parseRequest } from '@/lib/request'; +import { unauthorized, json } from '@/lib/response'; +import { canViewWebsite } from '@/lib/auth'; +import { pagingParams } from '@/lib/schema'; +import { getWebsiteSessions } from '@/queries'; export async function GET( request: Request, diff --git a/src/app/api/websites/[websiteId]/sessions/stats/route.ts b/src/app/api/websites/[websiteId]/sessions/stats/route.ts index a45784f7..e8e8e6c8 100644 --- a/src/app/api/websites/[websiteId]/sessions/stats/route.ts +++ b/src/app/api/websites/[websiteId]/sessions/stats/route.ts @@ -1,9 +1,9 @@ import { z } from 'zod'; -import { parseRequest, getRequestDateRange, getRequestFilters } from 'lib/request'; -import { unauthorized, json } from 'lib/response'; -import { canViewWebsite } from 'lib/auth'; -import { filterParams } from 'lib/schema'; -import { getWebsiteSessionStats } from 'queries'; +import { parseRequest, getRequestDateRange, getRequestFilters } from '@/lib/request'; +import { unauthorized, json } from '@/lib/response'; +import { canViewWebsite } from '@/lib/auth'; +import { filterParams } from '@/lib/schema'; +import { getWebsiteSessionStats } from '@/queries'; export async function GET( request: Request, diff --git a/src/app/api/websites/[websiteId]/sessions/weekly/route.ts b/src/app/api/websites/[websiteId]/sessions/weekly/route.ts index b57bb95c..20be378d 100644 --- a/src/app/api/websites/[websiteId]/sessions/weekly/route.ts +++ b/src/app/api/websites/[websiteId]/sessions/weekly/route.ts @@ -1,9 +1,9 @@ import { z } from 'zod'; -import { parseRequest } from 'lib/request'; -import { unauthorized, json } from 'lib/response'; -import { canViewWebsite } from 'lib/auth'; -import { pagingParams, timezoneParam } from 'lib/schema'; -import { getWebsiteSessionsWeekly } from 'queries'; +import { parseRequest } from '@/lib/request'; +import { unauthorized, json } from '@/lib/response'; +import { canViewWebsite } from '@/lib/auth'; +import { pagingParams, timezoneParam } from '@/lib/schema'; +import { getWebsiteSessionsWeekly } from '@/queries'; export async function GET( request: Request, diff --git a/src/app/api/websites/[websiteId]/stats/route.ts b/src/app/api/websites/[websiteId]/stats/route.ts index 55dc4e3e..c146271f 100644 --- a/src/app/api/websites/[websiteId]/stats/route.ts +++ b/src/app/api/websites/[websiteId]/stats/route.ts @@ -1,10 +1,10 @@ import { z } from 'zod'; -import { parseRequest, getRequestDateRange, getRequestFilters } from 'lib/request'; -import { unauthorized, json } from 'lib/response'; -import { canViewWebsite } from 'lib/auth'; -import { getCompareDate } from 'lib/date'; -import { filterParams } from 'lib/schema'; -import { getWebsiteStats } from 'queries'; +import { parseRequest, getRequestDateRange, getRequestFilters } from '@/lib/request'; +import { unauthorized, json } from '@/lib/response'; +import { canViewWebsite } from '@/lib/auth'; +import { getCompareDate } from '@/lib/date'; +import { filterParams } from '@/lib/schema'; +import { getWebsiteStats } from '@/queries'; export async function GET( request: Request, diff --git a/src/app/api/websites/[websiteId]/transfer/route.ts b/src/app/api/websites/[websiteId]/transfer/route.ts index d3e497cd..03c0ae7f 100644 --- a/src/app/api/websites/[websiteId]/transfer/route.ts +++ b/src/app/api/websites/[websiteId]/transfer/route.ts @@ -1,8 +1,8 @@ import { z } from 'zod'; -import { canTransferWebsiteToTeam, canTransferWebsiteToUser } from 'lib/auth'; -import { updateWebsite } from 'queries'; -import { parseRequest } from 'lib/request'; -import { badRequest, unauthorized, json } from 'lib/response'; +import { canTransferWebsiteToTeam, canTransferWebsiteToUser } from '@/lib/auth'; +import { updateWebsite } from '@/queries'; +import { parseRequest } from '@/lib/request'; +import { badRequest, unauthorized, json } from '@/lib/response'; export async function POST( request: Request, diff --git a/src/app/api/websites/[websiteId]/values/route.ts b/src/app/api/websites/[websiteId]/values/route.ts index b81bdcc8..ed3cfae6 100644 --- a/src/app/api/websites/[websiteId]/values/route.ts +++ b/src/app/api/websites/[websiteId]/values/route.ts @@ -1,9 +1,9 @@ import { z } from 'zod'; -import { canViewWebsite } from 'lib/auth'; -import { EVENT_COLUMNS, FILTER_COLUMNS, SESSION_COLUMNS } from 'lib/constants'; -import { getValues } from 'queries'; -import { parseRequest, getRequestDateRange } from 'lib/request'; -import { badRequest, json, unauthorized } from 'lib/response'; +import { canViewWebsite } from '@/lib/auth'; +import { EVENT_COLUMNS, FILTER_COLUMNS, SESSION_COLUMNS } from '@/lib/constants'; +import { getValues } from '@/queries'; +import { parseRequest, getRequestDateRange } from '@/lib/request'; +import { badRequest, json, unauthorized } from '@/lib/response'; export async function GET( request: Request, diff --git a/src/app/api/websites/route.ts b/src/app/api/websites/route.ts index dfc48cee..b8fb2a0b 100644 --- a/src/app/api/websites/route.ts +++ b/src/app/api/websites/route.ts @@ -1,10 +1,10 @@ import { z } from 'zod'; -import { canCreateTeamWebsite, canCreateWebsite } from 'lib/auth'; -import { json, unauthorized } from 'lib/response'; -import { uuid } from 'lib/crypto'; -import { parseRequest } from 'lib/request'; -import { createWebsite, getUserWebsites } from 'queries'; -import { pagingParams } from 'lib/schema'; +import { canCreateTeamWebsite, canCreateWebsite } from '@/lib/auth'; +import { json, unauthorized } from '@/lib/response'; +import { uuid } from '@/lib/crypto'; +import { parseRequest } from '@/lib/request'; +import { createWebsite, getUserWebsites } from '@/queries'; +import { pagingParams } from '@/lib/schema'; export async function GET(request: Request) { const schema = z.object({ ...pagingParams }); diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 3c0ed43c..f88d8169 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -5,8 +5,8 @@ import '@fontsource/inter/400.css'; import '@fontsource/inter/500.css'; import '@fontsource/inter/700.css'; import 'react-basics/dist/styles.css'; -import 'styles/index.css'; -import 'styles/variables.css'; +import '@/styles/index.css'; +import '@/styles/variables.css'; export default function ({ children }) { return ( diff --git a/src/app/login/LoginForm.tsx b/src/app/login/LoginForm.tsx index 3101bf48..a808c622 100644 --- a/src/app/login/LoginForm.tsx +++ b/src/app/login/LoginForm.tsx @@ -9,10 +9,10 @@ import { Icon, } from 'react-basics'; import { useRouter } from 'next/navigation'; -import { useApi, useMessages } from 'components/hooks'; -import { setUser } from 'store/app'; -import { setClientAuthToken } from 'lib/client'; -import Logo from 'assets/logo.svg'; +import { useApi, useMessages } from '@/components/hooks'; +import { setUser } from '@/store/app'; +import { setClientAuthToken } from '@/lib/client'; +import Logo from '@/assets/logo.svg'; import styles from './LoginForm.module.css'; export function LoginForm() { diff --git a/src/app/logout/LogoutPage.tsx b/src/app/logout/LogoutPage.tsx index 11d96329..d3dc481a 100644 --- a/src/app/logout/LogoutPage.tsx +++ b/src/app/logout/LogoutPage.tsx @@ -1,9 +1,9 @@ 'use client'; import { useEffect } from 'react'; import { useRouter } from 'next/navigation'; -import { useApi } from 'components/hooks'; -import { setUser } from 'store/app'; -import { removeClientAuthToken } from 'lib/client'; +import { useApi } from '@/components/hooks'; +import { setUser } from '@/store/app'; +import { removeClientAuthToken } from '@/lib/client'; export function LogoutPage() { const disabled = !!(process.env.disableLogin || process.env.cloudMode); diff --git a/src/app/not-found.tsx b/src/app/not-found.tsx index 7a2bbb53..c673e40f 100644 --- a/src/app/not-found.tsx +++ b/src/app/not-found.tsx @@ -1,6 +1,6 @@ 'use client'; import { Flexbox } from 'react-basics'; -import { useMessages } from 'components/hooks'; +import { useMessages } from '@/components/hooks'; export default function () { const { formatMessage, labels } = useMessages(); diff --git a/src/app/share/[...shareId]/Footer.tsx b/src/app/share/[...shareId]/Footer.tsx index 3a07c12a..e1ba9833 100644 --- a/src/app/share/[...shareId]/Footer.tsx +++ b/src/app/share/[...shareId]/Footer.tsx @@ -1,4 +1,4 @@ -import { CURRENT_VERSION, HOMEPAGE_URL } from 'lib/constants'; +import { CURRENT_VERSION, HOMEPAGE_URL } from '@/lib/constants'; import styles from './Footer.module.css'; export function Footer() { diff --git a/src/app/share/[...shareId]/Header.module.css b/src/app/share/[...shareId]/Header.module.css index d353d79a..04478199 100644 --- a/src/app/share/[...shareId]/Header.module.css +++ b/src/app/share/[...shareId]/Header.module.css @@ -7,10 +7,6 @@ height: 100px; } -.row { - align-items: center; -} - .title { display: flex; flex-direction: row; diff --git a/src/app/share/[...shareId]/Header.tsx b/src/app/share/[...shareId]/Header.tsx index ddfb52a5..a71a5b56 100644 --- a/src/app/share/[...shareId]/Header.tsx +++ b/src/app/share/[...shareId]/Header.tsx @@ -1,9 +1,9 @@ import { Icon, Text } from 'react-basics'; import Link from 'next/link'; -import LanguageButton from 'components/input/LanguageButton'; -import ThemeButton from 'components/input/ThemeButton'; -import SettingsButton from 'components/input/SettingsButton'; -import Icons from 'components/icons'; +import LanguageButton from '@/components/input/LanguageButton'; +import ThemeButton from '@/components/input/ThemeButton'; +import SettingsButton from '@/components/input/SettingsButton'; +import Icons from '@/components/icons'; import styles from './Header.module.css'; export function Header() { diff --git a/src/app/share/[...shareId]/SharePage.tsx b/src/app/share/[...shareId]/SharePage.tsx index c4d9af62..00c7ec3f 100644 --- a/src/app/share/[...shareId]/SharePage.tsx +++ b/src/app/share/[...shareId]/SharePage.tsx @@ -1,11 +1,11 @@ 'use client'; import WebsiteDetailsPage from '../../(main)/websites/[websiteId]/WebsiteDetailsPage'; -import { useShareToken } from 'components/hooks'; -import Page from 'components/layout/Page'; +import { useShareToken } from '@/components/hooks'; +import Page from '@/components/layout/Page'; import Header from './Header'; import Footer from './Footer'; import styles from './SharePage.module.css'; -import { WebsiteProvider } from 'app/(main)/websites/[websiteId]/WebsiteProvider'; +import { WebsiteProvider } from '@/app/(main)/websites/[websiteId]/WebsiteProvider'; export default function SharePage({ shareId }) { const { shareToken, isLoading } = useShareToken(shareId); diff --git a/src/app/sso/SSOPage.tsx b/src/app/sso/SSOPage.tsx index e577767a..eb7c0f0a 100644 --- a/src/app/sso/SSOPage.tsx +++ b/src/app/sso/SSOPage.tsx @@ -2,7 +2,7 @@ import { useEffect } from 'react'; import { Loading } from 'react-basics'; import { useRouter, useSearchParams } from 'next/navigation'; -import { setClientAuthToken } from 'lib/client'; +import { setClientAuthToken } from '@/lib/client'; export default function SSOPage() { const router = useRouter(); diff --git a/src/components/charts/BarChart.tsx b/src/components/charts/BarChart.tsx index 7c16730e..f6a6e5e0 100644 --- a/src/components/charts/BarChart.tsx +++ b/src/components/charts/BarChart.tsx @@ -1,7 +1,7 @@ -import BarChartTooltip from 'components/charts/BarChartTooltip'; -import Chart, { ChartProps } from 'components/charts/Chart'; -import { useTheme } from 'components/hooks'; -import { renderNumberLabels } from 'lib/charts'; +import BarChartTooltip from '@/components/charts/BarChartTooltip'; +import Chart, { ChartProps } from '@/components/charts/Chart'; +import { useTheme } from '@/components/hooks'; +import { renderNumberLabels } from '@/lib/charts'; import { useMemo, useState } from 'react'; export interface BarChartProps extends ChartProps { diff --git a/src/components/charts/BarChartTooltip.tsx b/src/components/charts/BarChartTooltip.tsx index 201c6e4c..af31c874 100644 --- a/src/components/charts/BarChartTooltip.tsx +++ b/src/components/charts/BarChartTooltip.tsx @@ -1,6 +1,6 @@ -import { useLocale } from 'components/hooks'; -import { formatDate } from 'lib/date'; -import { formatLongCurrency, formatLongNumber } from 'lib/format'; +import { useLocale } from '@/components/hooks'; +import { formatDate } from '@/lib/date'; +import { formatLongCurrency, formatLongNumber } from '@/lib/format'; import { Flexbox, StatusLight } from 'react-basics'; const formats = { diff --git a/src/components/charts/BubbleChart.tsx b/src/components/charts/BubbleChart.tsx index 956e260c..dfe67f3a 100644 --- a/src/components/charts/BubbleChart.tsx +++ b/src/components/charts/BubbleChart.tsx @@ -1,7 +1,7 @@ -import { Chart, ChartProps } from 'components/charts/Chart'; +import { Chart, ChartProps } from '@/components/charts/Chart'; import { useState } from 'react'; import { StatusLight } from 'react-basics'; -import { formatLongNumber } from 'lib/format'; +import { formatLongNumber } from '@/lib/format'; export interface BubbleChartProps extends ChartProps { type?: 'bubble'; diff --git a/src/components/charts/Chart.tsx b/src/components/charts/Chart.tsx index a4badbce..dde01eb4 100644 --- a/src/components/charts/Chart.tsx +++ b/src/components/charts/Chart.tsx @@ -2,9 +2,9 @@ import { useState, useRef, useEffect, useMemo, ReactNode } from 'react'; import { Loading } from 'react-basics'; import classNames from 'classnames'; import ChartJS, { LegendItem, ChartOptions } from 'chart.js/auto'; -import HoverTooltip from 'components/common/HoverTooltip'; -import Legend from 'components/metrics/Legend'; -import { DEFAULT_ANIMATION_DURATION } from 'lib/constants'; +import HoverTooltip from '@/components/common/HoverTooltip'; +import Legend from '@/components/metrics/Legend'; +import { DEFAULT_ANIMATION_DURATION } from '@/lib/constants'; import styles from './Chart.module.css'; export interface ChartProps { diff --git a/src/components/charts/PieChart.tsx b/src/components/charts/PieChart.tsx index 57d676ca..a98b9730 100644 --- a/src/components/charts/PieChart.tsx +++ b/src/components/charts/PieChart.tsx @@ -1,7 +1,7 @@ -import { Chart, ChartProps } from 'components/charts/Chart'; +import { Chart, ChartProps } from '@/components/charts/Chart'; import { useState } from 'react'; import { StatusLight } from 'react-basics'; -import { formatLongNumber } from 'lib/format'; +import { formatLongNumber } from '@/lib/format'; export interface PieChartProps extends ChartProps { type?: 'doughnut' | 'pie'; diff --git a/src/components/common/Avatar.tsx b/src/components/common/Avatar.tsx index 2e82b078..d0cae247 100644 --- a/src/components/common/Avatar.tsx +++ b/src/components/common/Avatar.tsx @@ -1,7 +1,7 @@ import { useMemo } from 'react'; import { createAvatar } from '@dicebear/core'; import { lorelei } from '@dicebear/collection'; -import { getColor, getPastel } from 'lib/colors'; +import { getColor, getPastel } from '@/lib/colors'; const lib = lorelei; diff --git a/src/components/common/ConfirmationForm.tsx b/src/components/common/ConfirmationForm.tsx index 26b4ff24..8b617ab5 100644 --- a/src/components/common/ConfirmationForm.tsx +++ b/src/components/common/ConfirmationForm.tsx @@ -1,6 +1,6 @@ import { ReactNode } from 'react'; import { Button, LoadingButton, Form, FormButtons } from 'react-basics'; -import { useMessages } from 'components/hooks'; +import { useMessages } from '@/components/hooks'; export interface ConfirmationFormProps { message: ReactNode; diff --git a/src/components/common/DataTable.tsx b/src/components/common/DataTable.tsx index f3b144a6..b19ddf91 100644 --- a/src/components/common/DataTable.tsx +++ b/src/components/common/DataTable.tsx @@ -1,12 +1,12 @@ import { ReactNode } from 'react'; import classNames from 'classnames'; import { Loading, SearchField } from 'react-basics'; -import { useMessages, useNavigation } from 'components/hooks'; -import Empty from 'components/common/Empty'; -import Pager from 'components/common/Pager'; -import { PagedQueryResult } from 'lib/types'; +import { useMessages, useNavigation } from '@/components/hooks'; +import Empty from '@/components/common/Empty'; +import Pager from '@/components/common/Pager'; +import { PagedQueryResult } from '@/lib/types'; import styles from './DataTable.module.css'; -import { LoadingPanel } from 'components/common/LoadingPanel'; +import { LoadingPanel } from '@/components/common/LoadingPanel'; const DEFAULT_SEARCH_DELAY = 600; diff --git a/src/components/common/Empty.tsx b/src/components/common/Empty.tsx index 8e7d2d00..cf6d11cc 100644 --- a/src/components/common/Empty.tsx +++ b/src/components/common/Empty.tsx @@ -1,5 +1,5 @@ import classNames from 'classnames'; -import { useMessages } from 'components/hooks'; +import { useMessages } from '@/components/hooks'; import styles from './Empty.module.css'; export interface EmptyProps { diff --git a/src/components/common/EmptyPlaceholder.tsx b/src/components/common/EmptyPlaceholder.tsx index 640e45d5..2fd606cd 100644 --- a/src/components/common/EmptyPlaceholder.tsx +++ b/src/components/common/EmptyPlaceholder.tsx @@ -1,6 +1,6 @@ import { ReactNode } from 'react'; import { Icon, Text, Flexbox } from 'react-basics'; -import Logo from 'assets/logo.svg'; +import Logo from '@/assets/logo.svg'; export interface EmptyPlaceholderProps { message?: string; diff --git a/src/components/common/ErrorBoundary.tsx b/src/components/common/ErrorBoundary.tsx index 9669580f..b9521bb4 100644 --- a/src/components/common/ErrorBoundary.tsx +++ b/src/components/common/ErrorBoundary.tsx @@ -1,7 +1,7 @@ import { ErrorInfo, ReactNode } from 'react'; import { ErrorBoundary as Boundary } from 'react-error-boundary'; import { Button } from 'react-basics'; -import { useMessages } from 'components/hooks'; +import { useMessages } from '@/components/hooks'; import styles from './ErrorBoundary.module.css'; const logError = (error: Error, info: ErrorInfo) => { diff --git a/src/components/common/ErrorMessage.tsx b/src/components/common/ErrorMessage.tsx index 7ed8662a..bf3eefb1 100644 --- a/src/components/common/ErrorMessage.tsx +++ b/src/components/common/ErrorMessage.tsx @@ -1,6 +1,6 @@ import { Icon, Icons, Text } from 'react-basics'; import styles from './ErrorMessage.module.css'; -import { useMessages } from 'components/hooks'; +import { useMessages } from '@/components/hooks'; export function ErrorMessage() { const { formatMessage, messages } = useMessages(); diff --git a/src/components/common/FilterLink.tsx b/src/components/common/FilterLink.tsx index cdb928d8..9d726b58 100644 --- a/src/components/common/FilterLink.tsx +++ b/src/components/common/FilterLink.tsx @@ -1,5 +1,5 @@ import classNames from 'classnames'; -import { useMessages, useNavigation } from 'components/hooks'; +import { useMessages, useNavigation } from '@/components/hooks'; import Link from 'next/link'; import { ReactNode } from 'react'; import { Icon, Icons } from 'react-basics'; diff --git a/src/components/common/LinkButton.tsx b/src/components/common/LinkButton.tsx index 83d95151..3aa2a76a 100644 --- a/src/components/common/LinkButton.tsx +++ b/src/components/common/LinkButton.tsx @@ -1,8 +1,8 @@ +import { ReactNode } from 'react'; import classNames from 'classnames'; import Link from 'next/link'; -import { useLocale } from 'components/hooks'; +import { useLocale } from '@/components/hooks'; import styles from './LinkButton.module.css'; -import { ReactNode } from 'react'; export interface LinkButtonProps { href: string; diff --git a/src/components/common/LoadingPanel.tsx b/src/components/common/LoadingPanel.tsx index 36de9365..4d27618a 100644 --- a/src/components/common/LoadingPanel.tsx +++ b/src/components/common/LoadingPanel.tsx @@ -1,8 +1,8 @@ import { ReactNode } from 'react'; import classNames from 'classnames'; import { Loading } from 'react-basics'; -import ErrorMessage from 'components/common/ErrorMessage'; -import Empty from 'components/common/Empty'; +import ErrorMessage from '@/components/common/ErrorMessage'; +import Empty from '@/components/common/Empty'; import styles from './LoadingPanel.module.css'; export function LoadingPanel({ diff --git a/src/components/common/Pager.tsx b/src/components/common/Pager.tsx index 3e0a8033..b33d2236 100644 --- a/src/components/common/Pager.tsx +++ b/src/components/common/Pager.tsx @@ -1,6 +1,6 @@ import classNames from 'classnames'; import { Button, Icon, Icons } from 'react-basics'; -import { useMessages } from 'components/hooks'; +import { useMessages } from '@/components/hooks'; import styles from './Pager.module.css'; export interface PagerProps { diff --git a/src/components/common/TypeConfirmationForm.tsx b/src/components/common/TypeConfirmationForm.tsx index 2dfb2dff..ca911e17 100644 --- a/src/components/common/TypeConfirmationForm.tsx +++ b/src/components/common/TypeConfirmationForm.tsx @@ -7,7 +7,7 @@ import { TextField, SubmitButton, } from 'react-basics'; -import { useMessages } from 'components/hooks'; +import { useMessages } from '@/components/hooks'; export function TypeConfirmationForm({ confirmationValue, diff --git a/src/components/hooks/queries/useConfig.ts b/src/components/hooks/queries/useConfig.ts index f4e911a0..223f4550 100644 --- a/src/components/hooks/queries/useConfig.ts +++ b/src/components/hooks/queries/useConfig.ts @@ -1,6 +1,6 @@ import { useEffect } from 'react'; -import useStore, { setConfig } from 'store/app'; -import { getConfig } from 'app/actions/getConfig'; +import useStore, { setConfig } from '@/store/app'; +import { getConfig } from '@/app/actions/getConfig'; export function useConfig() { const { config } = useStore(); diff --git a/src/components/hooks/queries/useLogin.ts b/src/components/hooks/queries/useLogin.ts index a54f38d1..f88efbf0 100644 --- a/src/components/hooks/queries/useLogin.ts +++ b/src/components/hooks/queries/useLogin.ts @@ -1,5 +1,5 @@ import { UseQueryResult } from '@tanstack/react-query'; -import useStore, { setUser } from 'store/app'; +import useStore, { setUser } from '@/store/app'; import { useApi } from '../useApi'; const selector = (state: { user: any }) => state.user; diff --git a/src/components/hooks/queries/useRealtime.ts b/src/components/hooks/queries/useRealtime.ts index b87f74c4..c81ae90a 100644 --- a/src/components/hooks/queries/useRealtime.ts +++ b/src/components/hooks/queries/useRealtime.ts @@ -1,6 +1,6 @@ -import { useTimezone } from 'components/hooks'; -import { REALTIME_INTERVAL } from 'lib/constants'; -import { RealtimeData } from 'lib/types'; +import { useTimezone } from '@/components/hooks'; +import { REALTIME_INTERVAL } from '@/lib/constants'; +import { RealtimeData } from '@/lib/types'; import { useApi } from '../useApi'; export function useRealtime(websiteId: string) { diff --git a/src/components/hooks/queries/useShareToken.ts b/src/components/hooks/queries/useShareToken.ts index f9db7dbf..cf17c756 100644 --- a/src/components/hooks/queries/useShareToken.ts +++ b/src/components/hooks/queries/useShareToken.ts @@ -1,4 +1,4 @@ -import useStore, { setShareToken } from 'store/app'; +import useStore, { setShareToken } from '@/store/app'; import { useApi } from '../useApi'; const selector = (state: { shareToken: string }) => state.shareToken; diff --git a/src/components/hooks/queries/useWebsiteSessions.ts b/src/components/hooks/queries/useWebsiteSessions.ts index ad7bb616..09e34a80 100644 --- a/src/components/hooks/queries/useWebsiteSessions.ts +++ b/src/components/hooks/queries/useWebsiteSessions.ts @@ -1,7 +1,7 @@ import { useApi } from '../useApi'; import { usePagedQuery } from '../usePagedQuery'; import useModified from '../useModified'; -import { useFilterParams } from 'components/hooks/useFilterParams'; +import { useFilterParams } from '@/components/hooks/useFilterParams'; export function useWebsiteSessions(websiteId: string, params?: { [key: string]: string | number }) { const { get } = useApi(); diff --git a/src/components/hooks/queries/useWebsiteSessionsWeekly.ts b/src/components/hooks/queries/useWebsiteSessionsWeekly.ts index c4e83f98..f3aa3b00 100644 --- a/src/components/hooks/queries/useWebsiteSessionsWeekly.ts +++ b/src/components/hooks/queries/useWebsiteSessionsWeekly.ts @@ -1,6 +1,6 @@ import { useApi } from '../useApi'; import useModified from '../useModified'; -import { useFilterParams } from 'components/hooks/useFilterParams'; +import { useFilterParams } from '@/components/hooks/useFilterParams'; export function useWebsiteSessionsWeekly( websiteId: string, diff --git a/src/components/hooks/queries/useWebsiteValues.ts b/src/components/hooks/queries/useWebsiteValues.ts index 73a7c755..845954aa 100644 --- a/src/components/hooks/queries/useWebsiteValues.ts +++ b/src/components/hooks/queries/useWebsiteValues.ts @@ -1,5 +1,5 @@ import { useApi } from '../useApi'; -import { useCountryNames, useRegionNames } from 'components/hooks'; +import { useCountryNames, useRegionNames } from '@/components/hooks'; import useLocale from '../useLocale'; export function useWebsiteValues({ diff --git a/src/components/hooks/useApi.ts b/src/components/hooks/useApi.ts index e71d5618..2e3aee8f 100644 --- a/src/components/hooks/useApi.ts +++ b/src/components/hooks/useApi.ts @@ -1,9 +1,9 @@ import { useCallback } from 'react'; import * as reactQuery from '@tanstack/react-query'; -import { getClientAuthToken } from 'lib/client'; -import { SHARE_TOKEN_HEADER } from 'lib/constants'; -import { httpGet, httpPost, httpPut, httpDelete } from 'lib/fetch'; -import useStore from 'store/app'; +import { getClientAuthToken } from '@/lib/client'; +import { SHARE_TOKEN_HEADER } from '@/lib/constants'; +import { httpGet, httpPost, httpPut, httpDelete } from '@/lib/fetch'; +import useStore from '@/store/app'; const selector = (state: { shareToken: { token?: string } }) => state.shareToken; diff --git a/src/components/hooks/useCountryNames.ts b/src/components/hooks/useCountryNames.ts index 8581eedf..12f2f0dd 100644 --- a/src/components/hooks/useCountryNames.ts +++ b/src/components/hooks/useCountryNames.ts @@ -1,5 +1,5 @@ import { useState, useEffect } from 'react'; -import { httpGet } from 'lib/fetch'; +import { httpGet } from '@/lib/fetch'; import enUS from '../../../public/intl/country/en-US.json'; const countryNames = { diff --git a/src/components/hooks/useDateRange.ts b/src/components/hooks/useDateRange.ts index 85aed285..61838980 100644 --- a/src/components/hooks/useDateRange.ts +++ b/src/components/hooks/useDateRange.ts @@ -1,9 +1,9 @@ -import { getMinimumUnit, parseDateRange } from 'lib/date'; -import { setItem } from 'lib/storage'; -import { DATE_RANGE_CONFIG, DEFAULT_DATE_COMPARE, DEFAULT_DATE_RANGE } from 'lib/constants'; -import websiteStore, { setWebsiteDateRange, setWebsiteDateCompare } from 'store/websites'; -import appStore, { setDateRange } from 'store/app'; -import { DateRange } from 'lib/types'; +import { getMinimumUnit, parseDateRange } from '@/lib/date'; +import { setItem } from '@/lib/storage'; +import { DATE_RANGE_CONFIG, DEFAULT_DATE_COMPARE, DEFAULT_DATE_RANGE } from '@/lib/constants'; +import websiteStore, { setWebsiteDateRange, setWebsiteDateCompare } from '@/store/websites'; +import appStore, { setDateRange } from '@/store/app'; +import { DateRange } from '@/lib/types'; import { useLocale } from './useLocale'; import { useApi } from './useApi'; diff --git a/src/components/hooks/useFilters.ts b/src/components/hooks/useFilters.ts index 5f89eca4..2b99785a 100644 --- a/src/components/hooks/useFilters.ts +++ b/src/components/hooks/useFilters.ts @@ -1,5 +1,5 @@ import { useMessages } from './useMessages'; -import { OPERATORS } from 'lib/constants'; +import { OPERATORS } from '@/lib/constants'; export function useFilters() { const { formatMessage, labels } = useMessages(); diff --git a/src/components/hooks/useFormat.ts b/src/components/hooks/useFormat.ts index 10030721..927e21e8 100644 --- a/src/components/hooks/useFormat.ts +++ b/src/components/hooks/useFormat.ts @@ -1,5 +1,5 @@ import useMessages from './useMessages'; -import { BROWSERS, OS_NAMES } from 'lib/constants'; +import { BROWSERS, OS_NAMES } from '@/lib/constants'; import useLocale from './useLocale'; import useCountryNames from './useCountryNames'; import useLanguageNames from './useLanguageNames'; diff --git a/src/components/hooks/useLanguageNames.ts b/src/components/hooks/useLanguageNames.ts index 847105c1..8c28d560 100644 --- a/src/components/hooks/useLanguageNames.ts +++ b/src/components/hooks/useLanguageNames.ts @@ -1,5 +1,5 @@ import { useState, useEffect } from 'react'; -import { httpGet } from 'lib/fetch'; +import { httpGet } from '@/lib/fetch'; import enUS from '../../../public/intl/language/en-US.json'; const languageNames = { diff --git a/src/components/hooks/useLocale.ts b/src/components/hooks/useLocale.ts index 1ac8945e..f128e99a 100644 --- a/src/components/hooks/useLocale.ts +++ b/src/components/hooks/useLocale.ts @@ -1,9 +1,9 @@ import { useEffect } from 'react'; -import { httpGet } from 'lib/fetch'; -import { setItem } from 'lib/storage'; -import { LOCALE_CONFIG } from 'lib/constants'; -import { getDateLocale, getTextDirection } from 'lib/lang'; -import useStore, { setLocale } from 'store/app'; +import { httpGet } from '@/lib/fetch'; +import { setItem } from '@/lib/storage'; +import { LOCALE_CONFIG } from '@/lib/constants'; +import { getDateLocale, getTextDirection } from '@/lib/lang'; +import useStore, { setLocale } from '@/store/app'; import { useForceUpdate } from './useForceUpdate'; import enUS from '../../../public/intl/country/en-US.json'; diff --git a/src/components/hooks/useMessages.ts b/src/components/hooks/useMessages.ts index ab37cc19..da370348 100644 --- a/src/components/hooks/useMessages.ts +++ b/src/components/hooks/useMessages.ts @@ -1,5 +1,5 @@ import { useIntl, FormattedMessage } from 'react-intl'; -import { messages, labels } from 'components/messages'; +import { messages, labels } from '@/components/messages'; export function useMessages(): any { const intl = useIntl(); diff --git a/src/components/hooks/useModified.ts b/src/components/hooks/useModified.ts index 858be87e..fd8dc2e6 100644 --- a/src/components/hooks/useModified.ts +++ b/src/components/hooks/useModified.ts @@ -1,4 +1,4 @@ -import useStore from 'store/modified'; +import useStore from '@/store/modified'; export function useModified(key?: string) { const modified = useStore(state => state?.[key]); diff --git a/src/components/hooks/useNavigation.ts b/src/components/hooks/useNavigation.ts index 2c5dddc4..b727ee90 100644 --- a/src/components/hooks/useNavigation.ts +++ b/src/components/hooks/useNavigation.ts @@ -1,6 +1,6 @@ import { useMemo } from 'react'; import { usePathname, useRouter, useSearchParams } from 'next/navigation'; -import { buildUrl } from 'lib/url'; +import { buildUrl } from '@/lib/url'; export function useNavigation(): { pathname: string; diff --git a/src/components/hooks/usePagedQuery.ts b/src/components/hooks/usePagedQuery.ts index a4cc68a6..bd59189a 100644 --- a/src/components/hooks/usePagedQuery.ts +++ b/src/components/hooks/usePagedQuery.ts @@ -1,6 +1,6 @@ import { UseQueryOptions } from '@tanstack/react-query'; import { useState } from 'react'; -import { PageResult, PageParams, PagedQueryResult } from 'lib/types'; +import { PageResult, PageParams, PagedQueryResult } from '@/lib/types'; import { useApi } from './useApi'; import { useNavigation } from './useNavigation'; diff --git a/src/components/hooks/useTheme.ts b/src/components/hooks/useTheme.ts index c8e397d5..9bbe063c 100644 --- a/src/components/hooks/useTheme.ts +++ b/src/components/hooks/useTheme.ts @@ -1,7 +1,7 @@ import { useEffect, useMemo } from 'react'; -import useStore, { setTheme } from 'store/app'; -import { getItem, setItem } from 'lib/storage'; -import { DEFAULT_THEME, THEME_COLORS, THEME_CONFIG } from 'lib/constants'; +import useStore, { setTheme } from '@/store/app'; +import { getItem, setItem } from '@/lib/storage'; +import { DEFAULT_THEME, THEME_COLORS, THEME_CONFIG } from '@/lib/constants'; import { colord } from 'colord'; const selector = (state: { theme: string }) => state.theme; diff --git a/src/components/hooks/useTimezone.ts b/src/components/hooks/useTimezone.ts index 4dfecdb4..5f01c2ab 100644 --- a/src/components/hooks/useTimezone.ts +++ b/src/components/hooks/useTimezone.ts @@ -1,7 +1,7 @@ -import { setItem } from 'lib/storage'; -import { TIMEZONE_CONFIG } from 'lib/constants'; +import { setItem } from '@/lib/storage'; +import { TIMEZONE_CONFIG } from '@/lib/constants'; import { formatInTimeZone, zonedTimeToUtc, utcToZonedTime } from 'date-fns-tz'; -import useStore, { setTimezone } from 'store/app'; +import useStore, { setTimezone } from '@/store/app'; const selector = (state: { timezone: string }) => state.timezone; diff --git a/src/components/icons.ts b/src/components/icons.ts index 1cf26543..e952e500 100644 --- a/src/components/icons.ts +++ b/src/components/icons.ts @@ -1,30 +1,30 @@ import { Icons } from 'react-basics'; -import AddUser from 'assets/add-user.svg'; -import Bars from 'assets/bars.svg'; -import BarChart from 'assets/bar-chart.svg'; -import Bolt from 'assets/bolt.svg'; -import Calendar from 'assets/calendar.svg'; -import Change from 'assets/change.svg'; -import Clock from 'assets/clock.svg'; -import Compare from 'assets/compare.svg'; -import Dashboard from 'assets/dashboard.svg'; -import Eye from 'assets/eye.svg'; -import Gear from 'assets/gear.svg'; -import Globe from 'assets/globe.svg'; -import Location from 'assets/location.svg'; -import Lock from 'assets/lock.svg'; -import Logo from 'assets/logo.svg'; -import Magnet from 'assets/magnet.svg'; -import Moon from 'assets/moon.svg'; -import Nodes from 'assets/nodes.svg'; -import Overview from 'assets/overview.svg'; -import Profile from 'assets/profile.svg'; -import PushPin from 'assets/pushpin.svg'; -import Reports from 'assets/reports.svg'; -import Sun from 'assets/sun.svg'; -import User from 'assets/user.svg'; -import Users from 'assets/users.svg'; -import Visitor from 'assets/visitor.svg'; +import AddUser from '@/assets/add-user.svg'; +import Bars from '@/assets/bars.svg'; +import BarChart from '@/assets/bar-chart.svg'; +import Bolt from '@/assets/bolt.svg'; +import Calendar from '@/assets/calendar.svg'; +import Change from '@/assets/change.svg'; +import Clock from '@/assets/clock.svg'; +import Compare from '@/assets/compare.svg'; +import Dashboard from '@/assets/dashboard.svg'; +import Eye from '@/assets/eye.svg'; +import Gear from '@/assets/gear.svg'; +import Globe from '@/assets/globe.svg'; +import Location from '@/assets/location.svg'; +import Lock from '@/assets/lock.svg'; +import Logo from '@/assets/logo.svg'; +import Magnet from '@/assets/magnet.svg'; +import Moon from '@/assets/moon.svg'; +import Nodes from '@/assets/nodes.svg'; +import Overview from '@/assets/overview.svg'; +import Profile from '@/assets/profile.svg'; +import PushPin from '@/assets/pushpin.svg'; +import Reports from '@/assets/reports.svg'; +import Sun from '@/assets/sun.svg'; +import User from '@/assets/user.svg'; +import Users from '@/assets/users.svg'; +import Visitor from '@/assets/visitor.svg'; const icons = { ...Icons, diff --git a/src/components/input/DateFilter.tsx b/src/components/input/DateFilter.tsx index e486551d..443827a0 100644 --- a/src/components/input/DateFilter.tsx +++ b/src/components/input/DateFilter.tsx @@ -1,10 +1,10 @@ import { useState } from 'react'; import { Icon, Modal, Dropdown, Item, Text, Flexbox } from 'react-basics'; import { endOfYear, isSameDay } from 'date-fns'; -import DatePickerForm from 'components/metrics/DatePickerForm'; -import { useLocale, useMessages } from 'components/hooks'; -import Icons from 'components/icons'; -import { formatDate, parseDateValue } from 'lib/date'; +import DatePickerForm from '@/components/metrics/DatePickerForm'; +import { useLocale, useMessages } from '@/components/hooks'; +import Icons from '@/components/icons'; +import { formatDate, parseDateValue } from '@/lib/date'; import styles from './DateFilter.module.css'; import classNames from 'classnames'; diff --git a/src/components/input/LanguageButton.tsx b/src/components/input/LanguageButton.tsx index 5da3bf78..54ce55eb 100644 --- a/src/components/input/LanguageButton.tsx +++ b/src/components/input/LanguageButton.tsx @@ -1,8 +1,8 @@ import { Icon, Button, PopupTrigger, Popup } from 'react-basics'; import classNames from 'classnames'; -import { languages } from 'lib/lang'; -import { useLocale } from 'components/hooks'; -import Icons from 'components/icons'; +import { languages } from '@/lib/lang'; +import { useLocale } from '@/components/hooks'; +import Icons from '@/components/icons'; import styles from './LanguageButton.module.css'; export function LanguageButton() { diff --git a/src/components/input/LogoutButton.tsx b/src/components/input/LogoutButton.tsx index ddc71142..a1a34a00 100644 --- a/src/components/input/LogoutButton.tsx +++ b/src/components/input/LogoutButton.tsx @@ -1,6 +1,6 @@ import { Button, Icon, Icons, TooltipPopup } from 'react-basics'; import Link from 'next/link'; -import { useMessages } from 'components/hooks'; +import { useMessages } from '@/components/hooks'; export function LogoutButton({ tooltipPosition = 'top', diff --git a/src/components/input/MonthSelect.tsx b/src/components/input/MonthSelect.tsx index acb17dfe..144f5bd8 100644 --- a/src/components/input/MonthSelect.tsx +++ b/src/components/input/MonthSelect.tsx @@ -9,9 +9,9 @@ import { Popup, } from 'react-basics'; import { startOfMonth, endOfMonth } from 'date-fns'; -import Icons from 'components/icons'; -import { useLocale } from 'components/hooks'; -import { formatDate } from 'lib/date'; +import Icons from '@/components/icons'; +import { useLocale } from '@/components/hooks'; +import { formatDate } from '@/lib/date'; import styles from './MonthSelect.module.css'; export function MonthSelect({ date = new Date(), onChange }) { diff --git a/src/components/input/ProfileButton.tsx b/src/components/input/ProfileButton.tsx index b1875165..86a9d333 100644 --- a/src/components/input/ProfileButton.tsx +++ b/src/components/input/ProfileButton.tsx @@ -1,9 +1,9 @@ import { Key } from 'react'; import { Icon, Button, PopupTrigger, Popup, Menu, Item, Text } from 'react-basics'; import { useRouter } from 'next/navigation'; -import Icons from 'components/icons'; -import { useMessages, useLogin, useLocale } from 'components/hooks'; -import { CURRENT_VERSION } from 'lib/constants'; +import Icons from '@/components/icons'; +import { useMessages, useLogin, useLocale } from '@/components/hooks'; +import { CURRENT_VERSION } from '@/lib/constants'; import styles from './ProfileButton.module.css'; export function ProfileButton() { diff --git a/src/components/input/RefreshButton.tsx b/src/components/input/RefreshButton.tsx index cd68c40a..35bfbf3c 100644 --- a/src/components/input/RefreshButton.tsx +++ b/src/components/input/RefreshButton.tsx @@ -1,8 +1,8 @@ import { LoadingButton, Icon, TooltipPopup } from 'react-basics'; -import { setWebsiteDateRange } from 'store/websites'; -import { useDateRange } from 'components/hooks'; -import Icons from 'components/icons'; -import { useMessages } from 'components/hooks'; +import { setWebsiteDateRange } from '@/store/websites'; +import { useDateRange } from '@/components/hooks'; +import Icons from '@/components/icons'; +import { useMessages } from '@/components/hooks'; export function RefreshButton({ websiteId, diff --git a/src/components/input/SettingsButton.tsx b/src/components/input/SettingsButton.tsx index 535d03c3..d3dc471f 100644 --- a/src/components/input/SettingsButton.tsx +++ b/src/components/input/SettingsButton.tsx @@ -1,8 +1,8 @@ import { Button, Icon, PopupTrigger, Popup, Form, FormRow } from 'react-basics'; -import TimezoneSetting from 'app/(main)/profile/TimezoneSetting'; -import DateRangeSetting from 'app/(main)/profile/DateRangeSetting'; -import Icons from 'components/icons'; -import { useMessages } from 'components/hooks'; +import TimezoneSetting from '@/app/(main)/profile/TimezoneSetting'; +import DateRangeSetting from '@/app/(main)/profile/DateRangeSetting'; +import Icons from '@/components/icons'; +import { useMessages } from '@/components/hooks'; import styles from './SettingsButton.module.css'; export function SettingsButton() { diff --git a/src/components/input/TeamsButton.tsx b/src/components/input/TeamsButton.tsx index b4e2f157..f967a64c 100644 --- a/src/components/input/TeamsButton.tsx +++ b/src/components/input/TeamsButton.tsx @@ -1,8 +1,8 @@ import { Key } from 'react'; import { Text, Icon, Button, Popup, Menu, Item, PopupTrigger, Flexbox } from 'react-basics'; import classNames from 'classnames'; -import Icons from 'components/icons'; -import { useLogin, useMessages, useTeams, useTeamUrl } from 'components/hooks'; +import Icons from '@/components/icons'; +import { useLogin, useMessages, useTeams, useTeamUrl } from '@/components/hooks'; import styles from './TeamsButton.module.css'; export function TeamsButton({ diff --git a/src/components/input/ThemeButton.tsx b/src/components/input/ThemeButton.tsx index ece571ab..fd7d79a0 100644 --- a/src/components/input/ThemeButton.tsx +++ b/src/components/input/ThemeButton.tsx @@ -1,7 +1,7 @@ import { useTransition, animated } from '@react-spring/web'; import { Button, Icon } from 'react-basics'; -import { useTheme } from 'components/hooks'; -import Icons from 'components/icons'; +import { useTheme } from '@/components/hooks'; +import Icons from '@/components/icons'; import styles from './ThemeButton.module.css'; export function ThemeButton() { @@ -28,7 +28,7 @@ export function ThemeButton() { diff --git a/src/components/input/WebsiteDateFilter.tsx b/src/components/input/WebsiteDateFilter.tsx index 486f5de1..97beaf12 100644 --- a/src/components/input/WebsiteDateFilter.tsx +++ b/src/components/input/WebsiteDateFilter.tsx @@ -1,10 +1,10 @@ -import { useDateRange, useLocale } from 'components/hooks'; +import { useDateRange, useLocale } from '@/components/hooks'; import { isAfter } from 'date-fns'; -import { getOffsetDateRange } from 'lib/date'; +import { getOffsetDateRange } from '@/lib/date'; import { Button, Icon, Icons } from 'react-basics'; import DateFilter from './DateFilter'; import styles from './WebsiteDateFilter.module.css'; -import { DateRange } from 'lib/types'; +import { DateRange } from '@/lib/types'; export function WebsiteDateFilter({ websiteId, diff --git a/src/components/input/WebsiteSelect.tsx b/src/components/input/WebsiteSelect.tsx index 0540ed38..ed78efc8 100644 --- a/src/components/input/WebsiteSelect.tsx +++ b/src/components/input/WebsiteSelect.tsx @@ -1,7 +1,7 @@ import { useState, Key } from 'react'; import { Dropdown, Item } from 'react-basics'; -import { useWebsite, useWebsites, useMessages } from 'components/hooks'; -import Empty from 'components/common/Empty'; +import { useWebsite, useWebsites, useMessages } from '@/components/hooks'; +import Empty from '@/components/common/Empty'; import styles from './WebsiteSelect.module.css'; export function WebsiteSelect({ diff --git a/src/components/layout/MenuLayout.tsx b/src/components/layout/MenuLayout.tsx index 2edd1091..1465c062 100644 --- a/src/components/layout/MenuLayout.tsx +++ b/src/components/layout/MenuLayout.tsx @@ -1,6 +1,6 @@ import { ReactNode } from 'react'; import { usePathname } from 'next/navigation'; -import SideNav from 'components/layout/SideNav'; +import SideNav from '@/components/layout/SideNav'; import styles from './MenuLayout.module.css'; export function MenuLayout({ items = [], children }: { items: any[]; children: ReactNode }) { diff --git a/src/components/layout/NavGroup.module.css b/src/components/layout/NavGroup.module.css index d827da86..4979210a 100644 --- a/src/components/layout/NavGroup.module.css +++ b/src/components/layout/NavGroup.module.css @@ -51,11 +51,6 @@ a.item { color: var(--base900); } -.item.disabled { - color: var(--base500) !important; - pointer-events: none; -} - .minimized .text, .minimized .header { display: none; diff --git a/src/components/layout/NavGroup.tsx b/src/components/layout/NavGroup.tsx index e95b61fa..723f9a7e 100644 --- a/src/components/layout/NavGroup.tsx +++ b/src/components/layout/NavGroup.tsx @@ -3,7 +3,7 @@ import { Icon, Text, TooltipPopup } from 'react-basics'; import classNames from 'classnames'; import { usePathname } from 'next/navigation'; import Link from 'next/link'; -import Icons from 'components/icons'; +import Icons from '@/components/icons'; import styles from './NavGroup.module.css'; export interface NavGroupProps { diff --git a/src/components/layout/Page.tsx b/src/components/layout/Page.tsx index 83312d12..c06054b4 100644 --- a/src/components/layout/Page.tsx +++ b/src/components/layout/Page.tsx @@ -2,7 +2,7 @@ import { ReactNode } from 'react'; import classNames from 'classnames'; import { Banner, Loading } from 'react-basics'; -import { useMessages } from 'components/hooks'; +import { useMessages } from '@/components/hooks'; import styles from './Page.module.css'; export function Page({ diff --git a/src/components/messages.ts b/src/components/messages.ts index 688dd11d..80d23d2a 100644 --- a/src/components/messages.ts +++ b/src/components/messages.ts @@ -280,6 +280,7 @@ export const labels = defineMessages({ lastSeen: { id: 'label.last-seen', defaultMessage: 'Last seen' }, firstSeen: { id: 'label.first-seen', defaultMessage: 'First seen' }, properties: { id: 'label.properties', defaultMessage: 'Properties' }, + channels: { id: 'label.channels', defaultMessage: 'Channels' }, }); export const messages = defineMessages({ diff --git a/src/components/metrics/ActiveUsers.tsx b/src/components/metrics/ActiveUsers.tsx index 966b91d9..50c676ab 100644 --- a/src/components/metrics/ActiveUsers.tsx +++ b/src/components/metrics/ActiveUsers.tsx @@ -1,7 +1,7 @@ import { useMemo } from 'react'; import { StatusLight } from 'react-basics'; -import { useApi } from 'components/hooks'; -import { useMessages } from 'components/hooks'; +import { useApi } from '@/components/hooks'; +import { useMessages } from '@/components/hooks'; import styles from './ActiveUsers.module.css'; export function ActiveUsers({ diff --git a/src/components/metrics/BrowsersTable.tsx b/src/components/metrics/BrowsersTable.tsx index d0cec124..500686b1 100644 --- a/src/components/metrics/BrowsersTable.tsx +++ b/src/components/metrics/BrowsersTable.tsx @@ -1,8 +1,8 @@ -import FilterLink from 'components/common/FilterLink'; -import MetricsTable, { MetricsTableProps } from 'components/metrics/MetricsTable'; -import { useMessages } from 'components/hooks'; -import { useFormat } from 'components/hooks'; -import TypeIcon from 'components/common/TypeIcon'; +import FilterLink from '@/components/common/FilterLink'; +import MetricsTable, { MetricsTableProps } from '@/components/metrics/MetricsTable'; +import { useMessages } from '@/components/hooks'; +import { useFormat } from '@/components/hooks'; +import TypeIcon from '@/components/common/TypeIcon'; export function BrowsersTable(props: MetricsTableProps) { const { formatMessage, labels } = useMessages(); diff --git a/src/components/metrics/ChannelsTable.tsx b/src/components/metrics/ChannelsTable.tsx new file mode 100644 index 00000000..645ca936 --- /dev/null +++ b/src/components/metrics/ChannelsTable.tsx @@ -0,0 +1,17 @@ +import MetricsTable, { MetricsTableProps } from '@/components/metrics/MetricsTable'; +import { useMessages } from '@/components/hooks'; + +export function BrowsersTable(props: MetricsTableProps) { + const { formatMessage, labels } = useMessages(); + + return ( + + ); +} + +export default BrowsersTable; diff --git a/src/components/metrics/CitiesTable.tsx b/src/components/metrics/CitiesTable.tsx index fd628e7f..1e5fc735 100644 --- a/src/components/metrics/CitiesTable.tsx +++ b/src/components/metrics/CitiesTable.tsx @@ -1,8 +1,8 @@ import MetricsTable, { MetricsTableProps } from './MetricsTable'; -import { emptyFilter } from 'lib/filters'; -import FilterLink from 'components/common/FilterLink'; -import { useMessages } from 'components/hooks'; -import { useFormat } from 'components/hooks'; +import { emptyFilter } from '@/lib/filters'; +import FilterLink from '@/components/common/FilterLink'; +import { useMessages } from '@/components/hooks'; +import { useFormat } from '@/components/hooks'; export function CitiesTable(props: MetricsTableProps) { const { formatMessage, labels } = useMessages(); diff --git a/src/components/metrics/CountriesTable.tsx b/src/components/metrics/CountriesTable.tsx index f4560ae3..cdd05115 100644 --- a/src/components/metrics/CountriesTable.tsx +++ b/src/components/metrics/CountriesTable.tsx @@ -1,8 +1,8 @@ -import FilterLink from 'components/common/FilterLink'; -import { useCountryNames } from 'components/hooks'; -import { useLocale, useMessages, useFormat } from 'components/hooks'; +import FilterLink from '@/components/common/FilterLink'; +import { useCountryNames } from '@/components/hooks'; +import { useLocale, useMessages, useFormat } from '@/components/hooks'; import MetricsTable, { MetricsTableProps } from './MetricsTable'; -import TypeIcon from 'components/common/TypeIcon'; +import TypeIcon from '@/components/common/TypeIcon'; export function CountriesTable({ ...props }: MetricsTableProps) { const { locale } = useLocale(); diff --git a/src/components/metrics/DatePickerForm.tsx b/src/components/metrics/DatePickerForm.tsx index 892cd127..d1a5c7db 100644 --- a/src/components/metrics/DatePickerForm.tsx +++ b/src/components/metrics/DatePickerForm.tsx @@ -1,9 +1,9 @@ import { useState } from 'react'; import { Button, ButtonGroup, Calendar } from 'react-basics'; import { isAfter, isBefore, isSameDay, startOfDay, endOfDay } from 'date-fns'; -import { useLocale } from 'components/hooks'; -import { FILTER_DAY, FILTER_RANGE } from 'lib/constants'; -import { useMessages } from 'components/hooks'; +import { useLocale } from '@/components/hooks'; +import { FILTER_DAY, FILTER_RANGE } from '@/lib/constants'; +import { useMessages } from '@/components/hooks'; import styles from './DatePickerForm.module.css'; export function DatePickerForm({ diff --git a/src/components/metrics/DevicesTable.tsx b/src/components/metrics/DevicesTable.tsx index c25afe4f..ed327c33 100644 --- a/src/components/metrics/DevicesTable.tsx +++ b/src/components/metrics/DevicesTable.tsx @@ -1,8 +1,8 @@ import MetricsTable, { MetricsTableProps } from './MetricsTable'; -import FilterLink from 'components/common/FilterLink'; -import { useMessages } from 'components/hooks'; -import { useFormat } from 'components/hooks'; -import TypeIcon from 'components/common/TypeIcon'; +import FilterLink from '@/components/common/FilterLink'; +import { useMessages } from '@/components/hooks'; +import { useFormat } from '@/components/hooks'; +import TypeIcon from '@/components/common/TypeIcon'; export function DevicesTable(props: MetricsTableProps) { const { formatMessage, labels } = useMessages(); diff --git a/src/components/metrics/EventsChart.tsx b/src/components/metrics/EventsChart.tsx index 2ba2caee..9655c4a4 100644 --- a/src/components/metrics/EventsChart.tsx +++ b/src/components/metrics/EventsChart.tsx @@ -1,8 +1,8 @@ import { colord } from 'colord'; -import BarChart from 'components/charts/BarChart'; -import { useDateRange, useLocale, useWebsiteEventsSeries } from 'components/hooks'; -import { renderDateLabels } from 'lib/charts'; -import { CHART_COLORS } from 'lib/constants'; +import BarChart from '@/components/charts/BarChart'; +import { useDateRange, useLocale, useWebsiteEventsSeries } from '@/components/hooks'; +import { renderDateLabels } from '@/lib/charts'; +import { CHART_COLORS } from '@/lib/constants'; import { useMemo } from 'react'; export interface EventsChartProps { diff --git a/src/components/metrics/EventsTable.tsx b/src/components/metrics/EventsTable.tsx index c90ae988..bc753b3b 100644 --- a/src/components/metrics/EventsTable.tsx +++ b/src/components/metrics/EventsTable.tsx @@ -1,5 +1,5 @@ import MetricsTable, { MetricsTableProps } from './MetricsTable'; -import { useMessages } from 'components/hooks'; +import { useMessages } from '@/components/hooks'; export function EventsTable(props: MetricsTableProps) { const { formatMessage, labels } = useMessages(); diff --git a/src/components/metrics/FilterTags.tsx b/src/components/metrics/FilterTags.tsx index 60cf90c1..fcba3c9e 100644 --- a/src/components/metrics/FilterTags.tsx +++ b/src/components/metrics/FilterTags.tsx @@ -7,13 +7,13 @@ import { useMessages, useFormat, useFilters, -} from 'components/hooks'; -import PopupForm from 'app/(main)/reports/[reportId]/PopupForm'; -import FieldFilterEditForm from 'app/(main)/reports/[reportId]/FieldFilterEditForm'; -import { OPERATOR_PREFIXES } from 'lib/constants'; -import { isSearchOperator, parseParameterValue } from 'lib/params'; +} from '@/components/hooks'; +import PopupForm from '@/app/(main)/reports/[reportId]/PopupForm'; +import FieldFilterEditForm from '@/app/(main)/reports/[reportId]/FieldFilterEditForm'; +import { OPERATOR_PREFIXES } from '@/lib/constants'; +import { isSearchOperator, parseParameterValue } from '@/lib/params'; import styles from './FilterTags.module.css'; -import WebsiteFilterButton from 'app/(main)/websites/[websiteId]/WebsiteFilterButton'; +import WebsiteFilterButton from '@/app/(main)/websites/[websiteId]/WebsiteFilterButton'; export function FilterTags({ websiteId, diff --git a/src/components/metrics/HostsTable.tsx b/src/components/metrics/HostsTable.tsx index 45147eac..e034b970 100644 --- a/src/components/metrics/HostsTable.tsx +++ b/src/components/metrics/HostsTable.tsx @@ -1,6 +1,6 @@ import MetricsTable, { MetricsTableProps } from './MetricsTable'; -import FilterLink from 'components/common/FilterLink'; -import { useMessages } from 'components/hooks'; +import FilterLink from '@/components/common/FilterLink'; +import { useMessages } from '@/components/hooks'; import { Flexbox } from 'react-basics'; export function HostsTable(props: MetricsTableProps) { diff --git a/src/components/metrics/LanguagesTable.tsx b/src/components/metrics/LanguagesTable.tsx index 24b62046..3ced249e 100644 --- a/src/components/metrics/LanguagesTable.tsx +++ b/src/components/metrics/LanguagesTable.tsx @@ -1,8 +1,8 @@ import MetricsTable, { MetricsTableProps } from './MetricsTable'; -import { percentFilter } from 'lib/filters'; -import { useLocale } from 'components/hooks'; -import { useMessages } from 'components/hooks'; -import { useFormat } from 'components/hooks'; +import { percentFilter } from '@/lib/filters'; +import { useLocale } from '@/components/hooks'; +import { useMessages } from '@/components/hooks'; +import { useFormat } from '@/components/hooks'; export function LanguagesTable({ onDataLoad, diff --git a/src/components/metrics/ListTable.tsx b/src/components/metrics/ListTable.tsx index 59ded491..6fbf390a 100644 --- a/src/components/metrics/ListTable.tsx +++ b/src/components/metrics/ListTable.tsx @@ -1,9 +1,9 @@ import { FixedSizeList } from 'react-window'; import { useSpring, animated, config } from '@react-spring/web'; import classNames from 'classnames'; -import Empty from 'components/common/Empty'; -import { formatLongNumber } from 'lib/format'; -import { useMessages } from 'components/hooks'; +import Empty from '@/components/common/Empty'; +import { formatLongNumber } from '@/lib/format'; +import { useMessages } from '@/components/hooks'; import styles from './ListTable.module.css'; import { ReactNode } from 'react'; diff --git a/src/components/metrics/MetricCard.tsx b/src/components/metrics/MetricCard.tsx index 64f2a1b6..41766167 100644 --- a/src/components/metrics/MetricCard.tsx +++ b/src/components/metrics/MetricCard.tsx @@ -1,7 +1,7 @@ import classNames from 'classnames'; import { useSpring, animated } from '@react-spring/web'; -import { formatNumber } from 'lib/format'; -import ChangeLabel from 'components/metrics/ChangeLabel'; +import { formatNumber } from '@/lib/format'; +import ChangeLabel from '@/components/metrics/ChangeLabel'; import styles from './MetricCard.module.css'; export interface MetricCardProps { diff --git a/src/components/metrics/MetricsBar.tsx b/src/components/metrics/MetricsBar.tsx index 60a21706..6e9f22de 100644 --- a/src/components/metrics/MetricsBar.tsx +++ b/src/components/metrics/MetricsBar.tsx @@ -1,7 +1,7 @@ import { ReactNode } from 'react'; import { Loading, cloneChildren } from 'react-basics'; -import ErrorMessage from 'components/common/ErrorMessage'; -import { formatLongNumber } from 'lib/format'; +import ErrorMessage from '@/components/common/ErrorMessage'; +import { formatLongNumber } from '@/lib/format'; import styles from './MetricsBar.module.css'; export interface MetricsBarProps { diff --git a/src/components/metrics/MetricsTable.tsx b/src/components/metrics/MetricsTable.tsx index 4db599b9..33b457b5 100644 --- a/src/components/metrics/MetricsTable.tsx +++ b/src/components/metrics/MetricsTable.tsx @@ -1,18 +1,18 @@ import { ReactNode, useMemo, useState } from 'react'; import { Loading, Icon, Text, SearchField } from 'react-basics'; import classNames from 'classnames'; -import ErrorMessage from 'components/common/ErrorMessage'; -import LinkButton from 'components/common/LinkButton'; -import { DEFAULT_ANIMATION_DURATION } from 'lib/constants'; -import { percentFilter } from 'lib/filters'; +import ErrorMessage from '@/components/common/ErrorMessage'; +import LinkButton from '@/components/common/LinkButton'; +import { DEFAULT_ANIMATION_DURATION } from '@/lib/constants'; +import { percentFilter } from '@/lib/filters'; import { useNavigation, useWebsiteMetrics, useMessages, useLocale, useFormat, -} from 'components/hooks'; -import Icons from 'components/icons'; +} from '@/components/hooks'; +import Icons from '@/components/icons'; import ListTable, { ListTableProps } from './ListTable'; import styles from './MetricsTable.module.css'; diff --git a/src/components/metrics/OSTable.tsx b/src/components/metrics/OSTable.tsx index 6989504c..37b79549 100644 --- a/src/components/metrics/OSTable.tsx +++ b/src/components/metrics/OSTable.tsx @@ -1,7 +1,7 @@ import MetricsTable, { MetricsTableProps } from './MetricsTable'; -import FilterLink from 'components/common/FilterLink'; -import { useMessages, useFormat } from 'components/hooks'; -import TypeIcon from 'components/common/TypeIcon'; +import FilterLink from '@/components/common/FilterLink'; +import { useMessages, useFormat } from '@/components/hooks'; +import TypeIcon from '@/components/common/TypeIcon'; export function OSTable(props: MetricsTableProps) { const { formatMessage, labels } = useMessages(); diff --git a/src/components/metrics/PagesTable.tsx b/src/components/metrics/PagesTable.tsx index b2d8ca9c..8163b3d9 100644 --- a/src/components/metrics/PagesTable.tsx +++ b/src/components/metrics/PagesTable.tsx @@ -1,8 +1,8 @@ -import { WebsiteContext } from 'app/(main)/websites/[websiteId]/WebsiteProvider'; -import FilterButtons from 'components/common/FilterButtons'; -import FilterLink from 'components/common/FilterLink'; -import { useMessages, useNavigation } from 'components/hooks'; -import { emptyFilter } from 'lib/filters'; +import { WebsiteContext } from '@/app/(main)/websites/[websiteId]/WebsiteProvider'; +import FilterButtons from '@/components/common/FilterButtons'; +import FilterLink from '@/components/common/FilterLink'; +import { useMessages, useNavigation } from '@/components/hooks'; +import { emptyFilter } from '@/lib/filters'; import { useContext } from 'react'; import MetricsTable, { MetricsTableProps } from './MetricsTable'; diff --git a/src/components/metrics/PageviewsChart.tsx b/src/components/metrics/PageviewsChart.tsx index 6274defc..6fa3285f 100644 --- a/src/components/metrics/PageviewsChart.tsx +++ b/src/components/metrics/PageviewsChart.tsx @@ -1,7 +1,7 @@ import { useMemo } from 'react'; -import BarChart, { BarChartProps } from 'components/charts/BarChart'; -import { useLocale, useTheme, useMessages } from 'components/hooks'; -import { renderDateLabels } from 'lib/charts'; +import BarChart, { BarChartProps } from '@/components/charts/BarChart'; +import { useLocale, useTheme, useMessages } from '@/components/hooks'; +import { renderDateLabels } from '@/lib/charts'; export interface PagepageviewsChartProps extends BarChartProps { data: { diff --git a/src/components/metrics/QueryParametersTable.tsx b/src/components/metrics/QueryParametersTable.tsx index 4ee15ae5..26f01faf 100644 --- a/src/components/metrics/QueryParametersTable.tsx +++ b/src/components/metrics/QueryParametersTable.tsx @@ -1,9 +1,9 @@ import { useState } from 'react'; -import FilterButtons from 'components/common/FilterButtons'; -import { emptyFilter, paramFilter } from 'lib/filters'; -import { FILTER_RAW, FILTER_COMBINED } from 'lib/constants'; +import FilterButtons from '@/components/common/FilterButtons'; +import { emptyFilter, paramFilter } from '@/lib/filters'; +import { FILTER_RAW, FILTER_COMBINED } from '@/lib/constants'; import MetricsTable, { MetricsTableProps } from './MetricsTable'; -import { useMessages } from 'components/hooks'; +import { useMessages } from '@/components/hooks'; import styles from './QueryParametersTable.module.css'; const filters = { diff --git a/src/components/metrics/RealtimeChart.tsx b/src/components/metrics/RealtimeChart.tsx index b2819f9c..f5697caa 100644 --- a/src/components/metrics/RealtimeChart.tsx +++ b/src/components/metrics/RealtimeChart.tsx @@ -1,8 +1,8 @@ import { useMemo, useRef } from 'react'; import { startOfMinute, subMinutes, isBefore } from 'date-fns'; import PageviewsChart from './PageviewsChart'; -import { DEFAULT_ANIMATION_DURATION, REALTIME_RANGE } from 'lib/constants'; -import { RealtimeData } from 'lib/types'; +import { DEFAULT_ANIMATION_DURATION, REALTIME_RANGE } from '@/lib/constants'; +import { RealtimeData } from '@/lib/types'; export interface RealtimeChartProps { data: RealtimeData; diff --git a/src/components/metrics/ReferrersTable.tsx b/src/components/metrics/ReferrersTable.tsx index d83c4d12..9e326994 100644 --- a/src/components/metrics/ReferrersTable.tsx +++ b/src/components/metrics/ReferrersTable.tsx @@ -1,6 +1,6 @@ -import FilterLink from 'components/common/FilterLink'; -import Favicon from 'components/common/Favicon'; -import { useMessages } from 'components/hooks'; +import FilterLink from '@/components/common/FilterLink'; +import Favicon from '@/components/common/Favicon'; +import { useMessages } from '@/components/hooks'; import MetricsTable, { MetricsTableProps } from './MetricsTable'; export function ReferrersTable(props: MetricsTableProps) { diff --git a/src/components/metrics/RegionsTable.tsx b/src/components/metrics/RegionsTable.tsx index 0c3a931f..0b7e3bdf 100644 --- a/src/components/metrics/RegionsTable.tsx +++ b/src/components/metrics/RegionsTable.tsx @@ -1,8 +1,8 @@ -import FilterLink from 'components/common/FilterLink'; -import { emptyFilter } from 'lib/filters'; -import { useMessages, useLocale, useRegionNames } from 'components/hooks'; +import FilterLink from '@/components/common/FilterLink'; +import { emptyFilter } from '@/lib/filters'; +import { useMessages, useLocale, useRegionNames } from '@/components/hooks'; import MetricsTable, { MetricsTableProps } from './MetricsTable'; -import TypeIcon from 'components/common/TypeIcon'; +import TypeIcon from '@/components/common/TypeIcon'; export function RegionsTable(props: MetricsTableProps) { const { locale } = useLocale(); diff --git a/src/components/metrics/ScreenTable.tsx b/src/components/metrics/ScreenTable.tsx index 51015fcb..c2a19caa 100644 --- a/src/components/metrics/ScreenTable.tsx +++ b/src/components/metrics/ScreenTable.tsx @@ -1,5 +1,5 @@ import MetricsTable, { MetricsTableProps } from './MetricsTable'; -import { useMessages } from 'components/hooks'; +import { useMessages } from '@/components/hooks'; export function ScreenTable(props: MetricsTableProps) { const { formatMessage, labels } = useMessages(); diff --git a/src/components/metrics/TagsTable.tsx b/src/components/metrics/TagsTable.tsx index a1130bb4..e915f873 100644 --- a/src/components/metrics/TagsTable.tsx +++ b/src/components/metrics/TagsTable.tsx @@ -1,6 +1,6 @@ import MetricsTable, { MetricsTableProps } from './MetricsTable'; -import FilterLink from 'components/common/FilterLink'; -import { useMessages } from 'components/hooks'; +import FilterLink from '@/components/common/FilterLink'; +import { useMessages } from '@/components/hooks'; import { Flexbox } from 'react-basics'; export function TagsTable(props: MetricsTableProps) { diff --git a/src/components/metrics/WorldMap.tsx b/src/components/metrics/WorldMap.tsx index 5dfc5f74..a377bfc9 100644 --- a/src/components/metrics/WorldMap.tsx +++ b/src/components/metrics/WorldMap.tsx @@ -2,14 +2,14 @@ import { useState, useMemo, HTMLAttributes } from 'react'; import { ComposableMap, Geographies, Geography, ZoomableGroup } from 'react-simple-maps'; import classNames from 'classnames'; import { colord } from 'colord'; -import HoverTooltip from 'components/common/HoverTooltip'; -import { ISO_COUNTRIES, MAP_FILE } from 'lib/constants'; -import { useDateRange, useTheme, useWebsiteMetrics } from 'components/hooks'; -import { useCountryNames } from 'components/hooks'; -import { useLocale } from 'components/hooks'; -import { useMessages } from 'components/hooks'; -import { formatLongNumber } from 'lib/format'; -import { percentFilter } from 'lib/filters'; +import HoverTooltip from '@/components/common/HoverTooltip'; +import { ISO_COUNTRIES, MAP_FILE } from '@/lib/constants'; +import { useDateRange, useTheme, useWebsiteMetrics } from '@/components/hooks'; +import { useCountryNames } from '@/components/hooks'; +import { useLocale } from '@/components/hooks'; +import { useMessages } from '@/components/hooks'; +import { formatLongNumber } from '@/lib/format'; +import { percentFilter } from '@/lib/filters'; import styles from './WorldMap.module.css'; export function WorldMap({ diff --git a/src/index.ts b/src/index.ts index 553a44b5..e7b0e6c6 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,64 +1,64 @@ -export * from 'components/hooks'; +export * from '@/components/hooks'; -export * from 'app/(main)/teams/[teamId]/settings/members/TeamMemberEditButton'; -export * from 'app/(main)/teams/[teamId]/settings/members/TeamMemberEditForm'; -export * from 'app/(main)/teams/[teamId]/settings/members/TeamMemberRemoveButton'; -export * from 'app/(main)/teams/[teamId]/settings/members/TeamMembersDataTable'; -export * from 'app/(main)/teams/[teamId]/settings/members/TeamMembersTable'; +export * from '@/app/(main)/teams/[teamId]/settings/members/TeamMemberEditButton'; +export * from '@/app/(main)/teams/[teamId]/settings/members/TeamMemberEditForm'; +export * from '@/app/(main)/teams/[teamId]/settings/members/TeamMemberRemoveButton'; +export * from '@/app/(main)/teams/[teamId]/settings/members/TeamMembersDataTable'; +export * from '@/app/(main)/teams/[teamId]/settings/members/TeamMembersTable'; -export * from 'app/(main)/teams/[teamId]/settings/team/TeamDeleteForm'; -export * from 'app/(main)/teams/[teamId]/settings/team/TeamDetails'; -export * from 'app/(main)/teams/[teamId]/settings/team/TeamEditForm'; -export * from 'app/(main)/teams/[teamId]/settings/team/TeamManage'; +export * from '@/app/(main)/teams/[teamId]/settings/team/TeamDeleteForm'; +export * from '@/app/(main)/teams/[teamId]/settings/team/TeamDetails'; +export * from '@/app/(main)/teams/[teamId]/settings/team/TeamEditForm'; +export * from '@/app/(main)/teams/[teamId]/settings/team/TeamManage'; -export * from 'app/(main)/teams/[teamId]/settings/websites/TeamWebsiteRemoveButton'; -export * from 'app/(main)/teams/[teamId]/settings/websites/TeamWebsitesDataTable'; -export * from 'app/(main)/teams/[teamId]/settings/websites/TeamWebsitesTable'; +export * from '@/app/(main)/teams/[teamId]/settings/websites/TeamWebsiteRemoveButton'; +export * from '@/app/(main)/teams/[teamId]/settings/websites/TeamWebsitesDataTable'; +export * from '@/app/(main)/teams/[teamId]/settings/websites/TeamWebsitesTable'; -export * from 'app/(main)/settings/teams/TeamAddForm'; -export * from 'app/(main)/settings/teams/TeamJoinForm'; -export * from 'app/(main)/settings/teams/TeamLeaveButton'; -export * from 'app/(main)/settings/teams/TeamLeaveForm'; -export * from 'app/(main)/settings/teams/TeamsAddButton'; -export * from 'app/(main)/settings/teams/TeamsDataTable'; -export * from 'app/(main)/settings/teams/TeamsHeader'; -export * from 'app/(main)/settings/teams/TeamsJoinButton'; -export * from 'app/(main)/settings/teams/TeamsTable'; -export * from 'app/(main)/settings/teams/WebsiteTags'; +export * from '@/app/(main)/settings/teams/TeamAddForm'; +export * from '@/app/(main)/settings/teams/TeamJoinForm'; +export * from '@/app/(main)/settings/teams/TeamLeaveButton'; +export * from '@/app/(main)/settings/teams/TeamLeaveForm'; +export * from '@/app/(main)/settings/teams/TeamsAddButton'; +export * from '@/app/(main)/settings/teams/TeamsDataTable'; +export * from '@/app/(main)/settings/teams/TeamsHeader'; +export * from '@/app/(main)/settings/teams/TeamsJoinButton'; +export * from '@/app/(main)/settings/teams/TeamsTable'; +export * from '@/app/(main)/settings/teams/WebsiteTags'; -export * from 'app/(main)/settings/websites/[websiteId]/ShareUrl'; -export * from 'app/(main)/settings/websites/[websiteId]/TrackingCode'; -export * from 'app/(main)/settings/websites/[websiteId]/WebsiteData'; -export * from 'app/(main)/settings/websites/[websiteId]/WebsiteDeleteForm'; -export * from 'app/(main)/settings/websites/[websiteId]/WebsiteEditForm'; -export * from 'app/(main)/settings/websites/[websiteId]/WebsiteResetForm'; -export * from 'app/(main)/settings/websites/[websiteId]/WebsiteSettings'; +export * from '@/app/(main)/settings/websites/[websiteId]/ShareUrl'; +export * from '@/app/(main)/settings/websites/[websiteId]/TrackingCode'; +export * from '@/app/(main)/settings/websites/[websiteId]/WebsiteData'; +export * from '@/app/(main)/settings/websites/[websiteId]/WebsiteDeleteForm'; +export * from '@/app/(main)/settings/websites/[websiteId]/WebsiteEditForm'; +export * from '@/app/(main)/settings/websites/[websiteId]/WebsiteResetForm'; +export * from '@/app/(main)/settings/websites/[websiteId]/WebsiteSettings'; -export * from 'app/(main)/settings/websites/WebsiteAddButton'; -export * from 'app/(main)/settings/websites/WebsiteAddForm'; -export * from 'app/(main)/settings/websites/WebsitesDataTable'; -export * from 'app/(main)/settings/websites/WebsitesHeader'; -export * from 'app/(main)/settings/websites/WebsitesTable'; +export * from '@/app/(main)/settings/websites/WebsiteAddButton'; +export * from '@/app/(main)/settings/websites/WebsiteAddForm'; +export * from '@/app/(main)/settings/websites/WebsitesDataTable'; +export * from '@/app/(main)/settings/websites/WebsitesHeader'; +export * from '@/app/(main)/settings/websites/WebsitesTable'; -export * from 'app/(main)/teams/[teamId]/TeamProvider'; -export * from 'app/(main)/websites/[websiteId]/WebsiteProvider'; +export * from '@/app/(main)/teams/[teamId]/TeamProvider'; +export * from '@/app/(main)/websites/[websiteId]/WebsiteProvider'; -export * from 'components/common/ConfirmationForm'; -export * from 'components/common/DataTable'; -export * from 'components/common/Empty'; -export * from 'components/common/ErrorBoundary'; -export * from 'components/common/ErrorMessage'; -export * from 'components/common/Favicon'; -export * from 'components/common/FilterButtons'; -export * from 'components/common/FilterLink'; -export * from 'components/common/HamburgerButton'; -export * from 'components/common/HoverTooltip'; -export * from 'components/common/LinkButton'; -export * from 'components/common/MobileMenu'; -export * from 'components/common/Pager'; -export * from 'components/common/TypeConfirmationForm'; +export * from '@/components/common/ConfirmationForm'; +export * from '@/components/common/DataTable'; +export * from '@/components/common/Empty'; +export * from '@/components/common/ErrorBoundary'; +export * from '@/components/common/ErrorMessage'; +export * from '@/components/common/Favicon'; +export * from '@/components/common/FilterButtons'; +export * from '@/components/common/FilterLink'; +export * from '@/components/common/HamburgerButton'; +export * from '@/components/common/HoverTooltip'; +export * from '@/components/common/LinkButton'; +export * from '@/components/common/MobileMenu'; +export * from '@/components/common/Pager'; +export * from '@/components/common/TypeConfirmationForm'; -export * from 'components/input/TeamsButton'; -export * from 'components/input/ThemeButton'; +export * from '@/components/input/TeamsButton'; +export * from '@/components/input/ThemeButton'; -export { ROLES } from 'lib/constants'; +export { ROLES } from '@/lib/constants'; diff --git a/src/lib/auth.ts b/src/lib/auth.ts index 9eb57809..4ce90706 100644 --- a/src/lib/auth.ts +++ b/src/lib/auth.ts @@ -2,11 +2,11 @@ import bcrypt from 'bcryptjs'; import { Report } from '@prisma/client'; import { getClient, redisEnabled } from '@umami/redis-client'; import debug from 'debug'; -import { PERMISSIONS, ROLE_PERMISSIONS, ROLES, SHARE_TOKEN_HEADER } from 'lib/constants'; -import { secret, getRandomChars } from 'lib/crypto'; -import { createSecureToken, parseSecureToken, parseToken } from 'lib/jwt'; -import { ensureArray } from 'lib/utils'; -import { getTeamUser, getUser, getWebsite } from 'queries'; +import { PERMISSIONS, ROLE_PERMISSIONS, ROLES, SHARE_TOKEN_HEADER } from '@/lib/constants'; +import { secret, getRandomChars } from '@/lib/crypto'; +import { createSecureToken, parseSecureToken, parseToken } from '@/lib/jwt'; +import { ensureArray } from '@/lib/utils'; +import { getTeamUser, getUser, getWebsite } from '@/queries'; import { Auth } from './types'; const log = debug('umami:auth'); diff --git a/src/lib/charts.ts b/src/lib/charts.ts index 8939b3c1..d805eefe 100644 --- a/src/lib/charts.ts +++ b/src/lib/charts.ts @@ -1,5 +1,5 @@ -import { formatDate } from 'lib/date'; -import { formatLongNumber } from 'lib/format'; +import { formatDate } from '@/lib/date'; +import { formatLongNumber } from '@/lib/format'; export function renderNumberLabels(label: string) { return +label > 1000 ? formatLongNumber(+label) : label; diff --git a/src/lib/clickhouse.ts b/src/lib/clickhouse.ts index 5f0248b4..13abde9d 100644 --- a/src/lib/clickhouse.ts +++ b/src/lib/clickhouse.ts @@ -1,8 +1,8 @@ import { ClickHouseClient, createClient } from '@clickhouse/client'; import { formatInTimeZone } from 'date-fns-tz'; import debug from 'debug'; -import { CLICKHOUSE } from 'lib/db'; -import { getWebsite } from 'queries/index'; +import { CLICKHOUSE } from '@/lib/db'; +import { getWebsite } from '@/queries/index'; import { DEFAULT_PAGE_SIZE, OPERATORS } from './constants'; import { maxDate } from './date'; import { filtersToArray } from './params'; diff --git a/src/lib/client.ts b/src/lib/client.ts index b1e74021..795e7780 100644 --- a/src/lib/client.ts +++ b/src/lib/client.ts @@ -1,4 +1,4 @@ -import { getItem, setItem, removeItem } from 'lib/storage'; +import { getItem, setItem, removeItem } from '@/lib/storage'; import { AUTH_TOKEN } from './constants'; export function getClientAuthToken() { diff --git a/src/lib/date.ts b/src/lib/date.ts index b7755ffc..96135845 100644 --- a/src/lib/date.ts +++ b/src/lib/date.ts @@ -35,8 +35,8 @@ import { endOfMinute, isSameDay, } from 'date-fns'; -import { getDateLocale } from 'lib/lang'; -import { DateRange } from 'lib/types'; +import { getDateLocale } from '@/lib/lang'; +import { DateRange } from '@/lib/types'; export const TIME_UNIT = { minute: 'minute', diff --git a/src/lib/fetch.ts b/src/lib/fetch.ts index 9d947a13..e5068b29 100644 --- a/src/lib/fetch.ts +++ b/src/lib/fetch.ts @@ -1,4 +1,4 @@ -import { buildUrl } from 'lib/url'; +import { buildUrl } from '@/lib/url'; export async function request(method: string, url: string, body?: string, headers: object = {}) { const res = await fetch(url, { diff --git a/src/lib/jwt.ts b/src/lib/jwt.ts index 8b581be6..470c48ff 100644 --- a/src/lib/jwt.ts +++ b/src/lib/jwt.ts @@ -1,5 +1,5 @@ import jwt from 'jsonwebtoken'; -import { decrypt, encrypt } from 'lib/crypto'; +import { decrypt, encrypt } from '@/lib/crypto'; export function createToken(payload: any, secret: any, options?: any) { return jwt.sign(payload, secret, options); diff --git a/src/lib/kafka.ts b/src/lib/kafka.ts index 2e875c59..e7f06910 100644 --- a/src/lib/kafka.ts +++ b/src/lib/kafka.ts @@ -1,7 +1,7 @@ import { serializeError } from 'serialize-error'; import debug from 'debug'; import { Kafka, Producer, RecordMetadata, SASLOptions, logLevel } from 'kafkajs'; -import { KAFKA, KAFKA_PRODUCER } from 'lib/db'; +import { KAFKA, KAFKA_PRODUCER } from '@/lib/db'; import * as tls from 'tls'; const log = debug('umami:kafka'); diff --git a/src/lib/load.ts b/src/lib/load.ts index 0cb09da4..2b7f7de4 100644 --- a/src/lib/load.ts +++ b/src/lib/load.ts @@ -1,6 +1,6 @@ import { Website, Session } from '@prisma/client'; import { getClient, redisEnabled } from '@umami/redis-client'; -import { getWebsiteSession, getWebsite } from 'queries'; +import { getWebsiteSession, getWebsite } from '@/queries'; export async function fetchWebsite(websiteId: string): Promise { let website = null; diff --git a/src/lib/params.ts b/src/lib/params.ts index ef4568ba..8e631ed8 100644 --- a/src/lib/params.ts +++ b/src/lib/params.ts @@ -1,5 +1,5 @@ -import { FILTER_COLUMNS, OPERATOR_PREFIXES, OPERATORS } from 'lib/constants'; -import { QueryFilters, QueryOptions } from 'lib/types'; +import { FILTER_COLUMNS, OPERATOR_PREFIXES, OPERATORS } from '@/lib/constants'; +import { QueryFilters, QueryOptions } from '@/lib/types'; export function parseParameterValue(param: any) { if (typeof param === 'string') { diff --git a/src/lib/prisma.ts b/src/lib/prisma.ts index deee67f7..6c0237d0 100644 --- a/src/lib/prisma.ts +++ b/src/lib/prisma.ts @@ -1,7 +1,7 @@ import debug from 'debug'; import prisma from '@umami/prisma-client'; import { formatInTimeZone } from 'date-fns-tz'; -import { MYSQL, POSTGRESQL, getDatabaseType } from 'lib/db'; +import { MYSQL, POSTGRESQL, getDatabaseType } from '@/lib/db'; import { SESSION_COLUMNS, OPERATORS, DEFAULT_PAGE_SIZE } from './constants'; import { fetchWebsite } from './load'; import { maxDate } from './date'; diff --git a/src/lib/request.ts b/src/lib/request.ts index 2278d838..9d32f89b 100644 --- a/src/lib/request.ts +++ b/src/lib/request.ts @@ -1,9 +1,9 @@ import { ZodObject } from 'zod'; -import { FILTER_COLUMNS } from 'lib/constants'; -import { badRequest, unauthorized } from 'lib/response'; -import { getAllowedUnits, getMinimumUnit } from 'lib/date'; -import { checkAuth } from 'lib/auth'; -import { getWebsiteDateRange } from 'queries'; +import { FILTER_COLUMNS } from '@/lib/constants'; +import { badRequest, unauthorized } from '@/lib/response'; +import { getAllowedUnits, getMinimumUnit } from '@/lib/date'; +import { checkAuth } from '@/lib/auth'; +import { getWebsiteDateRange } from '@/queries'; export async function getJsonBody(request: Request) { try { diff --git a/src/lib/schema.ts b/src/lib/schema.ts index 21da4f42..84662f04 100644 --- a/src/lib/schema.ts +++ b/src/lib/schema.ts @@ -1,5 +1,5 @@ import { z } from 'zod'; -import { isValidTimezone } from 'lib/date'; +import { isValidTimezone } from '@/lib/date'; import { UNIT_TYPES } from './constants'; export const filterParams = { diff --git a/src/queries/analytics/events/getEventDataEvents.ts b/src/queries/analytics/events/getEventDataEvents.ts index 0b19c5be..432c93a2 100644 --- a/src/queries/analytics/events/getEventDataEvents.ts +++ b/src/queries/analytics/events/getEventDataEvents.ts @@ -1,7 +1,7 @@ -import prisma from 'lib/prisma'; -import clickhouse from 'lib/clickhouse'; -import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db'; -import { QueryFilters, WebsiteEventData } from 'lib/types'; +import prisma from '@/lib/prisma'; +import clickhouse from '@/lib/clickhouse'; +import { CLICKHOUSE, PRISMA, runQuery } from '@/lib/db'; +import { QueryFilters, WebsiteEventData } from '@/lib/types'; export async function getEventDataEvents( ...args: [websiteId: string, filters: QueryFilters] diff --git a/src/queries/analytics/events/getEventDataFields.ts b/src/queries/analytics/events/getEventDataFields.ts index 05fee072..33b4e0f5 100644 --- a/src/queries/analytics/events/getEventDataFields.ts +++ b/src/queries/analytics/events/getEventDataFields.ts @@ -1,7 +1,7 @@ -import prisma from 'lib/prisma'; -import clickhouse from 'lib/clickhouse'; -import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db'; -import { QueryFilters, WebsiteEventData } from 'lib/types'; +import prisma from '@/lib/prisma'; +import clickhouse from '@/lib/clickhouse'; +import { CLICKHOUSE, PRISMA, runQuery } from '@/lib/db'; +import { QueryFilters, WebsiteEventData } from '@/lib/types'; export async function getEventDataFields( ...args: [websiteId: string, filters: QueryFilters] diff --git a/src/queries/analytics/events/getEventDataProperties.ts b/src/queries/analytics/events/getEventDataProperties.ts index e2cf0828..73fb8fec 100644 --- a/src/queries/analytics/events/getEventDataProperties.ts +++ b/src/queries/analytics/events/getEventDataProperties.ts @@ -1,7 +1,7 @@ -import prisma from 'lib/prisma'; -import clickhouse from 'lib/clickhouse'; -import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db'; -import { QueryFilters, WebsiteEventData } from 'lib/types'; +import prisma from '@/lib/prisma'; +import clickhouse from '@/lib/clickhouse'; +import { CLICKHOUSE, PRISMA, runQuery } from '@/lib/db'; +import { QueryFilters, WebsiteEventData } from '@/lib/types'; export async function getEventDataProperties( ...args: [websiteId: string, filters: QueryFilters & { propertyName?: string }] diff --git a/src/queries/analytics/events/getEventDataStats.ts b/src/queries/analytics/events/getEventDataStats.ts index adeeda46..98347960 100644 --- a/src/queries/analytics/events/getEventDataStats.ts +++ b/src/queries/analytics/events/getEventDataStats.ts @@ -1,7 +1,7 @@ -import prisma from 'lib/prisma'; -import clickhouse from 'lib/clickhouse'; -import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db'; -import { QueryFilters } from 'lib/types'; +import prisma from '@/lib/prisma'; +import clickhouse from '@/lib/clickhouse'; +import { CLICKHOUSE, PRISMA, runQuery } from '@/lib/db'; +import { QueryFilters } from '@/lib/types'; export async function getEventDataStats( ...args: [websiteId: string, filters: QueryFilters] diff --git a/src/queries/analytics/events/getEventDataUsage.ts b/src/queries/analytics/events/getEventDataUsage.ts index 1d146c9c..1f2bf833 100644 --- a/src/queries/analytics/events/getEventDataUsage.ts +++ b/src/queries/analytics/events/getEventDataUsage.ts @@ -1,5 +1,5 @@ -import clickhouse from 'lib/clickhouse'; -import { CLICKHOUSE, PRISMA, runQuery, notImplemented } from 'lib/db'; +import clickhouse from '@/lib/clickhouse'; +import { CLICKHOUSE, PRISMA, runQuery, notImplemented } from '@/lib/db'; export function getEventDataUsage(...args: [websiteIds: string[], startDate: Date, endDate: Date]) { return runQuery({ diff --git a/src/queries/analytics/events/getEventDataValues.ts b/src/queries/analytics/events/getEventDataValues.ts index 63101824..c8d63362 100644 --- a/src/queries/analytics/events/getEventDataValues.ts +++ b/src/queries/analytics/events/getEventDataValues.ts @@ -1,7 +1,7 @@ -import prisma from 'lib/prisma'; -import clickhouse from 'lib/clickhouse'; -import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db'; -import { QueryFilters, WebsiteEventData } from 'lib/types'; +import prisma from '@/lib/prisma'; +import clickhouse from '@/lib/clickhouse'; +import { CLICKHOUSE, PRISMA, runQuery } from '@/lib/db'; +import { QueryFilters, WebsiteEventData } from '@/lib/types'; export async function getEventDataValues( ...args: [ diff --git a/src/queries/analytics/events/getEventMetrics.ts b/src/queries/analytics/events/getEventMetrics.ts index 504cea11..d06789f4 100644 --- a/src/queries/analytics/events/getEventMetrics.ts +++ b/src/queries/analytics/events/getEventMetrics.ts @@ -1,8 +1,8 @@ -import clickhouse from 'lib/clickhouse'; -import { EVENT_TYPE } from 'lib/constants'; -import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db'; -import prisma from 'lib/prisma'; -import { QueryFilters, WebsiteEventMetric } from 'lib/types'; +import clickhouse from '@/lib/clickhouse'; +import { EVENT_TYPE } from '@/lib/constants'; +import { CLICKHOUSE, PRISMA, runQuery } from '@/lib/db'; +import prisma from '@/lib/prisma'; +import { QueryFilters, WebsiteEventMetric } from '@/lib/types'; export async function getEventMetrics( ...args: [websiteId: string, filters: QueryFilters] diff --git a/src/queries/analytics/events/getEventUsage.ts b/src/queries/analytics/events/getEventUsage.ts index 8baefe06..0e1806d6 100644 --- a/src/queries/analytics/events/getEventUsage.ts +++ b/src/queries/analytics/events/getEventUsage.ts @@ -1,5 +1,5 @@ -import clickhouse from 'lib/clickhouse'; -import { CLICKHOUSE, PRISMA, runQuery, notImplemented } from 'lib/db'; +import clickhouse from '@/lib/clickhouse'; +import { CLICKHOUSE, PRISMA, runQuery, notImplemented } from '@/lib/db'; export function getEventUsage(...args: [websiteIds: string[], startDate: Date, endDate: Date]) { return runQuery({ diff --git a/src/queries/analytics/events/getWebsiteEvents.ts b/src/queries/analytics/events/getWebsiteEvents.ts index 21e6270c..5559d5bd 100644 --- a/src/queries/analytics/events/getWebsiteEvents.ts +++ b/src/queries/analytics/events/getWebsiteEvents.ts @@ -1,7 +1,7 @@ -import clickhouse from 'lib/clickhouse'; -import { CLICKHOUSE, getDatabaseType, POSTGRESQL, PRISMA, runQuery } from 'lib/db'; -import prisma from 'lib/prisma'; -import { PageParams, QueryFilters } from 'lib/types'; +import clickhouse from '@/lib/clickhouse'; +import { CLICKHOUSE, getDatabaseType, POSTGRESQL, PRISMA, runQuery } from '@/lib/db'; +import prisma from '@/lib/prisma'; +import { PageParams, QueryFilters } from '@/lib/types'; export function getWebsiteEvents( ...args: [websiteId: string, filters: QueryFilters, pageParams?: PageParams] diff --git a/src/queries/analytics/events/saveEvent.ts b/src/queries/analytics/events/saveEvent.ts index 2424186a..65ee1175 100644 --- a/src/queries/analytics/events/saveEvent.ts +++ b/src/queries/analytics/events/saveEvent.ts @@ -1,9 +1,9 @@ -import { EVENT_NAME_LENGTH, URL_LENGTH, EVENT_TYPE, PAGE_TITLE_LENGTH } from 'lib/constants'; -import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db'; -import clickhouse from 'lib/clickhouse'; -import kafka from 'lib/kafka'; -import prisma from 'lib/prisma'; -import { uuid } from 'lib/crypto'; +import { EVENT_NAME_LENGTH, URL_LENGTH, EVENT_TYPE, PAGE_TITLE_LENGTH } from '@/lib/constants'; +import { CLICKHOUSE, PRISMA, runQuery } from '@/lib/db'; +import clickhouse from '@/lib/clickhouse'; +import kafka from '@/lib/kafka'; +import prisma from '@/lib/prisma'; +import { uuid } from '@/lib/crypto'; import { saveEventData } from './saveEventData'; export async function saveEvent(args: { diff --git a/src/queries/analytics/events/saveEventData.ts b/src/queries/analytics/events/saveEventData.ts index cb75a91b..7c158da4 100644 --- a/src/queries/analytics/events/saveEventData.ts +++ b/src/queries/analytics/events/saveEventData.ts @@ -1,12 +1,12 @@ import { Prisma } from '@prisma/client'; -import { DATA_TYPE } from 'lib/constants'; -import { uuid } from 'lib/crypto'; -import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db'; -import { flattenJSON, getStringValue } from 'lib/data'; -import clickhouse from 'lib/clickhouse'; -import kafka from 'lib/kafka'; -import prisma from 'lib/prisma'; -import { DynamicData } from 'lib/types'; +import { DATA_TYPE } from '@/lib/constants'; +import { uuid } from '@/lib/crypto'; +import { CLICKHOUSE, PRISMA, runQuery } from '@/lib/db'; +import { flattenJSON, getStringValue } from '@/lib/data'; +import clickhouse from '@/lib/clickhouse'; +import kafka from '@/lib/kafka'; +import prisma from '@/lib/prisma'; +import { DynamicData } from '@/lib/types'; export async function saveEventData(data: { websiteId: string; diff --git a/src/queries/analytics/getActiveVisitors.ts b/src/queries/analytics/getActiveVisitors.ts index d5607e27..e0225f3a 100644 --- a/src/queries/analytics/getActiveVisitors.ts +++ b/src/queries/analytics/getActiveVisitors.ts @@ -1,7 +1,7 @@ import { subMinutes } from 'date-fns'; -import prisma from 'lib/prisma'; -import clickhouse from 'lib/clickhouse'; -import { runQuery, CLICKHOUSE, PRISMA } from 'lib/db'; +import prisma from '@/lib/prisma'; +import clickhouse from '@/lib/clickhouse'; +import { runQuery, CLICKHOUSE, PRISMA } from '@/lib/db'; export async function getActiveVisitors(...args: [websiteId: string]) { return runQuery({ diff --git a/src/queries/analytics/getRealtimeActivity.ts b/src/queries/analytics/getRealtimeActivity.ts index e30ce78f..10828885 100644 --- a/src/queries/analytics/getRealtimeActivity.ts +++ b/src/queries/analytics/getRealtimeActivity.ts @@ -1,7 +1,7 @@ -import prisma from 'lib/prisma'; -import clickhouse from 'lib/clickhouse'; -import { runQuery, CLICKHOUSE, PRISMA } from 'lib/db'; -import { QueryFilters } from 'lib/types'; +import prisma from '@/lib/prisma'; +import clickhouse from '@/lib/clickhouse'; +import { runQuery, CLICKHOUSE, PRISMA } from '@/lib/db'; +import { QueryFilters } from '@/lib/types'; export async function getRealtimeActivity(...args: [websiteId: string, filters: QueryFilters]) { return runQuery({ diff --git a/src/queries/analytics/getRealtimeData.ts b/src/queries/analytics/getRealtimeData.ts index 1af63219..e07dfc31 100644 --- a/src/queries/analytics/getRealtimeData.ts +++ b/src/queries/analytics/getRealtimeData.ts @@ -1,4 +1,4 @@ -import { getPageviewStats, getRealtimeActivity, getSessionStats } from 'queries/index'; +import { getPageviewStats, getRealtimeActivity, getSessionStats } from '@/queries/index'; function increment(data: object, key: string) { if (key) { diff --git a/src/queries/analytics/getValues.ts b/src/queries/analytics/getValues.ts index f98cca3a..2d1286f3 100644 --- a/src/queries/analytics/getValues.ts +++ b/src/queries/analytics/getValues.ts @@ -1,6 +1,6 @@ -import prisma from 'lib/prisma'; -import clickhouse from 'lib/clickhouse'; -import { runQuery, CLICKHOUSE, PRISMA } from 'lib/db'; +import prisma from '@/lib/prisma'; +import clickhouse from '@/lib/clickhouse'; +import { runQuery, CLICKHOUSE, PRISMA } from '@/lib/db'; export async function getValues( ...args: [websiteId: string, column: string, startDate: Date, endDate: Date, search: string] diff --git a/src/queries/analytics/getWebsiteDateRange.ts b/src/queries/analytics/getWebsiteDateRange.ts index ef07712e..953fa5eb 100644 --- a/src/queries/analytics/getWebsiteDateRange.ts +++ b/src/queries/analytics/getWebsiteDateRange.ts @@ -1,7 +1,7 @@ -import prisma from 'lib/prisma'; -import clickhouse from 'lib/clickhouse'; -import { runQuery, CLICKHOUSE, PRISMA } from 'lib/db'; -import { DEFAULT_RESET_DATE } from 'lib/constants'; +import prisma from '@/lib/prisma'; +import clickhouse from '@/lib/clickhouse'; +import { runQuery, CLICKHOUSE, PRISMA } from '@/lib/db'; +import { DEFAULT_RESET_DATE } from '@/lib/constants'; export async function getWebsiteDateRange(...args: [websiteId: string]) { return runQuery({ diff --git a/src/queries/analytics/getWebsiteStats.ts b/src/queries/analytics/getWebsiteStats.ts index 061d487e..80f1d578 100644 --- a/src/queries/analytics/getWebsiteStats.ts +++ b/src/queries/analytics/getWebsiteStats.ts @@ -1,9 +1,9 @@ -import clickhouse from 'lib/clickhouse'; -import { EVENT_TYPE } from 'lib/constants'; -import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db'; -import prisma from 'lib/prisma'; -import { QueryFilters } from 'lib/types'; -import { EVENT_COLUMNS } from 'lib/constants'; +import clickhouse from '@/lib/clickhouse'; +import { EVENT_TYPE } from '@/lib/constants'; +import { CLICKHOUSE, PRISMA, runQuery } from '@/lib/db'; +import prisma from '@/lib/prisma'; +import { QueryFilters } from '@/lib/types'; +import { EVENT_COLUMNS } from '@/lib/constants'; export async function getWebsiteStats( ...args: [websiteId: string, filters: QueryFilters] diff --git a/src/queries/analytics/pageviews/getPageviewMetrics.ts b/src/queries/analytics/pageviews/getPageviewMetrics.ts index b356708e..f6041929 100644 --- a/src/queries/analytics/pageviews/getPageviewMetrics.ts +++ b/src/queries/analytics/pageviews/getPageviewMetrics.ts @@ -1,8 +1,8 @@ -import clickhouse from 'lib/clickhouse'; -import { EVENT_COLUMNS, EVENT_TYPE, FILTER_COLUMNS, SESSION_COLUMNS } from 'lib/constants'; -import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db'; -import prisma from 'lib/prisma'; -import { QueryFilters } from 'lib/types'; +import clickhouse from '@/lib/clickhouse'; +import { EVENT_COLUMNS, EVENT_TYPE, FILTER_COLUMNS, SESSION_COLUMNS } from '@/lib/constants'; +import { CLICKHOUSE, PRISMA, runQuery } from '@/lib/db'; +import prisma from '@/lib/prisma'; +import { QueryFilters } from '@/lib/types'; export async function getPageviewMetrics( ...args: [ diff --git a/src/queries/analytics/pageviews/getPageviewStats.ts b/src/queries/analytics/pageviews/getPageviewStats.ts index 48b82000..f5ace52c 100644 --- a/src/queries/analytics/pageviews/getPageviewStats.ts +++ b/src/queries/analytics/pageviews/getPageviewStats.ts @@ -1,8 +1,8 @@ -import clickhouse from 'lib/clickhouse'; -import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db'; -import prisma from 'lib/prisma'; -import { EVENT_COLUMNS, EVENT_TYPE } from 'lib/constants'; -import { QueryFilters } from 'lib/types'; +import clickhouse from '@/lib/clickhouse'; +import { CLICKHOUSE, PRISMA, runQuery } from '@/lib/db'; +import prisma from '@/lib/prisma'; +import { EVENT_COLUMNS, EVENT_TYPE } from '@/lib/constants'; +import { QueryFilters } from '@/lib/types'; export async function getPageviewStats(...args: [websiteId: string, filters: QueryFilters]) { return runQuery({ diff --git a/src/queries/analytics/reports/getFunnel.ts b/src/queries/analytics/reports/getFunnel.ts index 3a81157f..70b51a9d 100644 --- a/src/queries/analytics/reports/getFunnel.ts +++ b/src/queries/analytics/reports/getFunnel.ts @@ -1,6 +1,6 @@ -import clickhouse from 'lib/clickhouse'; -import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db'; -import prisma from 'lib/prisma'; +import clickhouse from '@/lib/clickhouse'; +import { CLICKHOUSE, PRISMA, runQuery } from '@/lib/db'; +import prisma from '@/lib/prisma'; const formatResults = (steps: { type: string; value: string }[]) => (results: unknown) => { return steps.map((step: { type: string; value: string }, i: number) => { diff --git a/src/queries/analytics/reports/getGoals.ts b/src/queries/analytics/reports/getGoals.ts index 2bb29d8e..eda76050 100644 --- a/src/queries/analytics/reports/getGoals.ts +++ b/src/queries/analytics/reports/getGoals.ts @@ -1,6 +1,6 @@ -import clickhouse from 'lib/clickhouse'; -import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db'; -import prisma from 'lib/prisma'; +import clickhouse from '@/lib/clickhouse'; +import { CLICKHOUSE, PRISMA, runQuery } from '@/lib/db'; +import prisma from '@/lib/prisma'; export async function getGoals( ...args: [ diff --git a/src/queries/analytics/reports/getInsights.ts b/src/queries/analytics/reports/getInsights.ts index 8e6e3289..7178072e 100644 --- a/src/queries/analytics/reports/getInsights.ts +++ b/src/queries/analytics/reports/getInsights.ts @@ -1,8 +1,8 @@ -import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db'; -import prisma from 'lib/prisma'; -import clickhouse from 'lib/clickhouse'; -import { EVENT_TYPE, FILTER_COLUMNS, SESSION_COLUMNS } from 'lib/constants'; -import { QueryFilters } from 'lib/types'; +import { CLICKHOUSE, PRISMA, runQuery } from '@/lib/db'; +import prisma from '@/lib/prisma'; +import clickhouse from '@/lib/clickhouse'; +import { EVENT_TYPE, FILTER_COLUMNS, SESSION_COLUMNS } from '@/lib/constants'; +import { QueryFilters } from '@/lib/types'; export async function getInsights( ...args: [websiteId: string, fields: { name: string; type?: string }[], filters: QueryFilters] diff --git a/src/queries/analytics/reports/getJourney.ts b/src/queries/analytics/reports/getJourney.ts index eec500aa..4c43cc03 100644 --- a/src/queries/analytics/reports/getJourney.ts +++ b/src/queries/analytics/reports/getJourney.ts @@ -1,6 +1,6 @@ -import clickhouse from 'lib/clickhouse'; -import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db'; -import prisma from 'lib/prisma'; +import clickhouse from '@/lib/clickhouse'; +import { CLICKHOUSE, PRISMA, runQuery } from '@/lib/db'; +import prisma from '@/lib/prisma'; interface JourneyResult { e1: string; diff --git a/src/queries/analytics/reports/getRetention.ts b/src/queries/analytics/reports/getRetention.ts index d69a77d7..23854b60 100644 --- a/src/queries/analytics/reports/getRetention.ts +++ b/src/queries/analytics/reports/getRetention.ts @@ -1,6 +1,6 @@ -import clickhouse from 'lib/clickhouse'; -import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db'; -import prisma from 'lib/prisma'; +import clickhouse from '@/lib/clickhouse'; +import { CLICKHOUSE, PRISMA, runQuery } from '@/lib/db'; +import prisma from '@/lib/prisma'; export async function getRetention( ...args: [ diff --git a/src/queries/analytics/reports/getRevenue.ts b/src/queries/analytics/reports/getRevenue.ts index a2803e85..c9c7b74a 100644 --- a/src/queries/analytics/reports/getRevenue.ts +++ b/src/queries/analytics/reports/getRevenue.ts @@ -1,6 +1,6 @@ -import clickhouse from 'lib/clickhouse'; -import { CLICKHOUSE, getDatabaseType, POSTGRESQL, PRISMA, runQuery } from 'lib/db'; -import prisma from 'lib/prisma'; +import clickhouse from '@/lib/clickhouse'; +import { CLICKHOUSE, getDatabaseType, POSTGRESQL, PRISMA, runQuery } from '@/lib/db'; +import prisma from '@/lib/prisma'; export async function getRevenue( ...args: [ diff --git a/src/queries/analytics/reports/getRevenueValues.ts b/src/queries/analytics/reports/getRevenueValues.ts index 4dcc4a22..a46bf0bf 100644 --- a/src/queries/analytics/reports/getRevenueValues.ts +++ b/src/queries/analytics/reports/getRevenueValues.ts @@ -1,6 +1,6 @@ -import prisma from 'lib/prisma'; -import clickhouse from 'lib/clickhouse'; -import { runQuery, CLICKHOUSE, PRISMA, getDatabaseType, POSTGRESQL } from 'lib/db'; +import prisma from '@/lib/prisma'; +import clickhouse from '@/lib/clickhouse'; +import { runQuery, CLICKHOUSE, PRISMA, getDatabaseType, POSTGRESQL } from '@/lib/db'; export async function getRevenueValues( ...args: [ diff --git a/src/queries/analytics/reports/getUTM.ts b/src/queries/analytics/reports/getUTM.ts index 0a7ec5f1..5463815b 100644 --- a/src/queries/analytics/reports/getUTM.ts +++ b/src/queries/analytics/reports/getUTM.ts @@ -1,6 +1,6 @@ -import clickhouse from 'lib/clickhouse'; -import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db'; -import prisma from 'lib/prisma'; +import clickhouse from '@/lib/clickhouse'; +import { CLICKHOUSE, PRISMA, runQuery } from '@/lib/db'; +import prisma from '@/lib/prisma'; export async function getUTM( ...args: [ diff --git a/src/queries/analytics/sessions/createSession.ts b/src/queries/analytics/sessions/createSession.ts index 7d614499..7605cffc 100644 --- a/src/queries/analytics/sessions/createSession.ts +++ b/src/queries/analytics/sessions/createSession.ts @@ -1,5 +1,5 @@ import { Prisma } from '@prisma/client'; -import prisma from 'lib/prisma'; +import prisma from '@/lib/prisma'; export async function createSession(data: Prisma.SessionCreateInput) { const { diff --git a/src/queries/analytics/sessions/getSessionActivity.ts b/src/queries/analytics/sessions/getSessionActivity.ts index 1fe8bbd3..d7e2a413 100644 --- a/src/queries/analytics/sessions/getSessionActivity.ts +++ b/src/queries/analytics/sessions/getSessionActivity.ts @@ -1,6 +1,6 @@ -import clickhouse from 'lib/clickhouse'; -import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db'; -import prisma from 'lib/prisma'; +import clickhouse from '@/lib/clickhouse'; +import { CLICKHOUSE, PRISMA, runQuery } from '@/lib/db'; +import prisma from '@/lib/prisma'; export async function getSessionActivity( ...args: [websiteId: string, sessionId: string, startDate: Date, endDate: Date] diff --git a/src/queries/analytics/sessions/getSessionData.ts b/src/queries/analytics/sessions/getSessionData.ts index ce80b035..a3f1e113 100644 --- a/src/queries/analytics/sessions/getSessionData.ts +++ b/src/queries/analytics/sessions/getSessionData.ts @@ -1,6 +1,6 @@ -import prisma from 'lib/prisma'; -import clickhouse from 'lib/clickhouse'; -import { runQuery, PRISMA, CLICKHOUSE } from 'lib/db'; +import prisma from '@/lib/prisma'; +import clickhouse from '@/lib/clickhouse'; +import { runQuery, PRISMA, CLICKHOUSE } from '@/lib/db'; export async function getSessionData(...args: [websiteId: string, sessionId: string]) { return runQuery({ diff --git a/src/queries/analytics/sessions/getSessionDataProperties.ts b/src/queries/analytics/sessions/getSessionDataProperties.ts index 1d15ea8d..da02c97e 100644 --- a/src/queries/analytics/sessions/getSessionDataProperties.ts +++ b/src/queries/analytics/sessions/getSessionDataProperties.ts @@ -1,7 +1,7 @@ -import prisma from 'lib/prisma'; -import clickhouse from 'lib/clickhouse'; -import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db'; -import { QueryFilters, WebsiteEventData } from 'lib/types'; +import prisma from '@/lib/prisma'; +import clickhouse from '@/lib/clickhouse'; +import { CLICKHOUSE, PRISMA, runQuery } from '@/lib/db'; +import { QueryFilters, WebsiteEventData } from '@/lib/types'; export async function getSessionDataProperties( ...args: [websiteId: string, filters: QueryFilters & { propertyName?: string }] diff --git a/src/queries/analytics/sessions/getSessionDataValues.ts b/src/queries/analytics/sessions/getSessionDataValues.ts index c02e4adb..3281521a 100644 --- a/src/queries/analytics/sessions/getSessionDataValues.ts +++ b/src/queries/analytics/sessions/getSessionDataValues.ts @@ -1,7 +1,7 @@ -import prisma from 'lib/prisma'; -import clickhouse from 'lib/clickhouse'; -import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db'; -import { QueryFilters, WebsiteEventData } from 'lib/types'; +import prisma from '@/lib/prisma'; +import clickhouse from '@/lib/clickhouse'; +import { CLICKHOUSE, PRISMA, runQuery } from '@/lib/db'; +import { QueryFilters, WebsiteEventData } from '@/lib/types'; export async function getSessionDataValues( ...args: [websiteId: string, filters: QueryFilters & { propertyName?: string }] diff --git a/src/queries/analytics/sessions/getSessionMetrics.ts b/src/queries/analytics/sessions/getSessionMetrics.ts index 0e8ebedf..e3bd1bba 100644 --- a/src/queries/analytics/sessions/getSessionMetrics.ts +++ b/src/queries/analytics/sessions/getSessionMetrics.ts @@ -1,8 +1,8 @@ -import clickhouse from 'lib/clickhouse'; -import { EVENT_COLUMNS, EVENT_TYPE, FILTER_COLUMNS, SESSION_COLUMNS } from 'lib/constants'; -import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db'; -import prisma from 'lib/prisma'; -import { QueryFilters } from 'lib/types'; +import clickhouse from '@/lib/clickhouse'; +import { EVENT_COLUMNS, EVENT_TYPE, FILTER_COLUMNS, SESSION_COLUMNS } from '@/lib/constants'; +import { CLICKHOUSE, PRISMA, runQuery } from '@/lib/db'; +import prisma from '@/lib/prisma'; +import { QueryFilters } from '@/lib/types'; export async function getSessionMetrics( ...args: [ diff --git a/src/queries/analytics/sessions/getSessionStats.ts b/src/queries/analytics/sessions/getSessionStats.ts index 212f15e9..22cc04a7 100644 --- a/src/queries/analytics/sessions/getSessionStats.ts +++ b/src/queries/analytics/sessions/getSessionStats.ts @@ -1,8 +1,8 @@ -import clickhouse from 'lib/clickhouse'; -import { EVENT_COLUMNS, EVENT_TYPE } from 'lib/constants'; -import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db'; -import prisma from 'lib/prisma'; -import { QueryFilters } from 'lib/types'; +import clickhouse from '@/lib/clickhouse'; +import { EVENT_COLUMNS, EVENT_TYPE } from '@/lib/constants'; +import { CLICKHOUSE, PRISMA, runQuery } from '@/lib/db'; +import prisma from '@/lib/prisma'; +import { QueryFilters } from '@/lib/types'; export async function getSessionStats(...args: [websiteId: string, filters: QueryFilters]) { return runQuery({ diff --git a/src/queries/analytics/sessions/getWebsiteSession.ts b/src/queries/analytics/sessions/getWebsiteSession.ts index 2c16741e..45e8640a 100644 --- a/src/queries/analytics/sessions/getWebsiteSession.ts +++ b/src/queries/analytics/sessions/getWebsiteSession.ts @@ -1,6 +1,6 @@ -import prisma from 'lib/prisma'; -import clickhouse from 'lib/clickhouse'; -import { runQuery, PRISMA, CLICKHOUSE } from 'lib/db'; +import prisma from '@/lib/prisma'; +import clickhouse from '@/lib/clickhouse'; +import { runQuery, PRISMA, CLICKHOUSE } from '@/lib/db'; export async function getWebsiteSession(...args: [websiteId: string, sessionId: string]) { return runQuery({ diff --git a/src/queries/analytics/sessions/getWebsiteSessionStats.ts b/src/queries/analytics/sessions/getWebsiteSessionStats.ts index 648be140..2463b7ad 100644 --- a/src/queries/analytics/sessions/getWebsiteSessionStats.ts +++ b/src/queries/analytics/sessions/getWebsiteSessionStats.ts @@ -1,7 +1,7 @@ -import clickhouse from 'lib/clickhouse'; -import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db'; -import prisma from 'lib/prisma'; -import { QueryFilters } from 'lib/types'; +import clickhouse from '@/lib/clickhouse'; +import { CLICKHOUSE, PRISMA, runQuery } from '@/lib/db'; +import prisma from '@/lib/prisma'; +import { QueryFilters } from '@/lib/types'; export async function getWebsiteSessionStats( ...args: [websiteId: string, filters: QueryFilters] diff --git a/src/queries/analytics/sessions/getWebsiteSessions.ts b/src/queries/analytics/sessions/getWebsiteSessions.ts index d2a827d0..264a084b 100644 --- a/src/queries/analytics/sessions/getWebsiteSessions.ts +++ b/src/queries/analytics/sessions/getWebsiteSessions.ts @@ -1,7 +1,7 @@ -import clickhouse from 'lib/clickhouse'; -import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db'; -import prisma from 'lib/prisma'; -import { PageParams, QueryFilters } from 'lib/types'; +import clickhouse from '@/lib/clickhouse'; +import { CLICKHOUSE, PRISMA, runQuery } from '@/lib/db'; +import prisma from '@/lib/prisma'; +import { PageParams, QueryFilters } from '@/lib/types'; export async function getWebsiteSessions( ...args: [websiteId: string, filters?: QueryFilters, pageParams?: PageParams] diff --git a/src/queries/analytics/sessions/getWebsiteSessionsWeekly.ts b/src/queries/analytics/sessions/getWebsiteSessionsWeekly.ts index 48d4f7a9..58f8d692 100644 --- a/src/queries/analytics/sessions/getWebsiteSessionsWeekly.ts +++ b/src/queries/analytics/sessions/getWebsiteSessionsWeekly.ts @@ -1,7 +1,7 @@ -import prisma from 'lib/prisma'; -import clickhouse from 'lib/clickhouse'; -import { runQuery, PRISMA, CLICKHOUSE } from 'lib/db'; -import { QueryFilters } from 'lib/types'; +import prisma from '@/lib/prisma'; +import clickhouse from '@/lib/clickhouse'; +import { runQuery, PRISMA, CLICKHOUSE } from '@/lib/db'; +import { QueryFilters } from '@/lib/types'; export async function getWebsiteSessionsWeekly( ...args: [websiteId: string, filters?: QueryFilters] diff --git a/src/queries/analytics/sessions/saveSessionData.ts b/src/queries/analytics/sessions/saveSessionData.ts index 64bd1d93..35f0c712 100644 --- a/src/queries/analytics/sessions/saveSessionData.ts +++ b/src/queries/analytics/sessions/saveSessionData.ts @@ -1,11 +1,11 @@ -import { DATA_TYPE } from 'lib/constants'; -import { uuid } from 'lib/crypto'; -import { flattenJSON, getStringValue } from 'lib/data'; -import prisma from 'lib/prisma'; -import { DynamicData } from 'lib/types'; -import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db'; -import kafka from 'lib/kafka'; -import clickhouse from 'lib/clickhouse'; +import { DATA_TYPE } from '@/lib/constants'; +import { uuid } from '@/lib/crypto'; +import { flattenJSON, getStringValue } from '@/lib/data'; +import prisma from '@/lib/prisma'; +import { DynamicData } from '@/lib/types'; +import { CLICKHOUSE, PRISMA, runQuery } from '@/lib/db'; +import kafka from '@/lib/kafka'; +import clickhouse from '@/lib/clickhouse'; export async function saveSessionData(data: { websiteId: string; diff --git a/src/queries/index.ts b/src/queries/index.ts index 63cebb45..da984932 100644 --- a/src/queries/index.ts +++ b/src/queries/index.ts @@ -1,8 +1,8 @@ -export * from 'queries/prisma/report'; -export * from 'queries/prisma/team'; -export * from 'queries/prisma/teamUser'; -export * from 'queries/prisma/user'; -export * from 'queries/prisma/website'; +export * from '@/queries/prisma/report'; +export * from '@/queries/prisma/team'; +export * from '@/queries/prisma/teamUser'; +export * from '@/queries/prisma/user'; +export * from '@/queries/prisma/website'; export * from './analytics/events/getEventDataEvents'; export * from './analytics/events/getEventDataFields'; export * from './analytics/events/getEventDataProperties'; diff --git a/src/queries/prisma/report.ts b/src/queries/prisma/report.ts index 51e7ddc2..4feb9fb8 100644 --- a/src/queries/prisma/report.ts +++ b/src/queries/prisma/report.ts @@ -1,6 +1,6 @@ import { Prisma, Report } from '@prisma/client'; -import prisma from 'lib/prisma'; -import { PageResult, PageParams } from 'lib/types'; +import prisma from '@/lib/prisma'; +import { PageResult, PageParams } from '@/lib/types'; import ReportFindManyArgs = Prisma.ReportFindManyArgs; async function findReport(criteria: Prisma.ReportFindUniqueArgs): Promise { diff --git a/src/queries/prisma/team.ts b/src/queries/prisma/team.ts index e516c446..4fddd76a 100644 --- a/src/queries/prisma/team.ts +++ b/src/queries/prisma/team.ts @@ -1,8 +1,8 @@ import { Prisma, Team } from '@prisma/client'; -import { ROLES } from 'lib/constants'; -import { uuid } from 'lib/crypto'; -import prisma from 'lib/prisma'; -import { PageResult, PageParams } from 'lib/types'; +import { ROLES } from '@/lib/constants'; +import { uuid } from '@/lib/crypto'; +import prisma from '@/lib/prisma'; +import { PageResult, PageParams } from '@/lib/types'; import TeamFindManyArgs = Prisma.TeamFindManyArgs; export async function findTeam(criteria: Prisma.TeamFindUniqueArgs): Promise { diff --git a/src/queries/prisma/teamUser.ts b/src/queries/prisma/teamUser.ts index d172dd5a..0695f01c 100644 --- a/src/queries/prisma/teamUser.ts +++ b/src/queries/prisma/teamUser.ts @@ -1,7 +1,7 @@ import { Prisma, TeamUser } from '@prisma/client'; -import { uuid } from 'lib/crypto'; -import prisma from 'lib/prisma'; -import { PageResult, PageParams } from 'lib/types'; +import { uuid } from '@/lib/crypto'; +import prisma from '@/lib/prisma'; +import { PageResult, PageParams } from '@/lib/types'; import TeamUserFindManyArgs = Prisma.TeamUserFindManyArgs; export async function findTeamUser(criteria: Prisma.TeamUserFindUniqueArgs): Promise { diff --git a/src/queries/prisma/user.ts b/src/queries/prisma/user.ts index 581b5e7a..3edae700 100644 --- a/src/queries/prisma/user.ts +++ b/src/queries/prisma/user.ts @@ -1,8 +1,8 @@ import { Prisma } from '@prisma/client'; -import { ROLES } from 'lib/constants'; -import prisma from 'lib/prisma'; -import { PageResult, Role, User, PageParams } from 'lib/types'; -import { getRandomChars } from 'lib/crypto'; +import { ROLES } from '@/lib/constants'; +import prisma from '@/lib/prisma'; +import { PageResult, Role, User, PageParams } from '@/lib/types'; +import { getRandomChars } from '@/lib/crypto'; import UserFindManyArgs = Prisma.UserFindManyArgs; export interface GetUserOptions { diff --git a/src/queries/prisma/website.ts b/src/queries/prisma/website.ts index 1477a835..96463501 100644 --- a/src/queries/prisma/website.ts +++ b/src/queries/prisma/website.ts @@ -1,9 +1,9 @@ import { Prisma, Website } from '@prisma/client'; import { getClient } from '@umami/redis-client'; -import prisma from 'lib/prisma'; -import { PageResult, PageParams } from 'lib/types'; +import prisma from '@/lib/prisma'; +import { PageResult, PageParams } from '@/lib/types'; import WebsiteFindManyArgs = Prisma.WebsiteFindManyArgs; -import { ROLES } from 'lib/constants'; +import { ROLES } from '@/lib/constants'; async function findWebsite(criteria: Prisma.WebsiteFindUniqueArgs): Promise { return prisma.client.website.findUnique(criteria); diff --git a/src/store/app.ts b/src/store/app.ts index 626c2f31..0890b7e9 100644 --- a/src/store/app.ts +++ b/src/store/app.ts @@ -7,9 +7,9 @@ import { LOCALE_CONFIG, THEME_CONFIG, TIMEZONE_CONFIG, -} from 'lib/constants'; -import { getItem } from 'lib/storage'; -import { getTimezone } from 'lib/date'; +} from '@/lib/constants'; +import { getItem } from '@/lib/storage'; +import { getTimezone } from '@/lib/date'; function getDefaultTheme() { return typeof window !== 'undefined' diff --git a/src/store/dashboard.ts b/src/store/dashboard.ts index ecae42f6..a34ec384 100644 --- a/src/store/dashboard.ts +++ b/src/store/dashboard.ts @@ -1,6 +1,6 @@ import { create } from 'zustand'; -import { DASHBOARD_CONFIG, DEFAULT_WEBSITE_LIMIT } from 'lib/constants'; -import { getItem, setItem } from 'lib/storage'; +import { DASHBOARD_CONFIG, DEFAULT_WEBSITE_LIMIT } from '@/lib/constants'; +import { getItem, setItem } from '@/lib/storage'; export const initialState = { showCharts: true, diff --git a/src/store/version.ts b/src/store/version.ts index 8cabaf73..9a889636 100644 --- a/src/store/version.ts +++ b/src/store/version.ts @@ -1,8 +1,8 @@ import { create } from 'zustand'; import { produce } from 'immer'; import semver from 'semver'; -import { CURRENT_VERSION, VERSION_CHECK, UPDATES_URL } from 'lib/constants'; -import { getItem } from 'lib/storage'; +import { CURRENT_VERSION, VERSION_CHECK, UPDATES_URL } from '@/lib/constants'; +import { getItem } from '@/lib/storage'; const initialState = { current: CURRENT_VERSION, diff --git a/src/store/websites.ts b/src/store/websites.ts index 1c5c21fc..e9271abd 100644 --- a/src/store/websites.ts +++ b/src/store/websites.ts @@ -1,6 +1,6 @@ import { create } from 'zustand'; import { produce } from 'immer'; -import { DateRange } from 'lib/types'; +import { DateRange } from '@/lib/types'; const store = create(() => ({})); diff --git a/tsconfig.json b/tsconfig.json index 82e7166f..4b8e0e0f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "es2021", + "target": "es2022", "outDir": "./build", "module": "esnext", "moduleResolution": "node", @@ -21,18 +21,12 @@ "noEmit": true, "jsx": "preserve", "incremental": false, - "baseUrl": "./src", "types": ["jest"], "typeRoots": ["node_modules/@types"], "paths": { - "react": ["./node_modules/@types/react"], - "assets/*": ["./assets/*"], - "components/*": ["./components/*"], - "lib/*": ["./lib/*"], - "pages/*": ["./pages/*"], - "queries/*": ["./queries/*"], - "store/*": ["./store/*"], - "styles/*": ["./styles/*"] + "@/*": [ + "./src/*" + ] }, "plugins": [ {