From 234471dfdf9ec89233c66fd169f1339e22df98b7 Mon Sep 17 00:00:00 2001 From: Innei Date: Wed, 18 Sep 2024 20:54:48 +0800 Subject: [PATCH] refactor: move to monorepo (#475) * init * fix: electron Signed-off-by: Innei * update Signed-off-by: Innei * fix: build Signed-off-by: Innei * fix: lint Signed-off-by: Innei * fix: test Signed-off-by: Innei --------- Signed-off-by: Innei --- .prettierignore | 2 +- apps/main/export.ts | 3 + apps/main/global.d.ts | 2 + apps/main/package.json | 68 + {src => apps/main}/preload/index.d.ts | 0 {src => apps/main}/preload/index.ts | 0 .../main/src}/@types/constants.ts | 0 .../main}/src/@types/default-resource.ts | 0 apps/main/src/@types/i18next.d.ts | 13 + .../main/src}/@types/resources.ts | 0 {src/main => apps/main/src}/constants/app.ts | 0 {src/main => apps/main/src}/env.ts | 0 {src/main => apps/main/src}/helper.ts | 0 {src/main => apps/main/src}/index.ts | 9 +- {src/main => apps/main/src}/init.ts | 2 +- {src/main => apps/main/src}/lib/api-client.ts | 5 +- {src/main => apps/main/src}/lib/dock.ts | 0 {src/main => apps/main/src}/lib/download.ts | 0 {src/main => apps/main/src}/lib/i18n.ts | 5 +- {src/main => apps/main/src}/lib/posthog.ts | 2 +- .../main => apps/main/src}/lib/readability.ts | 0 {src/main => apps/main/src}/lib/store.ts | 8 +- {src/main => apps/main/src}/lib/user.ts | 0 {src/main => apps/main/src}/lib/utils.ts | 0 {src/main => apps/main/src}/logger.ts | 0 {src/main => apps/main/src}/menu.ts | 2 +- .../main/src}/renderer-handlers.ts | 0 {src/main => apps/main/src}/sentry.ts | 0 {src/main => apps/main/src}/tipc/_instance.ts | 0 {src/main => apps/main/src}/tipc/app.ts | 5 +- {src/main => apps/main/src}/tipc/debug.ts | 0 {src/main => apps/main/src}/tipc/dock.ts | 0 {src/main => apps/main/src}/tipc/index.ts | 0 {src/main => apps/main/src}/tipc/menu.ts | 0 {src/main => apps/main/src}/tipc/reader.ts | 0 {src/main => apps/main/src}/tipc/setting.ts | 0 {src/main => apps/main/src}/tipc/tracker.ts | 4 +- .../src}/updater/custom-github-provider.ts | 0 {src/main => apps/main/src}/updater/index.ts | 0 {src/main => apps/main/src}/window.ts | 4 +- apps/main/tsconfig.json | 17 + apps/main/tsup.config.ts | 12 + {src => apps}/renderer/__debug_proxy.html | 0 apps/renderer/global.d.ts | 12 + {src => apps}/renderer/index.html | 0 apps/renderer/package.json | 128 ++ {src => apps}/renderer/public/favicon-dev.ico | Bin {src => apps}/renderer/public/favicon.ico | Bin .../renderer/public/icon-192x192.png | Bin .../renderer/public/icon-512x512.png | Bin {src => apps}/renderer/public/icon.svg | 0 {src => apps}/renderer/public/manifest.json | 0 .../renderer/public/opengraph-image.png | Bin setup-file.ts => apps/renderer/setup-file.ts | 0 .../renderer/src/@types/constants.ts | 0 apps/renderer/src/@types/default-resource.ts | 56 + .../renderer/src}/@types/i18next.d.ts | 2 +- {src => apps}/renderer/src/App.tsx | 2 +- {src => apps}/renderer/src/atoms/app.ts | 0 .../renderer/src/atoms/corner-player.ts | 0 {src => apps}/renderer/src/atoms/dom.ts | 0 .../renderer/src/atoms/hooks/viewport.ts | 0 {src => apps}/renderer/src/atoms/lang.ts | 0 {src => apps}/renderer/src/atoms/network.ts | 0 {src => apps}/renderer/src/atoms/player.ts | 0 .../renderer/src/atoms/readability.ts | 0 {src => apps}/renderer/src/atoms/route.ts | 0 .../renderer/src/atoms/settings/general.ts | 2 +- .../renderer/src/atoms/settings/helper.ts | 0 .../src/atoms/settings/integration.ts | 2 +- .../renderer/src/atoms/settings/ui.ts | 2 +- {src => apps}/renderer/src/atoms/sidebar.ts | 0 {src => apps}/renderer/src/atoms/updater.ts | 0 {src => apps}/renderer/src/atoms/user.ts | 0 {src => apps}/renderer/src/atoms/viewport.ts | 0 .../renderer/src/components/Versions.tsx | 0 .../components/common/AppErrorBoundary.tsx | 0 .../src/components/common/ErrorElement.tsx | 0 .../src/components/common/ExPromise.tsx | 0 .../src/components/common/Fragment.tsx | 0 .../components/common/ImpressionTracker.tsx | 0 .../components/common/LoadMoreIndicator.tsx | 0 .../common/LoadRemixAsyncComponent.tsx | 0 .../renderer/src/components/common/Motion.tsx | 0 .../src/components/common/NotFound.tsx | 0 .../src/components/common/PoweredByFooter.tsx | 0 .../components/common/ProviderComposer.tsx | 0 .../src/components/common/ShadowDOM.tsx | 0 .../FeedFoundCanBeFollowErrorFallback.tsx | 0 .../src/components/errors/FeedNotFound.tsx | 0 .../src/components/errors/ModalError.tsx | 0 .../src/components/errors/PageError.tsx | 0 .../renderer/src/components/errors/enum.ts | 0 .../renderer/src/components/errors/helper.ts | 0 .../renderer/src/components/errors/index.ts | 0 .../src/components/feed-certification.tsx | 0 .../renderer/src/components/feed-icon.tsx | 0 .../renderer/src/components/feed-summary.tsx | 0 .../renderer/src/components/header.tsx | 0 .../src/components/icons/Language.tsx | 0 .../components/icons/OouiUserAnonymous.tsx | 0 .../src/components/icons/PhCloudCheck.tsx | 0 .../src/components/icons/PhCloudWarning.tsx | 0 .../src/components/icons/PhCloudX.tsx | 0 .../renderer/src/components/icons/empty.tsx | 0 .../renderer/src/components/icons/follow.tsx | 0 .../renderer/src/components/icons/logo.tsx | 0 .../renderer/src/components/icons/user.tsx | 0 .../renderer/src/components/site-icon.tsx | 0 .../ui/auto-completion/AutoCompletion.tsx | 0 .../components/ui/auto-completion/index.ts | 0 .../src/components/ui/auto-resize-height.tsx | 0 .../renderer/src/components/ui/avatar.tsx | 0 .../ui/background/WindowUnderBlur.tsx | 2 +- .../src/components/ui/background/index.ts | 0 .../src/components/ui/button/index.tsx | 0 .../src/components/ui/button/variants.tsx | 0 .../renderer/src/components/ui/card.tsx | 0 .../renderer/src/components/ui/checkbox.tsx | 0 .../ui/code-highlighter/constants/index.tsx | 0 .../ui/code-highlighter/copy-button.tsx | 0 .../components/ui/code-highlighter/index.ts | 0 .../ui/code-highlighter/shiki/Shiki.tsx | 0 .../ui/code-highlighter/shiki/hooks.ts | 0 .../ui/code-highlighter/shiki/index.ts | 0 .../ui/code-highlighter/shiki/shared.ts | 0 .../code-highlighter/shiki/shiki.module.css | 0 .../src/components/ui/collapse/Collapse.tsx | 0 .../src/components/ui/collapse/hooks.tsx | 0 .../src/components/ui/collapse/index.ts | 0 .../src/components/ui/constants/spring.ts | 0 .../ui/context-menu/context-menu.tsx | 0 .../src/components/ui/context-menu/index.ts | 0 .../src/components/ui/datetime/index.tsx | 0 .../src/components/ui/divider/Divider.tsx | 0 .../components/ui/divider/PanelSpliter.tsx | 0 .../src/components/ui/divider/index.ts | 0 .../ui/dropdown-menu/dropdown-menu.tsx | 0 .../src/components/ui/fab/FABContainer.tsx | 0 .../renderer/src/components/ui/fab/index.ts | 0 .../renderer/src/components/ui/form.tsx | 0 .../src/components/ui/input/Input.tsx | 0 .../src/components/ui/input/TextArea.tsx | 0 .../renderer/src/components/ui/input/index.ts | 0 .../renderer/src/components/ui/kbd/Kbd.tsx | 0 .../renderer/src/components/ui/label.tsx | 0 .../renderer/src/components/ui/link/index.tsx | 0 .../components/ui/list-item-hover-overlay.tsx | 0 .../renderer/src/components/ui/loading.tsx | 0 .../src/components/ui/markdown/Markdown.tsx | 0 .../ui/markdown/components/TimeStamp.tsx | 0 .../components/ui/markdown/components/Toc.tsx | 0 .../ui/markdown/components/TocItem.tsx | 0 .../src/components/ui/markdown/context.tsx | 0 .../src/components/ui/markdown/index.ts | 0 .../markdown/renderers/BlockErrorBoundary.tsx | 0 .../ui/markdown/renderers/BlockImage.tsx | 0 .../ui/markdown/renderers/Heading.tsx | 0 .../ui/markdown/renderers/MarkdownLink.tsx | 0 .../ui/markdown/renderers/MarkdownP.tsx | 0 .../components/ui/markdown/renderers/index.ts | 0 .../components/ui/markdown/utils/index.tsx | 0 .../src/components/ui/marquee/index.tsx | 0 .../renderer/src/components/ui/media.tsx | 0 .../src/components/ui/media/SwipeMedia.tsx | 2 +- .../src/components/ui/media/VideoPlayer.tsx | 0 .../src/components/ui/media/VolumeSlider.tsx | 0 .../src/components/ui/media/hooks.tsx | 0 .../src/components/ui/media/index.module.css | 0 .../src/components/ui/media/preview-media.tsx | 2 +- .../renderer/src/components/ui/modal/index.ts | 0 .../components/ui/modal/inspire/PeekModal.tsx | 0 .../src/components/ui/modal/stacked/atom.ts | 0 .../components/ui/modal/stacked/constants.ts | 0 .../components/ui/modal/stacked/context.tsx | 0 .../ui/modal/stacked/declarative-modal.tsx | 0 .../components/ui/modal/stacked/helper.tsx | 0 .../src/components/ui/modal/stacked/hooks.tsx | 0 .../src/components/ui/modal/stacked/index.ts | 0 .../src/components/ui/modal/stacked/modal.tsx | 0 .../components/ui/modal/stacked/overlay.tsx | 0 .../components/ui/modal/stacked/provider.tsx | 0 .../src/components/ui/modal/stacked/types.tsx | 0 .../src/components/ui/modal/stacked/utils.ts | 0 .../src/components/ui/paper/Paper.tsx | 0 .../renderer/src/components/ui/paper/index.ts | 0 .../src/components/ui/placeholder.tsx | 0 .../ui/platform-icon/collections/eagle.tsx | 0 .../platform-icon/collections/instapaper.tsx | 0 .../ui/platform-icon/collections/readwise.tsx | 0 .../ui/platform-icon/collections/rss3.tsx | 0 .../src/components/ui/platform-icon/icons.ts | 0 .../src/components/ui/platform-icon/index.tsx | 0 .../src/components/ui/platform-icon/utils.tsx | 0 .../components/ui/popover/index.module.css | 0 .../src/components/ui/popover/index.tsx | 0 .../src/components/ui/portal/index.tsx | 0 .../src/components/ui/portal/provider.tsx | 0 .../src/components/ui/radio-group/Radio.tsx | 0 .../components/ui/radio-group/RadioCard.tsx | 0 .../components/ui/radio-group/RadioGroup.tsx | 0 .../src/components/ui/radio-group/context.ts | 0 .../src/components/ui/radio-group/index.ts | 0 .../components/ui/scroll-area/ScrollArea.tsx | 0 .../src/components/ui/scroll-area/ctx.ts | 0 .../src/components/ui/scroll-area/hooks.ts | 0 .../ui/scroll-area/index.module.css | 0 .../src/components/ui/scroll-area/index.ts | 0 .../src/components/ui/segement/ctx.tsx | 0 .../src/components/ui/segement/index.tsx | 0 .../renderer/src/components/ui/select.tsx | 0 .../renderer/src/components/ui/skeleton.tsx | 0 .../renderer/src/components/ui/sonner.tsx | 0 .../renderer/src/components/ui/switch.tsx | 0 .../src/components/ui/table/index.tsx | 0 .../src/components/ui/table/variants.tsx | 0 .../renderer/src/components/ui/tabs.tsx | 0 .../src/components/ui/tooltip/index.tsx | 0 .../src/components/ui/tooltip/styles.ts | 0 .../ui/typography/EllipsisWithTooltip.tsx | 0 .../src/components/ui/typography/index.ts | 0 .../renderer/src/components/user-button.tsx | 0 .../src/components/ux/transition/icon.tsx | 0 .../src/components/view-select-content.tsx | 0 {src => apps}/renderer/src/configs.ts | 2 +- {src => apps}/renderer/src/constants/app.tsx | 0 {src => apps}/renderer/src/constants/copy.ts | 0 .../renderer/src/constants/environment.ts | 0 .../renderer/src/constants/hotkeys.ts | 0 {src => apps}/renderer/src/constants/index.ts | 0 .../renderer/src/constants/shortcuts.ts | 0 .../renderer/src/constants/social.ts | 0 {src => apps}/renderer/src/constants/tabs.tsx | 0 {src => apps}/renderer/src/constants/ui.ts | 0 .../renderer/src/database/constants.ts | 0 {src => apps}/renderer/src/database/db.ts | 0 .../renderer/src/database/db_schema.ts | 0 apps/renderer/src/database/global.d.ts | 13 + {src => apps}/renderer/src/database/index.ts | 0 .../renderer/src/database/schemas/base.ts | 0 .../renderer/src/database/schemas/cleaner.ts | 0 .../renderer/src/database/schemas/entry.ts | 0 .../renderer/src/database/schemas/feed.ts | 0 .../renderer/src/database/schemas/index.ts | 0 .../src/database/schemas/subscription.ts | 0 apps/renderer/src/env.d.ts | 5 + .../renderer/src/framer-lazy-feature.ts | 0 apps/renderer/src/global.d.ts | 47 + .../renderer/src/hooks/biz/useAsRead.ts | 0 .../renderer/src/hooks/biz/useDailyTask.ts | 0 .../src/hooks/biz/useEntryActions.tsx | 0 .../renderer/src/hooks/biz/useFeedActions.tsx | 2 +- .../src/hooks/biz/useFeedFormModal.tsx | 2 +- .../src/hooks/biz/useNavigateEntry.ts | 0 .../renderer/src/hooks/biz/useReduceMotion.ts | 0 .../renderer/src/hooks/biz/useRouteParams.ts | 0 .../renderer/src/hooks/biz/useSignOut.ts | 0 .../src/hooks/biz/useSubscriptionActions.tsx | 0 .../common/factory/createHTMLMediaHook.ts | 0 .../renderer/src/hooks/common/index.ts | 0 .../renderer/src/hooks/common/useBizQuery.ts | 0 .../renderer/src/hooks/common/useDark.ts | 0 .../renderer/src/hooks/common/useI18n.ts | 0 .../src/hooks/common/useInputComposition.ts | 0 .../renderer/src/hooks/common/useInterval.ts | 0 .../renderer/src/hooks/common/useIsOnline.ts | 0 .../renderer/src/hooks/common/useMeasure.ts | 0 .../src/hooks/common/usePageVisibility.ts | 0 .../renderer/src/hooks/common/usePrevious.ts | 0 .../renderer/src/hooks/common/useRefValue.ts | 0 .../renderer/src/hooks/common/useSetState.ts | 0 .../src/hooks/common/useSwitchHotkeyScope.ts | 0 .../renderer/src/hooks/common/useTitle.ts | 0 .../common/useTypescriptHappyCallback.ts | 0 .../renderer/src/hooks/common/useVideo.ts | 0 {src => apps}/renderer/src/i18n.ts | 0 .../renderer/src/initialize/helper.ts | 0 .../renderer/src/initialize/hydrate.ts | 0 .../renderer/src/initialize/index.ts | 10 +- .../renderer/src/initialize/migrates/index.ts | 0 .../renderer/src/initialize/posthog.ts | 2 +- .../renderer/src/initialize/queue.ts | 0 .../renderer/src/initialize/sentry.ts | 2 +- {src => apps}/renderer/src/lib/api-fetch.ts | 4 +- {src => apps}/renderer/src/lib/auth.ts | 2 +- {src => apps}/renderer/src/lib/client.ts | 2 +- {src => apps}/renderer/src/lib/color.ts | 0 {src => apps}/renderer/src/lib/defineQuery.ts | 0 {src => apps}/renderer/src/lib/dev.tsx | 0 {src => apps}/renderer/src/lib/dom.ts | 0 {src => apps}/renderer/src/lib/enum.ts | 0 .../renderer/src/lib/error-parser.ts | 0 {src => apps}/renderer/src/lib/event-bus.ts | 0 {src => apps}/renderer/src/lib/img-proxy.ts | 4 +- {src => apps}/renderer/src/lib/issues.ts | 0 {src => apps}/renderer/src/lib/jotai.ts | 0 {src => apps}/renderer/src/lib/link-parser.ts | 0 .../renderer/src/lib/load-language.ts | 0 {src => apps}/renderer/src/lib/log.ts | 0 {src => apps}/renderer/src/lib/native-menu.ts | 0 {src => apps}/renderer/src/lib/ns.ts | 0 .../renderer/src/lib/observe-resize.ts | 0 {src => apps}/renderer/src/lib/parse-html.ts | 0 .../renderer/src/lib/parse-markdown.ts | 0 {src => apps}/renderer/src/lib/parsers.ts | 0 .../renderer/src/lib/path-parser.test.ts | 0 {src => apps}/renderer/src/lib/path-parser.ts | 0 .../renderer/src/lib/query-client.ts | 0 .../renderer/src/lib/route-builder.test.ts | 0 .../renderer/src/lib/route-builder.ts | 0 {src => apps}/renderer/src/lib/scroller.ts | 0 .../renderer/src/lib/url-to-iframe.ts | 0 {src => apps}/renderer/src/lib/utils.ts | 0 {src => apps}/renderer/src/lib/yielder.ts | 0 {src => apps}/renderer/src/main.tsx | 9 - {src => apps}/renderer/src/models/index.ts | 0 {src => apps}/renderer/src/models/types.ts | 2 +- .../ai/ai-daily/EntryPlaceholderDaily.tsx | 0 .../ai/ai-daily/FeedDailyModalContent.tsx | 0 .../src/modules/ai/ai-daily/constants.ts | 0 .../src/modules/ai/ai-daily/daily.tsx | 0 .../src/modules/ai/ai-daily/hooks.tsx | 0 .../src/modules/ai/ai-daily/types.tsx | 0 .../src/modules/app/EnvironmentIndicator.tsx | 2 +- .../modules/app/NetworkStatusIndicator.tsx | 0 .../renderer/src/modules/app/Titlebar.tsx | 0 .../src/modules/auth/LoginModalContent.tsx | 0 .../src/modules/claim/feed-claim-modal.tsx | 0 .../renderer/src/modules/claim/hooks.ts | 0 .../renderer/src/modules/claim/index.ts | 0 .../src/modules/discover/DiscoverFeedForm.tsx | 0 .../src/modules/discover/example-data.json | 0 .../src/modules/discover/feed-form.tsx | 0 .../renderer/src/modules/discover/form.tsx | 0 .../renderer/src/modules/discover/import.tsx | 0 .../discover/recommendation-content.tsx | 0 .../modules/discover/recommendations-card.tsx | 0 .../src/modules/discover/recommendations.tsx | 0 .../src/modules/discover/rss3-form.tsx | 0 .../renderer/src/modules/discover/types.ts | 0 .../src/modules/discover/user-form.tsx | 0 .../renderer/src/modules/discover/utils.ts | 0 .../EntryColumnShortcutHandler.tsx | 0 .../entry-column/Items/article-item.tsx | 0 .../modules/entry-column/Items/audio-item.tsx | 0 .../Items/contexts/picture-masonry-context.ts | 0 .../entry-column/Items/notification-item.tsx | 0 .../entry-column/Items/picture-item.tsx | 0 .../entry-column/Items/picture-masonry.tsx | 0 .../entry-column/Items/social-media-item.tsx | 0 .../modules/entry-column/Items/video-item.tsx | 0 .../entry-column/components/DateItem.tsx | 0 .../components/mark-all-button.tsx | 0 .../src/modules/entry-column/hooks.ts | 0 .../modules/entry-column/hooks/useMarkAll.ts | 0 .../src/modules/entry-column/index.tsx | 0 .../src/modules/entry-column/item.tsx | 0 .../entry-column/layouts/EntryItemWrapper.tsx | 0 .../entry-column/layouts/EntryListHeader.tsx | 0 .../src/modules/entry-column/lists.tsx | 0 .../src/modules/entry-column/star-icon.tsx | 0 .../src/modules/entry-column/styles.ts | 0 .../templates/grid-item-template.tsx | 0 .../templates/list-item-template.tsx | 2 +- .../src/modules/entry-column/translation.tsx | 0 .../src/modules/entry-column/types.ts | 0 .../src/modules/entry-content/atoms.tsx | 0 .../components/EntryPlaceholderLogo.tsx | 0 .../components/EntryReadHistory.tsx | 0 .../components/WarnGoToExternalLink.tsx | 0 .../src/modules/entry-content/header.tsx | 0 .../src/modules/entry-content/hooks.ts | 0 .../src/modules/entry-content/index.tsx | 0 .../src/modules/entry-content/loading.tsx | 0 .../src/modules/entry-content/provider.tsx | 0 .../renderer/src/modules/feed-column/atom.ts | 0 .../src/modules/feed-column/auto-updater.tsx | 0 .../feed-column/category-remove-dialog.tsx | 0 .../feed-column/category-rename-dialog.tsx | 0 .../src/modules/feed-column/category.tsx | 0 .../src/modules/feed-column/corner-player.tsx | 0 .../src/modules/feed-column/header.tsx | 0 .../src/modules/feed-column/index.tsx | 2 +- .../renderer/src/modules/feed-column/item.tsx | 2 +- .../renderer/src/modules/feed-column/list.tsx | 0 .../src/modules/feed-column/unread-number.tsx | 0 .../renderer/src/modules/modal/shortcuts.tsx | 0 .../renderer/src/modules/panel/cmdf.tsx | 2 +- .../src/modules/panel/cmdk.module.css | 0 .../renderer/src/modules/panel/cmdk.tsx | 0 .../renderer/src/modules/panel/cmdn.tsx | 2 +- .../renderer/src/modules/profile/hooks.ts | 0 .../modules/profile/profile-setting-form.tsx | 0 .../modules/profile/user-profile-modal.tsx | 2 +- .../src/modules/settings/action-card.tsx | 0 .../src/modules/settings/constants.ts | 0 .../renderer/src/modules/settings/control.tsx | 0 .../modules/settings/helper/SyncIndicator.tsx | 0 .../src/modules/settings/helper/sync-queue.ts | 2 +- .../settings/helper/withSettingEnable.tsx | 0 .../src/modules/settings/modal/content.tsx | 0 .../src/modules/settings/modal/context.tsx | 0 .../src/modules/settings/modal/hooks-hack.ts | 0 .../src/modules/settings/modal/hooks.ts | 0 .../src/modules/settings/modal/layout.tsx | 0 .../renderer/src/modules/settings/section.tsx | 0 .../src/modules/settings/sections/fonts.tsx | 0 .../src/modules/settings/setting-builder.tsx | 0 .../src/modules/settings/tabs/about.tsx | 0 .../src/modules/settings/tabs/apperance.tsx | 0 .../src/modules/settings/tabs/feeds.tsx | 2 +- .../src/modules/settings/tabs/general.tsx | 0 .../src/modules/settings/tabs/integration.tsx | 0 .../src/modules/settings/tabs/invitations.tsx | 0 .../modules/settings/tabs/wallet/index.tsx | 0 .../my-wallet-section/claim-daily-reward.tsx | 0 .../my-wallet-section/create-wallet.tsx | 0 .../tabs/wallet/my-wallet-section/index.tsx | 0 .../wallet/my-wallet-section/withdraw.tsx | 0 .../tabs/wallet/transaction-section/index.tsx | 0 .../renderer/src/modules/settings/title.tsx | 0 .../renderer/src/modules/settings/utils.ts | 0 .../renderer/src/modules/wallet/balance.tsx | 0 .../renderer/src/modules/wallet/hooks.ts | 0 .../renderer/src/modules/wallet/tip-modal.tsx | 0 .../(with-layout)/feed/[id]/index.tsx | 0 .../(with-layout)/feed/[id]/layout.tsx | 0 .../pages/(external)/(with-layout)/layout.tsx | 0 .../(with-layout)/profile/[id]/index.tsx | 0 .../(with-layout)/profile/[id]/layout.tsx | 0 .../renderer/src/pages/(external)/debug.tsx | 0 .../src/pages/(external)/invitation.tsx | 0 .../renderer/src/pages/(external)/layout.tsx | 0 .../renderer/src/pages/(external)/login.tsx | 0 .../src/pages/(external)/redirect.tsx | 2 +- .../(layer)/(subview)/discover/index.tsx | 0 .../pages/(main)/(layer)/(subview)/hooks.ts | 0 .../pages/(main)/(layer)/(subview)/layout.tsx | 0 .../feeds/[feedId]/[entryId]/index.tsx | 0 .../(main)/(layer)/feeds/[feedId]/index.tsx | 0 .../(main)/(layer)/feeds/[feedId]/layout.tsx | 0 .../renderer/src/pages/(main)/index.tsx | 0 .../renderer/src/pages/(main)/layout.tsx | 0 .../renderer/src/pages/add/index.tsx | 0 {src => apps}/renderer/src/pages/preview.tsx | 0 .../src/pages/settings/(settings)/about.tsx | 0 .../src/pages/settings/(settings)/actions.tsx | 0 .../pages/settings/(settings)/appearance.tsx | 0 .../src/pages/settings/(settings)/feeds.tsx | 0 .../src/pages/settings/(settings)/general.tsx | 0 .../pages/settings/(settings)/integration.tsx | 0 .../pages/settings/(settings)/invitations.tsx | 0 .../src/pages/settings/(settings)/profile.tsx | 0 .../pages/settings/(settings)/shortcuts.tsx | 0 .../src/pages/settings/(settings)/wallet.tsx | 0 .../renderer/src/pages/settings/index.tsx | 0 .../renderer/src/pages/settings/layout.tsx | 0 .../src/providers/context-menu-provider.tsx | 0 .../renderer/src/providers/event-provider.tsx | 0 .../renderer/src/providers/i18n-provider.tsx | 0 .../providers/invalidate-query-provider.tsx | 0 .../renderer/src/providers/root-providers.tsx | 0 .../renderer/src/providers/setting-sync.tsx | 0 .../src/providers/stable-router-provider.tsx | 0 .../renderer/src/providers/user-provider.tsx | 0 .../providers/wrapped-element-provider.tsx | 0 {src => apps}/renderer/src/queries/actions.ts | 0 {src => apps}/renderer/src/queries/ai.ts | 0 {src => apps}/renderer/src/queries/auth.ts | 0 .../renderer/src/queries/discover.ts | 0 {src => apps}/renderer/src/queries/entries.ts | 0 {src => apps}/renderer/src/queries/feed.ts | 0 {src => apps}/renderer/src/queries/index.ts | 0 .../renderer/src/queries/invitations.ts | 0 .../renderer/src/queries/settings.ts | 0 .../renderer/src/queries/subscriptions.ts | 0 apps/renderer/src/queries/types.d.ts | 6 + {src => apps}/renderer/src/queries/wallet.tsx | 0 {src => apps}/renderer/src/router.tsx | 0 .../src/services/__mock__data__/entries.json | 0 .../__snapshots__/cleaner.spec.ts.snap | 0 {src => apps}/renderer/src/services/base.ts | 0 .../renderer/src/services/cleaner.spec.ts | 2 +- .../renderer/src/services/cleaner.ts | 0 .../renderer/src/services/entry-related.ts | 0 .../renderer/src/services/entry.spec.ts | 0 {src => apps}/renderer/src/services/entry.ts | 0 .../renderer/src/services/feed-unread.ts | 0 {src => apps}/renderer/src/services/feed.ts | 0 {src => apps}/renderer/src/services/index.ts | 0 .../renderer/src/services/subscription.ts | 0 apps/renderer/src/shim.d.ts | 6 + .../src/store/entry-history/action.ts | 0 .../renderer/src/store/entry/helper.ts | 0 .../renderer/src/store/entry/hooks.ts | 2 +- .../renderer/src/store/entry/index.ts | 0 .../renderer/src/store/entry/store.ts | 2 +- .../renderer/src/store/entry/types.ts | 2 +- .../renderer/src/store/feed/hooks.ts | 0 .../renderer/src/store/feed/index.ts | 0 .../renderer/src/store/feed/store.ts | 0 .../renderer/src/store/feed/types.ts | 0 {src => apps}/renderer/src/store/image/db.ts | 0 .../renderer/src/store/image/index.ts | 0 .../renderer/src/store/search/constants.ts | 0 .../renderer/src/store/search/helper.ts | 0 .../renderer/src/store/search/index.ts | 0 .../renderer/src/store/search/types.ts | 0 .../renderer/src/store/subscription/hooks.ts | 0 .../renderer/src/store/subscription/index.ts | 0 .../renderer/src/store/subscription/store.ts | 0 .../renderer/src/store/unread/index.ts | 0 .../renderer/src/store/user/hooks.ts | 0 .../renderer/src/store/user/index.ts | 0 .../renderer/src/store/user/store.ts | 0 .../renderer/src/store/utils/clear.ts | 0 .../renderer/src/store/utils/helper.ts | 0 .../renderer/src/styles/additional.css | 0 {src => apps}/renderer/src/styles/base.css | 0 {src => apps}/renderer/src/styles/colors.css | 0 {src => apps}/renderer/src/styles/font.css | 0 {src => apps}/renderer/src/styles/main.css | 0 .../renderer/src/styles/scrollbar.css | 0 .../renderer/src/styles/tailwind-extend.css | 0 .../renderer/src/styles/tailwind.css | 0 {src => apps}/renderer/src/tipc.ts | 2 +- apps/renderer/tsconfig.json | 20 + .../renderer/vitest.config.ts | 9 +- configs/vite.render.config.ts | 10 +- electron.vite.config.ts | 19 +- eslint.config.mjs | 7 +- package.json | 134 +- packages/shared/package.json | 194 +++ {src => packages}/shared/src/bridge.ts | 0 {src => packages}/shared/src/constants.ts | 3 +- {src => packages}/shared/src/electron.ts | 2 +- {src => packages/shared/src}/env.ts | 2 +- {src => packages}/shared/src/event.ts | 0 {src => packages/shared/src}/hono.ts | 74 +- {src => packages}/shared/src/image.ts | 0 {src => packages}/shared/src/index.ts | 0 .../shared/src/interface/settings.ts | 0 {src => packages}/shared/src/queue.ts | 0 packages/shared/tsconfig.json | 19 + pnpm-lock.yaml | 1190 +++++++++++++---- pnpm-workspace.yaml | 3 + tailwind.config.ts | 4 +- tsconfig.json | 3 +- tsconfig.node.json | 30 - tsconfig.web.json | 33 - vite.config.ts | 2 +- vitest.workspace.ts | 6 + 552 files changed, 1711 insertions(+), 578 deletions(-) create mode 100644 apps/main/export.ts create mode 100644 apps/main/global.d.ts create mode 100644 apps/main/package.json rename {src => apps/main}/preload/index.d.ts (100%) rename {src => apps/main}/preload/index.ts (100%) rename {src/main => apps/main/src}/@types/constants.ts (100%) rename {src/renderer => apps/main}/src/@types/default-resource.ts (100%) create mode 100644 apps/main/src/@types/i18next.d.ts rename {src/main => apps/main/src}/@types/resources.ts (100%) rename {src/main => apps/main/src}/constants/app.ts (100%) rename {src/main => apps/main/src}/env.ts (100%) rename {src/main => apps/main/src}/helper.ts (100%) rename {src/main => apps/main/src}/index.ts (95%) rename {src/main => apps/main/src}/init.ts (97%) rename {src/main => apps/main/src}/lib/api-client.ts (89%) rename {src/main => apps/main/src}/lib/dock.ts (100%) rename {src/main => apps/main/src}/lib/download.ts (100%) rename {src/main => apps/main/src}/lib/i18n.ts (60%) rename {src/main => apps/main/src}/lib/posthog.ts (91%) rename {src/main => apps/main/src}/lib/readability.ts (100%) rename {src/main => apps/main/src}/lib/store.ts (52%) rename {src/main => apps/main/src}/lib/user.ts (100%) rename {src/main => apps/main/src}/lib/utils.ts (100%) rename {src/main => apps/main/src}/logger.ts (100%) rename {src/main => apps/main/src}/menu.ts (98%) rename {src/main => apps/main/src}/renderer-handlers.ts (100%) rename {src/main => apps/main/src}/sentry.ts (100%) rename {src/main => apps/main/src}/tipc/_instance.ts (100%) rename {src/main => apps/main/src}/tipc/app.ts (98%) rename {src/main => apps/main/src}/tipc/debug.ts (100%) rename {src/main => apps/main/src}/tipc/dock.ts (100%) rename {src/main => apps/main/src}/tipc/index.ts (100%) rename {src/main => apps/main/src}/tipc/menu.ts (100%) rename {src/main => apps/main/src}/tipc/reader.ts (100%) rename {src/main => apps/main/src}/tipc/setting.ts (100%) rename {src/main => apps/main/src}/tipc/tracker.ts (86%) rename {src/main => apps/main/src}/updater/custom-github-provider.ts (100%) rename {src/main => apps/main/src}/updater/index.ts (100%) rename {src/main => apps/main/src}/window.ts (98%) create mode 100644 apps/main/tsconfig.json create mode 100644 apps/main/tsup.config.ts rename {src => apps}/renderer/__debug_proxy.html (100%) create mode 100644 apps/renderer/global.d.ts rename {src => apps}/renderer/index.html (100%) create mode 100644 apps/renderer/package.json rename {src => apps}/renderer/public/favicon-dev.ico (100%) rename {src => apps}/renderer/public/favicon.ico (100%) rename {src => apps}/renderer/public/icon-192x192.png (100%) rename {src => apps}/renderer/public/icon-512x512.png (100%) rename {src => apps}/renderer/public/icon.svg (100%) rename {src => apps}/renderer/public/manifest.json (100%) rename {src => apps}/renderer/public/opengraph-image.png (100%) rename setup-file.ts => apps/renderer/setup-file.ts (100%) rename {src => apps}/renderer/src/@types/constants.ts (100%) create mode 100644 apps/renderer/src/@types/default-resource.ts rename {src/main => apps/renderer/src}/@types/i18next.d.ts (87%) rename {src => apps}/renderer/src/App.tsx (98%) rename {src => apps}/renderer/src/atoms/app.ts (100%) rename {src => apps}/renderer/src/atoms/corner-player.ts (100%) rename {src => apps}/renderer/src/atoms/dom.ts (100%) rename {src => apps}/renderer/src/atoms/hooks/viewport.ts (100%) rename {src => apps}/renderer/src/atoms/lang.ts (100%) rename {src => apps}/renderer/src/atoms/network.ts (100%) rename {src => apps}/renderer/src/atoms/player.ts (100%) rename {src => apps}/renderer/src/atoms/readability.ts (100%) rename {src => apps}/renderer/src/atoms/route.ts (100%) rename {src => apps}/renderer/src/atoms/settings/general.ts (94%) rename {src => apps}/renderer/src/atoms/settings/helper.ts (100%) rename {src => apps}/renderer/src/atoms/settings/integration.ts (89%) rename {src => apps}/renderer/src/atoms/settings/ui.ts (94%) rename {src => apps}/renderer/src/atoms/sidebar.ts (100%) rename {src => apps}/renderer/src/atoms/updater.ts (100%) rename {src => apps}/renderer/src/atoms/user.ts (100%) rename {src => apps}/renderer/src/atoms/viewport.ts (100%) rename {src => apps}/renderer/src/components/Versions.tsx (100%) rename {src => apps}/renderer/src/components/common/AppErrorBoundary.tsx (100%) rename {src => apps}/renderer/src/components/common/ErrorElement.tsx (100%) rename {src => apps}/renderer/src/components/common/ExPromise.tsx (100%) rename {src => apps}/renderer/src/components/common/Fragment.tsx (100%) rename {src => apps}/renderer/src/components/common/ImpressionTracker.tsx (100%) rename {src => apps}/renderer/src/components/common/LoadMoreIndicator.tsx (100%) rename {src => apps}/renderer/src/components/common/LoadRemixAsyncComponent.tsx (100%) rename {src => apps}/renderer/src/components/common/Motion.tsx (100%) rename {src => apps}/renderer/src/components/common/NotFound.tsx (100%) rename {src => apps}/renderer/src/components/common/PoweredByFooter.tsx (100%) rename {src => apps}/renderer/src/components/common/ProviderComposer.tsx (100%) rename {src => apps}/renderer/src/components/common/ShadowDOM.tsx (100%) rename {src => apps}/renderer/src/components/errors/FeedFoundCanBeFollowErrorFallback.tsx (100%) rename {src => apps}/renderer/src/components/errors/FeedNotFound.tsx (100%) rename {src => apps}/renderer/src/components/errors/ModalError.tsx (100%) rename {src => apps}/renderer/src/components/errors/PageError.tsx (100%) rename {src => apps}/renderer/src/components/errors/enum.ts (100%) rename {src => apps}/renderer/src/components/errors/helper.ts (100%) rename {src => apps}/renderer/src/components/errors/index.ts (100%) rename {src => apps}/renderer/src/components/feed-certification.tsx (100%) rename {src => apps}/renderer/src/components/feed-icon.tsx (100%) rename {src => apps}/renderer/src/components/feed-summary.tsx (100%) rename {src => apps}/renderer/src/components/header.tsx (100%) rename {src => apps}/renderer/src/components/icons/Language.tsx (100%) rename {src => apps}/renderer/src/components/icons/OouiUserAnonymous.tsx (100%) rename {src => apps}/renderer/src/components/icons/PhCloudCheck.tsx (100%) rename {src => apps}/renderer/src/components/icons/PhCloudWarning.tsx (100%) rename {src => apps}/renderer/src/components/icons/PhCloudX.tsx (100%) rename {src => apps}/renderer/src/components/icons/empty.tsx (100%) rename {src => apps}/renderer/src/components/icons/follow.tsx (100%) rename {src => apps}/renderer/src/components/icons/logo.tsx (100%) rename {src => apps}/renderer/src/components/icons/user.tsx (100%) rename {src => apps}/renderer/src/components/site-icon.tsx (100%) rename {src => apps}/renderer/src/components/ui/auto-completion/AutoCompletion.tsx (100%) rename {src => apps}/renderer/src/components/ui/auto-completion/index.ts (100%) rename {src => apps}/renderer/src/components/ui/auto-resize-height.tsx (100%) rename {src => apps}/renderer/src/components/ui/avatar.tsx (100%) rename {src => apps}/renderer/src/components/ui/background/WindowUnderBlur.tsx (94%) rename {src => apps}/renderer/src/components/ui/background/index.ts (100%) rename {src => apps}/renderer/src/components/ui/button/index.tsx (100%) rename {src => apps}/renderer/src/components/ui/button/variants.tsx (100%) rename {src => apps}/renderer/src/components/ui/card.tsx (100%) rename {src => apps}/renderer/src/components/ui/checkbox.tsx (100%) rename {src => apps}/renderer/src/components/ui/code-highlighter/constants/index.tsx (100%) rename {src => apps}/renderer/src/components/ui/code-highlighter/copy-button.tsx (100%) rename {src => apps}/renderer/src/components/ui/code-highlighter/index.ts (100%) rename {src => apps}/renderer/src/components/ui/code-highlighter/shiki/Shiki.tsx (100%) rename {src => apps}/renderer/src/components/ui/code-highlighter/shiki/hooks.ts (100%) rename {src => apps}/renderer/src/components/ui/code-highlighter/shiki/index.ts (100%) rename {src => apps}/renderer/src/components/ui/code-highlighter/shiki/shared.ts (100%) rename {src => apps}/renderer/src/components/ui/code-highlighter/shiki/shiki.module.css (100%) rename {src => apps}/renderer/src/components/ui/collapse/Collapse.tsx (100%) rename {src => apps}/renderer/src/components/ui/collapse/hooks.tsx (100%) rename {src => apps}/renderer/src/components/ui/collapse/index.ts (100%) rename {src => apps}/renderer/src/components/ui/constants/spring.ts (100%) rename {src => apps}/renderer/src/components/ui/context-menu/context-menu.tsx (100%) rename {src => apps}/renderer/src/components/ui/context-menu/index.ts (100%) rename {src => apps}/renderer/src/components/ui/datetime/index.tsx (100%) rename {src => apps}/renderer/src/components/ui/divider/Divider.tsx (100%) rename {src => apps}/renderer/src/components/ui/divider/PanelSpliter.tsx (100%) rename {src => apps}/renderer/src/components/ui/divider/index.ts (100%) rename {src => apps}/renderer/src/components/ui/dropdown-menu/dropdown-menu.tsx (100%) rename {src => apps}/renderer/src/components/ui/fab/FABContainer.tsx (100%) rename {src => apps}/renderer/src/components/ui/fab/index.ts (100%) rename {src => apps}/renderer/src/components/ui/form.tsx (100%) rename {src => apps}/renderer/src/components/ui/input/Input.tsx (100%) rename {src => apps}/renderer/src/components/ui/input/TextArea.tsx (100%) rename {src => apps}/renderer/src/components/ui/input/index.ts (100%) rename {src => apps}/renderer/src/components/ui/kbd/Kbd.tsx (100%) rename {src => apps}/renderer/src/components/ui/label.tsx (100%) rename {src => apps}/renderer/src/components/ui/link/index.tsx (100%) rename {src => apps}/renderer/src/components/ui/list-item-hover-overlay.tsx (100%) rename {src => apps}/renderer/src/components/ui/loading.tsx (100%) rename {src => apps}/renderer/src/components/ui/markdown/Markdown.tsx (100%) rename {src => apps}/renderer/src/components/ui/markdown/components/TimeStamp.tsx (100%) rename {src => apps}/renderer/src/components/ui/markdown/components/Toc.tsx (100%) rename {src => apps}/renderer/src/components/ui/markdown/components/TocItem.tsx (100%) rename {src => apps}/renderer/src/components/ui/markdown/context.tsx (100%) rename {src => apps}/renderer/src/components/ui/markdown/index.ts (100%) rename {src => apps}/renderer/src/components/ui/markdown/renderers/BlockErrorBoundary.tsx (100%) rename {src => apps}/renderer/src/components/ui/markdown/renderers/BlockImage.tsx (100%) rename {src => apps}/renderer/src/components/ui/markdown/renderers/Heading.tsx (100%) rename {src => apps}/renderer/src/components/ui/markdown/renderers/MarkdownLink.tsx (100%) rename {src => apps}/renderer/src/components/ui/markdown/renderers/MarkdownP.tsx (100%) rename {src => apps}/renderer/src/components/ui/markdown/renderers/index.ts (100%) rename {src => apps}/renderer/src/components/ui/markdown/utils/index.tsx (100%) rename {src => apps}/renderer/src/components/ui/marquee/index.tsx (100%) rename {src => apps}/renderer/src/components/ui/media.tsx (100%) rename {src => apps}/renderer/src/components/ui/media/SwipeMedia.tsx (98%) rename {src => apps}/renderer/src/components/ui/media/VideoPlayer.tsx (100%) rename {src => apps}/renderer/src/components/ui/media/VolumeSlider.tsx (100%) rename {src => apps}/renderer/src/components/ui/media/hooks.tsx (100%) rename {src => apps}/renderer/src/components/ui/media/index.module.css (100%) rename {src => apps}/renderer/src/components/ui/media/preview-media.tsx (99%) rename {src => apps}/renderer/src/components/ui/modal/index.ts (100%) rename {src => apps}/renderer/src/components/ui/modal/inspire/PeekModal.tsx (100%) rename {src => apps}/renderer/src/components/ui/modal/stacked/atom.ts (100%) rename {src => apps}/renderer/src/components/ui/modal/stacked/constants.ts (100%) rename {src => apps}/renderer/src/components/ui/modal/stacked/context.tsx (100%) rename {src => apps}/renderer/src/components/ui/modal/stacked/declarative-modal.tsx (100%) rename {src => apps}/renderer/src/components/ui/modal/stacked/helper.tsx (100%) rename {src => apps}/renderer/src/components/ui/modal/stacked/hooks.tsx (100%) rename {src => apps}/renderer/src/components/ui/modal/stacked/index.ts (100%) rename {src => apps}/renderer/src/components/ui/modal/stacked/modal.tsx (100%) rename {src => apps}/renderer/src/components/ui/modal/stacked/overlay.tsx (100%) rename {src => apps}/renderer/src/components/ui/modal/stacked/provider.tsx (100%) rename {src => apps}/renderer/src/components/ui/modal/stacked/types.tsx (100%) rename {src => apps}/renderer/src/components/ui/modal/stacked/utils.ts (100%) rename {src => apps}/renderer/src/components/ui/paper/Paper.tsx (100%) rename {src => apps}/renderer/src/components/ui/paper/index.ts (100%) rename {src => apps}/renderer/src/components/ui/placeholder.tsx (100%) rename {src => apps}/renderer/src/components/ui/platform-icon/collections/eagle.tsx (100%) rename {src => apps}/renderer/src/components/ui/platform-icon/collections/instapaper.tsx (100%) rename {src => apps}/renderer/src/components/ui/platform-icon/collections/readwise.tsx (100%) rename {src => apps}/renderer/src/components/ui/platform-icon/collections/rss3.tsx (100%) rename {src => apps}/renderer/src/components/ui/platform-icon/icons.ts (100%) rename {src => apps}/renderer/src/components/ui/platform-icon/index.tsx (100%) rename {src => apps}/renderer/src/components/ui/platform-icon/utils.tsx (100%) rename {src => apps}/renderer/src/components/ui/popover/index.module.css (100%) rename {src => apps}/renderer/src/components/ui/popover/index.tsx (100%) rename {src => apps}/renderer/src/components/ui/portal/index.tsx (100%) rename {src => apps}/renderer/src/components/ui/portal/provider.tsx (100%) rename {src => apps}/renderer/src/components/ui/radio-group/Radio.tsx (100%) rename {src => apps}/renderer/src/components/ui/radio-group/RadioCard.tsx (100%) rename {src => apps}/renderer/src/components/ui/radio-group/RadioGroup.tsx (100%) rename {src => apps}/renderer/src/components/ui/radio-group/context.ts (100%) rename {src => apps}/renderer/src/components/ui/radio-group/index.ts (100%) rename {src => apps}/renderer/src/components/ui/scroll-area/ScrollArea.tsx (100%) rename {src => apps}/renderer/src/components/ui/scroll-area/ctx.ts (100%) rename {src => apps}/renderer/src/components/ui/scroll-area/hooks.ts (100%) rename {src => apps}/renderer/src/components/ui/scroll-area/index.module.css (100%) rename {src => apps}/renderer/src/components/ui/scroll-area/index.ts (100%) rename {src => apps}/renderer/src/components/ui/segement/ctx.tsx (100%) rename {src => apps}/renderer/src/components/ui/segement/index.tsx (100%) rename {src => apps}/renderer/src/components/ui/select.tsx (100%) rename {src => apps}/renderer/src/components/ui/skeleton.tsx (100%) rename {src => apps}/renderer/src/components/ui/sonner.tsx (100%) rename {src => apps}/renderer/src/components/ui/switch.tsx (100%) rename {src => apps}/renderer/src/components/ui/table/index.tsx (100%) rename {src => apps}/renderer/src/components/ui/table/variants.tsx (100%) rename {src => apps}/renderer/src/components/ui/tabs.tsx (100%) rename {src => apps}/renderer/src/components/ui/tooltip/index.tsx (100%) rename {src => apps}/renderer/src/components/ui/tooltip/styles.ts (100%) rename {src => apps}/renderer/src/components/ui/typography/EllipsisWithTooltip.tsx (100%) rename {src => apps}/renderer/src/components/ui/typography/index.ts (100%) rename {src => apps}/renderer/src/components/user-button.tsx (100%) rename {src => apps}/renderer/src/components/ux/transition/icon.tsx (100%) rename {src => apps}/renderer/src/components/view-select-content.tsx (100%) rename {src => apps}/renderer/src/configs.ts (97%) rename {src => apps}/renderer/src/constants/app.tsx (100%) rename {src => apps}/renderer/src/constants/copy.ts (100%) rename {src => apps}/renderer/src/constants/environment.ts (100%) rename {src => apps}/renderer/src/constants/hotkeys.ts (100%) rename {src => apps}/renderer/src/constants/index.ts (100%) rename {src => apps}/renderer/src/constants/shortcuts.ts (100%) rename {src => apps}/renderer/src/constants/social.ts (100%) rename {src => apps}/renderer/src/constants/tabs.tsx (100%) rename {src => apps}/renderer/src/constants/ui.ts (100%) rename {src => apps}/renderer/src/database/constants.ts (100%) rename {src => apps}/renderer/src/database/db.ts (100%) rename {src => apps}/renderer/src/database/db_schema.ts (100%) create mode 100644 apps/renderer/src/database/global.d.ts rename {src => apps}/renderer/src/database/index.ts (100%) rename {src => apps}/renderer/src/database/schemas/base.ts (100%) rename {src => apps}/renderer/src/database/schemas/cleaner.ts (100%) rename {src => apps}/renderer/src/database/schemas/entry.ts (100%) rename {src => apps}/renderer/src/database/schemas/feed.ts (100%) rename {src => apps}/renderer/src/database/schemas/index.ts (100%) rename {src => apps}/renderer/src/database/schemas/subscription.ts (100%) create mode 100644 apps/renderer/src/env.d.ts rename {src => apps}/renderer/src/framer-lazy-feature.ts (100%) create mode 100644 apps/renderer/src/global.d.ts rename {src => apps}/renderer/src/hooks/biz/useAsRead.ts (100%) rename {src => apps}/renderer/src/hooks/biz/useDailyTask.ts (100%) rename {src => apps}/renderer/src/hooks/biz/useEntryActions.tsx (100%) rename {src => apps}/renderer/src/hooks/biz/useFeedActions.tsx (98%) rename {src => apps}/renderer/src/hooks/biz/useFeedFormModal.tsx (92%) rename {src => apps}/renderer/src/hooks/biz/useNavigateEntry.ts (100%) rename {src => apps}/renderer/src/hooks/biz/useReduceMotion.ts (100%) rename {src => apps}/renderer/src/hooks/biz/useRouteParams.ts (100%) rename {src => apps}/renderer/src/hooks/biz/useSignOut.ts (100%) rename {src => apps}/renderer/src/hooks/biz/useSubscriptionActions.tsx (100%) rename {src => apps}/renderer/src/hooks/common/factory/createHTMLMediaHook.ts (100%) rename {src => apps}/renderer/src/hooks/common/index.ts (100%) rename {src => apps}/renderer/src/hooks/common/useBizQuery.ts (100%) rename {src => apps}/renderer/src/hooks/common/useDark.ts (100%) rename {src => apps}/renderer/src/hooks/common/useI18n.ts (100%) rename {src => apps}/renderer/src/hooks/common/useInputComposition.ts (100%) rename {src => apps}/renderer/src/hooks/common/useInterval.ts (100%) rename {src => apps}/renderer/src/hooks/common/useIsOnline.ts (100%) rename {src => apps}/renderer/src/hooks/common/useMeasure.ts (100%) rename {src => apps}/renderer/src/hooks/common/usePageVisibility.ts (100%) rename {src => apps}/renderer/src/hooks/common/usePrevious.ts (100%) rename {src => apps}/renderer/src/hooks/common/useRefValue.ts (100%) rename {src => apps}/renderer/src/hooks/common/useSetState.ts (100%) rename {src => apps}/renderer/src/hooks/common/useSwitchHotkeyScope.ts (100%) rename {src => apps}/renderer/src/hooks/common/useTitle.ts (100%) rename {src => apps}/renderer/src/hooks/common/useTypescriptHappyCallback.ts (100%) rename {src => apps}/renderer/src/hooks/common/useVideo.ts (100%) rename {src => apps}/renderer/src/i18n.ts (100%) rename {src => apps}/renderer/src/initialize/helper.ts (100%) rename {src => apps}/renderer/src/initialize/hydrate.ts (100%) rename {src => apps}/renderer/src/initialize/index.ts (91%) rename {src => apps}/renderer/src/initialize/migrates/index.ts (100%) rename {src => apps}/renderer/src/initialize/posthog.ts (96%) rename {src => apps}/renderer/src/initialize/queue.ts (100%) rename {src => apps}/renderer/src/initialize/sentry.ts (97%) rename {src => apps}/renderer/src/lib/api-fetch.ts (96%) rename {src => apps}/renderer/src/lib/auth.ts (89%) rename {src => apps}/renderer/src/lib/client.ts (78%) rename {src => apps}/renderer/src/lib/color.ts (100%) rename {src => apps}/renderer/src/lib/defineQuery.ts (100%) rename {src => apps}/renderer/src/lib/dev.tsx (100%) rename {src => apps}/renderer/src/lib/dom.ts (100%) rename {src => apps}/renderer/src/lib/enum.ts (100%) rename {src => apps}/renderer/src/lib/error-parser.ts (100%) rename {src => apps}/renderer/src/lib/event-bus.ts (100%) rename {src => apps}/renderer/src/lib/img-proxy.ts (80%) rename {src => apps}/renderer/src/lib/issues.ts (100%) rename {src => apps}/renderer/src/lib/jotai.ts (100%) rename {src => apps}/renderer/src/lib/link-parser.ts (100%) rename {src => apps}/renderer/src/lib/load-language.ts (100%) rename {src => apps}/renderer/src/lib/log.ts (100%) rename {src => apps}/renderer/src/lib/native-menu.ts (100%) rename {src => apps}/renderer/src/lib/ns.ts (100%) rename {src => apps}/renderer/src/lib/observe-resize.ts (100%) rename {src => apps}/renderer/src/lib/parse-html.ts (100%) rename {src => apps}/renderer/src/lib/parse-markdown.ts (100%) rename {src => apps}/renderer/src/lib/parsers.ts (100%) rename {src => apps}/renderer/src/lib/path-parser.test.ts (100%) rename {src => apps}/renderer/src/lib/path-parser.ts (100%) rename {src => apps}/renderer/src/lib/query-client.ts (100%) rename {src => apps}/renderer/src/lib/route-builder.test.ts (100%) rename {src => apps}/renderer/src/lib/route-builder.ts (100%) rename {src => apps}/renderer/src/lib/scroller.ts (100%) rename {src => apps}/renderer/src/lib/url-to-iframe.ts (100%) rename {src => apps}/renderer/src/lib/utils.ts (100%) rename {src => apps}/renderer/src/lib/yielder.ts (100%) rename {src => apps}/renderer/src/main.tsx (79%) rename {src => apps}/renderer/src/models/index.ts (100%) rename {src => apps}/renderer/src/models/types.ts (97%) rename {src => apps}/renderer/src/modules/ai/ai-daily/EntryPlaceholderDaily.tsx (100%) rename {src => apps}/renderer/src/modules/ai/ai-daily/FeedDailyModalContent.tsx (100%) rename {src => apps}/renderer/src/modules/ai/ai-daily/constants.ts (100%) rename {src => apps}/renderer/src/modules/ai/ai-daily/daily.tsx (100%) rename {src => apps}/renderer/src/modules/ai/ai-daily/hooks.tsx (100%) rename {src => apps}/renderer/src/modules/ai/ai-daily/types.tsx (100%) rename {src => apps}/renderer/src/modules/app/EnvironmentIndicator.tsx (93%) rename {src => apps}/renderer/src/modules/app/NetworkStatusIndicator.tsx (100%) rename {src => apps}/renderer/src/modules/app/Titlebar.tsx (100%) rename {src => apps}/renderer/src/modules/auth/LoginModalContent.tsx (100%) rename {src => apps}/renderer/src/modules/claim/feed-claim-modal.tsx (100%) rename {src => apps}/renderer/src/modules/claim/hooks.ts (100%) rename {src => apps}/renderer/src/modules/claim/index.ts (100%) rename {src => apps}/renderer/src/modules/discover/DiscoverFeedForm.tsx (100%) rename {src => apps}/renderer/src/modules/discover/example-data.json (100%) rename {src => apps}/renderer/src/modules/discover/feed-form.tsx (100%) rename {src => apps}/renderer/src/modules/discover/form.tsx (100%) rename {src => apps}/renderer/src/modules/discover/import.tsx (100%) rename {src => apps}/renderer/src/modules/discover/recommendation-content.tsx (100%) rename {src => apps}/renderer/src/modules/discover/recommendations-card.tsx (100%) rename {src => apps}/renderer/src/modules/discover/recommendations.tsx (100%) rename {src => apps}/renderer/src/modules/discover/rss3-form.tsx (100%) rename {src => apps}/renderer/src/modules/discover/types.ts (100%) rename {src => apps}/renderer/src/modules/discover/user-form.tsx (100%) rename {src => apps}/renderer/src/modules/discover/utils.ts (100%) rename {src => apps}/renderer/src/modules/entry-column/EntryColumnShortcutHandler.tsx (100%) rename {src => apps}/renderer/src/modules/entry-column/Items/article-item.tsx (100%) rename {src => apps}/renderer/src/modules/entry-column/Items/audio-item.tsx (100%) rename {src => apps}/renderer/src/modules/entry-column/Items/contexts/picture-masonry-context.ts (100%) rename {src => apps}/renderer/src/modules/entry-column/Items/notification-item.tsx (100%) rename {src => apps}/renderer/src/modules/entry-column/Items/picture-item.tsx (100%) rename {src => apps}/renderer/src/modules/entry-column/Items/picture-masonry.tsx (100%) rename {src => apps}/renderer/src/modules/entry-column/Items/social-media-item.tsx (100%) rename {src => apps}/renderer/src/modules/entry-column/Items/video-item.tsx (100%) rename {src => apps}/renderer/src/modules/entry-column/components/DateItem.tsx (100%) rename {src => apps}/renderer/src/modules/entry-column/components/mark-all-button.tsx (100%) rename {src => apps}/renderer/src/modules/entry-column/hooks.ts (100%) rename {src => apps}/renderer/src/modules/entry-column/hooks/useMarkAll.ts (100%) rename {src => apps}/renderer/src/modules/entry-column/index.tsx (100%) rename {src => apps}/renderer/src/modules/entry-column/item.tsx (100%) rename {src => apps}/renderer/src/modules/entry-column/layouts/EntryItemWrapper.tsx (100%) rename {src => apps}/renderer/src/modules/entry-column/layouts/EntryListHeader.tsx (100%) rename {src => apps}/renderer/src/modules/entry-column/lists.tsx (100%) rename {src => apps}/renderer/src/modules/entry-column/star-icon.tsx (100%) rename {src => apps}/renderer/src/modules/entry-column/styles.ts (100%) rename {src => apps}/renderer/src/modules/entry-column/templates/grid-item-template.tsx (100%) rename {src => apps}/renderer/src/modules/entry-column/templates/list-item-template.tsx (99%) rename {src => apps}/renderer/src/modules/entry-column/translation.tsx (100%) rename {src => apps}/renderer/src/modules/entry-column/types.ts (100%) rename {src => apps}/renderer/src/modules/entry-content/atoms.tsx (100%) rename {src => apps}/renderer/src/modules/entry-content/components/EntryPlaceholderLogo.tsx (100%) rename {src => apps}/renderer/src/modules/entry-content/components/EntryReadHistory.tsx (100%) rename {src => apps}/renderer/src/modules/entry-content/components/WarnGoToExternalLink.tsx (100%) rename {src => apps}/renderer/src/modules/entry-content/header.tsx (100%) rename {src => apps}/renderer/src/modules/entry-content/hooks.ts (100%) rename {src => apps}/renderer/src/modules/entry-content/index.tsx (100%) rename {src => apps}/renderer/src/modules/entry-content/loading.tsx (100%) rename {src => apps}/renderer/src/modules/entry-content/provider.tsx (100%) rename {src => apps}/renderer/src/modules/feed-column/atom.ts (100%) rename {src => apps}/renderer/src/modules/feed-column/auto-updater.tsx (100%) rename {src => apps}/renderer/src/modules/feed-column/category-remove-dialog.tsx (100%) rename {src => apps}/renderer/src/modules/feed-column/category-rename-dialog.tsx (100%) rename {src => apps}/renderer/src/modules/feed-column/category.tsx (100%) rename {src => apps}/renderer/src/modules/feed-column/corner-player.tsx (100%) rename {src => apps}/renderer/src/modules/feed-column/header.tsx (100%) rename {src => apps}/renderer/src/modules/feed-column/index.tsx (99%) rename {src => apps}/renderer/src/modules/feed-column/item.tsx (99%) rename {src => apps}/renderer/src/modules/feed-column/list.tsx (100%) rename {src => apps}/renderer/src/modules/feed-column/unread-number.tsx (100%) rename {src => apps}/renderer/src/modules/modal/shortcuts.tsx (100%) rename {src => apps}/renderer/src/modules/panel/cmdf.tsx (99%) rename {src => apps}/renderer/src/modules/panel/cmdk.module.css (100%) rename {src => apps}/renderer/src/modules/panel/cmdk.tsx (100%) rename {src => apps}/renderer/src/modules/panel/cmdn.tsx (98%) rename {src => apps}/renderer/src/modules/profile/hooks.ts (100%) rename {src => apps}/renderer/src/modules/profile/profile-setting-form.tsx (100%) rename {src => apps}/renderer/src/modules/profile/user-profile-modal.tsx (99%) rename {src => apps}/renderer/src/modules/settings/action-card.tsx (100%) rename {src => apps}/renderer/src/modules/settings/constants.ts (100%) rename {src => apps}/renderer/src/modules/settings/control.tsx (100%) rename {src => apps}/renderer/src/modules/settings/helper/SyncIndicator.tsx (100%) rename {src => apps}/renderer/src/modules/settings/helper/sync-queue.ts (98%) rename {src => apps}/renderer/src/modules/settings/helper/withSettingEnable.tsx (100%) rename {src => apps}/renderer/src/modules/settings/modal/content.tsx (100%) rename {src => apps}/renderer/src/modules/settings/modal/context.tsx (100%) rename {src => apps}/renderer/src/modules/settings/modal/hooks-hack.ts (100%) rename {src => apps}/renderer/src/modules/settings/modal/hooks.ts (100%) rename {src => apps}/renderer/src/modules/settings/modal/layout.tsx (100%) rename {src => apps}/renderer/src/modules/settings/section.tsx (100%) rename {src => apps}/renderer/src/modules/settings/sections/fonts.tsx (100%) rename {src => apps}/renderer/src/modules/settings/setting-builder.tsx (100%) rename {src => apps}/renderer/src/modules/settings/tabs/about.tsx (100%) rename {src => apps}/renderer/src/modules/settings/tabs/apperance.tsx (100%) rename {src => apps}/renderer/src/modules/settings/tabs/feeds.tsx (98%) rename {src => apps}/renderer/src/modules/settings/tabs/general.tsx (100%) rename {src => apps}/renderer/src/modules/settings/tabs/integration.tsx (100%) rename {src => apps}/renderer/src/modules/settings/tabs/invitations.tsx (100%) rename {src => apps}/renderer/src/modules/settings/tabs/wallet/index.tsx (100%) rename {src => apps}/renderer/src/modules/settings/tabs/wallet/my-wallet-section/claim-daily-reward.tsx (100%) rename {src => apps}/renderer/src/modules/settings/tabs/wallet/my-wallet-section/create-wallet.tsx (100%) rename {src => apps}/renderer/src/modules/settings/tabs/wallet/my-wallet-section/index.tsx (100%) rename {src => apps}/renderer/src/modules/settings/tabs/wallet/my-wallet-section/withdraw.tsx (100%) rename {src => apps}/renderer/src/modules/settings/tabs/wallet/transaction-section/index.tsx (100%) rename {src => apps}/renderer/src/modules/settings/title.tsx (100%) rename {src => apps}/renderer/src/modules/settings/utils.ts (100%) rename {src => apps}/renderer/src/modules/wallet/balance.tsx (100%) rename {src => apps}/renderer/src/modules/wallet/hooks.ts (100%) rename {src => apps}/renderer/src/modules/wallet/tip-modal.tsx (100%) rename {src => apps}/renderer/src/pages/(external)/(with-layout)/feed/[id]/index.tsx (100%) rename {src => apps}/renderer/src/pages/(external)/(with-layout)/feed/[id]/layout.tsx (100%) rename {src => apps}/renderer/src/pages/(external)/(with-layout)/layout.tsx (100%) rename {src => apps}/renderer/src/pages/(external)/(with-layout)/profile/[id]/index.tsx (100%) rename {src => apps}/renderer/src/pages/(external)/(with-layout)/profile/[id]/layout.tsx (100%) rename {src => apps}/renderer/src/pages/(external)/debug.tsx (100%) rename {src => apps}/renderer/src/pages/(external)/invitation.tsx (100%) rename {src => apps}/renderer/src/pages/(external)/layout.tsx (100%) rename {src => apps}/renderer/src/pages/(external)/login.tsx (100%) rename {src => apps}/renderer/src/pages/(external)/redirect.tsx (96%) rename {src => apps}/renderer/src/pages/(main)/(layer)/(subview)/discover/index.tsx (100%) rename {src => apps}/renderer/src/pages/(main)/(layer)/(subview)/hooks.ts (100%) rename {src => apps}/renderer/src/pages/(main)/(layer)/(subview)/layout.tsx (100%) rename {src => apps}/renderer/src/pages/(main)/(layer)/feeds/[feedId]/[entryId]/index.tsx (100%) rename {src => apps}/renderer/src/pages/(main)/(layer)/feeds/[feedId]/index.tsx (100%) rename {src => apps}/renderer/src/pages/(main)/(layer)/feeds/[feedId]/layout.tsx (100%) rename {src => apps}/renderer/src/pages/(main)/index.tsx (100%) rename {src => apps}/renderer/src/pages/(main)/layout.tsx (100%) rename {src => apps}/renderer/src/pages/add/index.tsx (100%) rename {src => apps}/renderer/src/pages/preview.tsx (100%) rename {src => apps}/renderer/src/pages/settings/(settings)/about.tsx (100%) rename {src => apps}/renderer/src/pages/settings/(settings)/actions.tsx (100%) rename {src => apps}/renderer/src/pages/settings/(settings)/appearance.tsx (100%) rename {src => apps}/renderer/src/pages/settings/(settings)/feeds.tsx (100%) rename {src => apps}/renderer/src/pages/settings/(settings)/general.tsx (100%) rename {src => apps}/renderer/src/pages/settings/(settings)/integration.tsx (100%) rename {src => apps}/renderer/src/pages/settings/(settings)/invitations.tsx (100%) rename {src => apps}/renderer/src/pages/settings/(settings)/profile.tsx (100%) rename {src => apps}/renderer/src/pages/settings/(settings)/shortcuts.tsx (100%) rename {src => apps}/renderer/src/pages/settings/(settings)/wallet.tsx (100%) rename {src => apps}/renderer/src/pages/settings/index.tsx (100%) rename {src => apps}/renderer/src/pages/settings/layout.tsx (100%) rename {src => apps}/renderer/src/providers/context-menu-provider.tsx (100%) rename {src => apps}/renderer/src/providers/event-provider.tsx (100%) rename {src => apps}/renderer/src/providers/i18n-provider.tsx (100%) rename {src => apps}/renderer/src/providers/invalidate-query-provider.tsx (100%) rename {src => apps}/renderer/src/providers/root-providers.tsx (100%) rename {src => apps}/renderer/src/providers/setting-sync.tsx (100%) rename {src => apps}/renderer/src/providers/stable-router-provider.tsx (100%) rename {src => apps}/renderer/src/providers/user-provider.tsx (100%) rename {src => apps}/renderer/src/providers/wrapped-element-provider.tsx (100%) rename {src => apps}/renderer/src/queries/actions.ts (100%) rename {src => apps}/renderer/src/queries/ai.ts (100%) rename {src => apps}/renderer/src/queries/auth.ts (100%) rename {src => apps}/renderer/src/queries/discover.ts (100%) rename {src => apps}/renderer/src/queries/entries.ts (100%) rename {src => apps}/renderer/src/queries/feed.ts (100%) rename {src => apps}/renderer/src/queries/index.ts (100%) rename {src => apps}/renderer/src/queries/invitations.ts (100%) rename {src => apps}/renderer/src/queries/settings.ts (100%) rename {src => apps}/renderer/src/queries/subscriptions.ts (100%) create mode 100644 apps/renderer/src/queries/types.d.ts rename {src => apps}/renderer/src/queries/wallet.tsx (100%) rename {src => apps}/renderer/src/router.tsx (100%) rename {src => apps}/renderer/src/services/__mock__data__/entries.json (100%) rename {src => apps}/renderer/src/services/__snapshots__/cleaner.spec.ts.snap (100%) rename {src => apps}/renderer/src/services/base.ts (100%) rename {src => apps}/renderer/src/services/cleaner.spec.ts (98%) rename {src => apps}/renderer/src/services/cleaner.ts (100%) rename {src => apps}/renderer/src/services/entry-related.ts (100%) rename {src => apps}/renderer/src/services/entry.spec.ts (100%) rename {src => apps}/renderer/src/services/entry.ts (100%) rename {src => apps}/renderer/src/services/feed-unread.ts (100%) rename {src => apps}/renderer/src/services/feed.ts (100%) rename {src => apps}/renderer/src/services/index.ts (100%) rename {src => apps}/renderer/src/services/subscription.ts (100%) create mode 100644 apps/renderer/src/shim.d.ts rename {src => apps}/renderer/src/store/entry-history/action.ts (100%) rename {src => apps}/renderer/src/store/entry/helper.ts (100%) rename {src => apps}/renderer/src/store/entry/hooks.ts (97%) rename {src => apps}/renderer/src/store/entry/index.ts (100%) rename {src => apps}/renderer/src/store/entry/store.ts (99%) rename {src => apps}/renderer/src/store/entry/types.ts (93%) rename {src => apps}/renderer/src/store/feed/hooks.ts (100%) rename {src => apps}/renderer/src/store/feed/index.ts (100%) rename {src => apps}/renderer/src/store/feed/store.ts (100%) rename {src => apps}/renderer/src/store/feed/types.ts (100%) rename {src => apps}/renderer/src/store/image/db.ts (100%) rename {src => apps}/renderer/src/store/image/index.ts (100%) rename {src => apps}/renderer/src/store/search/constants.ts (100%) rename {src => apps}/renderer/src/store/search/helper.ts (100%) rename {src => apps}/renderer/src/store/search/index.ts (100%) rename {src => apps}/renderer/src/store/search/types.ts (100%) rename {src => apps}/renderer/src/store/subscription/hooks.ts (100%) rename {src => apps}/renderer/src/store/subscription/index.ts (100%) rename {src => apps}/renderer/src/store/subscription/store.ts (100%) rename {src => apps}/renderer/src/store/unread/index.ts (100%) rename {src => apps}/renderer/src/store/user/hooks.ts (100%) rename {src => apps}/renderer/src/store/user/index.ts (100%) rename {src => apps}/renderer/src/store/user/store.ts (100%) rename {src => apps}/renderer/src/store/utils/clear.ts (100%) rename {src => apps}/renderer/src/store/utils/helper.ts (100%) rename {src => apps}/renderer/src/styles/additional.css (100%) rename {src => apps}/renderer/src/styles/base.css (100%) rename {src => apps}/renderer/src/styles/colors.css (100%) rename {src => apps}/renderer/src/styles/font.css (100%) rename {src => apps}/renderer/src/styles/main.css (100%) rename {src => apps}/renderer/src/styles/scrollbar.css (100%) rename {src => apps}/renderer/src/styles/tailwind-extend.css (100%) rename {src => apps}/renderer/src/styles/tailwind.css (100%) rename {src => apps}/renderer/src/tipc.ts (86%) create mode 100644 apps/renderer/tsconfig.json rename vitest.config.ts => apps/renderer/vitest.config.ts (80%) create mode 100644 packages/shared/package.json rename {src => packages}/shared/src/bridge.ts (100%) rename {src => packages}/shared/src/constants.ts (95%) rename {src => packages}/shared/src/electron.ts (95%) rename {src => packages/shared/src}/env.ts (96%) rename {src => packages}/shared/src/event.ts (100%) rename {src => packages/shared/src}/hono.ts (94%) rename {src => packages}/shared/src/image.ts (100%) rename {src => packages}/shared/src/index.ts (100%) rename {src => packages}/shared/src/interface/settings.ts (100%) rename {src => packages}/shared/src/queue.ts (100%) create mode 100644 packages/shared/tsconfig.json create mode 100644 pnpm-workspace.yaml delete mode 100644 tsconfig.node.json delete mode 100644 tsconfig.web.json create mode 100644 vitest.workspace.ts diff --git a/.prettierignore b/.prettierignore index a2f979695..037bbee2a 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1 +1 @@ -src/hono.ts +packages/shared/src/hono.ts diff --git a/apps/main/export.ts b/apps/main/export.ts new file mode 100644 index 000000000..5c8d4f0a0 --- /dev/null +++ b/apps/main/export.ts @@ -0,0 +1,3 @@ +export type { RendererHandlers } from "./src/renderer-handlers" +export type { Router } from "./src/tipc" +export { router } from "./src/tipc" diff --git a/apps/main/global.d.ts b/apps/main/global.d.ts new file mode 100644 index 000000000..2f2956a52 --- /dev/null +++ b/apps/main/global.d.ts @@ -0,0 +1,2 @@ +import "../../types/vite" +import "../../types/authjs" diff --git a/apps/main/package.json b/apps/main/package.json new file mode 100644 index 000000000..6cffcb189 --- /dev/null +++ b/apps/main/package.json @@ -0,0 +1,68 @@ +{ + "name": "@follow/electron-main", + "type": "module", + "private": true, + "author": "Follow Team", + "license": "GPL-3.0-only", + "homepage": "https://github.com/RSSNext", + "repository": { + "url": "https://github.com/RSSNext/follow", + "type": "git" + }, + "exports": { + ".": { + "types": "./dist/export.d.ts", + "import": "./dist/export.js" + } + }, + "main": "./src/index.ts", + "scripts": { + "typecheck": "tsup && tsc --noEmit" + }, + "dependencies": { + "@egoist/tipc": "0.3.2", + "@electron-toolkit/preload": "^3.0.1", + "@electron-toolkit/utils": "^3.0.0", + "@follow/shared": "workspace:*", + "@mozilla/readability": "^0.5.0", + "@sentry/electron": "5.4.0", + "@yornaath/batshit": "0.10.1", + "bufferutil": "4.0.8", + "builder-util-runtime": "9.2.5", + "dayjs": "1.11.13", + "dotenv": "16.4.5", + "electron-context-menu": "4.0.4", + "electron-log": "5.2.0", + "electron-squirrel-startup": "1.0.1", + "electron-updater": "^6.3.4", + "font-list": "1.5.1", + "i18next": "^23.15.1", + "i18next-browser-languagedetector": "8.0.0", + "idb-keyval": "6.2.1", + "linkedom": "^0.18.4", + "lodash-es": "4.17.21", + "lowdb": "7.0.1", + "msedge-tts": "1.3.4", + "nanoid": "5.0.7", + "ofetch": "1.3.4", + "posthog-js": "1.161.5", + "posthog-node": "4.2.0", + "semver": "7.6.3", + "tldts": "6.1.46", + "vscode-languagedetection": "npm:@vscode/vscode-languagedetection@^1.0.22", + "zod": "3.23.8" + }, + "devDependencies": { + "@babel/generator": "7.25.6", + "@hono/node-server": "1.13.0", + "@types/lodash-es": "4.17.12", + "@types/node": "^22.5.5", + "drizzle-orm": "0.33.0", + "electron": "32.1.0", + "electron-devtools-installer": "3.2.0", + "hono": "4.6.2", + "rimraf": "6.0.1", + "tsx": "4.19.1", + "typescript": "^5.6.2" + } +} diff --git a/src/preload/index.d.ts b/apps/main/preload/index.d.ts similarity index 100% rename from src/preload/index.d.ts rename to apps/main/preload/index.d.ts diff --git a/src/preload/index.ts b/apps/main/preload/index.ts similarity index 100% rename from src/preload/index.ts rename to apps/main/preload/index.ts diff --git a/src/main/@types/constants.ts b/apps/main/src/@types/constants.ts similarity index 100% rename from src/main/@types/constants.ts rename to apps/main/src/@types/constants.ts diff --git a/src/renderer/src/@types/default-resource.ts b/apps/main/src/@types/default-resource.ts similarity index 100% rename from src/renderer/src/@types/default-resource.ts rename to apps/main/src/@types/default-resource.ts diff --git a/apps/main/src/@types/i18next.d.ts b/apps/main/src/@types/i18next.d.ts new file mode 100644 index 000000000..18cc9babb --- /dev/null +++ b/apps/main/src/@types/i18next.d.ts @@ -0,0 +1,13 @@ +import type { defaultNS, ns } from "./constants" +import type { resources } from "./resources" + +declare module "i18next" { + interface CustomTypeOptions { + ns: typeof ns + resources: (typeof resources)["en"] + defaultNS: typeof defaultNS + // if you see an error like: "Argument of type 'DefaultTFuncReturn' is not assignable to parameter of type xyz" + // set returnNull to false (and also in the i18next init options) + // returnNull: false; + } +} diff --git a/src/main/@types/resources.ts b/apps/main/src/@types/resources.ts similarity index 100% rename from src/main/@types/resources.ts rename to apps/main/src/@types/resources.ts diff --git a/src/main/constants/app.ts b/apps/main/src/constants/app.ts similarity index 100% rename from src/main/constants/app.ts rename to apps/main/src/constants/app.ts diff --git a/src/main/env.ts b/apps/main/src/env.ts similarity index 100% rename from src/main/env.ts rename to apps/main/src/env.ts diff --git a/src/main/helper.ts b/apps/main/src/helper.ts similarity index 100% rename from src/main/helper.ts rename to apps/main/src/helper.ts diff --git a/src/main/index.ts b/apps/main/src/index.ts similarity index 95% rename from src/main/index.ts rename to apps/main/src/index.ts index c872d81f3..1c2387f65 100644 --- a/src/main/index.ts +++ b/apps/main/src/index.ts @@ -1,10 +1,13 @@ import { electronApp, optimizer } from "@electron-toolkit/utils" -import { APP_PROTOCOL, DEEPLINK_SCHEME } from "@shared/constants" -import { extractElectronWindowOptions } from "@shared/electron" +// @ts-ignore +import { APP_PROTOCOL, DEEPLINK_SCHEME } from "@follow/shared/constants" +// @ts-ignore +import { extractElectronWindowOptions } from "@follow/shared/electron" +// @ts-ignore +import { env } from "@follow/shared/env" import { app, BrowserWindow, session } from "electron" import squirrelStartup from "electron-squirrel-startup" -import { env } from "../env" import { isDev, isMacOS } from "./env" import { initializeApp } from "./init" import { setAuthSessionToken } from "./lib/user" diff --git a/src/main/init.ts b/apps/main/src/init.ts similarity index 97% rename from src/main/init.ts rename to apps/main/src/init.ts index 9c8230691..16436f651 100644 --- a/src/main/init.ts +++ b/apps/main/src/init.ts @@ -1,7 +1,7 @@ import path from "node:path" import { registerIpcMain } from "@egoist/tipc/main" -import { APP_PROTOCOL } from "@shared/constants" +import { APP_PROTOCOL } from "@follow/shared/constants" import { app, nativeTheme, shell } from "electron" import contextMenu from "electron-context-menu" diff --git a/src/main/lib/api-client.ts b/apps/main/src/lib/api-client.ts similarity index 89% rename from src/main/lib/api-client.ts rename to apps/main/src/lib/api-client.ts index c7136ef03..c0fb5baa2 100644 --- a/src/main/lib/api-client.ts +++ b/apps/main/src/lib/api-client.ts @@ -1,9 +1,10 @@ -import { env } from "@env" +import { env } from "@follow/shared/env" import PKG from "@pkg" import { hc } from "hono/client" import { ofetch } from "ofetch" -import type { AppType } from "../../hono" +// @ts-ignore +import type { AppType } from "../../../../packages/shared/src/hono" import { logger } from "../logger" import { getAuthSessionToken } from "./user" diff --git a/src/main/lib/dock.ts b/apps/main/src/lib/dock.ts similarity index 100% rename from src/main/lib/dock.ts rename to apps/main/src/lib/dock.ts diff --git a/src/main/lib/download.ts b/apps/main/src/lib/download.ts similarity index 100% rename from src/main/lib/download.ts rename to apps/main/src/lib/download.ts diff --git a/src/main/lib/i18n.ts b/apps/main/src/lib/i18n.ts similarity index 60% rename from src/main/lib/i18n.ts rename to apps/main/src/lib/i18n.ts index 704e70848..4ce28a0ab 100644 --- a/src/main/lib/i18n.ts +++ b/apps/main/src/lib/i18n.ts @@ -1,13 +1,12 @@ import i18next from "i18next" -import { initReactI18next } from "react-i18next" import { resources } from "../@types/resources" export const defaultNS = "native" -export const i18n = i18next.createInstance() +export const i18n = i18next.createInstance() as typeof i18next -i18n.use(initReactI18next).init({ +i18n.init({ fallbackLng: "en", defaultNS, resources, diff --git a/src/main/lib/posthog.ts b/apps/main/src/lib/posthog.ts similarity index 91% rename from src/main/lib/posthog.ts rename to apps/main/src/lib/posthog.ts index 11d0f4735..5e0ce9de7 100644 --- a/src/main/lib/posthog.ts +++ b/apps/main/src/lib/posthog.ts @@ -1,4 +1,4 @@ -import { env } from "@env" +import { env } from "@follow/shared/env" import { PostHog } from "posthog-node" import { getUser } from "./user" diff --git a/src/main/lib/readability.ts b/apps/main/src/lib/readability.ts similarity index 100% rename from src/main/lib/readability.ts rename to apps/main/src/lib/readability.ts diff --git a/src/main/lib/store.ts b/apps/main/src/lib/store.ts similarity index 52% rename from src/main/lib/store.ts rename to apps/main/src/lib/store.ts index 7780b9cc1..0f0697d7a 100644 --- a/src/main/lib/store.ts +++ b/apps/main/src/lib/store.ts @@ -3,10 +3,14 @@ import { resolve } from "node:path" import { app } from "electron" import { JSONFileSyncPreset } from "lowdb/node" -export const db = JSONFileSyncPreset(resolve(app.getPath("userData"), "db.json"), {}) +const db = JSONFileSyncPreset(resolve(app.getPath("userData"), "db.json"), {}) as { + data: Record + write: () => void + read: () => void +} export const store = { - get: (key: string) => db.data[key], + get: (key: string) => db.data[key] as any, set: (key: string, value: any) => { db.data[key] = value db.write() diff --git a/src/main/lib/user.ts b/apps/main/src/lib/user.ts similarity index 100% rename from src/main/lib/user.ts rename to apps/main/src/lib/user.ts diff --git a/src/main/lib/utils.ts b/apps/main/src/lib/utils.ts similarity index 100% rename from src/main/lib/utils.ts rename to apps/main/src/lib/utils.ts diff --git a/src/main/logger.ts b/apps/main/src/logger.ts similarity index 100% rename from src/main/logger.ts rename to apps/main/src/logger.ts diff --git a/src/main/menu.ts b/apps/main/src/menu.ts similarity index 98% rename from src/main/menu.ts rename to apps/main/src/menu.ts index e9624305f..3a8339b23 100644 --- a/src/main/menu.ts +++ b/apps/main/src/menu.ts @@ -1,5 +1,5 @@ +import { dispatchEventOnWindow } from "@follow/shared/event" import { name } from "@pkg" -import { dispatchEventOnWindow } from "@shared/event" import type { BrowserWindow, MenuItem, MenuItemConstructorOptions } from "electron" import { Menu } from "electron" diff --git a/src/main/renderer-handlers.ts b/apps/main/src/renderer-handlers.ts similarity index 100% rename from src/main/renderer-handlers.ts rename to apps/main/src/renderer-handlers.ts diff --git a/src/main/sentry.ts b/apps/main/src/sentry.ts similarity index 100% rename from src/main/sentry.ts rename to apps/main/src/sentry.ts diff --git a/src/main/tipc/_instance.ts b/apps/main/src/tipc/_instance.ts similarity index 100% rename from src/main/tipc/_instance.ts rename to apps/main/src/tipc/_instance.ts diff --git a/src/main/tipc/app.ts b/apps/main/src/tipc/app.ts similarity index 98% rename from src/main/tipc/app.ts rename to apps/main/src/tipc/app.ts index e543b73ae..5071a1426 100644 --- a/src/main/tipc/app.ts +++ b/apps/main/src/tipc/app.ts @@ -1,12 +1,13 @@ import path from "node:path" import { getRendererHandlers } from "@egoist/tipc/main" -import { callGlobalContextMethod } from "@shared/bridge" +import { callGlobalContextMethod } from "@follow/shared/bridge" import type { BrowserWindow } from "electron" import { app, clipboard, dialog, screen } from "electron" +import { registerMenuAndContextMenu } from "~/init" + import { isWindows11 } from "../env" -import { registerMenuAndContextMenu } from "../init" import { downloadFile } from "../lib/download" import { i18n } from "../lib/i18n" import { cleanAuthSessionToken, cleanUser } from "../lib/user" diff --git a/src/main/tipc/debug.ts b/apps/main/src/tipc/debug.ts similarity index 100% rename from src/main/tipc/debug.ts rename to apps/main/src/tipc/debug.ts diff --git a/src/main/tipc/dock.ts b/apps/main/src/tipc/dock.ts similarity index 100% rename from src/main/tipc/dock.ts rename to apps/main/src/tipc/dock.ts diff --git a/src/main/tipc/index.ts b/apps/main/src/tipc/index.ts similarity index 100% rename from src/main/tipc/index.ts rename to apps/main/src/tipc/index.ts diff --git a/src/main/tipc/menu.ts b/apps/main/src/tipc/menu.ts similarity index 100% rename from src/main/tipc/menu.ts rename to apps/main/src/tipc/menu.ts diff --git a/src/main/tipc/reader.ts b/apps/main/src/tipc/reader.ts similarity index 100% rename from src/main/tipc/reader.ts rename to apps/main/src/tipc/reader.ts diff --git a/src/main/tipc/setting.ts b/apps/main/src/tipc/setting.ts similarity index 100% rename from src/main/tipc/setting.ts rename to apps/main/src/tipc/setting.ts diff --git a/src/main/tipc/tracker.ts b/apps/main/src/tipc/tracker.ts similarity index 86% rename from src/main/tipc/tracker.ts rename to apps/main/src/tipc/tracker.ts index 7150b519d..27af0c5fc 100644 --- a/src/main/tipc/tracker.ts +++ b/apps/main/src/tipc/tracker.ts @@ -15,10 +15,10 @@ export const trackerRoute = { setUser(user) posthog?.capture({ event: "login", - distinctId: user.id, + distinctId: user.id ?? "", properties: { name: user.name, - handle: user.handle, + handle: user.handle ?? "", }, }) }), diff --git a/src/main/updater/custom-github-provider.ts b/apps/main/src/updater/custom-github-provider.ts similarity index 100% rename from src/main/updater/custom-github-provider.ts rename to apps/main/src/updater/custom-github-provider.ts diff --git a/src/main/updater/index.ts b/apps/main/src/updater/index.ts similarity index 100% rename from src/main/updater/index.ts rename to apps/main/src/updater/index.ts diff --git a/src/main/window.ts b/apps/main/src/window.ts similarity index 98% rename from src/main/window.ts rename to apps/main/src/window.ts index 4a7d1fed5..4c38894a3 100644 --- a/src/main/window.ts +++ b/apps/main/src/window.ts @@ -2,8 +2,8 @@ import path from "node:path" import { fileURLToPath } from "node:url" import { is } from "@electron-toolkit/utils" -import { callGlobalContextMethod } from "@shared/bridge" -import { imageRefererMatches } from "@shared/image" +import { callGlobalContextMethod } from "@follow/shared/bridge" +import { imageRefererMatches } from "@follow/shared/image" import type { BrowserWindowConstructorOptions } from "electron" import { BrowserWindow, Menu, shell } from "electron" diff --git a/apps/main/tsconfig.json b/apps/main/tsconfig.json new file mode 100644 index 000000000..f43b867b0 --- /dev/null +++ b/apps/main/tsconfig.json @@ -0,0 +1,17 @@ +{ + "extends": "@electron-toolkit/tsconfig/tsconfig.node.json", + "compilerOptions": { + "outDir": "dist", + "types": ["electron-vite/node"], + "moduleResolution": "Bundler", + "noImplicitReturns": false, + "noUnusedLocals": false, + "noUnusedParameters": false, + "baseUrl": ".", + "paths": { + "@pkg": ["../../package.json"], + "@locales/*": ["../../locales/*"], + "~/*": ["./src/*"] + } + } +} diff --git a/apps/main/tsup.config.ts b/apps/main/tsup.config.ts new file mode 100644 index 000000000..b18fd438f --- /dev/null +++ b/apps/main/tsup.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "tsup" + +export default defineConfig(() => ({ + entry: ["./export.ts"], + outDir: "dist", + format: "esm", + clean: true, + dts: true, + splitting: false, + sourcemap: true, + skipNodeModulesBundle: true, +})) diff --git a/src/renderer/__debug_proxy.html b/apps/renderer/__debug_proxy.html similarity index 100% rename from src/renderer/__debug_proxy.html rename to apps/renderer/__debug_proxy.html diff --git a/apps/renderer/global.d.ts b/apps/renderer/global.d.ts new file mode 100644 index 000000000..5553b7555 --- /dev/null +++ b/apps/renderer/global.d.ts @@ -0,0 +1,12 @@ +import "../../types/authjs" + +import type { ElectronAPI } from "@electron-toolkit/preload" + +declare global { + interface Window { + electron?: ElectronAPI + api?: { canWindowBlur: boolean } + platform: NodeJS.Platform + } +} +export {} diff --git a/src/renderer/index.html b/apps/renderer/index.html similarity index 100% rename from src/renderer/index.html rename to apps/renderer/index.html diff --git a/apps/renderer/package.json b/apps/renderer/package.json new file mode 100644 index 000000000..3b914eecc --- /dev/null +++ b/apps/renderer/package.json @@ -0,0 +1,128 @@ +{ + "name": "@follow/web", + "type": "module", + "private": true, + "main": "./dist/main/index.js", + "scripts": { + "test": "vitest", + "typecheck": "tsc --noEmit" + }, + "dependencies": { + "@egjs/react-infinitegrid": "4.12.0", + "@egoist/tipc": "0.3.2", + "@electron-toolkit/preload": "^3.0.1", + "@electron-toolkit/utils": "^3.0.0", + "@follow/electron-main": "workspace:*", + "@follow/shared": "workspace:*", + "@fontsource/sn-pro": "5.1.0", + "@hono/auth-js": "1.0.10", + "@hookform/resolvers": "3.9.0", + "@iconify/tools": "4.0.6", + "@microflash/remark-callout-directives": "4.3.1", + "@mozilla/readability": "^0.5.0", + "@radix-ui/react-alert-dialog": "1.1.1", + "@radix-ui/react-avatar": "1.1.0", + "@radix-ui/react-checkbox": "1.1.1", + "@radix-ui/react-context-menu": "2.2.1", + "@radix-ui/react-dialog": "1.1.1", + "@radix-ui/react-dropdown-menu": "2.1.1", + "@radix-ui/react-hover-card": "1.1.1", + "@radix-ui/react-label": "2.1.0", + "@radix-ui/react-popover": "1.1.1", + "@radix-ui/react-radio-group": "1.2.0", + "@radix-ui/react-scroll-area": "1.1.0", + "@radix-ui/react-select": "2.1.1", + "@radix-ui/react-slider": "^1.2.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-switch": "1.1.0", + "@radix-ui/react-tabs": "1.1.0", + "@radix-ui/react-toast": "1.2.1", + "@radix-ui/react-tooltip": "1.1.2", + "@sentry/react": "8.30.0", + "@sentry/vite-plugin": "2.22.4", + "@shikijs/transformers": "1.17.7", + "@t3-oss/env-core": "^0.11.1", + "@tanstack/query-sync-storage-persister": "5.56.2", + "@tanstack/react-query": "5.56.2", + "@tanstack/react-query-devtools": "5.56.2", + "@tanstack/react-query-persist-client": "5.56.2", + "@use-gesture/react": "10.3.1", + "@yornaath/batshit": "0.10.1", + "bufferutil": "4.0.8", + "builder-util-runtime": "9.2.5", + "class-variance-authority": "0.7.0", + "click-to-react-component": "1.1.0", + "clsx": "2.1.1", + "cmdk": "1.0.0", + "dayjs": "1.11.13", + "dexie": "4.0.8", + "dnum": "^2.13.1", + "dotenv": "16.4.5", + "electron-log": "5.2.0", + "foxact": "0.2.38", + "framer-motion": "11.5.4", + "franc-min": "6.2.0", + "fuse.js": "7.0.0", + "hast-util-to-jsx-runtime": "2.3.0", + "hast-util-to-text": "4.0.2", + "i18next": "^23.15.1", + "i18next-browser-languagedetector": "8.0.0", + "idb-keyval": "6.2.1", + "immer": "10.1.1", + "jotai": "2.9.3", + "lethargy": "1.0.9", + "linkedom": "^0.18.4", + "lodash-es": "4.17.21", + "msedge-tts": "1.3.4", + "nanoid": "5.0.7", + "ofetch": "1.3.4", + "path-to-regexp": "8.1.0", + "posthog-js": "1.161.5", + "re-resizable": "6.9.18", + "react-error-boundary": "4.0.13", + "react-fast-marquee": "1.6.5", + "react-hook-form": "7.53.0", + "react-hotkeys-hook": "4.5.1", + "react-i18next": "^15.0.2", + "react-intersection-observer": "9.13.1", + "react-resizable-layout": "npm:@innei/react-resizable-layout@0.7.3-fork.1", + "react-router-dom": "6.26.2", + "react-selecto": "1.26.3", + "react-shadow": "20.5.0", + "react-virtuoso": "4.10.4", + "rehype-infer-description-meta": "2.0.0", + "rehype-parse": "9.0.0", + "rehype-sanitize": "6.0.0", + "rehype-stringify": "10.0.0", + "remark-directive": "3.0.0", + "remark-gfm": "4.0.0", + "remark-gh-alerts": "0.0.3", + "remark-parse": "11.0.0", + "remark-rehype": "11.1.0", + "semver": "7.6.3", + "shiki": "1.17.7", + "sonner": "^1.5.0", + "swiper": "11.1.14", + "tailwind-merge": "2.5.2", + "tldts": "6.1.46", + "unified": "11.0.5", + "use-context-selector": "2.0.0", + "usehooks-ts": "3.1.0", + "utf-8-validate": "6.0.4", + "vfile": "6.0.3", + "zod": "3.23.8", + "zustand": "4.5.5" + }, + "devDependencies": { + "@babel/generator": "7.25.6", + "@hono/node-server": "1.13.0", + "@types/lodash-es": "4.17.12", + "@types/node": "^22.5.5", + "@types/react": "^18.3.7", + "@types/react-dom": "^18.3.0", + "fake-indexeddb": "6.0.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "typescript": "^5.6.2" + } +} diff --git a/src/renderer/public/favicon-dev.ico b/apps/renderer/public/favicon-dev.ico similarity index 100% rename from src/renderer/public/favicon-dev.ico rename to apps/renderer/public/favicon-dev.ico diff --git a/src/renderer/public/favicon.ico b/apps/renderer/public/favicon.ico similarity index 100% rename from src/renderer/public/favicon.ico rename to apps/renderer/public/favicon.ico diff --git a/src/renderer/public/icon-192x192.png b/apps/renderer/public/icon-192x192.png similarity index 100% rename from src/renderer/public/icon-192x192.png rename to apps/renderer/public/icon-192x192.png diff --git a/src/renderer/public/icon-512x512.png b/apps/renderer/public/icon-512x512.png similarity index 100% rename from src/renderer/public/icon-512x512.png rename to apps/renderer/public/icon-512x512.png diff --git a/src/renderer/public/icon.svg b/apps/renderer/public/icon.svg similarity index 100% rename from src/renderer/public/icon.svg rename to apps/renderer/public/icon.svg diff --git a/src/renderer/public/manifest.json b/apps/renderer/public/manifest.json similarity index 100% rename from src/renderer/public/manifest.json rename to apps/renderer/public/manifest.json diff --git a/src/renderer/public/opengraph-image.png b/apps/renderer/public/opengraph-image.png similarity index 100% rename from src/renderer/public/opengraph-image.png rename to apps/renderer/public/opengraph-image.png diff --git a/setup-file.ts b/apps/renderer/setup-file.ts similarity index 100% rename from setup-file.ts rename to apps/renderer/setup-file.ts diff --git a/src/renderer/src/@types/constants.ts b/apps/renderer/src/@types/constants.ts similarity index 100% rename from src/renderer/src/@types/constants.ts rename to apps/renderer/src/@types/constants.ts diff --git a/apps/renderer/src/@types/default-resource.ts b/apps/renderer/src/@types/default-resource.ts new file mode 100644 index 000000000..065b0c1ff --- /dev/null +++ b/apps/renderer/src/@types/default-resource.ts @@ -0,0 +1,56 @@ +import en from "../../../../locales/app/en.json" +import common_ardz from "../../../../locales/common/ar-DZ.json" +import common_arma from "../../../../locales/common/ar-MA.json" +import common_arsa from "../../../../locales/common/ar-SA.json" +import common_en from "../../../../locales/common/en.json" +import common_es from "../../../../locales/common/es.json" +import common_fr from "../../../../locales/common/fr.json" +import common_ja from "../../../../locales/common/ja.json" +import common_pt from "../../../../locales/common/pt.json" +import common_zhCN from "../../../../locales/common/zh-CN.json" +import common_zhTW from "../../../../locales/common/zh-TW.json" +import external_en from "../../../../locales/external/en.json" +import lang_ardz from "../../../../locales/lang/ar-DZ.json" +import lang_arma from "../../../../locales/lang/ar-MA.json" +import lang_arsa from "../../../../locales/lang/ar-SA.json" +import lang_en from "../../../../locales/lang/en.json" +import lang_es from "../../../../locales/lang/es.json" +import lang_fr from "../../../../locales/lang/fr.json" +import lang_ja from "../../../../locales/lang/ja.json" +import lang_pt from "../../../../locales/lang/pt.json" +import lang_zhCN from "../../../../locales/lang/zh-CN.json" +import lang_zhTW from "../../../../locales/lang/zh-TW.json" +import settings_en from "../../../../locales/settings/en.json" +import shortcuts_en from "../../../../locales/shortcuts/en.json" +/** + * This file is the language resource that is loaded in full when the app is initialized. + * When switching languages, the app will automatically download the required language resources, + * we will not load all the language resources to minimize the first screen loading time of the app. + * Generally, we only load english resources synchronously by default. + * In addition, we attach common resources for other languages, and the size of the common resources must be controlled. + */ +export const defaultResources = { + en: { + app: en, + lang: lang_en, + common: common_en, + external: external_en, + settings: settings_en, + shortcuts: shortcuts_en, + }, + "zh-CN": { + lang: lang_zhCN, + common: common_zhCN, + }, + ja: { + lang: lang_ja, + common: common_ja, + }, + "ar-DZ": { lang: lang_ardz, common: common_ardz }, + "ar-SA": { lang: lang_arsa, common: common_arsa }, + "ar-MA": { lang: lang_arma, common: common_arma }, + "zh-TW": { lang: lang_zhTW, common: common_zhTW }, + es: { lang: lang_es, common: common_es }, + fr: { lang: lang_fr, common: common_fr }, + pt: { lang: lang_pt, common: common_pt }, +} diff --git a/src/main/@types/i18next.d.ts b/apps/renderer/src/@types/i18next.d.ts similarity index 87% rename from src/main/@types/i18next.d.ts rename to apps/renderer/src/@types/i18next.d.ts index 1e55e9d7c..e8afee158 100644 --- a/src/main/@types/i18next.d.ts +++ b/apps/renderer/src/@types/i18next.d.ts @@ -1,5 +1,5 @@ import type { defaultNS, ns } from "./constants" -import type { resources } from "./resources" +import type { defaultResources as resources } from "./default-resource" declare module "i18next" { interface CustomTypeOptions { diff --git a/src/renderer/src/App.tsx b/apps/renderer/src/App.tsx similarity index 98% rename from src/renderer/src/App.tsx rename to apps/renderer/src/App.tsx index 7dccd2a2f..15c287fc1 100644 --- a/src/renderer/src/App.tsx +++ b/apps/renderer/src/App.tsx @@ -1,8 +1,8 @@ +import { env } from "@follow/shared/env" import { queryClient } from "@renderer/lib/query-client" import { useEffect, useLayoutEffect } from "react" import { Outlet } from "react-router-dom" -import { env } from "../../env.js" import { useAppIsReady } from "./atoms/app" import { useUISettingKey } from "./atoms/settings/ui" import { applyAfterReadyCallbacks } from "./initialize/queue.js" diff --git a/src/renderer/src/atoms/app.ts b/apps/renderer/src/atoms/app.ts similarity index 100% rename from src/renderer/src/atoms/app.ts rename to apps/renderer/src/atoms/app.ts diff --git a/src/renderer/src/atoms/corner-player.ts b/apps/renderer/src/atoms/corner-player.ts similarity index 100% rename from src/renderer/src/atoms/corner-player.ts rename to apps/renderer/src/atoms/corner-player.ts diff --git a/src/renderer/src/atoms/dom.ts b/apps/renderer/src/atoms/dom.ts similarity index 100% rename from src/renderer/src/atoms/dom.ts rename to apps/renderer/src/atoms/dom.ts diff --git a/src/renderer/src/atoms/hooks/viewport.ts b/apps/renderer/src/atoms/hooks/viewport.ts similarity index 100% rename from src/renderer/src/atoms/hooks/viewport.ts rename to apps/renderer/src/atoms/hooks/viewport.ts diff --git a/src/renderer/src/atoms/lang.ts b/apps/renderer/src/atoms/lang.ts similarity index 100% rename from src/renderer/src/atoms/lang.ts rename to apps/renderer/src/atoms/lang.ts diff --git a/src/renderer/src/atoms/network.ts b/apps/renderer/src/atoms/network.ts similarity index 100% rename from src/renderer/src/atoms/network.ts rename to apps/renderer/src/atoms/network.ts diff --git a/src/renderer/src/atoms/player.ts b/apps/renderer/src/atoms/player.ts similarity index 100% rename from src/renderer/src/atoms/player.ts rename to apps/renderer/src/atoms/player.ts diff --git a/src/renderer/src/atoms/readability.ts b/apps/renderer/src/atoms/readability.ts similarity index 100% rename from src/renderer/src/atoms/readability.ts rename to apps/renderer/src/atoms/readability.ts diff --git a/src/renderer/src/atoms/route.ts b/apps/renderer/src/atoms/route.ts similarity index 100% rename from src/renderer/src/atoms/route.ts rename to apps/renderer/src/atoms/route.ts diff --git a/src/renderer/src/atoms/settings/general.ts b/apps/renderer/src/atoms/settings/general.ts similarity index 94% rename from src/renderer/src/atoms/settings/general.ts rename to apps/renderer/src/atoms/settings/general.ts index 649ee99b2..befc8c880 100644 --- a/src/renderer/src/atoms/settings/general.ts +++ b/apps/renderer/src/atoms/settings/general.ts @@ -1,5 +1,5 @@ +import type { GeneralSettings } from "@follow/shared/interface/settings" import { jotaiStore } from "@renderer/lib/jotai" -import type { GeneralSettings } from "@shared/interface/settings" import { createSettingAtom } from "./helper" diff --git a/src/renderer/src/atoms/settings/helper.ts b/apps/renderer/src/atoms/settings/helper.ts similarity index 100% rename from src/renderer/src/atoms/settings/helper.ts rename to apps/renderer/src/atoms/settings/helper.ts diff --git a/src/renderer/src/atoms/settings/integration.ts b/apps/renderer/src/atoms/settings/integration.ts similarity index 89% rename from src/renderer/src/atoms/settings/integration.ts rename to apps/renderer/src/atoms/settings/integration.ts index f8cee02bc..2e671909f 100644 --- a/src/renderer/src/atoms/settings/integration.ts +++ b/apps/renderer/src/atoms/settings/integration.ts @@ -1,4 +1,4 @@ -import type { IntegrationSettings } from "@shared/interface/settings" +import type { IntegrationSettings } from "@follow/shared/interface/settings" import { createSettingAtom } from "./helper" diff --git a/src/renderer/src/atoms/settings/ui.ts b/apps/renderer/src/atoms/settings/ui.ts similarity index 94% rename from src/renderer/src/atoms/settings/ui.ts rename to apps/renderer/src/atoms/settings/ui.ts index dd4f7ac0e..5c52c064b 100644 --- a/src/renderer/src/atoms/settings/ui.ts +++ b/apps/renderer/src/atoms/settings/ui.ts @@ -1,4 +1,4 @@ -import type { UISettings } from "@shared/interface/settings" +import type { UISettings } from "@follow/shared/interface/settings" import { createSettingAtom } from "./helper" diff --git a/src/renderer/src/atoms/sidebar.ts b/apps/renderer/src/atoms/sidebar.ts similarity index 100% rename from src/renderer/src/atoms/sidebar.ts rename to apps/renderer/src/atoms/sidebar.ts diff --git a/src/renderer/src/atoms/updater.ts b/apps/renderer/src/atoms/updater.ts similarity index 100% rename from src/renderer/src/atoms/updater.ts rename to apps/renderer/src/atoms/updater.ts diff --git a/src/renderer/src/atoms/user.ts b/apps/renderer/src/atoms/user.ts similarity index 100% rename from src/renderer/src/atoms/user.ts rename to apps/renderer/src/atoms/user.ts diff --git a/src/renderer/src/atoms/viewport.ts b/apps/renderer/src/atoms/viewport.ts similarity index 100% rename from src/renderer/src/atoms/viewport.ts rename to apps/renderer/src/atoms/viewport.ts diff --git a/src/renderer/src/components/Versions.tsx b/apps/renderer/src/components/Versions.tsx similarity index 100% rename from src/renderer/src/components/Versions.tsx rename to apps/renderer/src/components/Versions.tsx diff --git a/src/renderer/src/components/common/AppErrorBoundary.tsx b/apps/renderer/src/components/common/AppErrorBoundary.tsx similarity index 100% rename from src/renderer/src/components/common/AppErrorBoundary.tsx rename to apps/renderer/src/components/common/AppErrorBoundary.tsx diff --git a/src/renderer/src/components/common/ErrorElement.tsx b/apps/renderer/src/components/common/ErrorElement.tsx similarity index 100% rename from src/renderer/src/components/common/ErrorElement.tsx rename to apps/renderer/src/components/common/ErrorElement.tsx diff --git a/src/renderer/src/components/common/ExPromise.tsx b/apps/renderer/src/components/common/ExPromise.tsx similarity index 100% rename from src/renderer/src/components/common/ExPromise.tsx rename to apps/renderer/src/components/common/ExPromise.tsx diff --git a/src/renderer/src/components/common/Fragment.tsx b/apps/renderer/src/components/common/Fragment.tsx similarity index 100% rename from src/renderer/src/components/common/Fragment.tsx rename to apps/renderer/src/components/common/Fragment.tsx diff --git a/src/renderer/src/components/common/ImpressionTracker.tsx b/apps/renderer/src/components/common/ImpressionTracker.tsx similarity index 100% rename from src/renderer/src/components/common/ImpressionTracker.tsx rename to apps/renderer/src/components/common/ImpressionTracker.tsx diff --git a/src/renderer/src/components/common/LoadMoreIndicator.tsx b/apps/renderer/src/components/common/LoadMoreIndicator.tsx similarity index 100% rename from src/renderer/src/components/common/LoadMoreIndicator.tsx rename to apps/renderer/src/components/common/LoadMoreIndicator.tsx diff --git a/src/renderer/src/components/common/LoadRemixAsyncComponent.tsx b/apps/renderer/src/components/common/LoadRemixAsyncComponent.tsx similarity index 100% rename from src/renderer/src/components/common/LoadRemixAsyncComponent.tsx rename to apps/renderer/src/components/common/LoadRemixAsyncComponent.tsx diff --git a/src/renderer/src/components/common/Motion.tsx b/apps/renderer/src/components/common/Motion.tsx similarity index 100% rename from src/renderer/src/components/common/Motion.tsx rename to apps/renderer/src/components/common/Motion.tsx diff --git a/src/renderer/src/components/common/NotFound.tsx b/apps/renderer/src/components/common/NotFound.tsx similarity index 100% rename from src/renderer/src/components/common/NotFound.tsx rename to apps/renderer/src/components/common/NotFound.tsx diff --git a/src/renderer/src/components/common/PoweredByFooter.tsx b/apps/renderer/src/components/common/PoweredByFooter.tsx similarity index 100% rename from src/renderer/src/components/common/PoweredByFooter.tsx rename to apps/renderer/src/components/common/PoweredByFooter.tsx diff --git a/src/renderer/src/components/common/ProviderComposer.tsx b/apps/renderer/src/components/common/ProviderComposer.tsx similarity index 100% rename from src/renderer/src/components/common/ProviderComposer.tsx rename to apps/renderer/src/components/common/ProviderComposer.tsx diff --git a/src/renderer/src/components/common/ShadowDOM.tsx b/apps/renderer/src/components/common/ShadowDOM.tsx similarity index 100% rename from src/renderer/src/components/common/ShadowDOM.tsx rename to apps/renderer/src/components/common/ShadowDOM.tsx diff --git a/src/renderer/src/components/errors/FeedFoundCanBeFollowErrorFallback.tsx b/apps/renderer/src/components/errors/FeedFoundCanBeFollowErrorFallback.tsx similarity index 100% rename from src/renderer/src/components/errors/FeedFoundCanBeFollowErrorFallback.tsx rename to apps/renderer/src/components/errors/FeedFoundCanBeFollowErrorFallback.tsx diff --git a/src/renderer/src/components/errors/FeedNotFound.tsx b/apps/renderer/src/components/errors/FeedNotFound.tsx similarity index 100% rename from src/renderer/src/components/errors/FeedNotFound.tsx rename to apps/renderer/src/components/errors/FeedNotFound.tsx diff --git a/src/renderer/src/components/errors/ModalError.tsx b/apps/renderer/src/components/errors/ModalError.tsx similarity index 100% rename from src/renderer/src/components/errors/ModalError.tsx rename to apps/renderer/src/components/errors/ModalError.tsx diff --git a/src/renderer/src/components/errors/PageError.tsx b/apps/renderer/src/components/errors/PageError.tsx similarity index 100% rename from src/renderer/src/components/errors/PageError.tsx rename to apps/renderer/src/components/errors/PageError.tsx diff --git a/src/renderer/src/components/errors/enum.ts b/apps/renderer/src/components/errors/enum.ts similarity index 100% rename from src/renderer/src/components/errors/enum.ts rename to apps/renderer/src/components/errors/enum.ts diff --git a/src/renderer/src/components/errors/helper.ts b/apps/renderer/src/components/errors/helper.ts similarity index 100% rename from src/renderer/src/components/errors/helper.ts rename to apps/renderer/src/components/errors/helper.ts diff --git a/src/renderer/src/components/errors/index.ts b/apps/renderer/src/components/errors/index.ts similarity index 100% rename from src/renderer/src/components/errors/index.ts rename to apps/renderer/src/components/errors/index.ts diff --git a/src/renderer/src/components/feed-certification.tsx b/apps/renderer/src/components/feed-certification.tsx similarity index 100% rename from src/renderer/src/components/feed-certification.tsx rename to apps/renderer/src/components/feed-certification.tsx diff --git a/src/renderer/src/components/feed-icon.tsx b/apps/renderer/src/components/feed-icon.tsx similarity index 100% rename from src/renderer/src/components/feed-icon.tsx rename to apps/renderer/src/components/feed-icon.tsx diff --git a/src/renderer/src/components/feed-summary.tsx b/apps/renderer/src/components/feed-summary.tsx similarity index 100% rename from src/renderer/src/components/feed-summary.tsx rename to apps/renderer/src/components/feed-summary.tsx diff --git a/src/renderer/src/components/header.tsx b/apps/renderer/src/components/header.tsx similarity index 100% rename from src/renderer/src/components/header.tsx rename to apps/renderer/src/components/header.tsx diff --git a/src/renderer/src/components/icons/Language.tsx b/apps/renderer/src/components/icons/Language.tsx similarity index 100% rename from src/renderer/src/components/icons/Language.tsx rename to apps/renderer/src/components/icons/Language.tsx diff --git a/src/renderer/src/components/icons/OouiUserAnonymous.tsx b/apps/renderer/src/components/icons/OouiUserAnonymous.tsx similarity index 100% rename from src/renderer/src/components/icons/OouiUserAnonymous.tsx rename to apps/renderer/src/components/icons/OouiUserAnonymous.tsx diff --git a/src/renderer/src/components/icons/PhCloudCheck.tsx b/apps/renderer/src/components/icons/PhCloudCheck.tsx similarity index 100% rename from src/renderer/src/components/icons/PhCloudCheck.tsx rename to apps/renderer/src/components/icons/PhCloudCheck.tsx diff --git a/src/renderer/src/components/icons/PhCloudWarning.tsx b/apps/renderer/src/components/icons/PhCloudWarning.tsx similarity index 100% rename from src/renderer/src/components/icons/PhCloudWarning.tsx rename to apps/renderer/src/components/icons/PhCloudWarning.tsx diff --git a/src/renderer/src/components/icons/PhCloudX.tsx b/apps/renderer/src/components/icons/PhCloudX.tsx similarity index 100% rename from src/renderer/src/components/icons/PhCloudX.tsx rename to apps/renderer/src/components/icons/PhCloudX.tsx diff --git a/src/renderer/src/components/icons/empty.tsx b/apps/renderer/src/components/icons/empty.tsx similarity index 100% rename from src/renderer/src/components/icons/empty.tsx rename to apps/renderer/src/components/icons/empty.tsx diff --git a/src/renderer/src/components/icons/follow.tsx b/apps/renderer/src/components/icons/follow.tsx similarity index 100% rename from src/renderer/src/components/icons/follow.tsx rename to apps/renderer/src/components/icons/follow.tsx diff --git a/src/renderer/src/components/icons/logo.tsx b/apps/renderer/src/components/icons/logo.tsx similarity index 100% rename from src/renderer/src/components/icons/logo.tsx rename to apps/renderer/src/components/icons/logo.tsx diff --git a/src/renderer/src/components/icons/user.tsx b/apps/renderer/src/components/icons/user.tsx similarity index 100% rename from src/renderer/src/components/icons/user.tsx rename to apps/renderer/src/components/icons/user.tsx diff --git a/src/renderer/src/components/site-icon.tsx b/apps/renderer/src/components/site-icon.tsx similarity index 100% rename from src/renderer/src/components/site-icon.tsx rename to apps/renderer/src/components/site-icon.tsx diff --git a/src/renderer/src/components/ui/auto-completion/AutoCompletion.tsx b/apps/renderer/src/components/ui/auto-completion/AutoCompletion.tsx similarity index 100% rename from src/renderer/src/components/ui/auto-completion/AutoCompletion.tsx rename to apps/renderer/src/components/ui/auto-completion/AutoCompletion.tsx diff --git a/src/renderer/src/components/ui/auto-completion/index.ts b/apps/renderer/src/components/ui/auto-completion/index.ts similarity index 100% rename from src/renderer/src/components/ui/auto-completion/index.ts rename to apps/renderer/src/components/ui/auto-completion/index.ts diff --git a/src/renderer/src/components/ui/auto-resize-height.tsx b/apps/renderer/src/components/ui/auto-resize-height.tsx similarity index 100% rename from src/renderer/src/components/ui/auto-resize-height.tsx rename to apps/renderer/src/components/ui/auto-resize-height.tsx diff --git a/src/renderer/src/components/ui/avatar.tsx b/apps/renderer/src/components/ui/avatar.tsx similarity index 100% rename from src/renderer/src/components/ui/avatar.tsx rename to apps/renderer/src/components/ui/avatar.tsx diff --git a/src/renderer/src/components/ui/background/WindowUnderBlur.tsx b/apps/renderer/src/components/ui/background/WindowUnderBlur.tsx similarity index 94% rename from src/renderer/src/components/ui/background/WindowUnderBlur.tsx rename to apps/renderer/src/components/ui/background/WindowUnderBlur.tsx index da6fffc95..5445faece 100644 --- a/src/renderer/src/components/ui/background/WindowUnderBlur.tsx +++ b/apps/renderer/src/components/ui/background/WindowUnderBlur.tsx @@ -1,6 +1,6 @@ +import { SYSTEM_CAN_UNDER_BLUR_WINDOW } from "@follow/shared/constants" import { useUISettingKey } from "@renderer/atoms/settings/ui" import { cn } from "@renderer/lib/utils" -import { SYSTEM_CAN_UNDER_BLUR_WINDOW } from "@shared/constants" type Props = Component< React.DetailedHTMLProps, HTMLDivElement> diff --git a/src/renderer/src/components/ui/background/index.ts b/apps/renderer/src/components/ui/background/index.ts similarity index 100% rename from src/renderer/src/components/ui/background/index.ts rename to apps/renderer/src/components/ui/background/index.ts diff --git a/src/renderer/src/components/ui/button/index.tsx b/apps/renderer/src/components/ui/button/index.tsx similarity index 100% rename from src/renderer/src/components/ui/button/index.tsx rename to apps/renderer/src/components/ui/button/index.tsx diff --git a/src/renderer/src/components/ui/button/variants.tsx b/apps/renderer/src/components/ui/button/variants.tsx similarity index 100% rename from src/renderer/src/components/ui/button/variants.tsx rename to apps/renderer/src/components/ui/button/variants.tsx diff --git a/src/renderer/src/components/ui/card.tsx b/apps/renderer/src/components/ui/card.tsx similarity index 100% rename from src/renderer/src/components/ui/card.tsx rename to apps/renderer/src/components/ui/card.tsx diff --git a/src/renderer/src/components/ui/checkbox.tsx b/apps/renderer/src/components/ui/checkbox.tsx similarity index 100% rename from src/renderer/src/components/ui/checkbox.tsx rename to apps/renderer/src/components/ui/checkbox.tsx diff --git a/src/renderer/src/components/ui/code-highlighter/constants/index.tsx b/apps/renderer/src/components/ui/code-highlighter/constants/index.tsx similarity index 100% rename from src/renderer/src/components/ui/code-highlighter/constants/index.tsx rename to apps/renderer/src/components/ui/code-highlighter/constants/index.tsx diff --git a/src/renderer/src/components/ui/code-highlighter/copy-button.tsx b/apps/renderer/src/components/ui/code-highlighter/copy-button.tsx similarity index 100% rename from src/renderer/src/components/ui/code-highlighter/copy-button.tsx rename to apps/renderer/src/components/ui/code-highlighter/copy-button.tsx diff --git a/src/renderer/src/components/ui/code-highlighter/index.ts b/apps/renderer/src/components/ui/code-highlighter/index.ts similarity index 100% rename from src/renderer/src/components/ui/code-highlighter/index.ts rename to apps/renderer/src/components/ui/code-highlighter/index.ts diff --git a/src/renderer/src/components/ui/code-highlighter/shiki/Shiki.tsx b/apps/renderer/src/components/ui/code-highlighter/shiki/Shiki.tsx similarity index 100% rename from src/renderer/src/components/ui/code-highlighter/shiki/Shiki.tsx rename to apps/renderer/src/components/ui/code-highlighter/shiki/Shiki.tsx diff --git a/src/renderer/src/components/ui/code-highlighter/shiki/hooks.ts b/apps/renderer/src/components/ui/code-highlighter/shiki/hooks.ts similarity index 100% rename from src/renderer/src/components/ui/code-highlighter/shiki/hooks.ts rename to apps/renderer/src/components/ui/code-highlighter/shiki/hooks.ts diff --git a/src/renderer/src/components/ui/code-highlighter/shiki/index.ts b/apps/renderer/src/components/ui/code-highlighter/shiki/index.ts similarity index 100% rename from src/renderer/src/components/ui/code-highlighter/shiki/index.ts rename to apps/renderer/src/components/ui/code-highlighter/shiki/index.ts diff --git a/src/renderer/src/components/ui/code-highlighter/shiki/shared.ts b/apps/renderer/src/components/ui/code-highlighter/shiki/shared.ts similarity index 100% rename from src/renderer/src/components/ui/code-highlighter/shiki/shared.ts rename to apps/renderer/src/components/ui/code-highlighter/shiki/shared.ts diff --git a/src/renderer/src/components/ui/code-highlighter/shiki/shiki.module.css b/apps/renderer/src/components/ui/code-highlighter/shiki/shiki.module.css similarity index 100% rename from src/renderer/src/components/ui/code-highlighter/shiki/shiki.module.css rename to apps/renderer/src/components/ui/code-highlighter/shiki/shiki.module.css diff --git a/src/renderer/src/components/ui/collapse/Collapse.tsx b/apps/renderer/src/components/ui/collapse/Collapse.tsx similarity index 100% rename from src/renderer/src/components/ui/collapse/Collapse.tsx rename to apps/renderer/src/components/ui/collapse/Collapse.tsx diff --git a/src/renderer/src/components/ui/collapse/hooks.tsx b/apps/renderer/src/components/ui/collapse/hooks.tsx similarity index 100% rename from src/renderer/src/components/ui/collapse/hooks.tsx rename to apps/renderer/src/components/ui/collapse/hooks.tsx diff --git a/src/renderer/src/components/ui/collapse/index.ts b/apps/renderer/src/components/ui/collapse/index.ts similarity index 100% rename from src/renderer/src/components/ui/collapse/index.ts rename to apps/renderer/src/components/ui/collapse/index.ts diff --git a/src/renderer/src/components/ui/constants/spring.ts b/apps/renderer/src/components/ui/constants/spring.ts similarity index 100% rename from src/renderer/src/components/ui/constants/spring.ts rename to apps/renderer/src/components/ui/constants/spring.ts diff --git a/src/renderer/src/components/ui/context-menu/context-menu.tsx b/apps/renderer/src/components/ui/context-menu/context-menu.tsx similarity index 100% rename from src/renderer/src/components/ui/context-menu/context-menu.tsx rename to apps/renderer/src/components/ui/context-menu/context-menu.tsx diff --git a/src/renderer/src/components/ui/context-menu/index.ts b/apps/renderer/src/components/ui/context-menu/index.ts similarity index 100% rename from src/renderer/src/components/ui/context-menu/index.ts rename to apps/renderer/src/components/ui/context-menu/index.ts diff --git a/src/renderer/src/components/ui/datetime/index.tsx b/apps/renderer/src/components/ui/datetime/index.tsx similarity index 100% rename from src/renderer/src/components/ui/datetime/index.tsx rename to apps/renderer/src/components/ui/datetime/index.tsx diff --git a/src/renderer/src/components/ui/divider/Divider.tsx b/apps/renderer/src/components/ui/divider/Divider.tsx similarity index 100% rename from src/renderer/src/components/ui/divider/Divider.tsx rename to apps/renderer/src/components/ui/divider/Divider.tsx diff --git a/src/renderer/src/components/ui/divider/PanelSpliter.tsx b/apps/renderer/src/components/ui/divider/PanelSpliter.tsx similarity index 100% rename from src/renderer/src/components/ui/divider/PanelSpliter.tsx rename to apps/renderer/src/components/ui/divider/PanelSpliter.tsx diff --git a/src/renderer/src/components/ui/divider/index.ts b/apps/renderer/src/components/ui/divider/index.ts similarity index 100% rename from src/renderer/src/components/ui/divider/index.ts rename to apps/renderer/src/components/ui/divider/index.ts diff --git a/src/renderer/src/components/ui/dropdown-menu/dropdown-menu.tsx b/apps/renderer/src/components/ui/dropdown-menu/dropdown-menu.tsx similarity index 100% rename from src/renderer/src/components/ui/dropdown-menu/dropdown-menu.tsx rename to apps/renderer/src/components/ui/dropdown-menu/dropdown-menu.tsx diff --git a/src/renderer/src/components/ui/fab/FABContainer.tsx b/apps/renderer/src/components/ui/fab/FABContainer.tsx similarity index 100% rename from src/renderer/src/components/ui/fab/FABContainer.tsx rename to apps/renderer/src/components/ui/fab/FABContainer.tsx diff --git a/src/renderer/src/components/ui/fab/index.ts b/apps/renderer/src/components/ui/fab/index.ts similarity index 100% rename from src/renderer/src/components/ui/fab/index.ts rename to apps/renderer/src/components/ui/fab/index.ts diff --git a/src/renderer/src/components/ui/form.tsx b/apps/renderer/src/components/ui/form.tsx similarity index 100% rename from src/renderer/src/components/ui/form.tsx rename to apps/renderer/src/components/ui/form.tsx diff --git a/src/renderer/src/components/ui/input/Input.tsx b/apps/renderer/src/components/ui/input/Input.tsx similarity index 100% rename from src/renderer/src/components/ui/input/Input.tsx rename to apps/renderer/src/components/ui/input/Input.tsx diff --git a/src/renderer/src/components/ui/input/TextArea.tsx b/apps/renderer/src/components/ui/input/TextArea.tsx similarity index 100% rename from src/renderer/src/components/ui/input/TextArea.tsx rename to apps/renderer/src/components/ui/input/TextArea.tsx diff --git a/src/renderer/src/components/ui/input/index.ts b/apps/renderer/src/components/ui/input/index.ts similarity index 100% rename from src/renderer/src/components/ui/input/index.ts rename to apps/renderer/src/components/ui/input/index.ts diff --git a/src/renderer/src/components/ui/kbd/Kbd.tsx b/apps/renderer/src/components/ui/kbd/Kbd.tsx similarity index 100% rename from src/renderer/src/components/ui/kbd/Kbd.tsx rename to apps/renderer/src/components/ui/kbd/Kbd.tsx diff --git a/src/renderer/src/components/ui/label.tsx b/apps/renderer/src/components/ui/label.tsx similarity index 100% rename from src/renderer/src/components/ui/label.tsx rename to apps/renderer/src/components/ui/label.tsx diff --git a/src/renderer/src/components/ui/link/index.tsx b/apps/renderer/src/components/ui/link/index.tsx similarity index 100% rename from src/renderer/src/components/ui/link/index.tsx rename to apps/renderer/src/components/ui/link/index.tsx diff --git a/src/renderer/src/components/ui/list-item-hover-overlay.tsx b/apps/renderer/src/components/ui/list-item-hover-overlay.tsx similarity index 100% rename from src/renderer/src/components/ui/list-item-hover-overlay.tsx rename to apps/renderer/src/components/ui/list-item-hover-overlay.tsx diff --git a/src/renderer/src/components/ui/loading.tsx b/apps/renderer/src/components/ui/loading.tsx similarity index 100% rename from src/renderer/src/components/ui/loading.tsx rename to apps/renderer/src/components/ui/loading.tsx diff --git a/src/renderer/src/components/ui/markdown/Markdown.tsx b/apps/renderer/src/components/ui/markdown/Markdown.tsx similarity index 100% rename from src/renderer/src/components/ui/markdown/Markdown.tsx rename to apps/renderer/src/components/ui/markdown/Markdown.tsx diff --git a/src/renderer/src/components/ui/markdown/components/TimeStamp.tsx b/apps/renderer/src/components/ui/markdown/components/TimeStamp.tsx similarity index 100% rename from src/renderer/src/components/ui/markdown/components/TimeStamp.tsx rename to apps/renderer/src/components/ui/markdown/components/TimeStamp.tsx diff --git a/src/renderer/src/components/ui/markdown/components/Toc.tsx b/apps/renderer/src/components/ui/markdown/components/Toc.tsx similarity index 100% rename from src/renderer/src/components/ui/markdown/components/Toc.tsx rename to apps/renderer/src/components/ui/markdown/components/Toc.tsx diff --git a/src/renderer/src/components/ui/markdown/components/TocItem.tsx b/apps/renderer/src/components/ui/markdown/components/TocItem.tsx similarity index 100% rename from src/renderer/src/components/ui/markdown/components/TocItem.tsx rename to apps/renderer/src/components/ui/markdown/components/TocItem.tsx diff --git a/src/renderer/src/components/ui/markdown/context.tsx b/apps/renderer/src/components/ui/markdown/context.tsx similarity index 100% rename from src/renderer/src/components/ui/markdown/context.tsx rename to apps/renderer/src/components/ui/markdown/context.tsx diff --git a/src/renderer/src/components/ui/markdown/index.ts b/apps/renderer/src/components/ui/markdown/index.ts similarity index 100% rename from src/renderer/src/components/ui/markdown/index.ts rename to apps/renderer/src/components/ui/markdown/index.ts diff --git a/src/renderer/src/components/ui/markdown/renderers/BlockErrorBoundary.tsx b/apps/renderer/src/components/ui/markdown/renderers/BlockErrorBoundary.tsx similarity index 100% rename from src/renderer/src/components/ui/markdown/renderers/BlockErrorBoundary.tsx rename to apps/renderer/src/components/ui/markdown/renderers/BlockErrorBoundary.tsx diff --git a/src/renderer/src/components/ui/markdown/renderers/BlockImage.tsx b/apps/renderer/src/components/ui/markdown/renderers/BlockImage.tsx similarity index 100% rename from src/renderer/src/components/ui/markdown/renderers/BlockImage.tsx rename to apps/renderer/src/components/ui/markdown/renderers/BlockImage.tsx diff --git a/src/renderer/src/components/ui/markdown/renderers/Heading.tsx b/apps/renderer/src/components/ui/markdown/renderers/Heading.tsx similarity index 100% rename from src/renderer/src/components/ui/markdown/renderers/Heading.tsx rename to apps/renderer/src/components/ui/markdown/renderers/Heading.tsx diff --git a/src/renderer/src/components/ui/markdown/renderers/MarkdownLink.tsx b/apps/renderer/src/components/ui/markdown/renderers/MarkdownLink.tsx similarity index 100% rename from src/renderer/src/components/ui/markdown/renderers/MarkdownLink.tsx rename to apps/renderer/src/components/ui/markdown/renderers/MarkdownLink.tsx diff --git a/src/renderer/src/components/ui/markdown/renderers/MarkdownP.tsx b/apps/renderer/src/components/ui/markdown/renderers/MarkdownP.tsx similarity index 100% rename from src/renderer/src/components/ui/markdown/renderers/MarkdownP.tsx rename to apps/renderer/src/components/ui/markdown/renderers/MarkdownP.tsx diff --git a/src/renderer/src/components/ui/markdown/renderers/index.ts b/apps/renderer/src/components/ui/markdown/renderers/index.ts similarity index 100% rename from src/renderer/src/components/ui/markdown/renderers/index.ts rename to apps/renderer/src/components/ui/markdown/renderers/index.ts diff --git a/src/renderer/src/components/ui/markdown/utils/index.tsx b/apps/renderer/src/components/ui/markdown/utils/index.tsx similarity index 100% rename from src/renderer/src/components/ui/markdown/utils/index.tsx rename to apps/renderer/src/components/ui/markdown/utils/index.tsx diff --git a/src/renderer/src/components/ui/marquee/index.tsx b/apps/renderer/src/components/ui/marquee/index.tsx similarity index 100% rename from src/renderer/src/components/ui/marquee/index.tsx rename to apps/renderer/src/components/ui/marquee/index.tsx diff --git a/src/renderer/src/components/ui/media.tsx b/apps/renderer/src/components/ui/media.tsx similarity index 100% rename from src/renderer/src/components/ui/media.tsx rename to apps/renderer/src/components/ui/media.tsx diff --git a/src/renderer/src/components/ui/media/SwipeMedia.tsx b/apps/renderer/src/components/ui/media/SwipeMedia.tsx similarity index 98% rename from src/renderer/src/components/ui/media/SwipeMedia.tsx rename to apps/renderer/src/components/ui/media/SwipeMedia.tsx index 51e5aaf25..7cbe5851f 100644 --- a/src/renderer/src/components/ui/media/SwipeMedia.tsx +++ b/apps/renderer/src/components/ui/media/SwipeMedia.tsx @@ -2,12 +2,12 @@ import "swiper/css" import "swiper/css/navigation" import "swiper/css/scrollbar" +import type { MediaModel } from "@follow/shared/hono" import { Media } from "@renderer/components/ui/media" import { cn } from "@renderer/lib/utils" import { useHover } from "@use-gesture/react" import { uniqBy } from "lodash-es" import { useRef, useState } from "react" -import type { MediaModel } from "src/hono" import { Mousewheel, Navigation, Scrollbar } from "swiper/modules" import { Swiper, SwiperSlide } from "swiper/react" diff --git a/src/renderer/src/components/ui/media/VideoPlayer.tsx b/apps/renderer/src/components/ui/media/VideoPlayer.tsx similarity index 100% rename from src/renderer/src/components/ui/media/VideoPlayer.tsx rename to apps/renderer/src/components/ui/media/VideoPlayer.tsx diff --git a/src/renderer/src/components/ui/media/VolumeSlider.tsx b/apps/renderer/src/components/ui/media/VolumeSlider.tsx similarity index 100% rename from src/renderer/src/components/ui/media/VolumeSlider.tsx rename to apps/renderer/src/components/ui/media/VolumeSlider.tsx diff --git a/src/renderer/src/components/ui/media/hooks.tsx b/apps/renderer/src/components/ui/media/hooks.tsx similarity index 100% rename from src/renderer/src/components/ui/media/hooks.tsx rename to apps/renderer/src/components/ui/media/hooks.tsx diff --git a/src/renderer/src/components/ui/media/index.module.css b/apps/renderer/src/components/ui/media/index.module.css similarity index 100% rename from src/renderer/src/components/ui/media/index.module.css rename to apps/renderer/src/components/ui/media/index.module.css diff --git a/src/renderer/src/components/ui/media/preview-media.tsx b/apps/renderer/src/components/ui/media/preview-media.tsx similarity index 99% rename from src/renderer/src/components/ui/media/preview-media.tsx rename to apps/renderer/src/components/ui/media/preview-media.tsx index 32c6f14bb..b1439b87d 100644 --- a/src/renderer/src/components/ui/media/preview-media.tsx +++ b/apps/renderer/src/components/ui/media/preview-media.tsx @@ -1,3 +1,4 @@ +import type { MediaModel } from "@follow/shared/hono" import { m } from "@renderer/components/common/Motion" import { COPY_MAP } from "@renderer/constants" import { tipcClient } from "@renderer/lib/client" @@ -6,7 +7,6 @@ import { replaceImgUrlIfNeed } from "@renderer/lib/img-proxy" import { cn } from "@renderer/lib/utils" import type { FC } from "react" import { Fragment, useCallback, useEffect, useRef, useState } from "react" -import type { MediaModel } from "src/hono" import { Keyboard, Mousewheel } from "swiper/modules" import type { SwiperRef } from "swiper/react" import { Swiper, SwiperSlide } from "swiper/react" diff --git a/src/renderer/src/components/ui/modal/index.ts b/apps/renderer/src/components/ui/modal/index.ts similarity index 100% rename from src/renderer/src/components/ui/modal/index.ts rename to apps/renderer/src/components/ui/modal/index.ts diff --git a/src/renderer/src/components/ui/modal/inspire/PeekModal.tsx b/apps/renderer/src/components/ui/modal/inspire/PeekModal.tsx similarity index 100% rename from src/renderer/src/components/ui/modal/inspire/PeekModal.tsx rename to apps/renderer/src/components/ui/modal/inspire/PeekModal.tsx diff --git a/src/renderer/src/components/ui/modal/stacked/atom.ts b/apps/renderer/src/components/ui/modal/stacked/atom.ts similarity index 100% rename from src/renderer/src/components/ui/modal/stacked/atom.ts rename to apps/renderer/src/components/ui/modal/stacked/atom.ts diff --git a/src/renderer/src/components/ui/modal/stacked/constants.ts b/apps/renderer/src/components/ui/modal/stacked/constants.ts similarity index 100% rename from src/renderer/src/components/ui/modal/stacked/constants.ts rename to apps/renderer/src/components/ui/modal/stacked/constants.ts diff --git a/src/renderer/src/components/ui/modal/stacked/context.tsx b/apps/renderer/src/components/ui/modal/stacked/context.tsx similarity index 100% rename from src/renderer/src/components/ui/modal/stacked/context.tsx rename to apps/renderer/src/components/ui/modal/stacked/context.tsx diff --git a/src/renderer/src/components/ui/modal/stacked/declarative-modal.tsx b/apps/renderer/src/components/ui/modal/stacked/declarative-modal.tsx similarity index 100% rename from src/renderer/src/components/ui/modal/stacked/declarative-modal.tsx rename to apps/renderer/src/components/ui/modal/stacked/declarative-modal.tsx diff --git a/src/renderer/src/components/ui/modal/stacked/helper.tsx b/apps/renderer/src/components/ui/modal/stacked/helper.tsx similarity index 100% rename from src/renderer/src/components/ui/modal/stacked/helper.tsx rename to apps/renderer/src/components/ui/modal/stacked/helper.tsx diff --git a/src/renderer/src/components/ui/modal/stacked/hooks.tsx b/apps/renderer/src/components/ui/modal/stacked/hooks.tsx similarity index 100% rename from src/renderer/src/components/ui/modal/stacked/hooks.tsx rename to apps/renderer/src/components/ui/modal/stacked/hooks.tsx diff --git a/src/renderer/src/components/ui/modal/stacked/index.ts b/apps/renderer/src/components/ui/modal/stacked/index.ts similarity index 100% rename from src/renderer/src/components/ui/modal/stacked/index.ts rename to apps/renderer/src/components/ui/modal/stacked/index.ts diff --git a/src/renderer/src/components/ui/modal/stacked/modal.tsx b/apps/renderer/src/components/ui/modal/stacked/modal.tsx similarity index 100% rename from src/renderer/src/components/ui/modal/stacked/modal.tsx rename to apps/renderer/src/components/ui/modal/stacked/modal.tsx diff --git a/src/renderer/src/components/ui/modal/stacked/overlay.tsx b/apps/renderer/src/components/ui/modal/stacked/overlay.tsx similarity index 100% rename from src/renderer/src/components/ui/modal/stacked/overlay.tsx rename to apps/renderer/src/components/ui/modal/stacked/overlay.tsx diff --git a/src/renderer/src/components/ui/modal/stacked/provider.tsx b/apps/renderer/src/components/ui/modal/stacked/provider.tsx similarity index 100% rename from src/renderer/src/components/ui/modal/stacked/provider.tsx rename to apps/renderer/src/components/ui/modal/stacked/provider.tsx diff --git a/src/renderer/src/components/ui/modal/stacked/types.tsx b/apps/renderer/src/components/ui/modal/stacked/types.tsx similarity index 100% rename from src/renderer/src/components/ui/modal/stacked/types.tsx rename to apps/renderer/src/components/ui/modal/stacked/types.tsx diff --git a/src/renderer/src/components/ui/modal/stacked/utils.ts b/apps/renderer/src/components/ui/modal/stacked/utils.ts similarity index 100% rename from src/renderer/src/components/ui/modal/stacked/utils.ts rename to apps/renderer/src/components/ui/modal/stacked/utils.ts diff --git a/src/renderer/src/components/ui/paper/Paper.tsx b/apps/renderer/src/components/ui/paper/Paper.tsx similarity index 100% rename from src/renderer/src/components/ui/paper/Paper.tsx rename to apps/renderer/src/components/ui/paper/Paper.tsx diff --git a/src/renderer/src/components/ui/paper/index.ts b/apps/renderer/src/components/ui/paper/index.ts similarity index 100% rename from src/renderer/src/components/ui/paper/index.ts rename to apps/renderer/src/components/ui/paper/index.ts diff --git a/src/renderer/src/components/ui/placeholder.tsx b/apps/renderer/src/components/ui/placeholder.tsx similarity index 100% rename from src/renderer/src/components/ui/placeholder.tsx rename to apps/renderer/src/components/ui/placeholder.tsx diff --git a/src/renderer/src/components/ui/platform-icon/collections/eagle.tsx b/apps/renderer/src/components/ui/platform-icon/collections/eagle.tsx similarity index 100% rename from src/renderer/src/components/ui/platform-icon/collections/eagle.tsx rename to apps/renderer/src/components/ui/platform-icon/collections/eagle.tsx diff --git a/src/renderer/src/components/ui/platform-icon/collections/instapaper.tsx b/apps/renderer/src/components/ui/platform-icon/collections/instapaper.tsx similarity index 100% rename from src/renderer/src/components/ui/platform-icon/collections/instapaper.tsx rename to apps/renderer/src/components/ui/platform-icon/collections/instapaper.tsx diff --git a/src/renderer/src/components/ui/platform-icon/collections/readwise.tsx b/apps/renderer/src/components/ui/platform-icon/collections/readwise.tsx similarity index 100% rename from src/renderer/src/components/ui/platform-icon/collections/readwise.tsx rename to apps/renderer/src/components/ui/platform-icon/collections/readwise.tsx diff --git a/src/renderer/src/components/ui/platform-icon/collections/rss3.tsx b/apps/renderer/src/components/ui/platform-icon/collections/rss3.tsx similarity index 100% rename from src/renderer/src/components/ui/platform-icon/collections/rss3.tsx rename to apps/renderer/src/components/ui/platform-icon/collections/rss3.tsx diff --git a/src/renderer/src/components/ui/platform-icon/icons.ts b/apps/renderer/src/components/ui/platform-icon/icons.ts similarity index 100% rename from src/renderer/src/components/ui/platform-icon/icons.ts rename to apps/renderer/src/components/ui/platform-icon/icons.ts diff --git a/src/renderer/src/components/ui/platform-icon/index.tsx b/apps/renderer/src/components/ui/platform-icon/index.tsx similarity index 100% rename from src/renderer/src/components/ui/platform-icon/index.tsx rename to apps/renderer/src/components/ui/platform-icon/index.tsx diff --git a/src/renderer/src/components/ui/platform-icon/utils.tsx b/apps/renderer/src/components/ui/platform-icon/utils.tsx similarity index 100% rename from src/renderer/src/components/ui/platform-icon/utils.tsx rename to apps/renderer/src/components/ui/platform-icon/utils.tsx diff --git a/src/renderer/src/components/ui/popover/index.module.css b/apps/renderer/src/components/ui/popover/index.module.css similarity index 100% rename from src/renderer/src/components/ui/popover/index.module.css rename to apps/renderer/src/components/ui/popover/index.module.css diff --git a/src/renderer/src/components/ui/popover/index.tsx b/apps/renderer/src/components/ui/popover/index.tsx similarity index 100% rename from src/renderer/src/components/ui/popover/index.tsx rename to apps/renderer/src/components/ui/popover/index.tsx diff --git a/src/renderer/src/components/ui/portal/index.tsx b/apps/renderer/src/components/ui/portal/index.tsx similarity index 100% rename from src/renderer/src/components/ui/portal/index.tsx rename to apps/renderer/src/components/ui/portal/index.tsx diff --git a/src/renderer/src/components/ui/portal/provider.tsx b/apps/renderer/src/components/ui/portal/provider.tsx similarity index 100% rename from src/renderer/src/components/ui/portal/provider.tsx rename to apps/renderer/src/components/ui/portal/provider.tsx diff --git a/src/renderer/src/components/ui/radio-group/Radio.tsx b/apps/renderer/src/components/ui/radio-group/Radio.tsx similarity index 100% rename from src/renderer/src/components/ui/radio-group/Radio.tsx rename to apps/renderer/src/components/ui/radio-group/Radio.tsx diff --git a/src/renderer/src/components/ui/radio-group/RadioCard.tsx b/apps/renderer/src/components/ui/radio-group/RadioCard.tsx similarity index 100% rename from src/renderer/src/components/ui/radio-group/RadioCard.tsx rename to apps/renderer/src/components/ui/radio-group/RadioCard.tsx diff --git a/src/renderer/src/components/ui/radio-group/RadioGroup.tsx b/apps/renderer/src/components/ui/radio-group/RadioGroup.tsx similarity index 100% rename from src/renderer/src/components/ui/radio-group/RadioGroup.tsx rename to apps/renderer/src/components/ui/radio-group/RadioGroup.tsx diff --git a/src/renderer/src/components/ui/radio-group/context.ts b/apps/renderer/src/components/ui/radio-group/context.ts similarity index 100% rename from src/renderer/src/components/ui/radio-group/context.ts rename to apps/renderer/src/components/ui/radio-group/context.ts diff --git a/src/renderer/src/components/ui/radio-group/index.ts b/apps/renderer/src/components/ui/radio-group/index.ts similarity index 100% rename from src/renderer/src/components/ui/radio-group/index.ts rename to apps/renderer/src/components/ui/radio-group/index.ts diff --git a/src/renderer/src/components/ui/scroll-area/ScrollArea.tsx b/apps/renderer/src/components/ui/scroll-area/ScrollArea.tsx similarity index 100% rename from src/renderer/src/components/ui/scroll-area/ScrollArea.tsx rename to apps/renderer/src/components/ui/scroll-area/ScrollArea.tsx diff --git a/src/renderer/src/components/ui/scroll-area/ctx.ts b/apps/renderer/src/components/ui/scroll-area/ctx.ts similarity index 100% rename from src/renderer/src/components/ui/scroll-area/ctx.ts rename to apps/renderer/src/components/ui/scroll-area/ctx.ts diff --git a/src/renderer/src/components/ui/scroll-area/hooks.ts b/apps/renderer/src/components/ui/scroll-area/hooks.ts similarity index 100% rename from src/renderer/src/components/ui/scroll-area/hooks.ts rename to apps/renderer/src/components/ui/scroll-area/hooks.ts diff --git a/src/renderer/src/components/ui/scroll-area/index.module.css b/apps/renderer/src/components/ui/scroll-area/index.module.css similarity index 100% rename from src/renderer/src/components/ui/scroll-area/index.module.css rename to apps/renderer/src/components/ui/scroll-area/index.module.css diff --git a/src/renderer/src/components/ui/scroll-area/index.ts b/apps/renderer/src/components/ui/scroll-area/index.ts similarity index 100% rename from src/renderer/src/components/ui/scroll-area/index.ts rename to apps/renderer/src/components/ui/scroll-area/index.ts diff --git a/src/renderer/src/components/ui/segement/ctx.tsx b/apps/renderer/src/components/ui/segement/ctx.tsx similarity index 100% rename from src/renderer/src/components/ui/segement/ctx.tsx rename to apps/renderer/src/components/ui/segement/ctx.tsx diff --git a/src/renderer/src/components/ui/segement/index.tsx b/apps/renderer/src/components/ui/segement/index.tsx similarity index 100% rename from src/renderer/src/components/ui/segement/index.tsx rename to apps/renderer/src/components/ui/segement/index.tsx diff --git a/src/renderer/src/components/ui/select.tsx b/apps/renderer/src/components/ui/select.tsx similarity index 100% rename from src/renderer/src/components/ui/select.tsx rename to apps/renderer/src/components/ui/select.tsx diff --git a/src/renderer/src/components/ui/skeleton.tsx b/apps/renderer/src/components/ui/skeleton.tsx similarity index 100% rename from src/renderer/src/components/ui/skeleton.tsx rename to apps/renderer/src/components/ui/skeleton.tsx diff --git a/src/renderer/src/components/ui/sonner.tsx b/apps/renderer/src/components/ui/sonner.tsx similarity index 100% rename from src/renderer/src/components/ui/sonner.tsx rename to apps/renderer/src/components/ui/sonner.tsx diff --git a/src/renderer/src/components/ui/switch.tsx b/apps/renderer/src/components/ui/switch.tsx similarity index 100% rename from src/renderer/src/components/ui/switch.tsx rename to apps/renderer/src/components/ui/switch.tsx diff --git a/src/renderer/src/components/ui/table/index.tsx b/apps/renderer/src/components/ui/table/index.tsx similarity index 100% rename from src/renderer/src/components/ui/table/index.tsx rename to apps/renderer/src/components/ui/table/index.tsx diff --git a/src/renderer/src/components/ui/table/variants.tsx b/apps/renderer/src/components/ui/table/variants.tsx similarity index 100% rename from src/renderer/src/components/ui/table/variants.tsx rename to apps/renderer/src/components/ui/table/variants.tsx diff --git a/src/renderer/src/components/ui/tabs.tsx b/apps/renderer/src/components/ui/tabs.tsx similarity index 100% rename from src/renderer/src/components/ui/tabs.tsx rename to apps/renderer/src/components/ui/tabs.tsx diff --git a/src/renderer/src/components/ui/tooltip/index.tsx b/apps/renderer/src/components/ui/tooltip/index.tsx similarity index 100% rename from src/renderer/src/components/ui/tooltip/index.tsx rename to apps/renderer/src/components/ui/tooltip/index.tsx diff --git a/src/renderer/src/components/ui/tooltip/styles.ts b/apps/renderer/src/components/ui/tooltip/styles.ts similarity index 100% rename from src/renderer/src/components/ui/tooltip/styles.ts rename to apps/renderer/src/components/ui/tooltip/styles.ts diff --git a/src/renderer/src/components/ui/typography/EllipsisWithTooltip.tsx b/apps/renderer/src/components/ui/typography/EllipsisWithTooltip.tsx similarity index 100% rename from src/renderer/src/components/ui/typography/EllipsisWithTooltip.tsx rename to apps/renderer/src/components/ui/typography/EllipsisWithTooltip.tsx diff --git a/src/renderer/src/components/ui/typography/index.ts b/apps/renderer/src/components/ui/typography/index.ts similarity index 100% rename from src/renderer/src/components/ui/typography/index.ts rename to apps/renderer/src/components/ui/typography/index.ts diff --git a/src/renderer/src/components/user-button.tsx b/apps/renderer/src/components/user-button.tsx similarity index 100% rename from src/renderer/src/components/user-button.tsx rename to apps/renderer/src/components/user-button.tsx diff --git a/src/renderer/src/components/ux/transition/icon.tsx b/apps/renderer/src/components/ux/transition/icon.tsx similarity index 100% rename from src/renderer/src/components/ux/transition/icon.tsx rename to apps/renderer/src/components/ux/transition/icon.tsx diff --git a/src/renderer/src/components/view-select-content.tsx b/apps/renderer/src/components/view-select-content.tsx similarity index 100% rename from src/renderer/src/components/view-select-content.tsx rename to apps/renderer/src/components/view-select-content.tsx diff --git a/src/renderer/src/configs.ts b/apps/renderer/src/configs.ts similarity index 97% rename from src/renderer/src/configs.ts rename to apps/renderer/src/configs.ts index 95bd36017..8c2e12064 100644 --- a/src/renderer/src/configs.ts +++ b/apps/renderer/src/configs.ts @@ -1,4 +1,4 @@ -import { env } from "@env" +import { env } from "@follow/shared/env" import type { BrowserOptions } from "@sentry/react" import { FetchError } from "ofetch" diff --git a/src/renderer/src/constants/app.tsx b/apps/renderer/src/constants/app.tsx similarity index 100% rename from src/renderer/src/constants/app.tsx rename to apps/renderer/src/constants/app.tsx diff --git a/src/renderer/src/constants/copy.ts b/apps/renderer/src/constants/copy.ts similarity index 100% rename from src/renderer/src/constants/copy.ts rename to apps/renderer/src/constants/copy.ts diff --git a/src/renderer/src/constants/environment.ts b/apps/renderer/src/constants/environment.ts similarity index 100% rename from src/renderer/src/constants/environment.ts rename to apps/renderer/src/constants/environment.ts diff --git a/src/renderer/src/constants/hotkeys.ts b/apps/renderer/src/constants/hotkeys.ts similarity index 100% rename from src/renderer/src/constants/hotkeys.ts rename to apps/renderer/src/constants/hotkeys.ts diff --git a/src/renderer/src/constants/index.ts b/apps/renderer/src/constants/index.ts similarity index 100% rename from src/renderer/src/constants/index.ts rename to apps/renderer/src/constants/index.ts diff --git a/src/renderer/src/constants/shortcuts.ts b/apps/renderer/src/constants/shortcuts.ts similarity index 100% rename from src/renderer/src/constants/shortcuts.ts rename to apps/renderer/src/constants/shortcuts.ts diff --git a/src/renderer/src/constants/social.ts b/apps/renderer/src/constants/social.ts similarity index 100% rename from src/renderer/src/constants/social.ts rename to apps/renderer/src/constants/social.ts diff --git a/src/renderer/src/constants/tabs.tsx b/apps/renderer/src/constants/tabs.tsx similarity index 100% rename from src/renderer/src/constants/tabs.tsx rename to apps/renderer/src/constants/tabs.tsx diff --git a/src/renderer/src/constants/ui.ts b/apps/renderer/src/constants/ui.ts similarity index 100% rename from src/renderer/src/constants/ui.ts rename to apps/renderer/src/constants/ui.ts diff --git a/src/renderer/src/database/constants.ts b/apps/renderer/src/database/constants.ts similarity index 100% rename from src/renderer/src/database/constants.ts rename to apps/renderer/src/database/constants.ts diff --git a/src/renderer/src/database/db.ts b/apps/renderer/src/database/db.ts similarity index 100% rename from src/renderer/src/database/db.ts rename to apps/renderer/src/database/db.ts diff --git a/src/renderer/src/database/db_schema.ts b/apps/renderer/src/database/db_schema.ts similarity index 100% rename from src/renderer/src/database/db_schema.ts rename to apps/renderer/src/database/db_schema.ts diff --git a/apps/renderer/src/database/global.d.ts b/apps/renderer/src/database/global.d.ts new file mode 100644 index 000000000..ade209fd0 --- /dev/null +++ b/apps/renderer/src/database/global.d.ts @@ -0,0 +1,13 @@ +declare global { + // This flag controls write data in indexedDB, if it's false, pass data insert to db + // When app not ready, it's false, after hydrate data, it's true + // Or set is false when disable indexedDB in setting + + export let __dbIsReady: boolean + + interface Window { + __dbIsReady: boolean + } +} + +export {} diff --git a/src/renderer/src/database/index.ts b/apps/renderer/src/database/index.ts similarity index 100% rename from src/renderer/src/database/index.ts rename to apps/renderer/src/database/index.ts diff --git a/src/renderer/src/database/schemas/base.ts b/apps/renderer/src/database/schemas/base.ts similarity index 100% rename from src/renderer/src/database/schemas/base.ts rename to apps/renderer/src/database/schemas/base.ts diff --git a/src/renderer/src/database/schemas/cleaner.ts b/apps/renderer/src/database/schemas/cleaner.ts similarity index 100% rename from src/renderer/src/database/schemas/cleaner.ts rename to apps/renderer/src/database/schemas/cleaner.ts diff --git a/src/renderer/src/database/schemas/entry.ts b/apps/renderer/src/database/schemas/entry.ts similarity index 100% rename from src/renderer/src/database/schemas/entry.ts rename to apps/renderer/src/database/schemas/entry.ts diff --git a/src/renderer/src/database/schemas/feed.ts b/apps/renderer/src/database/schemas/feed.ts similarity index 100% rename from src/renderer/src/database/schemas/feed.ts rename to apps/renderer/src/database/schemas/feed.ts diff --git a/src/renderer/src/database/schemas/index.ts b/apps/renderer/src/database/schemas/index.ts similarity index 100% rename from src/renderer/src/database/schemas/index.ts rename to apps/renderer/src/database/schemas/index.ts diff --git a/src/renderer/src/database/schemas/subscription.ts b/apps/renderer/src/database/schemas/subscription.ts similarity index 100% rename from src/renderer/src/database/schemas/subscription.ts rename to apps/renderer/src/database/schemas/subscription.ts diff --git a/apps/renderer/src/env.d.ts b/apps/renderer/src/env.d.ts new file mode 100644 index 000000000..06142aad0 --- /dev/null +++ b/apps/renderer/src/env.d.ts @@ -0,0 +1,5 @@ +/// +declare const APP_VERSION: string +declare const APP_NAME: string +declare const RELEASE_CHANNEL: string +declare const I18N_COMPLETENESS_MAP: Record diff --git a/src/renderer/src/framer-lazy-feature.ts b/apps/renderer/src/framer-lazy-feature.ts similarity index 100% rename from src/renderer/src/framer-lazy-feature.ts rename to apps/renderer/src/framer-lazy-feature.ts diff --git a/apps/renderer/src/global.d.ts b/apps/renderer/src/global.d.ts new file mode 100644 index 000000000..5f7b127b1 --- /dev/null +++ b/apps/renderer/src/global.d.ts @@ -0,0 +1,47 @@ +import type { FC, PropsWithChildren } from "react" +import type { useTranslation } from "react-i18next" +// eslint-disable-next-line react-hooks/rules-of-hooks, unused-imports/no-unused-vars +const { t } = useTranslation() +// eslint-disable-next-line react-hooks/rules-of-hooks, unused-imports/no-unused-vars +const { t: settingsT } = useTranslation("settings") +declare global { + export type Component

= FC + + export type ComponentType

= { + className?: string + } & PropsWithChildren & + P + export type Nullable = T | null | undefined + + // BIZ ID + export type Id = string + export type FeedId = Id + export type EntryId = Id + + export const SENTRY_RELEASE: { id: string } + export const APP_DEV_CWD: string + export const GIT_COMMIT_SHA: string + export const DEBUG: boolean + export const ELECTRON: boolean + export interface Window { + SENTRY_RELEASE: typeof SENTRY_RELEASE + } + + export const FEATURES: { + WINDOW_UNDER_BLUR: boolean + } + + /** + * This function is a macro, will replace in the build stage. + */ + export function tw(strings: TemplateStringsArray, ...values: any[]): string + + export type I18nKeys = OmitStringType[0]> + export type I18nKeysForSettings = OmitStringType[0]> + + type IsLiteralString = T extends string ? (string extends T ? never : T) : never + + type OmitStringType = T extends any[] ? OmitStringType : IsLiteralString +} + +export {} diff --git a/src/renderer/src/hooks/biz/useAsRead.ts b/apps/renderer/src/hooks/biz/useAsRead.ts similarity index 100% rename from src/renderer/src/hooks/biz/useAsRead.ts rename to apps/renderer/src/hooks/biz/useAsRead.ts diff --git a/src/renderer/src/hooks/biz/useDailyTask.ts b/apps/renderer/src/hooks/biz/useDailyTask.ts similarity index 100% rename from src/renderer/src/hooks/biz/useDailyTask.ts rename to apps/renderer/src/hooks/biz/useDailyTask.ts diff --git a/src/renderer/src/hooks/biz/useEntryActions.tsx b/apps/renderer/src/hooks/biz/useEntryActions.tsx similarity index 100% rename from src/renderer/src/hooks/biz/useEntryActions.tsx rename to apps/renderer/src/hooks/biz/useEntryActions.tsx diff --git a/src/renderer/src/hooks/biz/useFeedActions.tsx b/apps/renderer/src/hooks/biz/useFeedActions.tsx similarity index 98% rename from src/renderer/src/hooks/biz/useFeedActions.tsx rename to apps/renderer/src/hooks/biz/useFeedActions.tsx index 5051141a6..028a2a5a3 100644 --- a/src/renderer/src/hooks/biz/useFeedActions.tsx +++ b/apps/renderer/src/hooks/biz/useFeedActions.tsx @@ -1,3 +1,4 @@ +import { WEB_URL } from "@follow/shared/constants" import { whoami } from "@renderer/atoms/user" import { useModalStack } from "@renderer/components/ui/modal" import type { NativeMenuItem } from "@renderer/lib/native-menu" @@ -5,7 +6,6 @@ import { useFeedClaimModal } from "@renderer/modules/claim" import { FeedForm } from "@renderer/modules/discover/feed-form" import { getFeedById, useFeedById } from "@renderer/store/feed" import { subscriptionActions, useSubscriptionByFeedId } from "@renderer/store/subscription" -import { WEB_URL } from "@shared/constants" import { useMemo } from "react" import { useTranslation } from "react-i18next" diff --git a/src/renderer/src/hooks/biz/useFeedFormModal.tsx b/apps/renderer/src/hooks/biz/useFeedFormModal.tsx similarity index 92% rename from src/renderer/src/hooks/biz/useFeedFormModal.tsx rename to apps/renderer/src/hooks/biz/useFeedFormModal.tsx index 50deedfa4..3a25fda18 100644 --- a/src/renderer/src/hooks/biz/useFeedFormModal.tsx +++ b/apps/renderer/src/hooks/biz/useFeedFormModal.tsx @@ -1,7 +1,7 @@ +import { DEEPLINK_SCHEME } from "@follow/shared/constants" import { useWhoami } from "@renderer/atoms/user" import { useModalStack } from "@renderer/components/ui/modal" import { FeedForm } from "@renderer/modules/discover/feed-form" -import { DEEPLINK_SCHEME } from "@shared/constants" import { useCallback } from "react" import { useI18n } from "../common" diff --git a/src/renderer/src/hooks/biz/useNavigateEntry.ts b/apps/renderer/src/hooks/biz/useNavigateEntry.ts similarity index 100% rename from src/renderer/src/hooks/biz/useNavigateEntry.ts rename to apps/renderer/src/hooks/biz/useNavigateEntry.ts diff --git a/src/renderer/src/hooks/biz/useReduceMotion.ts b/apps/renderer/src/hooks/biz/useReduceMotion.ts similarity index 100% rename from src/renderer/src/hooks/biz/useReduceMotion.ts rename to apps/renderer/src/hooks/biz/useReduceMotion.ts diff --git a/src/renderer/src/hooks/biz/useRouteParams.ts b/apps/renderer/src/hooks/biz/useRouteParams.ts similarity index 100% rename from src/renderer/src/hooks/biz/useRouteParams.ts rename to apps/renderer/src/hooks/biz/useRouteParams.ts diff --git a/src/renderer/src/hooks/biz/useSignOut.ts b/apps/renderer/src/hooks/biz/useSignOut.ts similarity index 100% rename from src/renderer/src/hooks/biz/useSignOut.ts rename to apps/renderer/src/hooks/biz/useSignOut.ts diff --git a/src/renderer/src/hooks/biz/useSubscriptionActions.tsx b/apps/renderer/src/hooks/biz/useSubscriptionActions.tsx similarity index 100% rename from src/renderer/src/hooks/biz/useSubscriptionActions.tsx rename to apps/renderer/src/hooks/biz/useSubscriptionActions.tsx diff --git a/src/renderer/src/hooks/common/factory/createHTMLMediaHook.ts b/apps/renderer/src/hooks/common/factory/createHTMLMediaHook.ts similarity index 100% rename from src/renderer/src/hooks/common/factory/createHTMLMediaHook.ts rename to apps/renderer/src/hooks/common/factory/createHTMLMediaHook.ts diff --git a/src/renderer/src/hooks/common/index.ts b/apps/renderer/src/hooks/common/index.ts similarity index 100% rename from src/renderer/src/hooks/common/index.ts rename to apps/renderer/src/hooks/common/index.ts diff --git a/src/renderer/src/hooks/common/useBizQuery.ts b/apps/renderer/src/hooks/common/useBizQuery.ts similarity index 100% rename from src/renderer/src/hooks/common/useBizQuery.ts rename to apps/renderer/src/hooks/common/useBizQuery.ts diff --git a/src/renderer/src/hooks/common/useDark.ts b/apps/renderer/src/hooks/common/useDark.ts similarity index 100% rename from src/renderer/src/hooks/common/useDark.ts rename to apps/renderer/src/hooks/common/useDark.ts diff --git a/src/renderer/src/hooks/common/useI18n.ts b/apps/renderer/src/hooks/common/useI18n.ts similarity index 100% rename from src/renderer/src/hooks/common/useI18n.ts rename to apps/renderer/src/hooks/common/useI18n.ts diff --git a/src/renderer/src/hooks/common/useInputComposition.ts b/apps/renderer/src/hooks/common/useInputComposition.ts similarity index 100% rename from src/renderer/src/hooks/common/useInputComposition.ts rename to apps/renderer/src/hooks/common/useInputComposition.ts diff --git a/src/renderer/src/hooks/common/useInterval.ts b/apps/renderer/src/hooks/common/useInterval.ts similarity index 100% rename from src/renderer/src/hooks/common/useInterval.ts rename to apps/renderer/src/hooks/common/useInterval.ts diff --git a/src/renderer/src/hooks/common/useIsOnline.ts b/apps/renderer/src/hooks/common/useIsOnline.ts similarity index 100% rename from src/renderer/src/hooks/common/useIsOnline.ts rename to apps/renderer/src/hooks/common/useIsOnline.ts diff --git a/src/renderer/src/hooks/common/useMeasure.ts b/apps/renderer/src/hooks/common/useMeasure.ts similarity index 100% rename from src/renderer/src/hooks/common/useMeasure.ts rename to apps/renderer/src/hooks/common/useMeasure.ts diff --git a/src/renderer/src/hooks/common/usePageVisibility.ts b/apps/renderer/src/hooks/common/usePageVisibility.ts similarity index 100% rename from src/renderer/src/hooks/common/usePageVisibility.ts rename to apps/renderer/src/hooks/common/usePageVisibility.ts diff --git a/src/renderer/src/hooks/common/usePrevious.ts b/apps/renderer/src/hooks/common/usePrevious.ts similarity index 100% rename from src/renderer/src/hooks/common/usePrevious.ts rename to apps/renderer/src/hooks/common/usePrevious.ts diff --git a/src/renderer/src/hooks/common/useRefValue.ts b/apps/renderer/src/hooks/common/useRefValue.ts similarity index 100% rename from src/renderer/src/hooks/common/useRefValue.ts rename to apps/renderer/src/hooks/common/useRefValue.ts diff --git a/src/renderer/src/hooks/common/useSetState.ts b/apps/renderer/src/hooks/common/useSetState.ts similarity index 100% rename from src/renderer/src/hooks/common/useSetState.ts rename to apps/renderer/src/hooks/common/useSetState.ts diff --git a/src/renderer/src/hooks/common/useSwitchHotkeyScope.ts b/apps/renderer/src/hooks/common/useSwitchHotkeyScope.ts similarity index 100% rename from src/renderer/src/hooks/common/useSwitchHotkeyScope.ts rename to apps/renderer/src/hooks/common/useSwitchHotkeyScope.ts diff --git a/src/renderer/src/hooks/common/useTitle.ts b/apps/renderer/src/hooks/common/useTitle.ts similarity index 100% rename from src/renderer/src/hooks/common/useTitle.ts rename to apps/renderer/src/hooks/common/useTitle.ts diff --git a/src/renderer/src/hooks/common/useTypescriptHappyCallback.ts b/apps/renderer/src/hooks/common/useTypescriptHappyCallback.ts similarity index 100% rename from src/renderer/src/hooks/common/useTypescriptHappyCallback.ts rename to apps/renderer/src/hooks/common/useTypescriptHappyCallback.ts diff --git a/src/renderer/src/hooks/common/useVideo.ts b/apps/renderer/src/hooks/common/useVideo.ts similarity index 100% rename from src/renderer/src/hooks/common/useVideo.ts rename to apps/renderer/src/hooks/common/useVideo.ts diff --git a/src/renderer/src/i18n.ts b/apps/renderer/src/i18n.ts similarity index 100% rename from src/renderer/src/i18n.ts rename to apps/renderer/src/i18n.ts diff --git a/src/renderer/src/initialize/helper.ts b/apps/renderer/src/initialize/helper.ts similarity index 100% rename from src/renderer/src/initialize/helper.ts rename to apps/renderer/src/initialize/helper.ts diff --git a/src/renderer/src/initialize/hydrate.ts b/apps/renderer/src/initialize/hydrate.ts similarity index 100% rename from src/renderer/src/initialize/hydrate.ts rename to apps/renderer/src/initialize/hydrate.ts diff --git a/src/renderer/src/initialize/index.ts b/apps/renderer/src/initialize/index.ts similarity index 91% rename from src/renderer/src/initialize/index.ts rename to apps/renderer/src/initialize/index.ts index 8cd384d03..197cb8c70 100644 --- a/src/renderer/src/initialize/index.ts +++ b/apps/renderer/src/initialize/index.ts @@ -1,3 +1,6 @@ +import { registerGlobalContext } from "@follow/shared/bridge" +import { env } from "@follow/shared/env" +import { authConfigManager } from "@hono/auth-js/react" import { repository } from "@pkg" import { getUISettings } from "@renderer/atoms/settings/ui" import { isElectronBuild } from "@renderer/constants" @@ -9,7 +12,6 @@ import { ElectronShowEvent, } from "@renderer/providers/invalidate-query-provider" import { CleanerService } from "@renderer/services/cleaner" -import { registerGlobalContext } from "@shared/bridge" import dayjs from "dayjs" import duration from "dayjs/plugin/duration" import localizedFormat from "dayjs/plugin/localizedFormat" @@ -48,6 +50,12 @@ export const initializeApp = async () => { window.version = APP_VERSION const now = Date.now() + // Initialize the auth config first + authConfigManager.setConfig({ + baseUrl: env.VITE_API_URL, + basePath: "/auth", + credentials: "include", + }) // Set Environment document.documentElement.dataset.buildType = isElectronBuild ? "electron" : "web" diff --git a/src/renderer/src/initialize/migrates/index.ts b/apps/renderer/src/initialize/migrates/index.ts similarity index 100% rename from src/renderer/src/initialize/migrates/index.ts rename to apps/renderer/src/initialize/migrates/index.ts diff --git a/src/renderer/src/initialize/posthog.ts b/apps/renderer/src/initialize/posthog.ts similarity index 96% rename from src/renderer/src/initialize/posthog.ts rename to apps/renderer/src/initialize/posthog.ts index 141bdd731..9b78786d2 100644 --- a/src/renderer/src/initialize/posthog.ts +++ b/apps/renderer/src/initialize/posthog.ts @@ -1,4 +1,4 @@ -import { env } from "@env" +import { env } from "@follow/shared/env" import { whoami } from "@renderer/atoms/user" import type { CaptureOptions, Properties } from "posthog-js" diff --git a/src/renderer/src/initialize/queue.ts b/apps/renderer/src/initialize/queue.ts similarity index 100% rename from src/renderer/src/initialize/queue.ts rename to apps/renderer/src/initialize/queue.ts diff --git a/src/renderer/src/initialize/sentry.ts b/apps/renderer/src/initialize/sentry.ts similarity index 97% rename from src/renderer/src/initialize/sentry.ts rename to apps/renderer/src/initialize/sentry.ts index 8eec22685..1bf0a5123 100644 --- a/src/renderer/src/initialize/sentry.ts +++ b/apps/renderer/src/initialize/sentry.ts @@ -1,4 +1,4 @@ -import { env } from "@env" +import { env } from "@follow/shared/env" import { version } from "@pkg" import { whoami } from "@renderer/atoms/user" import { useEffect } from "react" diff --git a/src/renderer/src/lib/api-fetch.ts b/apps/renderer/src/lib/api-fetch.ts similarity index 96% rename from src/renderer/src/lib/api-fetch.ts rename to apps/renderer/src/lib/api-fetch.ts index c8ce2e9fc..154561e1a 100644 --- a/src/renderer/src/lib/api-fetch.ts +++ b/apps/renderer/src/lib/api-fetch.ts @@ -1,11 +1,11 @@ -import { env } from "@env" +import { env } from "@follow/shared/env" +import type { AppType } from "@follow/shared/hono" import { getCsrfToken } from "@hono/auth-js/react" import PKG from "@pkg" import { NetworkStatus, setApiStatus } from "@renderer/atoms/network" import { setLoginModalShow } from "@renderer/atoms/user" import { hc } from "hono/client" import { FetchError, ofetch } from "ofetch" -import type { AppType } from "src/hono" let csrfTokenPromise: Promise | null = null export const apiFetch = ofetch.create({ diff --git a/src/renderer/src/lib/auth.ts b/apps/renderer/src/lib/auth.ts similarity index 89% rename from src/renderer/src/lib/auth.ts rename to apps/renderer/src/lib/auth.ts index c7603b072..4308652a0 100644 --- a/src/renderer/src/lib/auth.ts +++ b/apps/renderer/src/lib/auth.ts @@ -1,5 +1,5 @@ +import { WEB_URL } from "@follow/shared/constants" import { signIn } from "@hono/auth-js/react" -import { WEB_URL } from "@shared/constants" export const LOGIN_CALLBACK_URL = `${WEB_URL}/redirect?app=follow` export type LoginRuntime = "browser" | "app" diff --git a/src/renderer/src/lib/client.ts b/apps/renderer/src/lib/client.ts similarity index 78% rename from src/renderer/src/lib/client.ts rename to apps/renderer/src/lib/client.ts index dc9f190f5..244006754 100644 --- a/src/renderer/src/lib/client.ts +++ b/apps/renderer/src/lib/client.ts @@ -1,5 +1,5 @@ import { createClient } from "@egoist/tipc/renderer" -import type { Router } from "@main/tipc" +import type { Router } from "@follow/electron-main" export const tipcClient = window.electron ? createClient({ diff --git a/src/renderer/src/lib/color.ts b/apps/renderer/src/lib/color.ts similarity index 100% rename from src/renderer/src/lib/color.ts rename to apps/renderer/src/lib/color.ts diff --git a/src/renderer/src/lib/defineQuery.ts b/apps/renderer/src/lib/defineQuery.ts similarity index 100% rename from src/renderer/src/lib/defineQuery.ts rename to apps/renderer/src/lib/defineQuery.ts diff --git a/src/renderer/src/lib/dev.tsx b/apps/renderer/src/lib/dev.tsx similarity index 100% rename from src/renderer/src/lib/dev.tsx rename to apps/renderer/src/lib/dev.tsx diff --git a/src/renderer/src/lib/dom.ts b/apps/renderer/src/lib/dom.ts similarity index 100% rename from src/renderer/src/lib/dom.ts rename to apps/renderer/src/lib/dom.ts diff --git a/src/renderer/src/lib/enum.ts b/apps/renderer/src/lib/enum.ts similarity index 100% rename from src/renderer/src/lib/enum.ts rename to apps/renderer/src/lib/enum.ts diff --git a/src/renderer/src/lib/error-parser.ts b/apps/renderer/src/lib/error-parser.ts similarity index 100% rename from src/renderer/src/lib/error-parser.ts rename to apps/renderer/src/lib/error-parser.ts diff --git a/src/renderer/src/lib/event-bus.ts b/apps/renderer/src/lib/event-bus.ts similarity index 100% rename from src/renderer/src/lib/event-bus.ts rename to apps/renderer/src/lib/event-bus.ts diff --git a/src/renderer/src/lib/img-proxy.ts b/apps/renderer/src/lib/img-proxy.ts similarity index 80% rename from src/renderer/src/lib/img-proxy.ts rename to apps/renderer/src/lib/img-proxy.ts index 8b74143cb..91a5428bd 100644 --- a/src/renderer/src/lib/img-proxy.ts +++ b/apps/renderer/src/lib/img-proxy.ts @@ -1,5 +1,5 @@ -import { env } from "@env" -import { imageRefererMatches } from "@shared/image" +import { env } from "@follow/shared/env" +import { imageRefererMatches } from "@follow/shared/image" export const getImageProxyUrl = ({ url, diff --git a/src/renderer/src/lib/issues.ts b/apps/renderer/src/lib/issues.ts similarity index 100% rename from src/renderer/src/lib/issues.ts rename to apps/renderer/src/lib/issues.ts diff --git a/src/renderer/src/lib/jotai.ts b/apps/renderer/src/lib/jotai.ts similarity index 100% rename from src/renderer/src/lib/jotai.ts rename to apps/renderer/src/lib/jotai.ts diff --git a/src/renderer/src/lib/link-parser.ts b/apps/renderer/src/lib/link-parser.ts similarity index 100% rename from src/renderer/src/lib/link-parser.ts rename to apps/renderer/src/lib/link-parser.ts diff --git a/src/renderer/src/lib/load-language.ts b/apps/renderer/src/lib/load-language.ts similarity index 100% rename from src/renderer/src/lib/load-language.ts rename to apps/renderer/src/lib/load-language.ts diff --git a/src/renderer/src/lib/log.ts b/apps/renderer/src/lib/log.ts similarity index 100% rename from src/renderer/src/lib/log.ts rename to apps/renderer/src/lib/log.ts diff --git a/src/renderer/src/lib/native-menu.ts b/apps/renderer/src/lib/native-menu.ts similarity index 100% rename from src/renderer/src/lib/native-menu.ts rename to apps/renderer/src/lib/native-menu.ts diff --git a/src/renderer/src/lib/ns.ts b/apps/renderer/src/lib/ns.ts similarity index 100% rename from src/renderer/src/lib/ns.ts rename to apps/renderer/src/lib/ns.ts diff --git a/src/renderer/src/lib/observe-resize.ts b/apps/renderer/src/lib/observe-resize.ts similarity index 100% rename from src/renderer/src/lib/observe-resize.ts rename to apps/renderer/src/lib/observe-resize.ts diff --git a/src/renderer/src/lib/parse-html.ts b/apps/renderer/src/lib/parse-html.ts similarity index 100% rename from src/renderer/src/lib/parse-html.ts rename to apps/renderer/src/lib/parse-html.ts diff --git a/src/renderer/src/lib/parse-markdown.ts b/apps/renderer/src/lib/parse-markdown.ts similarity index 100% rename from src/renderer/src/lib/parse-markdown.ts rename to apps/renderer/src/lib/parse-markdown.ts diff --git a/src/renderer/src/lib/parsers.ts b/apps/renderer/src/lib/parsers.ts similarity index 100% rename from src/renderer/src/lib/parsers.ts rename to apps/renderer/src/lib/parsers.ts diff --git a/src/renderer/src/lib/path-parser.test.ts b/apps/renderer/src/lib/path-parser.test.ts similarity index 100% rename from src/renderer/src/lib/path-parser.test.ts rename to apps/renderer/src/lib/path-parser.test.ts diff --git a/src/renderer/src/lib/path-parser.ts b/apps/renderer/src/lib/path-parser.ts similarity index 100% rename from src/renderer/src/lib/path-parser.ts rename to apps/renderer/src/lib/path-parser.ts diff --git a/src/renderer/src/lib/query-client.ts b/apps/renderer/src/lib/query-client.ts similarity index 100% rename from src/renderer/src/lib/query-client.ts rename to apps/renderer/src/lib/query-client.ts diff --git a/src/renderer/src/lib/route-builder.test.ts b/apps/renderer/src/lib/route-builder.test.ts similarity index 100% rename from src/renderer/src/lib/route-builder.test.ts rename to apps/renderer/src/lib/route-builder.test.ts diff --git a/src/renderer/src/lib/route-builder.ts b/apps/renderer/src/lib/route-builder.ts similarity index 100% rename from src/renderer/src/lib/route-builder.ts rename to apps/renderer/src/lib/route-builder.ts diff --git a/src/renderer/src/lib/scroller.ts b/apps/renderer/src/lib/scroller.ts similarity index 100% rename from src/renderer/src/lib/scroller.ts rename to apps/renderer/src/lib/scroller.ts diff --git a/src/renderer/src/lib/url-to-iframe.ts b/apps/renderer/src/lib/url-to-iframe.ts similarity index 100% rename from src/renderer/src/lib/url-to-iframe.ts rename to apps/renderer/src/lib/url-to-iframe.ts diff --git a/src/renderer/src/lib/utils.ts b/apps/renderer/src/lib/utils.ts similarity index 100% rename from src/renderer/src/lib/utils.ts rename to apps/renderer/src/lib/utils.ts diff --git a/src/renderer/src/lib/yielder.ts b/apps/renderer/src/lib/yielder.ts similarity index 100% rename from src/renderer/src/lib/yielder.ts rename to apps/renderer/src/lib/yielder.ts diff --git a/src/renderer/src/main.tsx b/apps/renderer/src/main.tsx similarity index 79% rename from src/renderer/src/main.tsx rename to apps/renderer/src/main.tsx index 27ad46502..6d18efd77 100644 --- a/src/renderer/src/main.tsx +++ b/apps/renderer/src/main.tsx @@ -1,7 +1,5 @@ import "./styles/main.css" -import { env } from "@env" -import { authConfigManager } from "@hono/auth-js/react" import { ClickToComponent } from "click-to-react-component" import * as React from "react" import ReactDOM from "react-dom/client" @@ -13,13 +11,6 @@ import { initializeApp } from "./initialize" import { getOS } from "./lib/utils" import { router } from "./router" -// Initialize the auth config -authConfigManager.setConfig({ - baseUrl: env.VITE_API_URL, - basePath: "/auth", - credentials: "include", -}) - initializeApp().finally(() => { setAppIsReady(true) }) diff --git a/src/renderer/src/models/index.ts b/apps/renderer/src/models/index.ts similarity index 100% rename from src/renderer/src/models/index.ts rename to apps/renderer/src/models/index.ts diff --git a/src/renderer/src/models/types.ts b/apps/renderer/src/models/types.ts similarity index 97% rename from src/renderer/src/models/types.ts rename to apps/renderer/src/models/types.ts index 78ac75432..e5ffce436 100644 --- a/src/renderer/src/models/types.ts +++ b/apps/renderer/src/models/types.ts @@ -1,5 +1,5 @@ +import type { languageSchema, users } from "@follow/shared/hono" import type { apiClient } from "@renderer/lib/api-fetch" -import type { languageSchema, users } from "src/hono" import type { z } from "zod" export type UserModel = Omit< diff --git a/src/renderer/src/modules/ai/ai-daily/EntryPlaceholderDaily.tsx b/apps/renderer/src/modules/ai/ai-daily/EntryPlaceholderDaily.tsx similarity index 100% rename from src/renderer/src/modules/ai/ai-daily/EntryPlaceholderDaily.tsx rename to apps/renderer/src/modules/ai/ai-daily/EntryPlaceholderDaily.tsx diff --git a/src/renderer/src/modules/ai/ai-daily/FeedDailyModalContent.tsx b/apps/renderer/src/modules/ai/ai-daily/FeedDailyModalContent.tsx similarity index 100% rename from src/renderer/src/modules/ai/ai-daily/FeedDailyModalContent.tsx rename to apps/renderer/src/modules/ai/ai-daily/FeedDailyModalContent.tsx diff --git a/src/renderer/src/modules/ai/ai-daily/constants.ts b/apps/renderer/src/modules/ai/ai-daily/constants.ts similarity index 100% rename from src/renderer/src/modules/ai/ai-daily/constants.ts rename to apps/renderer/src/modules/ai/ai-daily/constants.ts diff --git a/src/renderer/src/modules/ai/ai-daily/daily.tsx b/apps/renderer/src/modules/ai/ai-daily/daily.tsx similarity index 100% rename from src/renderer/src/modules/ai/ai-daily/daily.tsx rename to apps/renderer/src/modules/ai/ai-daily/daily.tsx diff --git a/src/renderer/src/modules/ai/ai-daily/hooks.tsx b/apps/renderer/src/modules/ai/ai-daily/hooks.tsx similarity index 100% rename from src/renderer/src/modules/ai/ai-daily/hooks.tsx rename to apps/renderer/src/modules/ai/ai-daily/hooks.tsx diff --git a/src/renderer/src/modules/ai/ai-daily/types.tsx b/apps/renderer/src/modules/ai/ai-daily/types.tsx similarity index 100% rename from src/renderer/src/modules/ai/ai-daily/types.tsx rename to apps/renderer/src/modules/ai/ai-daily/types.tsx diff --git a/src/renderer/src/modules/app/EnvironmentIndicator.tsx b/apps/renderer/src/modules/app/EnvironmentIndicator.tsx similarity index 93% rename from src/renderer/src/modules/app/EnvironmentIndicator.tsx rename to apps/renderer/src/modules/app/EnvironmentIndicator.tsx index 9d8e7bb2a..5ea8eb699 100644 --- a/src/renderer/src/modules/app/EnvironmentIndicator.tsx +++ b/apps/renderer/src/modules/app/EnvironmentIndicator.tsx @@ -1,4 +1,4 @@ -import { env } from "@env" +import { env } from "@follow/shared/env" import { Tooltip, TooltipContent, diff --git a/src/renderer/src/modules/app/NetworkStatusIndicator.tsx b/apps/renderer/src/modules/app/NetworkStatusIndicator.tsx similarity index 100% rename from src/renderer/src/modules/app/NetworkStatusIndicator.tsx rename to apps/renderer/src/modules/app/NetworkStatusIndicator.tsx diff --git a/src/renderer/src/modules/app/Titlebar.tsx b/apps/renderer/src/modules/app/Titlebar.tsx similarity index 100% rename from src/renderer/src/modules/app/Titlebar.tsx rename to apps/renderer/src/modules/app/Titlebar.tsx diff --git a/src/renderer/src/modules/auth/LoginModalContent.tsx b/apps/renderer/src/modules/auth/LoginModalContent.tsx similarity index 100% rename from src/renderer/src/modules/auth/LoginModalContent.tsx rename to apps/renderer/src/modules/auth/LoginModalContent.tsx diff --git a/src/renderer/src/modules/claim/feed-claim-modal.tsx b/apps/renderer/src/modules/claim/feed-claim-modal.tsx similarity index 100% rename from src/renderer/src/modules/claim/feed-claim-modal.tsx rename to apps/renderer/src/modules/claim/feed-claim-modal.tsx diff --git a/src/renderer/src/modules/claim/hooks.ts b/apps/renderer/src/modules/claim/hooks.ts similarity index 100% rename from src/renderer/src/modules/claim/hooks.ts rename to apps/renderer/src/modules/claim/hooks.ts diff --git a/src/renderer/src/modules/claim/index.ts b/apps/renderer/src/modules/claim/index.ts similarity index 100% rename from src/renderer/src/modules/claim/index.ts rename to apps/renderer/src/modules/claim/index.ts diff --git a/src/renderer/src/modules/discover/DiscoverFeedForm.tsx b/apps/renderer/src/modules/discover/DiscoverFeedForm.tsx similarity index 100% rename from src/renderer/src/modules/discover/DiscoverFeedForm.tsx rename to apps/renderer/src/modules/discover/DiscoverFeedForm.tsx diff --git a/src/renderer/src/modules/discover/example-data.json b/apps/renderer/src/modules/discover/example-data.json similarity index 100% rename from src/renderer/src/modules/discover/example-data.json rename to apps/renderer/src/modules/discover/example-data.json diff --git a/src/renderer/src/modules/discover/feed-form.tsx b/apps/renderer/src/modules/discover/feed-form.tsx similarity index 100% rename from src/renderer/src/modules/discover/feed-form.tsx rename to apps/renderer/src/modules/discover/feed-form.tsx diff --git a/src/renderer/src/modules/discover/form.tsx b/apps/renderer/src/modules/discover/form.tsx similarity index 100% rename from src/renderer/src/modules/discover/form.tsx rename to apps/renderer/src/modules/discover/form.tsx diff --git a/src/renderer/src/modules/discover/import.tsx b/apps/renderer/src/modules/discover/import.tsx similarity index 100% rename from src/renderer/src/modules/discover/import.tsx rename to apps/renderer/src/modules/discover/import.tsx diff --git a/src/renderer/src/modules/discover/recommendation-content.tsx b/apps/renderer/src/modules/discover/recommendation-content.tsx similarity index 100% rename from src/renderer/src/modules/discover/recommendation-content.tsx rename to apps/renderer/src/modules/discover/recommendation-content.tsx diff --git a/src/renderer/src/modules/discover/recommendations-card.tsx b/apps/renderer/src/modules/discover/recommendations-card.tsx similarity index 100% rename from src/renderer/src/modules/discover/recommendations-card.tsx rename to apps/renderer/src/modules/discover/recommendations-card.tsx diff --git a/src/renderer/src/modules/discover/recommendations.tsx b/apps/renderer/src/modules/discover/recommendations.tsx similarity index 100% rename from src/renderer/src/modules/discover/recommendations.tsx rename to apps/renderer/src/modules/discover/recommendations.tsx diff --git a/src/renderer/src/modules/discover/rss3-form.tsx b/apps/renderer/src/modules/discover/rss3-form.tsx similarity index 100% rename from src/renderer/src/modules/discover/rss3-form.tsx rename to apps/renderer/src/modules/discover/rss3-form.tsx diff --git a/src/renderer/src/modules/discover/types.ts b/apps/renderer/src/modules/discover/types.ts similarity index 100% rename from src/renderer/src/modules/discover/types.ts rename to apps/renderer/src/modules/discover/types.ts diff --git a/src/renderer/src/modules/discover/user-form.tsx b/apps/renderer/src/modules/discover/user-form.tsx similarity index 100% rename from src/renderer/src/modules/discover/user-form.tsx rename to apps/renderer/src/modules/discover/user-form.tsx diff --git a/src/renderer/src/modules/discover/utils.ts b/apps/renderer/src/modules/discover/utils.ts similarity index 100% rename from src/renderer/src/modules/discover/utils.ts rename to apps/renderer/src/modules/discover/utils.ts diff --git a/src/renderer/src/modules/entry-column/EntryColumnShortcutHandler.tsx b/apps/renderer/src/modules/entry-column/EntryColumnShortcutHandler.tsx similarity index 100% rename from src/renderer/src/modules/entry-column/EntryColumnShortcutHandler.tsx rename to apps/renderer/src/modules/entry-column/EntryColumnShortcutHandler.tsx diff --git a/src/renderer/src/modules/entry-column/Items/article-item.tsx b/apps/renderer/src/modules/entry-column/Items/article-item.tsx similarity index 100% rename from src/renderer/src/modules/entry-column/Items/article-item.tsx rename to apps/renderer/src/modules/entry-column/Items/article-item.tsx diff --git a/src/renderer/src/modules/entry-column/Items/audio-item.tsx b/apps/renderer/src/modules/entry-column/Items/audio-item.tsx similarity index 100% rename from src/renderer/src/modules/entry-column/Items/audio-item.tsx rename to apps/renderer/src/modules/entry-column/Items/audio-item.tsx diff --git a/src/renderer/src/modules/entry-column/Items/contexts/picture-masonry-context.ts b/apps/renderer/src/modules/entry-column/Items/contexts/picture-masonry-context.ts similarity index 100% rename from src/renderer/src/modules/entry-column/Items/contexts/picture-masonry-context.ts rename to apps/renderer/src/modules/entry-column/Items/contexts/picture-masonry-context.ts diff --git a/src/renderer/src/modules/entry-column/Items/notification-item.tsx b/apps/renderer/src/modules/entry-column/Items/notification-item.tsx similarity index 100% rename from src/renderer/src/modules/entry-column/Items/notification-item.tsx rename to apps/renderer/src/modules/entry-column/Items/notification-item.tsx diff --git a/src/renderer/src/modules/entry-column/Items/picture-item.tsx b/apps/renderer/src/modules/entry-column/Items/picture-item.tsx similarity index 100% rename from src/renderer/src/modules/entry-column/Items/picture-item.tsx rename to apps/renderer/src/modules/entry-column/Items/picture-item.tsx diff --git a/src/renderer/src/modules/entry-column/Items/picture-masonry.tsx b/apps/renderer/src/modules/entry-column/Items/picture-masonry.tsx similarity index 100% rename from src/renderer/src/modules/entry-column/Items/picture-masonry.tsx rename to apps/renderer/src/modules/entry-column/Items/picture-masonry.tsx diff --git a/src/renderer/src/modules/entry-column/Items/social-media-item.tsx b/apps/renderer/src/modules/entry-column/Items/social-media-item.tsx similarity index 100% rename from src/renderer/src/modules/entry-column/Items/social-media-item.tsx rename to apps/renderer/src/modules/entry-column/Items/social-media-item.tsx diff --git a/src/renderer/src/modules/entry-column/Items/video-item.tsx b/apps/renderer/src/modules/entry-column/Items/video-item.tsx similarity index 100% rename from src/renderer/src/modules/entry-column/Items/video-item.tsx rename to apps/renderer/src/modules/entry-column/Items/video-item.tsx diff --git a/src/renderer/src/modules/entry-column/components/DateItem.tsx b/apps/renderer/src/modules/entry-column/components/DateItem.tsx similarity index 100% rename from src/renderer/src/modules/entry-column/components/DateItem.tsx rename to apps/renderer/src/modules/entry-column/components/DateItem.tsx diff --git a/src/renderer/src/modules/entry-column/components/mark-all-button.tsx b/apps/renderer/src/modules/entry-column/components/mark-all-button.tsx similarity index 100% rename from src/renderer/src/modules/entry-column/components/mark-all-button.tsx rename to apps/renderer/src/modules/entry-column/components/mark-all-button.tsx diff --git a/src/renderer/src/modules/entry-column/hooks.ts b/apps/renderer/src/modules/entry-column/hooks.ts similarity index 100% rename from src/renderer/src/modules/entry-column/hooks.ts rename to apps/renderer/src/modules/entry-column/hooks.ts diff --git a/src/renderer/src/modules/entry-column/hooks/useMarkAll.ts b/apps/renderer/src/modules/entry-column/hooks/useMarkAll.ts similarity index 100% rename from src/renderer/src/modules/entry-column/hooks/useMarkAll.ts rename to apps/renderer/src/modules/entry-column/hooks/useMarkAll.ts diff --git a/src/renderer/src/modules/entry-column/index.tsx b/apps/renderer/src/modules/entry-column/index.tsx similarity index 100% rename from src/renderer/src/modules/entry-column/index.tsx rename to apps/renderer/src/modules/entry-column/index.tsx diff --git a/src/renderer/src/modules/entry-column/item.tsx b/apps/renderer/src/modules/entry-column/item.tsx similarity index 100% rename from src/renderer/src/modules/entry-column/item.tsx rename to apps/renderer/src/modules/entry-column/item.tsx diff --git a/src/renderer/src/modules/entry-column/layouts/EntryItemWrapper.tsx b/apps/renderer/src/modules/entry-column/layouts/EntryItemWrapper.tsx similarity index 100% rename from src/renderer/src/modules/entry-column/layouts/EntryItemWrapper.tsx rename to apps/renderer/src/modules/entry-column/layouts/EntryItemWrapper.tsx diff --git a/src/renderer/src/modules/entry-column/layouts/EntryListHeader.tsx b/apps/renderer/src/modules/entry-column/layouts/EntryListHeader.tsx similarity index 100% rename from src/renderer/src/modules/entry-column/layouts/EntryListHeader.tsx rename to apps/renderer/src/modules/entry-column/layouts/EntryListHeader.tsx diff --git a/src/renderer/src/modules/entry-column/lists.tsx b/apps/renderer/src/modules/entry-column/lists.tsx similarity index 100% rename from src/renderer/src/modules/entry-column/lists.tsx rename to apps/renderer/src/modules/entry-column/lists.tsx diff --git a/src/renderer/src/modules/entry-column/star-icon.tsx b/apps/renderer/src/modules/entry-column/star-icon.tsx similarity index 100% rename from src/renderer/src/modules/entry-column/star-icon.tsx rename to apps/renderer/src/modules/entry-column/star-icon.tsx diff --git a/src/renderer/src/modules/entry-column/styles.ts b/apps/renderer/src/modules/entry-column/styles.ts similarity index 100% rename from src/renderer/src/modules/entry-column/styles.ts rename to apps/renderer/src/modules/entry-column/styles.ts diff --git a/src/renderer/src/modules/entry-column/templates/grid-item-template.tsx b/apps/renderer/src/modules/entry-column/templates/grid-item-template.tsx similarity index 100% rename from src/renderer/src/modules/entry-column/templates/grid-item-template.tsx rename to apps/renderer/src/modules/entry-column/templates/grid-item-template.tsx diff --git a/src/renderer/src/modules/entry-column/templates/list-item-template.tsx b/apps/renderer/src/modules/entry-column/templates/list-item-template.tsx similarity index 99% rename from src/renderer/src/modules/entry-column/templates/list-item-template.tsx rename to apps/renderer/src/modules/entry-column/templates/list-item-template.tsx index 8255785f9..efe605afd 100644 --- a/src/renderer/src/modules/entry-column/templates/list-item-template.tsx +++ b/apps/renderer/src/modules/entry-column/templates/list-item-template.tsx @@ -1,4 +1,4 @@ -import { env } from "@env" +import { env } from "@follow/shared/env" import { AudioPlayer, useAudioPlayerAtomSelector } from "@renderer/atoms/player" import { FeedIcon } from "@renderer/components/feed-icon" import { FollowIcon } from "@renderer/components/icons/follow" diff --git a/src/renderer/src/modules/entry-column/translation.tsx b/apps/renderer/src/modules/entry-column/translation.tsx similarity index 100% rename from src/renderer/src/modules/entry-column/translation.tsx rename to apps/renderer/src/modules/entry-column/translation.tsx diff --git a/src/renderer/src/modules/entry-column/types.ts b/apps/renderer/src/modules/entry-column/types.ts similarity index 100% rename from src/renderer/src/modules/entry-column/types.ts rename to apps/renderer/src/modules/entry-column/types.ts diff --git a/src/renderer/src/modules/entry-content/atoms.tsx b/apps/renderer/src/modules/entry-content/atoms.tsx similarity index 100% rename from src/renderer/src/modules/entry-content/atoms.tsx rename to apps/renderer/src/modules/entry-content/atoms.tsx diff --git a/src/renderer/src/modules/entry-content/components/EntryPlaceholderLogo.tsx b/apps/renderer/src/modules/entry-content/components/EntryPlaceholderLogo.tsx similarity index 100% rename from src/renderer/src/modules/entry-content/components/EntryPlaceholderLogo.tsx rename to apps/renderer/src/modules/entry-content/components/EntryPlaceholderLogo.tsx diff --git a/src/renderer/src/modules/entry-content/components/EntryReadHistory.tsx b/apps/renderer/src/modules/entry-content/components/EntryReadHistory.tsx similarity index 100% rename from src/renderer/src/modules/entry-content/components/EntryReadHistory.tsx rename to apps/renderer/src/modules/entry-content/components/EntryReadHistory.tsx diff --git a/src/renderer/src/modules/entry-content/components/WarnGoToExternalLink.tsx b/apps/renderer/src/modules/entry-content/components/WarnGoToExternalLink.tsx similarity index 100% rename from src/renderer/src/modules/entry-content/components/WarnGoToExternalLink.tsx rename to apps/renderer/src/modules/entry-content/components/WarnGoToExternalLink.tsx diff --git a/src/renderer/src/modules/entry-content/header.tsx b/apps/renderer/src/modules/entry-content/header.tsx similarity index 100% rename from src/renderer/src/modules/entry-content/header.tsx rename to apps/renderer/src/modules/entry-content/header.tsx diff --git a/src/renderer/src/modules/entry-content/hooks.ts b/apps/renderer/src/modules/entry-content/hooks.ts similarity index 100% rename from src/renderer/src/modules/entry-content/hooks.ts rename to apps/renderer/src/modules/entry-content/hooks.ts diff --git a/src/renderer/src/modules/entry-content/index.tsx b/apps/renderer/src/modules/entry-content/index.tsx similarity index 100% rename from src/renderer/src/modules/entry-content/index.tsx rename to apps/renderer/src/modules/entry-content/index.tsx diff --git a/src/renderer/src/modules/entry-content/loading.tsx b/apps/renderer/src/modules/entry-content/loading.tsx similarity index 100% rename from src/renderer/src/modules/entry-content/loading.tsx rename to apps/renderer/src/modules/entry-content/loading.tsx diff --git a/src/renderer/src/modules/entry-content/provider.tsx b/apps/renderer/src/modules/entry-content/provider.tsx similarity index 100% rename from src/renderer/src/modules/entry-content/provider.tsx rename to apps/renderer/src/modules/entry-content/provider.tsx diff --git a/src/renderer/src/modules/feed-column/atom.ts b/apps/renderer/src/modules/feed-column/atom.ts similarity index 100% rename from src/renderer/src/modules/feed-column/atom.ts rename to apps/renderer/src/modules/feed-column/atom.ts diff --git a/src/renderer/src/modules/feed-column/auto-updater.tsx b/apps/renderer/src/modules/feed-column/auto-updater.tsx similarity index 100% rename from src/renderer/src/modules/feed-column/auto-updater.tsx rename to apps/renderer/src/modules/feed-column/auto-updater.tsx diff --git a/src/renderer/src/modules/feed-column/category-remove-dialog.tsx b/apps/renderer/src/modules/feed-column/category-remove-dialog.tsx similarity index 100% rename from src/renderer/src/modules/feed-column/category-remove-dialog.tsx rename to apps/renderer/src/modules/feed-column/category-remove-dialog.tsx diff --git a/src/renderer/src/modules/feed-column/category-rename-dialog.tsx b/apps/renderer/src/modules/feed-column/category-rename-dialog.tsx similarity index 100% rename from src/renderer/src/modules/feed-column/category-rename-dialog.tsx rename to apps/renderer/src/modules/feed-column/category-rename-dialog.tsx diff --git a/src/renderer/src/modules/feed-column/category.tsx b/apps/renderer/src/modules/feed-column/category.tsx similarity index 100% rename from src/renderer/src/modules/feed-column/category.tsx rename to apps/renderer/src/modules/feed-column/category.tsx diff --git a/src/renderer/src/modules/feed-column/corner-player.tsx b/apps/renderer/src/modules/feed-column/corner-player.tsx similarity index 100% rename from src/renderer/src/modules/feed-column/corner-player.tsx rename to apps/renderer/src/modules/feed-column/corner-player.tsx diff --git a/src/renderer/src/modules/feed-column/header.tsx b/apps/renderer/src/modules/feed-column/header.tsx similarity index 100% rename from src/renderer/src/modules/feed-column/header.tsx rename to apps/renderer/src/modules/feed-column/header.tsx diff --git a/src/renderer/src/modules/feed-column/index.tsx b/apps/renderer/src/modules/feed-column/index.tsx similarity index 99% rename from src/renderer/src/modules/feed-column/index.tsx rename to apps/renderer/src/modules/feed-column/index.tsx index adc9993d5..f1221eb10 100644 --- a/src/renderer/src/modules/feed-column/index.tsx +++ b/apps/renderer/src/modules/feed-column/index.tsx @@ -1,3 +1,4 @@ +import { useSubscribeElectronEvent } from "@follow/shared/event" import { getReadonlyRoute } from "@renderer/atoms/route" import { useUISettingKey } from "@renderer/atoms/settings/ui" import { useSidebarActiveView } from "@renderer/atoms/sidebar" @@ -14,7 +15,6 @@ import { clamp, cn } from "@renderer/lib/utils" import { Queries } from "@renderer/queries" import { useSubscriptionStore } from "@renderer/store/subscription" import { useFeedUnreadStore } from "@renderer/store/unread" -import { useSubscribeElectronEvent } from "@shared/event" import { useWheel } from "@use-gesture/react" import { AnimatePresence, m } from "framer-motion" import { Lethargy } from "lethargy" diff --git a/src/renderer/src/modules/feed-column/item.tsx b/apps/renderer/src/modules/feed-column/item.tsx similarity index 99% rename from src/renderer/src/modules/feed-column/item.tsx rename to apps/renderer/src/modules/feed-column/item.tsx index 9604f740c..9e2dad786 100644 --- a/src/renderer/src/modules/feed-column/item.tsx +++ b/apps/renderer/src/modules/feed-column/item.tsx @@ -1,3 +1,4 @@ +import { WEB_URL } from "@follow/shared/constants" import { getMainContainerElement } from "@renderer/atoms/dom" import { FeedCertification } from "@renderer/components/feed-certification" import { FeedIcon } from "@renderer/components/feed-icon" @@ -18,7 +19,6 @@ import { cn } from "@renderer/lib/utils" import { getPreferredTitle, useFeedById } from "@renderer/store/feed" import { useSubscriptionByFeedId } from "@renderer/store/subscription" import { useFeedUnreadStore } from "@renderer/store/unread" -import { WEB_URL } from "@shared/constants" import dayjs from "dayjs" import { memo, useCallback, useState } from "react" import { useTranslation } from "react-i18next" diff --git a/src/renderer/src/modules/feed-column/list.tsx b/apps/renderer/src/modules/feed-column/list.tsx similarity index 100% rename from src/renderer/src/modules/feed-column/list.tsx rename to apps/renderer/src/modules/feed-column/list.tsx diff --git a/src/renderer/src/modules/feed-column/unread-number.tsx b/apps/renderer/src/modules/feed-column/unread-number.tsx similarity index 100% rename from src/renderer/src/modules/feed-column/unread-number.tsx rename to apps/renderer/src/modules/feed-column/unread-number.tsx diff --git a/src/renderer/src/modules/modal/shortcuts.tsx b/apps/renderer/src/modules/modal/shortcuts.tsx similarity index 100% rename from src/renderer/src/modules/modal/shortcuts.tsx rename to apps/renderer/src/modules/modal/shortcuts.tsx diff --git a/src/renderer/src/modules/panel/cmdf.tsx b/apps/renderer/src/modules/panel/cmdf.tsx similarity index 99% rename from src/renderer/src/modules/panel/cmdf.tsx rename to apps/renderer/src/modules/panel/cmdf.tsx index 6a1b6298a..49c6385a1 100644 --- a/src/renderer/src/modules/panel/cmdf.tsx +++ b/apps/renderer/src/modules/panel/cmdf.tsx @@ -2,12 +2,12 @@ * @see https://github.com/toeverything/AFFiNE/blob/98e35384a6f71bf64c668b8f13afcaf28c9b8e97/packages/frontend/core/src/modules/find-in-page/view/find-in-page-modal.tsx * @copyright AFFiNE, Follow */ +import { useSubscribeElectronEvent } from "@follow/shared/event" import { softSpringPreset } from "@renderer/components/ui/constants/spring" import { useInputComposition, useRefValue } from "@renderer/hooks/common" import { tipcClient } from "@renderer/lib/client" import { nextFrame } from "@renderer/lib/dom" import { observeResize } from "@renderer/lib/observe-resize" -import { useSubscribeElectronEvent } from "@shared/event" import { AnimatePresence, m } from "framer-motion" import type { FC } from "react" import { useCallback, useEffect, useLayoutEffect, useRef, useState } from "react" diff --git a/src/renderer/src/modules/panel/cmdk.module.css b/apps/renderer/src/modules/panel/cmdk.module.css similarity index 100% rename from src/renderer/src/modules/panel/cmdk.module.css rename to apps/renderer/src/modules/panel/cmdk.module.css diff --git a/src/renderer/src/modules/panel/cmdk.tsx b/apps/renderer/src/modules/panel/cmdk.tsx similarity index 100% rename from src/renderer/src/modules/panel/cmdk.tsx rename to apps/renderer/src/modules/panel/cmdk.tsx diff --git a/src/renderer/src/modules/panel/cmdn.tsx b/apps/renderer/src/modules/panel/cmdn.tsx similarity index 98% rename from src/renderer/src/modules/panel/cmdn.tsx rename to apps/renderer/src/modules/panel/cmdn.tsx index e1f9ca715..896c83cc9 100644 --- a/src/renderer/src/modules/panel/cmdn.tsx +++ b/apps/renderer/src/modules/panel/cmdn.tsx @@ -1,3 +1,4 @@ +import { useSubscribeElectronEvent } from "@follow/shared/event" import { zodResolver } from "@hookform/resolvers/zod" import { getSidebarActiveView } from "@renderer/atoms/sidebar" import { m } from "@renderer/components/common/Motion" @@ -8,7 +9,6 @@ import { HotKeyScopeMap } from "@renderer/constants" import { tipcClient } from "@renderer/lib/client" import type { FeedViewType } from "@renderer/lib/enum" import { cn } from "@renderer/lib/utils" -import { useSubscribeElectronEvent } from "@shared/event" import { useLayoutEffect } from "react" import { useForm } from "react-hook-form" import { useHotkeys } from "react-hotkeys-hook" diff --git a/src/renderer/src/modules/profile/hooks.ts b/apps/renderer/src/modules/profile/hooks.ts similarity index 100% rename from src/renderer/src/modules/profile/hooks.ts rename to apps/renderer/src/modules/profile/hooks.ts diff --git a/src/renderer/src/modules/profile/profile-setting-form.tsx b/apps/renderer/src/modules/profile/profile-setting-form.tsx similarity index 100% rename from src/renderer/src/modules/profile/profile-setting-form.tsx rename to apps/renderer/src/modules/profile/profile-setting-form.tsx diff --git a/src/renderer/src/modules/profile/user-profile-modal.tsx b/apps/renderer/src/modules/profile/user-profile-modal.tsx similarity index 99% rename from src/renderer/src/modules/profile/user-profile-modal.tsx rename to apps/renderer/src/modules/profile/user-profile-modal.tsx index 0d36ffec5..6d8293336 100644 --- a/src/renderer/src/modules/profile/user-profile-modal.tsx +++ b/apps/renderer/src/modules/profile/user-profile-modal.tsx @@ -1,4 +1,4 @@ -import { env } from "@env" +import { env } from "@follow/shared/env" import { m } from "@renderer/components/common/Motion" import { FeedIcon } from "@renderer/components/feed-icon" import { FollowIcon } from "@renderer/components/icons/follow" diff --git a/src/renderer/src/modules/settings/action-card.tsx b/apps/renderer/src/modules/settings/action-card.tsx similarity index 100% rename from src/renderer/src/modules/settings/action-card.tsx rename to apps/renderer/src/modules/settings/action-card.tsx diff --git a/src/renderer/src/modules/settings/constants.ts b/apps/renderer/src/modules/settings/constants.ts similarity index 100% rename from src/renderer/src/modules/settings/constants.ts rename to apps/renderer/src/modules/settings/constants.ts diff --git a/src/renderer/src/modules/settings/control.tsx b/apps/renderer/src/modules/settings/control.tsx similarity index 100% rename from src/renderer/src/modules/settings/control.tsx rename to apps/renderer/src/modules/settings/control.tsx diff --git a/src/renderer/src/modules/settings/helper/SyncIndicator.tsx b/apps/renderer/src/modules/settings/helper/SyncIndicator.tsx similarity index 100% rename from src/renderer/src/modules/settings/helper/SyncIndicator.tsx rename to apps/renderer/src/modules/settings/helper/SyncIndicator.tsx diff --git a/src/renderer/src/modules/settings/helper/sync-queue.ts b/apps/renderer/src/modules/settings/helper/sync-queue.ts similarity index 98% rename from src/renderer/src/modules/settings/helper/sync-queue.ts rename to apps/renderer/src/modules/settings/helper/sync-queue.ts index 5ce8712c0..d8aba0e8b 100644 --- a/src/renderer/src/modules/settings/helper/sync-queue.ts +++ b/apps/renderer/src/modules/settings/helper/sync-queue.ts @@ -1,3 +1,4 @@ +import type { GeneralSettings, UISettings } from "@follow/shared/interface/settings" import { __generalSettingAtom, generalServerSyncWhiteListKeys, @@ -14,7 +15,6 @@ import { jotaiStore } from "@renderer/lib/jotai" import { getStorageNS } from "@renderer/lib/ns" import { isEmptyObject, sleep } from "@renderer/lib/utils" import { settings } from "@renderer/queries/settings" -import type { GeneralSettings, UISettings } from "@shared/interface/settings" import type { PrimitiveAtom } from "jotai" import { omit } from "lodash-es" diff --git a/src/renderer/src/modules/settings/helper/withSettingEnable.tsx b/apps/renderer/src/modules/settings/helper/withSettingEnable.tsx similarity index 100% rename from src/renderer/src/modules/settings/helper/withSettingEnable.tsx rename to apps/renderer/src/modules/settings/helper/withSettingEnable.tsx diff --git a/src/renderer/src/modules/settings/modal/content.tsx b/apps/renderer/src/modules/settings/modal/content.tsx similarity index 100% rename from src/renderer/src/modules/settings/modal/content.tsx rename to apps/renderer/src/modules/settings/modal/content.tsx diff --git a/src/renderer/src/modules/settings/modal/context.tsx b/apps/renderer/src/modules/settings/modal/context.tsx similarity index 100% rename from src/renderer/src/modules/settings/modal/context.tsx rename to apps/renderer/src/modules/settings/modal/context.tsx diff --git a/src/renderer/src/modules/settings/modal/hooks-hack.ts b/apps/renderer/src/modules/settings/modal/hooks-hack.ts similarity index 100% rename from src/renderer/src/modules/settings/modal/hooks-hack.ts rename to apps/renderer/src/modules/settings/modal/hooks-hack.ts diff --git a/src/renderer/src/modules/settings/modal/hooks.ts b/apps/renderer/src/modules/settings/modal/hooks.ts similarity index 100% rename from src/renderer/src/modules/settings/modal/hooks.ts rename to apps/renderer/src/modules/settings/modal/hooks.ts diff --git a/src/renderer/src/modules/settings/modal/layout.tsx b/apps/renderer/src/modules/settings/modal/layout.tsx similarity index 100% rename from src/renderer/src/modules/settings/modal/layout.tsx rename to apps/renderer/src/modules/settings/modal/layout.tsx diff --git a/src/renderer/src/modules/settings/section.tsx b/apps/renderer/src/modules/settings/section.tsx similarity index 100% rename from src/renderer/src/modules/settings/section.tsx rename to apps/renderer/src/modules/settings/section.tsx diff --git a/src/renderer/src/modules/settings/sections/fonts.tsx b/apps/renderer/src/modules/settings/sections/fonts.tsx similarity index 100% rename from src/renderer/src/modules/settings/sections/fonts.tsx rename to apps/renderer/src/modules/settings/sections/fonts.tsx diff --git a/src/renderer/src/modules/settings/setting-builder.tsx b/apps/renderer/src/modules/settings/setting-builder.tsx similarity index 100% rename from src/renderer/src/modules/settings/setting-builder.tsx rename to apps/renderer/src/modules/settings/setting-builder.tsx diff --git a/src/renderer/src/modules/settings/tabs/about.tsx b/apps/renderer/src/modules/settings/tabs/about.tsx similarity index 100% rename from src/renderer/src/modules/settings/tabs/about.tsx rename to apps/renderer/src/modules/settings/tabs/about.tsx diff --git a/src/renderer/src/modules/settings/tabs/apperance.tsx b/apps/renderer/src/modules/settings/tabs/apperance.tsx similarity index 100% rename from src/renderer/src/modules/settings/tabs/apperance.tsx rename to apps/renderer/src/modules/settings/tabs/apperance.tsx diff --git a/src/renderer/src/modules/settings/tabs/feeds.tsx b/apps/renderer/src/modules/settings/tabs/feeds.tsx similarity index 98% rename from src/renderer/src/modules/settings/tabs/feeds.tsx rename to apps/renderer/src/modules/settings/tabs/feeds.tsx index bb97c819c..dd9997d11 100644 --- a/src/renderer/src/modules/settings/tabs/feeds.tsx +++ b/apps/renderer/src/modules/settings/tabs/feeds.tsx @@ -1,3 +1,4 @@ +import { WEB_URL } from "@follow/shared/constants" import { FeedIcon } from "@renderer/components/feed-icon" import { LoadingCircle } from "@renderer/components/ui/loading" import { ScrollArea } from "@renderer/components/ui/scroll-area" @@ -12,7 +13,6 @@ import { import { useAuthQuery } from "@renderer/hooks/common" import { Balance } from "@renderer/modules/wallet/balance" import { Queries } from "@renderer/queries" -import { WEB_URL } from "@shared/constants" import { useTranslation } from "react-i18next" export const SettingFeeds = () => { diff --git a/src/renderer/src/modules/settings/tabs/general.tsx b/apps/renderer/src/modules/settings/tabs/general.tsx similarity index 100% rename from src/renderer/src/modules/settings/tabs/general.tsx rename to apps/renderer/src/modules/settings/tabs/general.tsx diff --git a/src/renderer/src/modules/settings/tabs/integration.tsx b/apps/renderer/src/modules/settings/tabs/integration.tsx similarity index 100% rename from src/renderer/src/modules/settings/tabs/integration.tsx rename to apps/renderer/src/modules/settings/tabs/integration.tsx diff --git a/src/renderer/src/modules/settings/tabs/invitations.tsx b/apps/renderer/src/modules/settings/tabs/invitations.tsx similarity index 100% rename from src/renderer/src/modules/settings/tabs/invitations.tsx rename to apps/renderer/src/modules/settings/tabs/invitations.tsx diff --git a/src/renderer/src/modules/settings/tabs/wallet/index.tsx b/apps/renderer/src/modules/settings/tabs/wallet/index.tsx similarity index 100% rename from src/renderer/src/modules/settings/tabs/wallet/index.tsx rename to apps/renderer/src/modules/settings/tabs/wallet/index.tsx diff --git a/src/renderer/src/modules/settings/tabs/wallet/my-wallet-section/claim-daily-reward.tsx b/apps/renderer/src/modules/settings/tabs/wallet/my-wallet-section/claim-daily-reward.tsx similarity index 100% rename from src/renderer/src/modules/settings/tabs/wallet/my-wallet-section/claim-daily-reward.tsx rename to apps/renderer/src/modules/settings/tabs/wallet/my-wallet-section/claim-daily-reward.tsx diff --git a/src/renderer/src/modules/settings/tabs/wallet/my-wallet-section/create-wallet.tsx b/apps/renderer/src/modules/settings/tabs/wallet/my-wallet-section/create-wallet.tsx similarity index 100% rename from src/renderer/src/modules/settings/tabs/wallet/my-wallet-section/create-wallet.tsx rename to apps/renderer/src/modules/settings/tabs/wallet/my-wallet-section/create-wallet.tsx diff --git a/src/renderer/src/modules/settings/tabs/wallet/my-wallet-section/index.tsx b/apps/renderer/src/modules/settings/tabs/wallet/my-wallet-section/index.tsx similarity index 100% rename from src/renderer/src/modules/settings/tabs/wallet/my-wallet-section/index.tsx rename to apps/renderer/src/modules/settings/tabs/wallet/my-wallet-section/index.tsx diff --git a/src/renderer/src/modules/settings/tabs/wallet/my-wallet-section/withdraw.tsx b/apps/renderer/src/modules/settings/tabs/wallet/my-wallet-section/withdraw.tsx similarity index 100% rename from src/renderer/src/modules/settings/tabs/wallet/my-wallet-section/withdraw.tsx rename to apps/renderer/src/modules/settings/tabs/wallet/my-wallet-section/withdraw.tsx diff --git a/src/renderer/src/modules/settings/tabs/wallet/transaction-section/index.tsx b/apps/renderer/src/modules/settings/tabs/wallet/transaction-section/index.tsx similarity index 100% rename from src/renderer/src/modules/settings/tabs/wallet/transaction-section/index.tsx rename to apps/renderer/src/modules/settings/tabs/wallet/transaction-section/index.tsx diff --git a/src/renderer/src/modules/settings/title.tsx b/apps/renderer/src/modules/settings/title.tsx similarity index 100% rename from src/renderer/src/modules/settings/title.tsx rename to apps/renderer/src/modules/settings/title.tsx diff --git a/src/renderer/src/modules/settings/utils.ts b/apps/renderer/src/modules/settings/utils.ts similarity index 100% rename from src/renderer/src/modules/settings/utils.ts rename to apps/renderer/src/modules/settings/utils.ts diff --git a/src/renderer/src/modules/wallet/balance.tsx b/apps/renderer/src/modules/wallet/balance.tsx similarity index 100% rename from src/renderer/src/modules/wallet/balance.tsx rename to apps/renderer/src/modules/wallet/balance.tsx diff --git a/src/renderer/src/modules/wallet/hooks.ts b/apps/renderer/src/modules/wallet/hooks.ts similarity index 100% rename from src/renderer/src/modules/wallet/hooks.ts rename to apps/renderer/src/modules/wallet/hooks.ts diff --git a/src/renderer/src/modules/wallet/tip-modal.tsx b/apps/renderer/src/modules/wallet/tip-modal.tsx similarity index 100% rename from src/renderer/src/modules/wallet/tip-modal.tsx rename to apps/renderer/src/modules/wallet/tip-modal.tsx diff --git a/src/renderer/src/pages/(external)/(with-layout)/feed/[id]/index.tsx b/apps/renderer/src/pages/(external)/(with-layout)/feed/[id]/index.tsx similarity index 100% rename from src/renderer/src/pages/(external)/(with-layout)/feed/[id]/index.tsx rename to apps/renderer/src/pages/(external)/(with-layout)/feed/[id]/index.tsx diff --git a/src/renderer/src/pages/(external)/(with-layout)/feed/[id]/layout.tsx b/apps/renderer/src/pages/(external)/(with-layout)/feed/[id]/layout.tsx similarity index 100% rename from src/renderer/src/pages/(external)/(with-layout)/feed/[id]/layout.tsx rename to apps/renderer/src/pages/(external)/(with-layout)/feed/[id]/layout.tsx diff --git a/src/renderer/src/pages/(external)/(with-layout)/layout.tsx b/apps/renderer/src/pages/(external)/(with-layout)/layout.tsx similarity index 100% rename from src/renderer/src/pages/(external)/(with-layout)/layout.tsx rename to apps/renderer/src/pages/(external)/(with-layout)/layout.tsx diff --git a/src/renderer/src/pages/(external)/(with-layout)/profile/[id]/index.tsx b/apps/renderer/src/pages/(external)/(with-layout)/profile/[id]/index.tsx similarity index 100% rename from src/renderer/src/pages/(external)/(with-layout)/profile/[id]/index.tsx rename to apps/renderer/src/pages/(external)/(with-layout)/profile/[id]/index.tsx diff --git a/src/renderer/src/pages/(external)/(with-layout)/profile/[id]/layout.tsx b/apps/renderer/src/pages/(external)/(with-layout)/profile/[id]/layout.tsx similarity index 100% rename from src/renderer/src/pages/(external)/(with-layout)/profile/[id]/layout.tsx rename to apps/renderer/src/pages/(external)/(with-layout)/profile/[id]/layout.tsx diff --git a/src/renderer/src/pages/(external)/debug.tsx b/apps/renderer/src/pages/(external)/debug.tsx similarity index 100% rename from src/renderer/src/pages/(external)/debug.tsx rename to apps/renderer/src/pages/(external)/debug.tsx diff --git a/src/renderer/src/pages/(external)/invitation.tsx b/apps/renderer/src/pages/(external)/invitation.tsx similarity index 100% rename from src/renderer/src/pages/(external)/invitation.tsx rename to apps/renderer/src/pages/(external)/invitation.tsx diff --git a/src/renderer/src/pages/(external)/layout.tsx b/apps/renderer/src/pages/(external)/layout.tsx similarity index 100% rename from src/renderer/src/pages/(external)/layout.tsx rename to apps/renderer/src/pages/(external)/layout.tsx diff --git a/src/renderer/src/pages/(external)/login.tsx b/apps/renderer/src/pages/(external)/login.tsx similarity index 100% rename from src/renderer/src/pages/(external)/login.tsx rename to apps/renderer/src/pages/(external)/login.tsx diff --git a/src/renderer/src/pages/(external)/redirect.tsx b/apps/renderer/src/pages/(external)/redirect.tsx similarity index 96% rename from src/renderer/src/pages/(external)/redirect.tsx rename to apps/renderer/src/pages/(external)/redirect.tsx index 3808d718e..9c3fa79c6 100644 --- a/src/renderer/src/pages/(external)/redirect.tsx +++ b/apps/renderer/src/pages/(external)/redirect.tsx @@ -1,8 +1,8 @@ +import { DEEPLINK_SCHEME } from "@follow/shared/constants" import { PoweredByFooter } from "@renderer/components/common/PoweredByFooter" import { Button } from "@renderer/components/ui/button" import { UserAvatar } from "@renderer/components/user-button" import { apiClient } from "@renderer/lib/api-fetch" -import { DEEPLINK_SCHEME } from "@shared/constants" import { useEffect, useRef } from "react" import { useTranslation } from "react-i18next" import { useNavigate } from "react-router-dom" diff --git a/src/renderer/src/pages/(main)/(layer)/(subview)/discover/index.tsx b/apps/renderer/src/pages/(main)/(layer)/(subview)/discover/index.tsx similarity index 100% rename from src/renderer/src/pages/(main)/(layer)/(subview)/discover/index.tsx rename to apps/renderer/src/pages/(main)/(layer)/(subview)/discover/index.tsx diff --git a/src/renderer/src/pages/(main)/(layer)/(subview)/hooks.ts b/apps/renderer/src/pages/(main)/(layer)/(subview)/hooks.ts similarity index 100% rename from src/renderer/src/pages/(main)/(layer)/(subview)/hooks.ts rename to apps/renderer/src/pages/(main)/(layer)/(subview)/hooks.ts diff --git a/src/renderer/src/pages/(main)/(layer)/(subview)/layout.tsx b/apps/renderer/src/pages/(main)/(layer)/(subview)/layout.tsx similarity index 100% rename from src/renderer/src/pages/(main)/(layer)/(subview)/layout.tsx rename to apps/renderer/src/pages/(main)/(layer)/(subview)/layout.tsx diff --git a/src/renderer/src/pages/(main)/(layer)/feeds/[feedId]/[entryId]/index.tsx b/apps/renderer/src/pages/(main)/(layer)/feeds/[feedId]/[entryId]/index.tsx similarity index 100% rename from src/renderer/src/pages/(main)/(layer)/feeds/[feedId]/[entryId]/index.tsx rename to apps/renderer/src/pages/(main)/(layer)/feeds/[feedId]/[entryId]/index.tsx diff --git a/src/renderer/src/pages/(main)/(layer)/feeds/[feedId]/index.tsx b/apps/renderer/src/pages/(main)/(layer)/feeds/[feedId]/index.tsx similarity index 100% rename from src/renderer/src/pages/(main)/(layer)/feeds/[feedId]/index.tsx rename to apps/renderer/src/pages/(main)/(layer)/feeds/[feedId]/index.tsx diff --git a/src/renderer/src/pages/(main)/(layer)/feeds/[feedId]/layout.tsx b/apps/renderer/src/pages/(main)/(layer)/feeds/[feedId]/layout.tsx similarity index 100% rename from src/renderer/src/pages/(main)/(layer)/feeds/[feedId]/layout.tsx rename to apps/renderer/src/pages/(main)/(layer)/feeds/[feedId]/layout.tsx diff --git a/src/renderer/src/pages/(main)/index.tsx b/apps/renderer/src/pages/(main)/index.tsx similarity index 100% rename from src/renderer/src/pages/(main)/index.tsx rename to apps/renderer/src/pages/(main)/index.tsx diff --git a/src/renderer/src/pages/(main)/layout.tsx b/apps/renderer/src/pages/(main)/layout.tsx similarity index 100% rename from src/renderer/src/pages/(main)/layout.tsx rename to apps/renderer/src/pages/(main)/layout.tsx diff --git a/src/renderer/src/pages/add/index.tsx b/apps/renderer/src/pages/add/index.tsx similarity index 100% rename from src/renderer/src/pages/add/index.tsx rename to apps/renderer/src/pages/add/index.tsx diff --git a/src/renderer/src/pages/preview.tsx b/apps/renderer/src/pages/preview.tsx similarity index 100% rename from src/renderer/src/pages/preview.tsx rename to apps/renderer/src/pages/preview.tsx diff --git a/src/renderer/src/pages/settings/(settings)/about.tsx b/apps/renderer/src/pages/settings/(settings)/about.tsx similarity index 100% rename from src/renderer/src/pages/settings/(settings)/about.tsx rename to apps/renderer/src/pages/settings/(settings)/about.tsx diff --git a/src/renderer/src/pages/settings/(settings)/actions.tsx b/apps/renderer/src/pages/settings/(settings)/actions.tsx similarity index 100% rename from src/renderer/src/pages/settings/(settings)/actions.tsx rename to apps/renderer/src/pages/settings/(settings)/actions.tsx diff --git a/src/renderer/src/pages/settings/(settings)/appearance.tsx b/apps/renderer/src/pages/settings/(settings)/appearance.tsx similarity index 100% rename from src/renderer/src/pages/settings/(settings)/appearance.tsx rename to apps/renderer/src/pages/settings/(settings)/appearance.tsx diff --git a/src/renderer/src/pages/settings/(settings)/feeds.tsx b/apps/renderer/src/pages/settings/(settings)/feeds.tsx similarity index 100% rename from src/renderer/src/pages/settings/(settings)/feeds.tsx rename to apps/renderer/src/pages/settings/(settings)/feeds.tsx diff --git a/src/renderer/src/pages/settings/(settings)/general.tsx b/apps/renderer/src/pages/settings/(settings)/general.tsx similarity index 100% rename from src/renderer/src/pages/settings/(settings)/general.tsx rename to apps/renderer/src/pages/settings/(settings)/general.tsx diff --git a/src/renderer/src/pages/settings/(settings)/integration.tsx b/apps/renderer/src/pages/settings/(settings)/integration.tsx similarity index 100% rename from src/renderer/src/pages/settings/(settings)/integration.tsx rename to apps/renderer/src/pages/settings/(settings)/integration.tsx diff --git a/src/renderer/src/pages/settings/(settings)/invitations.tsx b/apps/renderer/src/pages/settings/(settings)/invitations.tsx similarity index 100% rename from src/renderer/src/pages/settings/(settings)/invitations.tsx rename to apps/renderer/src/pages/settings/(settings)/invitations.tsx diff --git a/src/renderer/src/pages/settings/(settings)/profile.tsx b/apps/renderer/src/pages/settings/(settings)/profile.tsx similarity index 100% rename from src/renderer/src/pages/settings/(settings)/profile.tsx rename to apps/renderer/src/pages/settings/(settings)/profile.tsx diff --git a/src/renderer/src/pages/settings/(settings)/shortcuts.tsx b/apps/renderer/src/pages/settings/(settings)/shortcuts.tsx similarity index 100% rename from src/renderer/src/pages/settings/(settings)/shortcuts.tsx rename to apps/renderer/src/pages/settings/(settings)/shortcuts.tsx diff --git a/src/renderer/src/pages/settings/(settings)/wallet.tsx b/apps/renderer/src/pages/settings/(settings)/wallet.tsx similarity index 100% rename from src/renderer/src/pages/settings/(settings)/wallet.tsx rename to apps/renderer/src/pages/settings/(settings)/wallet.tsx diff --git a/src/renderer/src/pages/settings/index.tsx b/apps/renderer/src/pages/settings/index.tsx similarity index 100% rename from src/renderer/src/pages/settings/index.tsx rename to apps/renderer/src/pages/settings/index.tsx diff --git a/src/renderer/src/pages/settings/layout.tsx b/apps/renderer/src/pages/settings/layout.tsx similarity index 100% rename from src/renderer/src/pages/settings/layout.tsx rename to apps/renderer/src/pages/settings/layout.tsx diff --git a/src/renderer/src/providers/context-menu-provider.tsx b/apps/renderer/src/providers/context-menu-provider.tsx similarity index 100% rename from src/renderer/src/providers/context-menu-provider.tsx rename to apps/renderer/src/providers/context-menu-provider.tsx diff --git a/src/renderer/src/providers/event-provider.tsx b/apps/renderer/src/providers/event-provider.tsx similarity index 100% rename from src/renderer/src/providers/event-provider.tsx rename to apps/renderer/src/providers/event-provider.tsx diff --git a/src/renderer/src/providers/i18n-provider.tsx b/apps/renderer/src/providers/i18n-provider.tsx similarity index 100% rename from src/renderer/src/providers/i18n-provider.tsx rename to apps/renderer/src/providers/i18n-provider.tsx diff --git a/src/renderer/src/providers/invalidate-query-provider.tsx b/apps/renderer/src/providers/invalidate-query-provider.tsx similarity index 100% rename from src/renderer/src/providers/invalidate-query-provider.tsx rename to apps/renderer/src/providers/invalidate-query-provider.tsx diff --git a/src/renderer/src/providers/root-providers.tsx b/apps/renderer/src/providers/root-providers.tsx similarity index 100% rename from src/renderer/src/providers/root-providers.tsx rename to apps/renderer/src/providers/root-providers.tsx diff --git a/src/renderer/src/providers/setting-sync.tsx b/apps/renderer/src/providers/setting-sync.tsx similarity index 100% rename from src/renderer/src/providers/setting-sync.tsx rename to apps/renderer/src/providers/setting-sync.tsx diff --git a/src/renderer/src/providers/stable-router-provider.tsx b/apps/renderer/src/providers/stable-router-provider.tsx similarity index 100% rename from src/renderer/src/providers/stable-router-provider.tsx rename to apps/renderer/src/providers/stable-router-provider.tsx diff --git a/src/renderer/src/providers/user-provider.tsx b/apps/renderer/src/providers/user-provider.tsx similarity index 100% rename from src/renderer/src/providers/user-provider.tsx rename to apps/renderer/src/providers/user-provider.tsx diff --git a/src/renderer/src/providers/wrapped-element-provider.tsx b/apps/renderer/src/providers/wrapped-element-provider.tsx similarity index 100% rename from src/renderer/src/providers/wrapped-element-provider.tsx rename to apps/renderer/src/providers/wrapped-element-provider.tsx diff --git a/src/renderer/src/queries/actions.ts b/apps/renderer/src/queries/actions.ts similarity index 100% rename from src/renderer/src/queries/actions.ts rename to apps/renderer/src/queries/actions.ts diff --git a/src/renderer/src/queries/ai.ts b/apps/renderer/src/queries/ai.ts similarity index 100% rename from src/renderer/src/queries/ai.ts rename to apps/renderer/src/queries/ai.ts diff --git a/src/renderer/src/queries/auth.ts b/apps/renderer/src/queries/auth.ts similarity index 100% rename from src/renderer/src/queries/auth.ts rename to apps/renderer/src/queries/auth.ts diff --git a/src/renderer/src/queries/discover.ts b/apps/renderer/src/queries/discover.ts similarity index 100% rename from src/renderer/src/queries/discover.ts rename to apps/renderer/src/queries/discover.ts diff --git a/src/renderer/src/queries/entries.ts b/apps/renderer/src/queries/entries.ts similarity index 100% rename from src/renderer/src/queries/entries.ts rename to apps/renderer/src/queries/entries.ts diff --git a/src/renderer/src/queries/feed.ts b/apps/renderer/src/queries/feed.ts similarity index 100% rename from src/renderer/src/queries/feed.ts rename to apps/renderer/src/queries/feed.ts diff --git a/src/renderer/src/queries/index.ts b/apps/renderer/src/queries/index.ts similarity index 100% rename from src/renderer/src/queries/index.ts rename to apps/renderer/src/queries/index.ts diff --git a/src/renderer/src/queries/invitations.ts b/apps/renderer/src/queries/invitations.ts similarity index 100% rename from src/renderer/src/queries/invitations.ts rename to apps/renderer/src/queries/invitations.ts diff --git a/src/renderer/src/queries/settings.ts b/apps/renderer/src/queries/settings.ts similarity index 100% rename from src/renderer/src/queries/settings.ts rename to apps/renderer/src/queries/settings.ts diff --git a/src/renderer/src/queries/subscriptions.ts b/apps/renderer/src/queries/subscriptions.ts similarity index 100% rename from src/renderer/src/queries/subscriptions.ts rename to apps/renderer/src/queries/subscriptions.ts diff --git a/apps/renderer/src/queries/types.d.ts b/apps/renderer/src/queries/types.d.ts new file mode 100644 index 000000000..ad9367aab --- /dev/null +++ b/apps/renderer/src/queries/types.d.ts @@ -0,0 +1,6 @@ +export interface MutationBaseProps { + onSuccess?: () => void + onError?: (error: Error) => void +} + +export {} diff --git a/src/renderer/src/queries/wallet.tsx b/apps/renderer/src/queries/wallet.tsx similarity index 100% rename from src/renderer/src/queries/wallet.tsx rename to apps/renderer/src/queries/wallet.tsx diff --git a/src/renderer/src/router.tsx b/apps/renderer/src/router.tsx similarity index 100% rename from src/renderer/src/router.tsx rename to apps/renderer/src/router.tsx diff --git a/src/renderer/src/services/__mock__data__/entries.json b/apps/renderer/src/services/__mock__data__/entries.json similarity index 100% rename from src/renderer/src/services/__mock__data__/entries.json rename to apps/renderer/src/services/__mock__data__/entries.json diff --git a/src/renderer/src/services/__snapshots__/cleaner.spec.ts.snap b/apps/renderer/src/services/__snapshots__/cleaner.spec.ts.snap similarity index 100% rename from src/renderer/src/services/__snapshots__/cleaner.spec.ts.snap rename to apps/renderer/src/services/__snapshots__/cleaner.spec.ts.snap diff --git a/src/renderer/src/services/base.ts b/apps/renderer/src/services/base.ts similarity index 100% rename from src/renderer/src/services/base.ts rename to apps/renderer/src/services/base.ts diff --git a/src/renderer/src/services/cleaner.spec.ts b/apps/renderer/src/services/cleaner.spec.ts similarity index 98% rename from src/renderer/src/services/cleaner.spec.ts rename to apps/renderer/src/services/cleaner.spec.ts index 44c622e0a..0e254867d 100644 --- a/src/renderer/src/services/cleaner.spec.ts +++ b/apps/renderer/src/services/cleaner.spec.ts @@ -1,8 +1,8 @@ // @ts-nocheck +import type { FeedModel } from "@follow/shared/hono" import { browserDB } from "@renderer/database" import type { EntryModel } from "@renderer/models" import type { SubscriptionFlatModel } from "@renderer/store/subscription" -import type { FeedModel } from "src/hono" import { beforeAll, describe, expect, test } from "vitest" import { CleanerService } from "./cleaner" diff --git a/src/renderer/src/services/cleaner.ts b/apps/renderer/src/services/cleaner.ts similarity index 100% rename from src/renderer/src/services/cleaner.ts rename to apps/renderer/src/services/cleaner.ts diff --git a/src/renderer/src/services/entry-related.ts b/apps/renderer/src/services/entry-related.ts similarity index 100% rename from src/renderer/src/services/entry-related.ts rename to apps/renderer/src/services/entry-related.ts diff --git a/src/renderer/src/services/entry.spec.ts b/apps/renderer/src/services/entry.spec.ts similarity index 100% rename from src/renderer/src/services/entry.spec.ts rename to apps/renderer/src/services/entry.spec.ts diff --git a/src/renderer/src/services/entry.ts b/apps/renderer/src/services/entry.ts similarity index 100% rename from src/renderer/src/services/entry.ts rename to apps/renderer/src/services/entry.ts diff --git a/src/renderer/src/services/feed-unread.ts b/apps/renderer/src/services/feed-unread.ts similarity index 100% rename from src/renderer/src/services/feed-unread.ts rename to apps/renderer/src/services/feed-unread.ts diff --git a/src/renderer/src/services/feed.ts b/apps/renderer/src/services/feed.ts similarity index 100% rename from src/renderer/src/services/feed.ts rename to apps/renderer/src/services/feed.ts diff --git a/src/renderer/src/services/index.ts b/apps/renderer/src/services/index.ts similarity index 100% rename from src/renderer/src/services/index.ts rename to apps/renderer/src/services/index.ts diff --git a/src/renderer/src/services/subscription.ts b/apps/renderer/src/services/subscription.ts similarity index 100% rename from src/renderer/src/services/subscription.ts rename to apps/renderer/src/services/subscription.ts diff --git a/apps/renderer/src/shim.d.ts b/apps/renderer/src/shim.d.ts new file mode 100644 index 000000000..5391ffe55 --- /dev/null +++ b/apps/renderer/src/shim.d.ts @@ -0,0 +1,6 @@ +/// + +declare module "*?asset" { + const src: string + export default src +} diff --git a/src/renderer/src/store/entry-history/action.ts b/apps/renderer/src/store/entry-history/action.ts similarity index 100% rename from src/renderer/src/store/entry-history/action.ts rename to apps/renderer/src/store/entry-history/action.ts diff --git a/src/renderer/src/store/entry/helper.ts b/apps/renderer/src/store/entry/helper.ts similarity index 100% rename from src/renderer/src/store/entry/helper.ts rename to apps/renderer/src/store/entry/helper.ts diff --git a/src/renderer/src/store/entry/hooks.ts b/apps/renderer/src/store/entry/hooks.ts similarity index 97% rename from src/renderer/src/store/entry/hooks.ts rename to apps/renderer/src/store/entry/hooks.ts index d339631bd..3dfade87c 100644 --- a/src/renderer/src/store/entry/hooks.ts +++ b/apps/renderer/src/store/entry/hooks.ts @@ -1,6 +1,6 @@ +import type { EntryReadHistoriesModel } from "@follow/shared/hono" import { FEED_COLLECTION_LIST, ROUTE_FEED_IN_FOLDER } from "@renderer/constants" import type { FeedViewType } from "@renderer/lib/enum" -import type { EntryReadHistoriesModel } from "src/hono" import { useShallow } from "zustand/react/shallow" import { useFeedIdByView } from "../subscription" diff --git a/src/renderer/src/store/entry/index.ts b/apps/renderer/src/store/entry/index.ts similarity index 100% rename from src/renderer/src/store/entry/index.ts rename to apps/renderer/src/store/entry/index.ts diff --git a/src/renderer/src/store/entry/store.ts b/apps/renderer/src/store/entry/store.ts similarity index 99% rename from src/renderer/src/store/entry/store.ts rename to apps/renderer/src/store/entry/store.ts index 16f7cedd9..7402ce53a 100644 --- a/src/renderer/src/store/entry/store.ts +++ b/apps/renderer/src/store/entry/store.ts @@ -1,3 +1,4 @@ +import type { EntryReadHistoriesModel } from "@follow/shared/hono" import { runTransactionInScope } from "@renderer/database" import { apiClient } from "@renderer/lib/api-fetch" import { getEntriesParams, omitObjectUndefinedValue } from "@renderer/lib/utils" @@ -5,7 +6,6 @@ import type { CombinedEntryModel, EntryModel, FeedModel, UserModel } from "@rend import { EntryService } from "@renderer/services" import { produce } from "immer" import { isNil, merge, omit } from "lodash-es" -import type { EntryReadHistoriesModel } from "src/hono" import { feedActions } from "../feed" import { imageActions } from "../image" diff --git a/src/renderer/src/store/entry/types.ts b/apps/renderer/src/store/entry/types.ts similarity index 93% rename from src/renderer/src/store/entry/types.ts rename to apps/renderer/src/store/entry/types.ts index 55021161c..70cb0ddf1 100644 --- a/src/renderer/src/store/entry/types.ts +++ b/apps/renderer/src/store/entry/types.ts @@ -1,6 +1,6 @@ +import type { EntryReadHistoriesModel } from "@follow/shared/hono" import type { FeedViewType } from "@renderer/lib/enum" import type { CombinedEntryModel } from "@renderer/models" -import type { EntryReadHistoriesModel } from "src/hono" type FeedId = string type EntryId = string diff --git a/src/renderer/src/store/feed/hooks.ts b/apps/renderer/src/store/feed/hooks.ts similarity index 100% rename from src/renderer/src/store/feed/hooks.ts rename to apps/renderer/src/store/feed/hooks.ts diff --git a/src/renderer/src/store/feed/index.ts b/apps/renderer/src/store/feed/index.ts similarity index 100% rename from src/renderer/src/store/feed/index.ts rename to apps/renderer/src/store/feed/index.ts diff --git a/src/renderer/src/store/feed/store.ts b/apps/renderer/src/store/feed/store.ts similarity index 100% rename from src/renderer/src/store/feed/store.ts rename to apps/renderer/src/store/feed/store.ts diff --git a/src/renderer/src/store/feed/types.ts b/apps/renderer/src/store/feed/types.ts similarity index 100% rename from src/renderer/src/store/feed/types.ts rename to apps/renderer/src/store/feed/types.ts diff --git a/src/renderer/src/store/image/db.ts b/apps/renderer/src/store/image/db.ts similarity index 100% rename from src/renderer/src/store/image/db.ts rename to apps/renderer/src/store/image/db.ts diff --git a/src/renderer/src/store/image/index.ts b/apps/renderer/src/store/image/index.ts similarity index 100% rename from src/renderer/src/store/image/index.ts rename to apps/renderer/src/store/image/index.ts diff --git a/src/renderer/src/store/search/constants.ts b/apps/renderer/src/store/search/constants.ts similarity index 100% rename from src/renderer/src/store/search/constants.ts rename to apps/renderer/src/store/search/constants.ts diff --git a/src/renderer/src/store/search/helper.ts b/apps/renderer/src/store/search/helper.ts similarity index 100% rename from src/renderer/src/store/search/helper.ts rename to apps/renderer/src/store/search/helper.ts diff --git a/src/renderer/src/store/search/index.ts b/apps/renderer/src/store/search/index.ts similarity index 100% rename from src/renderer/src/store/search/index.ts rename to apps/renderer/src/store/search/index.ts diff --git a/src/renderer/src/store/search/types.ts b/apps/renderer/src/store/search/types.ts similarity index 100% rename from src/renderer/src/store/search/types.ts rename to apps/renderer/src/store/search/types.ts diff --git a/src/renderer/src/store/subscription/hooks.ts b/apps/renderer/src/store/subscription/hooks.ts similarity index 100% rename from src/renderer/src/store/subscription/hooks.ts rename to apps/renderer/src/store/subscription/hooks.ts diff --git a/src/renderer/src/store/subscription/index.ts b/apps/renderer/src/store/subscription/index.ts similarity index 100% rename from src/renderer/src/store/subscription/index.ts rename to apps/renderer/src/store/subscription/index.ts diff --git a/src/renderer/src/store/subscription/store.ts b/apps/renderer/src/store/subscription/store.ts similarity index 100% rename from src/renderer/src/store/subscription/store.ts rename to apps/renderer/src/store/subscription/store.ts diff --git a/src/renderer/src/store/unread/index.ts b/apps/renderer/src/store/unread/index.ts similarity index 100% rename from src/renderer/src/store/unread/index.ts rename to apps/renderer/src/store/unread/index.ts diff --git a/src/renderer/src/store/user/hooks.ts b/apps/renderer/src/store/user/hooks.ts similarity index 100% rename from src/renderer/src/store/user/hooks.ts rename to apps/renderer/src/store/user/hooks.ts diff --git a/src/renderer/src/store/user/index.ts b/apps/renderer/src/store/user/index.ts similarity index 100% rename from src/renderer/src/store/user/index.ts rename to apps/renderer/src/store/user/index.ts diff --git a/src/renderer/src/store/user/store.ts b/apps/renderer/src/store/user/store.ts similarity index 100% rename from src/renderer/src/store/user/store.ts rename to apps/renderer/src/store/user/store.ts diff --git a/src/renderer/src/store/utils/clear.ts b/apps/renderer/src/store/utils/clear.ts similarity index 100% rename from src/renderer/src/store/utils/clear.ts rename to apps/renderer/src/store/utils/clear.ts diff --git a/src/renderer/src/store/utils/helper.ts b/apps/renderer/src/store/utils/helper.ts similarity index 100% rename from src/renderer/src/store/utils/helper.ts rename to apps/renderer/src/store/utils/helper.ts diff --git a/src/renderer/src/styles/additional.css b/apps/renderer/src/styles/additional.css similarity index 100% rename from src/renderer/src/styles/additional.css rename to apps/renderer/src/styles/additional.css diff --git a/src/renderer/src/styles/base.css b/apps/renderer/src/styles/base.css similarity index 100% rename from src/renderer/src/styles/base.css rename to apps/renderer/src/styles/base.css diff --git a/src/renderer/src/styles/colors.css b/apps/renderer/src/styles/colors.css similarity index 100% rename from src/renderer/src/styles/colors.css rename to apps/renderer/src/styles/colors.css diff --git a/src/renderer/src/styles/font.css b/apps/renderer/src/styles/font.css similarity index 100% rename from src/renderer/src/styles/font.css rename to apps/renderer/src/styles/font.css diff --git a/src/renderer/src/styles/main.css b/apps/renderer/src/styles/main.css similarity index 100% rename from src/renderer/src/styles/main.css rename to apps/renderer/src/styles/main.css diff --git a/src/renderer/src/styles/scrollbar.css b/apps/renderer/src/styles/scrollbar.css similarity index 100% rename from src/renderer/src/styles/scrollbar.css rename to apps/renderer/src/styles/scrollbar.css diff --git a/src/renderer/src/styles/tailwind-extend.css b/apps/renderer/src/styles/tailwind-extend.css similarity index 100% rename from src/renderer/src/styles/tailwind-extend.css rename to apps/renderer/src/styles/tailwind-extend.css diff --git a/src/renderer/src/styles/tailwind.css b/apps/renderer/src/styles/tailwind.css similarity index 100% rename from src/renderer/src/styles/tailwind.css rename to apps/renderer/src/styles/tailwind.css diff --git a/src/renderer/src/tipc.ts b/apps/renderer/src/tipc.ts similarity index 86% rename from src/renderer/src/tipc.ts rename to apps/renderer/src/tipc.ts index 4dee32a73..79ecc9c51 100644 --- a/src/renderer/src/tipc.ts +++ b/apps/renderer/src/tipc.ts @@ -1,5 +1,5 @@ import { createEventHandlers } from "@egoist/tipc/renderer" -import type { RendererHandlers } from "@main/renderer-handlers" +import type { RendererHandlers } from "@follow/electron-main" export const handlers = window.electron ? createEventHandlers({ diff --git a/apps/renderer/tsconfig.json b/apps/renderer/tsconfig.json new file mode 100644 index 000000000..aef6fbfcd --- /dev/null +++ b/apps/renderer/tsconfig.json @@ -0,0 +1,20 @@ +{ + "extends": "@electron-toolkit/tsconfig/tsconfig.web.json", + "compilerOptions": { + "jsx": "react-jsx", + "moduleResolution": "Bundler", + "target": "ES2022", + "noUnusedLocals": false, + "noUnusedParameters": false, + "strict": true, + "baseUrl": ".", + "noImplicitReturns": false, + "noEmit": true, + "skipLibCheck": true, + "paths": { + "@renderer/*": ["src/*"], + "@pkg": ["../../package.json"], + "@locales/*": ["../../locales/*"] + } + } +} diff --git a/vitest.config.ts b/apps/renderer/vitest.config.ts similarity index 80% rename from vitest.config.ts rename to apps/renderer/vitest.config.ts index f9c937251..27994e24a 100644 --- a/vitest.config.ts +++ b/apps/renderer/vitest.config.ts @@ -3,15 +3,14 @@ import { resolve } from "node:path" import { fileURLToPath } from "node:url" import tsconfigPath from "vite-tsconfig-paths" -import { defineConfig } from "vitest/config" +import { defineProject } from "vitest/config" const pkg = JSON.parse(readFileSync("package.json", "utf8")) const __dirname = fileURLToPath(new URL(".", import.meta.url)) -export default defineConfig({ + +export default defineProject({ root: "./", test: { - include: ["**/*.test.ts", "**/*.spec.ts"], - globals: true, setupFiles: [resolve(__dirname, "./setup-file.ts")], environment: "node", @@ -30,7 +29,7 @@ export default defineConfig({ plugins: [ tsconfigPath({ - projects: [resolve(__dirname, "./tsconfig.json")], + projects: ["./tsconfig.json"], }), ], }) diff --git a/configs/vite.render.config.ts b/configs/vite.render.config.ts index fd53f3af4..df9e95eb8 100644 --- a/configs/vite.render.config.ts +++ b/configs/vite.render.config.ts @@ -85,11 +85,11 @@ function customI18nHmrPlugin(): Plugin { export const viteRenderBaseConfig = { resolve: { alias: { - "@renderer": resolve("src/renderer/src"), - "@shared": resolve("src/shared/src"), - "@pkg": resolve("./package.json"), - "@env": resolve("./src/env.ts"), - "@locales": resolve("./locales"), + "@renderer": resolve("apps/renderer/src"), + "@pkg": resolve("package.json"), + "@env": resolve("src/env.ts"), + "@locales": resolve("locales"), + "@follow/electron-main": resolve("apps/main/src"), }, }, base: "/", diff --git a/electron.vite.config.ts b/electron.vite.config.ts index 4412466dc..c19bdddb1 100644 --- a/electron.vite.config.ts +++ b/electron.vite.config.ts @@ -6,16 +6,27 @@ import { viteRenderBaseConfig } from "./configs/vite.render.config" export default defineConfig({ main: { + build: { + lib: { + entry: "./apps/main/src/index.ts", + }, + }, resolve: { alias: { - "@shared": resolve("src/shared/src"), + "@shared": resolve("packages/shared/src"), "@env": resolve("./src/env.ts"), "@pkg": resolve("./package.json"), "@locales": resolve("./locales"), + "~": resolve("./apps/main/src"), }, }, }, preload: { + build: { + lib: { + entry: "./apps/main/preload/index.ts", + }, + }, resolve: { alias: { "@env": resolve("./src/env.ts"), @@ -27,9 +38,15 @@ export default defineConfig({ renderer: { ...viteRenderBaseConfig, + root: "apps/renderer", build: { sourcemap: !!process.env.CI, target: "esnext", + rollupOptions: { + input: { + main: resolve("./apps/renderer/index.html"), + }, + }, }, define: { ...viteRenderBaseConfig.define, diff --git a/eslint.config.mjs b/eslint.config.mjs index 8f4c53767..04a200c7e 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -5,7 +5,12 @@ export default defineConfig( { formatting: false, lessOpinionated: true, - ignores: ["src/renderer/src/hono.ts", "src/hono.ts", "resources/**"], + ignores: [ + "src/renderer/src/hono.ts", + "src/hono.ts", + "packages/shared/src/hono.ts", + "resources/**", + ], preferESM: false, }, { diff --git a/package.json b/package.json index 7c8508482..46022863d 100644 --- a/package.json +++ b/package.json @@ -30,122 +30,10 @@ "prepare": "pnpm exec simple-git-hooks && shx test -f .env || shx cp .env.example .env", "publish": "electron-vite build --outDir=dist && electron-forge publish", "start": "electron-vite preview", - "test": "vitest", + "test": "pnpm -F web run test", "typecheck": "npm run typecheck:node && npm run typecheck:web", - "typecheck:node": "tsc --noEmit -p tsconfig.node.json --composite false", - "typecheck:web": "tsc --noEmit -p tsconfig.web.json --composite false" - }, - "dependencies": { - "@egjs/react-infinitegrid": "4.12.0", - "@egoist/tipc": "0.3.2", - "@electron-toolkit/preload": "^3.0.1", - "@electron-toolkit/utils": "^3.0.0", - "@fontsource/sn-pro": "5.1.0", - "@hono/auth-js": "1.0.10", - "@hookform/resolvers": "3.9.0", - "@iconify/tools": "4.0.6", - "@microflash/remark-callout-directives": "4.3.1", - "@mozilla/readability": "^0.5.0", - "@radix-ui/react-alert-dialog": "1.1.1", - "@radix-ui/react-avatar": "1.1.0", - "@radix-ui/react-checkbox": "1.1.1", - "@radix-ui/react-context-menu": "2.2.1", - "@radix-ui/react-dialog": "1.1.1", - "@radix-ui/react-dropdown-menu": "2.1.1", - "@radix-ui/react-hover-card": "1.1.1", - "@radix-ui/react-label": "2.1.0", - "@radix-ui/react-popover": "1.1.1", - "@radix-ui/react-radio-group": "1.2.0", - "@radix-ui/react-scroll-area": "1.1.0", - "@radix-ui/react-select": "2.1.1", - "@radix-ui/react-slider": "^1.2.0", - "@radix-ui/react-slot": "1.1.0", - "@radix-ui/react-switch": "1.1.0", - "@radix-ui/react-tabs": "1.1.0", - "@radix-ui/react-toast": "1.2.1", - "@radix-ui/react-tooltip": "1.1.2", - "@sentry/electron": "5.4.0", - "@sentry/react": "8.30.0", - "@sentry/vite-plugin": "2.22.4", - "@shikijs/transformers": "1.17.7", - "@t3-oss/env-core": "^0.11.1", - "@tanstack/query-sync-storage-persister": "5.56.2", - "@tanstack/react-query": "5.56.2", - "@tanstack/react-query-devtools": "5.56.2", - "@tanstack/react-query-persist-client": "5.56.2", - "@use-gesture/react": "10.3.1", - "@yornaath/batshit": "0.10.1", - "bufferutil": "4.0.8", - "builder-util-runtime": "9.2.5", - "class-variance-authority": "0.7.0", - "click-to-react-component": "1.1.0", - "clsx": "2.1.1", - "cmdk": "1.0.0", - "dayjs": "1.11.13", - "dexie": "4.0.8", - "dnum": "^2.13.1", - "dotenv": "16.4.5", - "electron-context-menu": "4.0.4", - "electron-log": "5.2.0", - "electron-squirrel-startup": "1.0.1", - "electron-updater": "^6.3.4", - "font-list": "1.5.1", - "foxact": "0.2.38", - "framer-motion": "11.5.4", - "franc-min": "6.2.0", - "fuse.js": "7.0.0", - "hast-util-to-jsx-runtime": "2.3.0", - "hast-util-to-text": "4.0.2", - "i18next": "^23.15.1", - "i18next-browser-languagedetector": "8.0.0", - "idb-keyval": "6.2.1", - "immer": "10.1.1", - "jotai": "2.9.3", - "lethargy": "1.0.9", - "linkedom": "^0.18.4", - "lodash-es": "4.17.21", - "lowdb": "7.0.1", - "msedge-tts": "1.3.4", - "nanoid": "5.0.7", - "ofetch": "1.3.4", - "path-to-regexp": "8.1.0", - "posthog-js": "1.161.5", - "posthog-node": "4.2.0", - "re-resizable": "6.9.18", - "react-error-boundary": "4.0.13", - "react-fast-marquee": "1.6.5", - "react-hook-form": "7.53.0", - "react-hotkeys-hook": "4.5.1", - "react-i18next": "^15.0.2", - "react-intersection-observer": "9.13.1", - "react-resizable-layout": "npm:@innei/react-resizable-layout@0.7.3-fork.1", - "react-router-dom": "6.26.2", - "react-selecto": "1.26.3", - "react-shadow": "20.5.0", - "react-virtuoso": "4.10.4", - "rehype-infer-description-meta": "2.0.0", - "rehype-parse": "9.0.0", - "rehype-sanitize": "6.0.0", - "rehype-stringify": "10.0.0", - "remark-directive": "3.0.0", - "remark-gfm": "4.0.0", - "remark-gh-alerts": "0.0.3", - "remark-parse": "11.0.0", - "remark-rehype": "11.1.0", - "semver": "7.6.3", - "shiki": "1.17.7", - "sonner": "^1.5.0", - "swiper": "11.1.14", - "tailwind-merge": "2.5.2", - "tldts": "6.1.46", - "unified": "11.0.5", - "use-context-selector": "2.0.0", - "usehooks-ts": "3.1.0", - "utf-8-validate": "6.0.4", - "vfile": "6.0.3", - "vscode-languagedetection": "npm:@vscode/vscode-languagedetection@^1.0.22", - "zod": "3.23.8", - "zustand": "4.5.5" + "typecheck:node": "pnpm -F electron-main run typecheck", + "typecheck:web": "pnpm -F web run typecheck" }, "devDependencies": { "@babel/generator": "7.25.6", @@ -158,21 +46,32 @@ "@electron-forge/plugin-fuses": "7.4.0", "@electron-forge/publisher-github": "7.4.0", "@electron-toolkit/tsconfig": "^1.0.1", + "@fontsource/sn-pro": "5.1.0", "@hono/node-server": "1.13.0", + "@hookform/resolvers": "3.9.0", "@iconify-json/logos": "1.2.0", "@iconify-json/mingcute": "1.2.0", "@iconify-json/simple-icons": "^1.2.3", + "@iconify/tools": "4.0.6", + "@microflash/remark-callout-directives": "4.3.1", + "@mozilla/readability": "^0.5.0", "@pengx17/electron-forge-maker-appimage": "1.2.1", + "@sentry/vite-plugin": "2.22.4", + "@t3-oss/env-core": "^0.11.1", "@tailwindcss/container-queries": "0.1.1", "@tailwindcss/typography": "0.5.15", "@types/lodash-es": "4.17.12", "@types/node": "^22.5.5", "@types/react": "^18.3.7", "@types/react-dom": "^18.3.0", - "@vercel/ncc": "0.38.1", "@vitejs/plugin-legacy": "5.4.2", "@vitejs/plugin-react": "^4.3.1", + "@yornaath/batshit": "0.10.1", + "bufferutil": "4.0.8", + "builder-util-runtime": "9.2.5", "cssnano": "7.0.6", + "dnum": "^2.13.1", + "dotenv": "16.4.5", "drizzle-orm": "0.33.0", "electron": "32.1.0", "electron-devtools-installer": "3.2.0", @@ -194,13 +93,14 @@ "simple-git-hooks": "2.11.1", "tailwindcss": "3.4.11", "tailwindcss-animate": "1.0.7", + "tsup": "8.3.0", "tsx": "4.19.1", "typescript": "^5.6.2", "vite": "^5.4.6", "vite-bundle-analyzer": "0.10.6", "vite-plugin-mkcert": "1.17.6", "vite-tsconfig-paths": "5.0.1", - "vitest": "2.0.5" + "vitest": "2.0" }, "pnpm": { "patchedDependencies": { diff --git a/packages/shared/package.json b/packages/shared/package.json new file mode 100644 index 000000000..f0a19ed28 --- /dev/null +++ b/packages/shared/package.json @@ -0,0 +1,194 @@ +{ + "name": "@follow/shared", + "type": "module", + "private": true, + "author": "Follow Team", + "license": "GPL-3.0-only", + "homepage": "https://github.com/RSSNext", + "repository": { + "url": "https://github.com/RSSNext/follow", + "type": "git" + }, + "exports": { + ".": { + "import": "./src/index.ts", + "types": "./src/index.ts" + }, + "./interface/*": { + "import": "./src/interface/*.ts", + "types": "./src/interface/*.ts" + }, + "./*": { + "import": "./src/*.ts", + "types": "./src/*.ts" + } + }, + "scripts": {}, + "dependencies": { + "@egjs/react-infinitegrid": "4.12.0", + "@egoist/tipc": "0.3.2", + "@electron-toolkit/preload": "^3.0.1", + "@electron-toolkit/utils": "^3.0.0", + "@fontsource/sn-pro": "5.1.0", + "@hono/auth-js": "1.0.10", + "@hookform/resolvers": "3.9.0", + "@iconify/tools": "4.0.6", + "@microflash/remark-callout-directives": "4.3.1", + "@mozilla/readability": "^0.5.0", + "@radix-ui/react-alert-dialog": "1.1.1", + "@radix-ui/react-avatar": "1.1.0", + "@radix-ui/react-checkbox": "1.1.1", + "@radix-ui/react-context-menu": "2.2.1", + "@radix-ui/react-dialog": "1.1.1", + "@radix-ui/react-dropdown-menu": "2.1.1", + "@radix-ui/react-hover-card": "1.1.1", + "@radix-ui/react-label": "2.1.0", + "@radix-ui/react-popover": "1.1.1", + "@radix-ui/react-radio-group": "1.2.0", + "@radix-ui/react-scroll-area": "1.1.0", + "@radix-ui/react-select": "2.1.1", + "@radix-ui/react-slider": "^1.2.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-switch": "1.1.0", + "@radix-ui/react-tabs": "1.1.0", + "@radix-ui/react-toast": "1.2.1", + "@radix-ui/react-tooltip": "1.1.2", + "@sentry/electron": "5.4.0", + "@sentry/react": "8.30.0", + "@sentry/vite-plugin": "2.22.4", + "@shikijs/transformers": "1.17.7", + "@t3-oss/env-core": "0.11.1", + "@tanstack/query-sync-storage-persister": "5.56.2", + "@tanstack/react-query": "5.56.2", + "@tanstack/react-query-devtools": "5.56.2", + "@tanstack/react-query-persist-client": "5.56.2", + "@use-gesture/react": "10.3.1", + "@yornaath/batshit": "0.10.1", + "bufferutil": "4.0.8", + "builder-util-runtime": "9.2.5", + "class-variance-authority": "0.7.0", + "click-to-react-component": "1.1.0", + "clsx": "2.1.1", + "cmdk": "1.0.0", + "dayjs": "1.11.13", + "dexie": "4.0.8", + "dnum": "^2.13.1", + "dotenv": "16.4.5", + "electron-context-menu": "4.0.4", + "electron-log": "5.2.0", + "electron-squirrel-startup": "1.0.1", + "electron-updater": "^6.3.4", + "font-list": "1.5.1", + "foxact": "0.2.38", + "framer-motion": "11.5.4", + "franc-min": "6.2.0", + "fuse.js": "7.0.0", + "hast-util-to-jsx-runtime": "2.3.0", + "hast-util-to-text": "4.0.2", + "i18next": "^23.15.1", + "i18next-browser-languagedetector": "8.0.0", + "idb-keyval": "6.2.1", + "immer": "10.1.1", + "jotai": "2.9.3", + "lethargy": "1.0.9", + "linkedom": "^0.18.4", + "lodash-es": "4.17.21", + "lowdb": "7.0.1", + "msedge-tts": "1.3.4", + "nanoid": "5.0.7", + "ofetch": "1.3.4", + "path-to-regexp": "8.1.0", + "posthog-js": "1.161.5", + "posthog-node": "4.2.0", + "re-resizable": "6.9.18", + "react-error-boundary": "4.0.13", + "react-fast-marquee": "1.6.5", + "react-hook-form": "7.53.0", + "react-hotkeys-hook": "4.5.1", + "react-i18next": "^15.0.2", + "react-intersection-observer": "9.13.1", + "react-resizable-layout": "npm:@innei/react-resizable-layout@0.7.3-fork.1", + "react-router-dom": "6.26.2", + "react-selecto": "1.26.3", + "react-shadow": "20.5.0", + "react-virtuoso": "4.10.4", + "rehype-infer-description-meta": "2.0.0", + "rehype-parse": "9.0.0", + "rehype-sanitize": "6.0.0", + "rehype-stringify": "10.0.0", + "remark-directive": "3.0.0", + "remark-gfm": "4.0.0", + "remark-gh-alerts": "0.0.3", + "remark-parse": "11.0.0", + "remark-rehype": "11.1.0", + "semver": "7.6.3", + "shiki": "1.17.7", + "sonner": "^1.5.0", + "swiper": "11.1.14", + "tailwind-merge": "2.5.2", + "tldts": "6.1.46", + "unified": "11.0.5", + "use-context-selector": "2.0.0", + "usehooks-ts": "3.1.0", + "utf-8-validate": "6.0.4", + "vfile": "6.0.3", + "vscode-languagedetection": "npm:@vscode/vscode-languagedetection@^1.0.22", + "zod": "3.23.8", + "zustand": "4.5.5" + }, + "devDependencies": { + "@babel/generator": "7.25.6", + "@clack/prompts": "0.7.0", + "@egoist/tailwindcss-icons": "1.8.1", + "@electron-forge/cli": "7.4.0", + "@electron-forge/maker-dmg": "7.4.0", + "@electron-forge/maker-squirrel": "7.4.0", + "@electron-forge/maker-zip": "7.4.0", + "@electron-forge/plugin-fuses": "7.4.0", + "@electron-forge/publisher-github": "7.4.0", + "@electron-toolkit/tsconfig": "^1.0.1", + "@hono/node-server": "1.13.0", + "@iconify-json/logos": "1.2.0", + "@iconify-json/mingcute": "1.2.0", + "@iconify-json/simple-icons": "^1.2.3", + "@pengx17/electron-forge-maker-appimage": "1.2.1", + "@tailwindcss/container-queries": "0.1.1", + "@tailwindcss/typography": "0.5.15", + "@types/lodash-es": "4.17.12", + "@types/node": "^22.5.5", + "@types/react": "^18.3.7", + "@types/react-dom": "^18.3.0", + "@vercel/ncc": "0.38.1", + "@vitejs/plugin-legacy": "5.4.2", + "@vitejs/plugin-react": "^4.3.1", + "cssnano": "7.0.6", + "drizzle-orm": "0.33.0", + "electron": "32.1.0", + "electron-devtools-installer": "3.2.0", + "electron-packager-languages": "0.5.0", + "electron-vite": "^2.3.0", + "eslint": "^9.10.0", + "eslint-config-hyoban": "^3.1.6", + "fake-indexeddb": "6.0.0", + "hono": "4.6.2", + "lint-staged": "15.2.10", + "nbump": "2.0.4", + "postcss": "8.4.47", + "postcss-js": "4.0.1", + "prettier": "3.3.3", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "rimraf": "6.0.1", + "shx": "^0.3.4", + "simple-git-hooks": "2.11.1", + "tailwindcss": "3.4.11", + "tailwindcss-animate": "1.0.7", + "tsx": "4.19.1", + "typescript": "^5.6.2", + "vite": "^5.4.6", + "vite-bundle-analyzer": "0.10.6", + "vite-plugin-mkcert": "1.17.6", + "vite-tsconfig-paths": "5.0.1", + "vitest": "2.0.5" + } +} diff --git a/src/shared/src/bridge.ts b/packages/shared/src/bridge.ts similarity index 100% rename from src/shared/src/bridge.ts rename to packages/shared/src/bridge.ts diff --git a/src/shared/src/constants.ts b/packages/shared/src/constants.ts similarity index 95% rename from src/shared/src/constants.ts rename to packages/shared/src/constants.ts index 70e2becb5..a2e4d3be8 100644 --- a/src/shared/src/constants.ts +++ b/packages/shared/src/constants.ts @@ -1,5 +1,6 @@ import type { ElectronAPI } from "@electron-toolkit/preload" -import { env } from "@env" + +import { env } from "./env" declare const globalThis: { window: Window & { diff --git a/src/shared/src/electron.ts b/packages/shared/src/electron.ts similarity index 95% rename from src/shared/src/electron.ts rename to packages/shared/src/electron.ts index 78325d7fc..8310cc229 100644 --- a/src/shared/src/electron.ts +++ b/packages/shared/src/electron.ts @@ -1,4 +1,4 @@ -import { DEEPLINK_SCHEME } from "@shared/constants" +import { DEEPLINK_SCHEME } from "./constants" const ELECTRON_QUERY_KEY = "__electron" export interface OpenElectronWindowOptions { diff --git a/src/env.ts b/packages/shared/src/env.ts similarity index 96% rename from src/env.ts rename to packages/shared/src/env.ts index 792b1a057..40d2af372 100644 --- a/src/env.ts +++ b/packages/shared/src/env.ts @@ -13,7 +13,7 @@ export const env = createEnv({ }, emptyStringAsUndefined: true, - runtimeEnv: getRuntimeEnv(), + runtimeEnv: getRuntimeEnv() as any, skipValidation: !isDev, }) diff --git a/src/shared/src/event.ts b/packages/shared/src/event.ts similarity index 100% rename from src/shared/src/event.ts rename to packages/shared/src/event.ts diff --git a/src/hono.ts b/packages/shared/src/hono.ts similarity index 94% rename from src/hono.ts rename to packages/shared/src/hono.ts index c4cfc0c01..cfbacc604 100644 --- a/src/hono.ts +++ b/packages/shared/src/hono.ts @@ -1,10 +1,10 @@ -import * as hono_hono_base from 'hono/hono-base'; -import { HttpBindings } from '@hono/node-server'; -import * as drizzle_orm from 'drizzle-orm'; -import { InferInsertModel } from 'drizzle-orm'; -import * as drizzle_orm_pg_core from 'drizzle-orm/pg-core'; -import * as zod from 'zod'; -import { z } from 'zod'; +import type { HttpBindings } from '@hono/node-server'; +import type * as drizzle_orm from 'drizzle-orm'; +import type { InferInsertModel } from 'drizzle-orm'; +import type * as drizzle_orm_pg_core from 'drizzle-orm/pg-core'; +import type * as hono_hono_base from 'hono/hono-base'; +import type * as zod from 'zod'; +import type { z } from 'zod'; type Env = { Bindings: HttpBindings; @@ -189,11 +189,7 @@ declare const actionsItemOpenAPISchema: z.ZodObject<{ }>; declare const actionsOpenAPISchema: z.ZodObject>; + rules: z.ZodNullable | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null, z.ZodTypeDef, string | number | boolean | Record | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null>>; }, "rules">, { rules: z.ZodNullable; insertedAt: z.ZodString; publishedAt: z.ZodString; - media: z.ZodNullable>; + media: z.ZodNullable | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null, z.ZodTypeDef, string | number | boolean | Record | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null>>; categories: z.ZodNullable>; - attachments: z.ZodNullable>; + attachments: z.ZodNullable | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null, z.ZodTypeDef, string | number | boolean | Record | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | (string | number | boolean | any | any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null>>; }, "media" | "attachments">, { attachments: z.ZodNullable; + updated: Record; }; outputFormat: "json" | "text"; status: 200; @@ -2929,9 +2913,7 @@ declare const _routes: hono_hono_base.HonoBase; }; outputFormat: "json" | "text"; status: 200; @@ -3209,14 +3191,12 @@ declare const _routes: hono_hono_base.HonoBase; entryReadHistories: { userIds: string[]; readCount: number; @@ -3390,14 +3370,12 @@ declare const _routes: hono_hono_base.HonoBase; entryReadHistories: { userIds: string[]; readCount: number; @@ -3531,17 +3509,13 @@ declare const _routes: hono_hono_base.HonoBase; path: string; example: string; name: string; @@ -3549,10 +3523,8 @@ declare const _routes: hono_hono_base.HonoBase; + }>; }; outputFormat: "json" | "text"; status: 200; @@ -3797,4 +3769,4 @@ declare const _routes: hono_hono_base.HonoBase; type AppType = typeof _routes; -export { type ActionsModel, type AppType, type AttachmentsModel, type EntriesModel, type EntryReadHistoriesModel, type FeedModel, type MediaModel, type SettingsModel, accounts, actions, actionsItemOpenAPISchema, actionsOpenAPISchema, actionsRelations, collections, collectionsOpenAPISchema, collectionsRelations, entries, entriesOpenAPISchema, entriesRelations, entryReadHistories, entryReadHistoriesOpenAPISchema, entryReadHistoriesRelations, feedPowerTokens, feedPowerTokensOpenAPISchema, feedPowerTokensRelations, feeds, feedsInputSchema, feedsOpenAPISchema, feedsRelations, invitations, invitationsOpenAPISchema, invitationsRelations, languageSchema, sessions, settings, subscriptions, subscriptionsOpenAPISchema, subscriptionsRelations, timeline, timelineOpenAPISchema, timelineRelations, transactionType, transactions, transactionsOpenAPISchema, transactionsRelations, users, usersOpenApiSchema, usersRelations, verificationTokens, wallets, walletsOpenAPISchema, walletsRelations }; +export { accounts, actions, actionsItemOpenAPISchema, type ActionsModel, actionsOpenAPISchema, actionsRelations, type AppType, type AttachmentsModel, collections, collectionsOpenAPISchema, collectionsRelations, entries, type EntriesModel, entriesOpenAPISchema, entriesRelations, entryReadHistories, type EntryReadHistoriesModel, entryReadHistoriesOpenAPISchema, entryReadHistoriesRelations, type FeedModel, feedPowerTokens, feedPowerTokensOpenAPISchema, feedPowerTokensRelations, feeds, feedsInputSchema, feedsOpenAPISchema, feedsRelations, invitations, invitationsOpenAPISchema, invitationsRelations, languageSchema, type MediaModel, sessions, settings, type SettingsModel, subscriptions, subscriptionsOpenAPISchema, subscriptionsRelations, timeline, timelineOpenAPISchema, timelineRelations, transactions, transactionsOpenAPISchema, transactionsRelations, transactionType, users, usersOpenApiSchema, usersRelations, verificationTokens, wallets, walletsOpenAPISchema, walletsRelations }; diff --git a/src/shared/src/image.ts b/packages/shared/src/image.ts similarity index 100% rename from src/shared/src/image.ts rename to packages/shared/src/image.ts diff --git a/src/shared/src/index.ts b/packages/shared/src/index.ts similarity index 100% rename from src/shared/src/index.ts rename to packages/shared/src/index.ts diff --git a/src/shared/src/interface/settings.ts b/packages/shared/src/interface/settings.ts similarity index 100% rename from src/shared/src/interface/settings.ts rename to packages/shared/src/interface/settings.ts diff --git a/src/shared/src/queue.ts b/packages/shared/src/queue.ts similarity index 100% rename from src/shared/src/queue.ts rename to packages/shared/src/queue.ts diff --git a/packages/shared/tsconfig.json b/packages/shared/tsconfig.json new file mode 100644 index 000000000..eddf253c3 --- /dev/null +++ b/packages/shared/tsconfig.json @@ -0,0 +1,19 @@ +{ + "extends": "@electron-toolkit/tsconfig/tsconfig.node.json", + "compilerOptions": { + "composite": true, + "types": ["electron-vite/node"], + "moduleResolution": "Bundler", + "noImplicitReturns": false, + "noUnusedLocals": false, + "noUnusedParameters": false, + "baseUrl": ".", + "paths": { + "@shared/*": ["./src/*"], + "@env": ["src/env.ts"], + "@pkg": ["../../package.json"], + "@locales/*": ["../../locales/*"], + "~/*": ["./src/*"] + } + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b08826930..cab1b846c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -28,6 +28,680 @@ patchedDependencies: importers: .: + devDependencies: + '@babel/generator': + specifier: 7.25.6 + version: 7.25.6 + '@clack/prompts': + specifier: 0.7.0 + version: 0.7.0 + '@egoist/tailwindcss-icons': + specifier: 1.8.1 + version: 1.8.1(tailwindcss@3.4.11) + '@electron-forge/cli': + specifier: 7.4.0 + version: 7.4.0(encoding@0.1.13) + '@electron-forge/maker-dmg': + specifier: 7.4.0 + version: 7.4.0 + '@electron-forge/maker-squirrel': + specifier: 7.4.0 + version: 7.4.0 + '@electron-forge/maker-zip': + specifier: 7.4.0 + version: 7.4.0 + '@electron-forge/plugin-fuses': + specifier: 7.4.0 + version: 7.4.0(@electron/fuses@1.8.0) + '@electron-forge/publisher-github': + specifier: 7.4.0 + version: 7.4.0(encoding@0.1.13) + '@electron-toolkit/tsconfig': + specifier: ^1.0.1 + version: 1.0.1(@types/node@22.5.5) + '@fontsource/sn-pro': + specifier: 5.1.0 + version: 5.1.0 + '@hono/node-server': + specifier: 1.13.0 + version: 1.13.0(hono@4.6.2(patch_hash=iej2g43ojhll5opwbnvyorjq4e)) + '@hookform/resolvers': + specifier: 3.9.0 + version: 3.9.0(react-hook-form@7.53.0(react@18.3.1)) + '@iconify-json/logos': + specifier: 1.2.0 + version: 1.2.0 + '@iconify-json/mingcute': + specifier: 1.2.0 + version: 1.2.0 + '@iconify-json/simple-icons': + specifier: ^1.2.3 + version: 1.2.3 + '@iconify/tools': + specifier: 4.0.6 + version: 4.0.6 + '@microflash/remark-callout-directives': + specifier: 4.3.1 + version: 4.3.1 + '@mozilla/readability': + specifier: ^0.5.0 + version: 0.5.0(patch_hash=fgkvsbckled47trggkhdkimzbm) + '@pengx17/electron-forge-maker-appimage': + specifier: 1.2.1 + version: 1.2.1(dmg-builder@25.0.5(electron-builder-squirrel-windows@25.0.5))(electron-builder-squirrel-windows@25.0.5(dmg-builder@25.0.5)) + '@sentry/vite-plugin': + specifier: 2.22.4 + version: 2.22.4(encoding@0.1.13) + '@t3-oss/env-core': + specifier: ^0.11.1 + version: 0.11.1(typescript@5.6.2)(zod@3.23.8) + '@tailwindcss/container-queries': + specifier: 0.1.1 + version: 0.1.1(tailwindcss@3.4.11) + '@tailwindcss/typography': + specifier: 0.5.15 + version: 0.5.15(tailwindcss@3.4.11) + '@types/lodash-es': + specifier: 4.17.12 + version: 4.17.12 + '@types/node': + specifier: ^22.5.5 + version: 22.5.5 + '@types/react': + specifier: ^18.3.7 + version: 18.3.7 + '@types/react-dom': + specifier: ^18.3.0 + version: 18.3.0 + '@vitejs/plugin-legacy': + specifier: 5.4.2 + version: 5.4.2(terser@5.32.0)(vite@5.4.6(@types/node@22.5.5)(terser@5.32.0)) + '@vitejs/plugin-react': + specifier: ^4.3.1 + version: 4.3.1(vite@5.4.6(@types/node@22.5.5)(terser@5.32.0)) + '@yornaath/batshit': + specifier: 0.10.1 + version: 0.10.1 + bufferutil: + specifier: 4.0.8 + version: 4.0.8 + builder-util-runtime: + specifier: 9.2.5 + version: 9.2.5 + cssnano: + specifier: 7.0.6 + version: 7.0.6(postcss@8.4.47) + dnum: + specifier: ^2.13.1 + version: 2.13.1 + dotenv: + specifier: 16.4.5 + version: 16.4.5 + drizzle-orm: + specifier: 0.33.0 + version: 0.33.0(@opentelemetry/api@1.9.0)(@types/pg@8.11.8)(@types/react@18.3.7)(react@18.3.1) + electron: + specifier: 32.1.0 + version: 32.1.0 + electron-devtools-installer: + specifier: 3.2.0 + version: 3.2.0 + electron-packager-languages: + specifier: 0.5.0 + version: 0.5.0 + electron-vite: + specifier: ^2.3.0 + version: 2.3.0(vite@5.4.6(@types/node@22.5.5)(terser@5.32.0)) + eslint: + specifier: ^9.10.0 + version: 9.10.0(jiti@1.21.6) + eslint-config-hyoban: + specifier: ^3.1.6 + version: 3.1.6(@typescript-eslint/eslint-plugin@8.6.0(@typescript-eslint/parser@8.6.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2))(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2))(eslint@9.10.0(jiti@1.21.6))(tailwindcss@3.4.11)(typescript@5.6.2) + fake-indexeddb: + specifier: 6.0.0 + version: 6.0.0 + hono: + specifier: 4.6.2 + version: 4.6.2(patch_hash=iej2g43ojhll5opwbnvyorjq4e) + lint-staged: + specifier: 15.2.10 + version: 15.2.10 + nbump: + specifier: 2.0.4 + version: 2.0.4(conventional-commits-filter@5.0.0) + postcss: + specifier: 8.4.47 + version: 8.4.47 + postcss-js: + specifier: 4.0.1 + version: 4.0.1(postcss@8.4.47) + prettier: + specifier: 3.3.3 + version: 3.3.3 + react: + specifier: ^18.3.1 + version: 18.3.1 + react-dom: + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) + rimraf: + specifier: 6.0.1 + version: 6.0.1 + shx: + specifier: ^0.3.4 + version: 0.3.4 + simple-git-hooks: + specifier: 2.11.1 + version: 2.11.1 + tailwindcss: + specifier: 3.4.11 + version: 3.4.11 + tailwindcss-animate: + specifier: 1.0.7 + version: 1.0.7(tailwindcss@3.4.11) + tsup: + specifier: 8.3.0 + version: 8.3.0(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.6.2)(yaml@2.5.1) + tsx: + specifier: 4.19.1 + version: 4.19.1 + typescript: + specifier: ^5.6.2 + version: 5.6.2 + vite: + specifier: ^5.4.6 + version: 5.4.6(@types/node@22.5.5)(terser@5.32.0) + vite-bundle-analyzer: + specifier: 0.10.6 + version: 0.10.6 + vite-plugin-mkcert: + specifier: 1.17.6 + version: 1.17.6(vite@5.4.6(@types/node@22.5.5)(terser@5.32.0)) + vite-tsconfig-paths: + specifier: 5.0.1 + version: 5.0.1(typescript@5.6.2)(vite@5.4.6(@types/node@22.5.5)(terser@5.32.0)) + vitest: + specifier: '2.0' + version: 2.0.5(@types/node@22.5.5)(terser@5.32.0) + + apps/main: + dependencies: + '@egoist/tipc': + specifier: 0.3.2 + version: 0.3.2(electron@32.1.0)(react@18.3.1) + '@electron-toolkit/preload': + specifier: ^3.0.1 + version: 3.0.1(electron@32.1.0) + '@electron-toolkit/utils': + specifier: ^3.0.0 + version: 3.0.0(electron@32.1.0) + '@follow/shared': + specifier: workspace:* + version: link:../../packages/shared + '@mozilla/readability': + specifier: ^0.5.0 + version: 0.5.0(patch_hash=fgkvsbckled47trggkhdkimzbm) + '@sentry/electron': + specifier: 5.4.0 + version: 5.4.0 + '@yornaath/batshit': + specifier: 0.10.1 + version: 0.10.1 + bufferutil: + specifier: 4.0.8 + version: 4.0.8 + builder-util-runtime: + specifier: 9.2.5 + version: 9.2.5 + dayjs: + specifier: 1.11.13 + version: 1.11.13 + dotenv: + specifier: 16.4.5 + version: 16.4.5 + electron-context-menu: + specifier: 4.0.4 + version: 4.0.4 + electron-log: + specifier: 5.2.0 + version: 5.2.0 + electron-squirrel-startup: + specifier: 1.0.1 + version: 1.0.1 + electron-updater: + specifier: ^6.3.4 + version: 6.3.4 + font-list: + specifier: 1.5.1 + version: 1.5.1 + i18next: + specifier: ^23.15.1 + version: 23.15.1 + i18next-browser-languagedetector: + specifier: 8.0.0 + version: 8.0.0 + idb-keyval: + specifier: 6.2.1 + version: 6.2.1 + linkedom: + specifier: ^0.18.4 + version: 0.18.4 + lodash-es: + specifier: 4.17.21 + version: 4.17.21 + lowdb: + specifier: 7.0.1 + version: 7.0.1 + msedge-tts: + specifier: 1.3.4 + version: 1.3.4(bufferutil@4.0.8)(utf-8-validate@6.0.4) + nanoid: + specifier: 5.0.7 + version: 5.0.7 + ofetch: + specifier: 1.3.4 + version: 1.3.4 + posthog-js: + specifier: 1.161.5 + version: 1.161.5 + posthog-node: + specifier: 4.2.0 + version: 4.2.0 + semver: + specifier: 7.6.3 + version: 7.6.3 + tldts: + specifier: 6.1.46 + version: 6.1.46 + vscode-languagedetection: + specifier: npm:@vscode/vscode-languagedetection@^1.0.22 + version: '@vscode/vscode-languagedetection@1.0.22' + zod: + specifier: 3.23.8 + version: 3.23.8 + devDependencies: + '@babel/generator': + specifier: 7.25.6 + version: 7.25.6 + '@hono/node-server': + specifier: 1.13.0 + version: 1.13.0(hono@4.6.2(patch_hash=iej2g43ojhll5opwbnvyorjq4e)) + '@types/lodash-es': + specifier: 4.17.12 + version: 4.17.12 + '@types/node': + specifier: ^22.5.5 + version: 22.5.5 + drizzle-orm: + specifier: 0.33.0 + version: 0.33.0(@opentelemetry/api@1.9.0)(@types/pg@8.11.8)(@types/react@18.3.7)(react@18.3.1) + electron: + specifier: 32.1.0 + version: 32.1.0 + electron-devtools-installer: + specifier: 3.2.0 + version: 3.2.0 + hono: + specifier: 4.6.2 + version: 4.6.2(patch_hash=iej2g43ojhll5opwbnvyorjq4e) + rimraf: + specifier: 6.0.1 + version: 6.0.1 + tsx: + specifier: 4.19.1 + version: 4.19.1 + typescript: + specifier: ^5.6.2 + version: 5.6.2 + + apps/renderer: + dependencies: + '@egjs/react-infinitegrid': + specifier: 4.12.0 + version: 4.12.0 + '@egoist/tipc': + specifier: 0.3.2 + version: 0.3.2(electron@32.1.0)(react@18.3.1) + '@electron-toolkit/preload': + specifier: ^3.0.1 + version: 3.0.1(electron@32.1.0) + '@electron-toolkit/utils': + specifier: ^3.0.0 + version: 3.0.0(electron@32.1.0) + '@follow/electron-main': + specifier: workspace:* + version: link:../main + '@follow/shared': + specifier: workspace:* + version: link:../../packages/shared + '@fontsource/sn-pro': + specifier: 5.1.0 + version: 5.1.0 + '@hono/auth-js': + specifier: 1.0.10 + version: 1.0.10(@auth/core@0.34.2)(hono@4.6.2(patch_hash=iej2g43ojhll5opwbnvyorjq4e))(react@18.3.1) + '@hookform/resolvers': + specifier: 3.9.0 + version: 3.9.0(react-hook-form@7.53.0(react@18.3.1)) + '@iconify/tools': + specifier: 4.0.6 + version: 4.0.6 + '@microflash/remark-callout-directives': + specifier: 4.3.1 + version: 4.3.1 + '@mozilla/readability': + specifier: ^0.5.0 + version: 0.5.0(patch_hash=fgkvsbckled47trggkhdkimzbm) + '@radix-ui/react-alert-dialog': + specifier: 1.1.1 + version: 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-avatar': + specifier: 1.1.0 + version: 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-checkbox': + specifier: 1.1.1 + version: 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-context-menu': + specifier: 2.2.1 + version: 2.2.1(@types/react-dom@18.3.0)(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-dialog': + specifier: 1.1.1 + version: 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-dropdown-menu': + specifier: 2.1.1 + version: 2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-hover-card': + specifier: 1.1.1 + version: 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-label': + specifier: 2.1.0 + version: 2.1.0(@types/react-dom@18.3.0)(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-popover': + specifier: 1.1.1 + version: 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-radio-group': + specifier: 1.2.0 + version: 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-scroll-area': + specifier: 1.1.0 + version: 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-select': + specifier: 2.1.1 + version: 2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slider': + specifier: ^1.2.0 + version: 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': + specifier: 1.1.0 + version: 1.1.0(@types/react@18.3.7)(react@18.3.1) + '@radix-ui/react-switch': + specifier: 1.1.0 + version: 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-tabs': + specifier: 1.1.0 + version: 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toast': + specifier: 1.2.1 + version: 1.2.1(@types/react-dom@18.3.0)(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-tooltip': + specifier: 1.1.2 + version: 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@sentry/react': + specifier: 8.30.0 + version: 8.30.0(react@18.3.1) + '@sentry/vite-plugin': + specifier: 2.22.4 + version: 2.22.4(encoding@0.1.13) + '@shikijs/transformers': + specifier: 1.17.7 + version: 1.17.7 + '@t3-oss/env-core': + specifier: ^0.11.1 + version: 0.11.1(typescript@5.6.2)(zod@3.23.8) + '@tanstack/query-sync-storage-persister': + specifier: 5.56.2 + version: 5.56.2 + '@tanstack/react-query': + specifier: 5.56.2 + version: 5.56.2(react@18.3.1) + '@tanstack/react-query-devtools': + specifier: 5.56.2 + version: 5.56.2(@tanstack/react-query@5.56.2(react@18.3.1))(react@18.3.1) + '@tanstack/react-query-persist-client': + specifier: 5.56.2 + version: 5.56.2(@tanstack/react-query@5.56.2(react@18.3.1))(react@18.3.1) + '@use-gesture/react': + specifier: 10.3.1 + version: 10.3.1(react@18.3.1) + '@yornaath/batshit': + specifier: 0.10.1 + version: 0.10.1 + bufferutil: + specifier: 4.0.8 + version: 4.0.8 + builder-util-runtime: + specifier: 9.2.5 + version: 9.2.5 + class-variance-authority: + specifier: 0.7.0 + version: 0.7.0 + click-to-react-component: + specifier: 1.1.0 + version: 1.1.0(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + clsx: + specifier: 2.1.1 + version: 2.1.1 + cmdk: + specifier: 1.0.0 + version: 1.0.0(@types/react-dom@18.3.0)(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + dayjs: + specifier: 1.11.13 + version: 1.11.13 + dexie: + specifier: 4.0.8 + version: 4.0.8 + dnum: + specifier: ^2.13.1 + version: 2.13.1 + dotenv: + specifier: 16.4.5 + version: 16.4.5 + electron-log: + specifier: 5.2.0 + version: 5.2.0 + foxact: + specifier: 0.2.38 + version: 0.2.38(react@18.3.1) + framer-motion: + specifier: 11.5.4 + version: 11.5.4(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + franc-min: + specifier: 6.2.0 + version: 6.2.0 + fuse.js: + specifier: 7.0.0 + version: 7.0.0 + hast-util-to-jsx-runtime: + specifier: 2.3.0 + version: 2.3.0 + hast-util-to-text: + specifier: 4.0.2 + version: 4.0.2 + i18next: + specifier: ^23.15.1 + version: 23.15.1 + i18next-browser-languagedetector: + specifier: 8.0.0 + version: 8.0.0 + idb-keyval: + specifier: 6.2.1 + version: 6.2.1 + immer: + specifier: 10.1.1 + version: 10.1.1(patch_hash=og7mbnoo5vh43tjlw5rbmrdbvu) + jotai: + specifier: 2.9.3 + version: 2.9.3(@types/react@18.3.7)(react@18.3.1) + lethargy: + specifier: 1.0.9 + version: 1.0.9 + linkedom: + specifier: ^0.18.4 + version: 0.18.4 + lodash-es: + specifier: 4.17.21 + version: 4.17.21 + msedge-tts: + specifier: 1.3.4 + version: 1.3.4(bufferutil@4.0.8)(utf-8-validate@6.0.4) + nanoid: + specifier: 5.0.7 + version: 5.0.7 + ofetch: + specifier: 1.3.4 + version: 1.3.4 + path-to-regexp: + specifier: 8.1.0 + version: 8.1.0 + posthog-js: + specifier: 1.161.5 + version: 1.161.5 + re-resizable: + specifier: 6.9.18 + version: 6.9.18(patch_hash=yitcmpfwcomg2fky72uc3lhk2i)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-error-boundary: + specifier: 4.0.13 + version: 4.0.13(react@18.3.1) + react-fast-marquee: + specifier: 1.6.5 + version: 1.6.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-hook-form: + specifier: 7.53.0 + version: 7.53.0(react@18.3.1) + react-hotkeys-hook: + specifier: 4.5.1 + version: 4.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-i18next: + specifier: ^15.0.2 + version: 15.0.2(i18next@23.15.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-intersection-observer: + specifier: 9.13.1 + version: 9.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-resizable-layout: + specifier: npm:@innei/react-resizable-layout@0.7.3-fork.1 + version: '@innei/react-resizable-layout@0.7.3-fork.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)' + react-router-dom: + specifier: 6.26.2 + version: 6.26.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-selecto: + specifier: 1.26.3 + version: 1.26.3 + react-shadow: + specifier: 20.5.0 + version: 20.5.0(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-virtuoso: + specifier: 4.10.4 + version: 4.10.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rehype-infer-description-meta: + specifier: 2.0.0 + version: 2.0.0 + rehype-parse: + specifier: 9.0.0 + version: 9.0.0 + rehype-sanitize: + specifier: 6.0.0 + version: 6.0.0 + rehype-stringify: + specifier: 10.0.0 + version: 10.0.0 + remark-directive: + specifier: 3.0.0 + version: 3.0.0 + remark-gfm: + specifier: 4.0.0 + version: 4.0.0 + remark-gh-alerts: + specifier: 0.0.3 + version: 0.0.3(@types/mdast@4.0.4)(unified@11.0.5) + remark-parse: + specifier: 11.0.0 + version: 11.0.0 + remark-rehype: + specifier: 11.1.0 + version: 11.1.0 + semver: + specifier: 7.6.3 + version: 7.6.3 + shiki: + specifier: 1.17.7 + version: 1.17.7 + sonner: + specifier: ^1.5.0 + version: 1.5.0(patch_hash=6s3tquyt5wnkqaogymn3mkivuq)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + swiper: + specifier: 11.1.14 + version: 11.1.14 + tailwind-merge: + specifier: 2.5.2 + version: 2.5.2 + tldts: + specifier: 6.1.46 + version: 6.1.46 + unified: + specifier: 11.0.5 + version: 11.0.5 + use-context-selector: + specifier: 2.0.0 + version: 2.0.0(react@18.3.1)(scheduler@0.23.2) + usehooks-ts: + specifier: 3.1.0 + version: 3.1.0(react@18.3.1) + utf-8-validate: + specifier: 6.0.4 + version: 6.0.4 + vfile: + specifier: 6.0.3 + version: 6.0.3 + zod: + specifier: 3.23.8 + version: 3.23.8 + zustand: + specifier: 4.5.5 + version: 4.5.5(@types/react@18.3.7)(immer@10.1.1(patch_hash=og7mbnoo5vh43tjlw5rbmrdbvu))(react@18.3.1) + devDependencies: + '@babel/generator': + specifier: 7.25.6 + version: 7.25.6 + '@hono/node-server': + specifier: 1.13.0 + version: 1.13.0(hono@4.6.2(patch_hash=iej2g43ojhll5opwbnvyorjq4e)) + '@types/lodash-es': + specifier: 4.17.12 + version: 4.17.12 + '@types/node': + specifier: ^22.5.5 + version: 22.5.5 + '@types/react': + specifier: ^18.3.7 + version: 18.3.7 + '@types/react-dom': + specifier: ^18.3.0 + version: 18.3.0 + fake-indexeddb: + specifier: 6.0.0 + version: 6.0.0 + react: + specifier: ^18.3.1 + version: 18.3.1 + react-dom: + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) + typescript: + specifier: ^5.6.2 + version: 5.6.2 + + packages/shared: dependencies: '@egjs/react-infinitegrid': specifier: 4.12.0 @@ -126,7 +800,7 @@ importers: specifier: 1.17.7 version: 1.17.7 '@t3-oss/env-core': - specifier: ^0.11.1 + specifier: 0.11.1 version: 0.11.1(typescript@5.6.2)(zod@3.23.8) '@tanstack/query-sync-storage-persister': specifier: 5.56.2 @@ -536,9 +1210,6 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@antfu/install-pkg@0.4.0': - resolution: {integrity: sha512-vI73C0pFA9L+5v+djh0WSLXb8qYQGH5fX8nczaFe1OTI/8Fh03JS1Mov1V7urb6P3A2cBlBqZNjJIKv54+zVRw==} - '@antfu/install-pkg@0.4.1': resolution: {integrity: sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw==} @@ -670,11 +1341,6 @@ packages: resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.25.4': - resolution: {integrity: sha512-nq+eWrOgdtu3jG5Os4TQP3x3cLA8hR8TvJNjD8vnPa20WGycimcparWnLK4jJhElTK6SDyuJo1weMKO/5LpmLA==} - engines: {node: '>=6.0.0'} - hasBin: true - '@babel/parser@7.25.6': resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==} engines: {node: '>=6.0.0'} @@ -1147,18 +1813,10 @@ packages: resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.25.4': - resolution: {integrity: sha512-VJ4XsrD+nOvlXyLzmLzUs/0qjFS4sK30te5yEFlvbbUNEgKaVb2BHZUpAL+ttLPQAHNrsI3zZisbfha5Cvr8vg==} - engines: {node: '>=6.9.0'} - '@babel/traverse@7.25.6': resolution: {integrity: sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==} engines: {node: '>=6.9.0'} - '@babel/types@7.25.4': - resolution: {integrity: sha512-zQ1ijeeCXVEh+aNL0RlmkPkG8HUiDcU2pzQQFjtbntgAczRASFzj4H+6+bV+dy1ntKR14I/DypeuRG1uma98iQ==} - engines: {node: '>=6.9.0'} - '@babel/types@7.25.6': resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} engines: {node: '>=6.9.0'} @@ -1822,9 +2480,6 @@ packages: '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} - '@iconify/utils@2.1.31': - resolution: {integrity: sha512-WCu65iVaFRXyGU+op12XVbDZgIov0vzMIlUokZ1WR42cU2wwYMks/pZY8v0tE72W8ShXVaprO79Jv6EjYm3Sjw==} - '@iconify/utils@2.1.32': resolution: {integrity: sha512-LeifFZPPKu28O3AEDpYJNdEbvS4/ojAPyIW+pF/vUpJTYnbTiXUHkCh0bwgFRzKvdpb8H4Fbfd/742++MF4fPQ==} @@ -3634,12 +4289,6 @@ packages: resolution: {integrity: sha512-KbWgR8wOYRAPekEmMXrYYdc7BRyhn2Ftk7KWfMUnQ43hFdojWEFRxhhRUm3/OFEdPa1r0KAvTTg9YQK57xTe0g==} engines: {node: '>=0.8'} - axios@1.7.4: - resolution: {integrity: sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==} - - axios@1.7.6: - resolution: {integrity: sha512-Ekur6XDwhnJ5RgOCaxFnXyqlPALI3rVeukZMwOdfghW7/wGz784BYKiQq+QD8NPcr91KRo30KfHOchyijwWw7g==} - axios@1.7.7: resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} @@ -3833,9 +4482,6 @@ packages: caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-lite@1.0.30001651: - resolution: {integrity: sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==} - caniuse-lite@1.0.30001659: resolution: {integrity: sha512-Qxxyfv3RdHAfJcXelgf0hU4DFUVXBGTjqrBUZLUh8AtlGnsDo+CnncYtTd95+ZKfnANUOzxyIQCuU/UeBZBYoA==} @@ -4280,15 +4926,6 @@ packages: supports-color: optional: true - debug@4.3.6: - resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.3.7: resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} engines: {node: '>=6.0'} @@ -4927,6 +5564,10 @@ packages: resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} engines: {node: '>=6'} + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + execa@8.0.1: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} @@ -4981,6 +5622,14 @@ packages: fd-slicer@1.1.0: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + fdir@6.3.0: + resolution: {integrity: sha512-QOnuT+BOtivR77wYvCWHfGt9s4Pz1VIMbD463vegT5MLqNXy8rYFT/lPVEqf/bhYeT6qmqrNHhsX+rWwe3rOCQ==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + fflate@0.4.8: resolution: {integrity: sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==} @@ -5033,15 +5682,6 @@ packages: fmix@0.1.0: resolution: {integrity: sha512-Y6hyofImk9JdzU8k5INtTXX1cu8LDlePWDFU5sftm9H+zKCr5SGrVjdhkvsim646cw5zD0nADj8oHyXMZmCZ9w==} - follow-redirects@1.15.6: - resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - follow-redirects@1.15.9: resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} engines: {node: '>=4.0'} @@ -5199,6 +5839,10 @@ packages: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + get-stream@8.0.1: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} @@ -5361,27 +6005,18 @@ packages: hast-util-parse-selector@4.0.0: resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} - hast-util-raw@9.0.4: - resolution: {integrity: sha512-LHE65TD2YiNsHD3YuXcKPHXPLuYh/gjp12mOfU8jxSrm1f/yJpsb0F/KKljS6U9LJoP0Ux+tCe8iJ2AsPzTdgA==} - hast-util-sanitize@5.0.1: resolution: {integrity: sha512-IGrgWLuip4O2nq5CugXy4GI2V8kx4sFVy5Hd4vF7AR2gxS0N9s7nEAVUyeMtZKZvzrxVsHt73XdTsno1tClIkQ==} hast-util-select@6.0.2: resolution: {integrity: sha512-hT/SD/d/Meu+iobvgkffo1QecV8WeKWxwsNMzcTJsKw1cKTQKSR/7ArJeURLNJF9HDjp9nVoORyNNJxrvBye8Q==} - hast-util-to-html@9.0.1: - resolution: {integrity: sha512-hZOofyZANbyWo+9RP75xIDV/gq+OUKx+T46IlwERnKmfpwp81XBFbT9mi26ws+SJchA4RVUQwIBJpqEOBhMzEQ==} - hast-util-to-html@9.0.2: resolution: {integrity: sha512-RP5wNpj5nm1Z8cloDv4Sl4RS8jH5HYa0v93YB6Wb4poEzgMo/dAAL0KcT4974dCjcNG5pkLqTImeFHHCwwfY3g==} hast-util-to-jsx-runtime@2.3.0: resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==} - hast-util-to-parse5@8.0.0: - resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} - hast-util-to-string@3.0.0: resolution: {integrity: sha512-OGkAxX1Ua3cbcW6EJ5pT/tslVb90uViVkcJ4ZZIMW/R33DX/AkcJcRrPebPwJkHYwlDHXz4aIwvAAaAdtrACFA==} @@ -5461,6 +6096,10 @@ packages: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} @@ -5668,6 +6307,10 @@ packages: resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} engines: {node: '>=0.10.0'} + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + is-stream@3.0.0: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -5731,6 +6374,10 @@ packages: react: optional: true + joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -5916,6 +6563,9 @@ packages: lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + lodash.union@4.6.0: resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} @@ -6292,9 +6942,6 @@ packages: ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -6401,6 +7048,10 @@ packages: resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} engines: {node: '>=4'} + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + npm-run-path@5.3.0: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -6539,9 +7190,6 @@ packages: resolution: {integrity: sha512-fEG8kM+EfX0j7TbTWAv6/0NRkid0fUHm2afJx35en3+IlrJ6dRQfKUCpuUl/bGM6MvQ0MxAlpaXkJtYVMp0F4A==} hasBin: true - package-manager-detector@0.1.2: - resolution: {integrity: sha512-iePyefLTOm2gEzbaZKSW+eBMjg+UYsQvUKxmvGXAQ987K16efBg10MxIjZs08iyX+DY2/owKY9DIdu193kX33w==} - package-manager-detector@0.2.0: resolution: {integrity: sha512-E385OSk9qDcXhcM9LNSe4sdhx8a9mAPrZ4sMLW+tmxl5ZuGtPUcdFu+MPP2jbgiWAZ6Pfe5soGFMd+0Db5Vrog==} @@ -6686,9 +7334,6 @@ packages: resolution: {integrity: sha512-cRL3JpS3lKMGsKaWndugWQoLOCoP+Cic8oseVcbr0qhPzYD5DWXK+RZ9LY9wxRf7RQia4SCwQlXk0q6FCPrVng==} engines: {node: '>=10'} - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} - picocolors@1.1.0: resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} @@ -6717,9 +7362,6 @@ packages: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} - pkg-types@1.1.3: - resolution: {integrity: sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==} - pkg-types@1.2.0: resolution: {integrity: sha512-+ifYuSSqOQ8CqP4MbZA5hDpb97n3E8SVWdJe+Wms9kj745lmd3b7EZJiqvmLwAlmRfjrI7Hi5z3kdBJ93lFNPA==} @@ -6800,6 +7442,24 @@ packages: ts-node: optional: true + postcss-load-config@6.0.1: + resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} + engines: {node: '>= 18'} + peerDependencies: + jiti: '>=1.21.0' + postcss: '>=8.0.9' + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + tsx: + optional: true + yaml: + optional: true + postcss-merge-longhand@7.0.4: resolution: {integrity: sha512-zer1KoZA54Q8RVHKOY5vMke0cCdNxMP3KBfDerjH/BYHh4nCIh+1Yy0t1pAEQF18ac/4z3OFclO+ZVH8azjR4A==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} @@ -7381,6 +8041,10 @@ packages: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + resolve-package@1.0.1: resolution: {integrity: sha512-rzB7NnQpOkPHBWFPP3prUMqOP6yg3HkRGgcvR+lDyvyHoY3fZLFLYDkPXh78SPVBAE6VTCk/V+j8we4djg6o4g==} engines: {node: '>=4', npm: '>=2'} @@ -7631,6 +8295,10 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} @@ -7721,6 +8389,10 @@ packages: resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} engines: {node: '>=0.10.0'} + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + strip-final-newline@3.0.0: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} @@ -7839,12 +8511,13 @@ packages: tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} - tinyexec@0.2.0: - resolution: {integrity: sha512-au8dwv4xKSDR+Fw52csDo3wcDztPdne2oM1o/7LFro4h6bdFmvyUAeAfX40pwDtzHgRFqz1XWaUqgKS2G83/ig==} - tinyexec@0.3.0: resolution: {integrity: sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==} + tinyglobby@0.2.6: + resolution: {integrity: sha512-NbBoFBpqfcgd1tCiO8Lkfdk+xrA7mlLR9zgvZcZWQQwU63XAfUePyd6wZBaU93Hqw347lHnwFzttAkemHzzz4g==} + engines: {node: '>=12.0.0'} + tinypool@1.0.1: resolution: {integrity: sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==} engines: {node: ^18.0.0 || >=20.0.0} @@ -7889,6 +8562,13 @@ packages: tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + trigram-utils@2.0.1: resolution: {integrity: sha512-nfWIXHEaB+HdyslAfMxSqWKDdmqY9I32jS7GnqpdWQnLH89r6A5sdk3fDVYqGAZ0CrT8ovAFSAo6HRiWcWNIGQ==} @@ -7932,12 +8612,28 @@ packages: typescript: optional: true - tslib@2.6.3: - resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} - tslib@2.7.0: resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} + tsup@8.3.0: + resolution: {integrity: sha512-ALscEeyS03IomcuNdFdc0YWGVIkwH1Ws7nfTbAPuoILvEV2hpGQAY72LIOjglGo4ShWpZfpBqP/jpQVCzqYQag==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + '@microsoft/api-extractor': ^7.36.0 + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.5.0' + peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + tsx@4.19.1: resolution: {integrity: sha512-0flMz1lh74BR4wOvBjuh9olbnwqCPc35OOlfyzHba0Dc+QNUeWX/Gq2YTbnwcWPO3BMd8fkzRVrHcsR+a7z7rA==} engines: {node: '>=18.0.0'} @@ -8262,6 +8958,9 @@ packages: webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + webpack-sources@3.2.3: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} @@ -8280,6 +8979,9 @@ packages: whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + which@1.3.1: resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} hasBin: true @@ -8425,11 +9127,6 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@antfu/install-pkg@0.4.0': - dependencies: - package-manager-detector: 0.1.2 - tinyexec: 0.2.0 - '@antfu/install-pkg@0.4.1': dependencies: package-manager-detector: 0.2.0 @@ -8462,10 +9159,10 @@ snapshots: '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) '@babel/helpers': 7.25.0 - '@babel/parser': 7.25.4 + '@babel/parser': 7.25.6 '@babel/template': 7.25.0 - '@babel/traverse': 7.25.4 - '@babel/types': 7.25.4 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 convert-source-map: 2.0.0 debug: 4.3.7 gensync: 1.0.0-beta.2 @@ -8487,7 +9184,7 @@ snapshots: '@babel/helper-builder-binary-assignment-operator-visitor@7.24.7': dependencies: - '@babel/traverse': 7.25.4 + '@babel/traverse': 7.25.6 '@babel/types': 7.25.6 transitivePeerDependencies: - supports-color @@ -8540,8 +9237,8 @@ snapshots: '@babel/helper-module-imports@7.24.7': dependencies: - '@babel/traverse': 7.25.4 - '@babel/types': 7.25.4 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 transitivePeerDependencies: - supports-color @@ -8551,7 +9248,7 @@ snapshots: '@babel/helper-module-imports': 7.24.7 '@babel/helper-simple-access': 7.24.7 '@babel/helper-validator-identifier': 7.24.7 - '@babel/traverse': 7.25.4 + '@babel/traverse': 7.25.6 transitivePeerDependencies: - supports-color @@ -8566,7 +9263,7 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-annotate-as-pure': 7.24.7 '@babel/helper-wrap-function': 7.25.0 - '@babel/traverse': 7.25.4 + '@babel/traverse': 7.25.6 transitivePeerDependencies: - supports-color @@ -8575,20 +9272,20 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-member-expression-to-functions': 7.24.8 '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/traverse': 7.25.4 + '@babel/traverse': 7.25.6 transitivePeerDependencies: - supports-color '@babel/helper-simple-access@7.24.7': dependencies: - '@babel/traverse': 7.25.4 - '@babel/types': 7.25.4 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.24.7': dependencies: - '@babel/traverse': 7.25.4 + '@babel/traverse': 7.25.6 '@babel/types': 7.25.6 transitivePeerDependencies: - supports-color @@ -8602,7 +9299,7 @@ snapshots: '@babel/helper-wrap-function@7.25.0': dependencies: '@babel/template': 7.25.0 - '@babel/traverse': 7.25.4 + '@babel/traverse': 7.25.6 '@babel/types': 7.25.6 transitivePeerDependencies: - supports-color @@ -8610,7 +9307,7 @@ snapshots: '@babel/helpers@7.25.0': dependencies: '@babel/template': 7.25.0 - '@babel/types': 7.25.4 + '@babel/types': 7.25.6 '@babel/highlight@7.24.7': dependencies: @@ -8619,10 +9316,6 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.0 - '@babel/parser@7.25.4': - dependencies: - '@babel/types': 7.25.4 - '@babel/parser@7.25.6': dependencies: '@babel/types': 7.25.6 @@ -8631,7 +9324,7 @@ snapshots: dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/traverse': 7.25.4 + '@babel/traverse': 7.25.6 transitivePeerDependencies: - supports-color @@ -8658,7 +9351,7 @@ snapshots: dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/traverse': 7.25.4 + '@babel/traverse': 7.25.6 transitivePeerDependencies: - supports-color @@ -8776,7 +9469,7 @@ snapshots: '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-remap-async-to-generator': 7.25.0(@babel/core@7.25.2) '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) - '@babel/traverse': 7.25.4 + '@babel/traverse': 7.25.6 transitivePeerDependencies: - supports-color @@ -8823,7 +9516,7 @@ snapshots: '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) - '@babel/traverse': 7.25.4 + '@babel/traverse': 7.25.6 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -8889,7 +9582,7 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/traverse': 7.25.4 + '@babel/traverse': 7.25.6 transitivePeerDependencies: - supports-color @@ -8938,7 +9631,7 @@ snapshots: '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-validator-identifier': 7.24.7 - '@babel/traverse': 7.25.4 + '@babel/traverse': 7.25.6 transitivePeerDependencies: - supports-color @@ -9197,7 +9890,7 @@ snapshots: dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/types': 7.25.4 + '@babel/types': 7.25.6 esutils: 2.0.3 '@babel/regjsgen@0.8.0': {} @@ -9209,20 +9902,8 @@ snapshots: '@babel/template@7.25.0': dependencies: '@babel/code-frame': 7.24.7 - '@babel/parser': 7.25.4 - '@babel/types': 7.25.4 - - '@babel/traverse@7.25.4': - dependencies: - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.6 - '@babel/parser': 7.25.4 - '@babel/template': 7.25.0 - '@babel/types': 7.25.4 - debug: 4.3.7 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color + '@babel/parser': 7.25.6 + '@babel/types': 7.25.6 '@babel/traverse@7.25.6': dependencies: @@ -9236,12 +9917,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/types@7.25.4': - dependencies: - '@babel/helper-string-parser': 7.24.8 - '@babel/helper-validator-identifier': 7.24.7 - to-fast-properties: 2.0.0 - '@babel/types@7.25.6': dependencies: '@babel/helper-string-parser': 7.24.8 @@ -9319,7 +9994,7 @@ snapshots: '@egoist/tailwindcss-icons@1.8.1(tailwindcss@3.4.11)': dependencies: - '@iconify/utils': 2.1.31 + '@iconify/utils': 2.1.32 tailwindcss: 3.4.11 transitivePeerDependencies: - supports-color @@ -9339,7 +10014,7 @@ snapshots: '@electron/get': 3.1.0 chalk: 4.1.2 commander: 4.1.1 - debug: 4.3.6 + debug: 4.3.7 fs-extra: 10.1.0 listr2: 7.0.2 semver: 7.6.3 @@ -9382,7 +10057,7 @@ snapshots: '@electron/rebuild': 3.6.0 '@malept/cross-spawn-promise': 2.0.0 chalk: 4.1.2 - debug: 4.3.6 + debug: 4.3.7 fast-glob: 3.3.2 filenamify: 4.3.0 find-up: 5.0.0 @@ -9481,7 +10156,7 @@ snapshots: '@octokit/rest': 18.12.0(encoding@0.1.13) '@octokit/types': 6.41.0 chalk: 4.1.2 - debug: 4.3.6 + debug: 4.3.7 fs-extra: 10.1.0 log-symbols: 4.1.0 mime-types: 2.1.35 @@ -9591,7 +10266,7 @@ snapshots: '@electron/get@3.1.0': dependencies: - debug: 4.3.6 + debug: 4.3.7 env-paths: 2.2.1 fs-extra: 8.1.0 got: 11.8.6 @@ -10112,7 +10787,7 @@ snapshots: '@iconify/types': 2.0.0 '@iconify/utils': 2.1.32 '@types/tar': 6.1.13 - axios: 1.7.7 + axios: 1.7.7(debug@4.3.7) cheerio: 1.0.0 domhandler: 5.0.3 extract-zip: 2.0.1 @@ -10126,18 +10801,6 @@ snapshots: '@iconify/types@2.0.0': {} - '@iconify/utils@2.1.31': - dependencies: - '@antfu/install-pkg': 0.4.0 - '@antfu/utils': 0.7.10 - '@iconify/types': 2.0.0 - debug: 4.3.7 - kolorist: 1.8.0 - local-pkg: 0.5.0 - mlly: 1.7.1 - transitivePeerDependencies: - - supports-color - '@iconify/utils@2.1.32': dependencies: '@antfu/install-pkg': 0.4.1 @@ -11701,24 +12364,24 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.25.4 - '@babel/types': 7.25.4 + '@babel/parser': 7.25.6 + '@babel/types': 7.25.6 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.6 '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.25.4 + '@babel/types': 7.25.6 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.25.4 - '@babel/types': 7.25.4 + '@babel/parser': 7.25.6 + '@babel/types': 7.25.6 '@types/babel__traverse@7.20.6': dependencies: - '@babel/types': 7.25.4 + '@babel/types': 7.25.6 '@types/cacheable-request@6.0.3': dependencies: @@ -11799,14 +12462,13 @@ snapshots: '@types/pg-pool@2.0.4': dependencies: - '@types/pg': 8.6.1 + '@types/pg': 8.11.8 '@types/pg@8.11.8': dependencies: '@types/node': 22.5.5 pg-protocol: 1.6.1 pg-types: 4.0.2 - optional: true '@types/pg@8.6.1': dependencies: @@ -12301,7 +12963,7 @@ snapshots: aria-hidden@1.2.4: dependencies: - tslib: 2.6.3 + tslib: 2.7.0 array-ify@1.0.0: {} @@ -12334,25 +12996,9 @@ snapshots: author-regex@1.0.0: {} - axios@1.7.4(debug@4.3.6): + axios@1.7.7(debug@4.3.7): dependencies: - follow-redirects: 1.15.6(debug@4.3.6) - form-data: 4.0.0 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - - axios@1.7.6: - dependencies: - follow-redirects: 1.15.6(debug@4.3.6) - form-data: 4.0.0 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - - axios@1.7.7: - dependencies: - follow-redirects: 1.15.9 + follow-redirects: 1.15.9(debug@4.3.7) form-data: 4.0.0 proxy-from-env: 1.1.0 transitivePeerDependencies: @@ -12491,7 +13137,7 @@ snapshots: browserslist@4.23.3: dependencies: - caniuse-lite: 1.0.30001651 + caniuse-lite: 1.0.30001659 electron-to-chromium: 1.5.13 node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.3) @@ -12593,7 +13239,7 @@ snapshots: ohash: 1.1.3 pathe: 1.1.2 perfect-debounce: 1.0.0 - pkg-types: 1.1.3 + pkg-types: 1.2.0 rc9: 2.1.2 cac@6.7.14: {} @@ -12644,8 +13290,6 @@ snapshots: lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001651: {} - caniuse-lite@1.0.30001659: {} ccount@2.0.1: {} @@ -13141,10 +13785,6 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.3.6: - dependencies: - ms: 2.1.2 - debug@4.3.7: dependencies: ms: 2.1.3 @@ -13351,7 +13991,7 @@ snapshots: dependencies: rimraf: 3.0.2 semver: 7.6.3 - tslib: 2.6.3 + tslib: 2.7.0 unzip-crx-3: 0.2.0 electron-dl@4.0.0: @@ -13430,7 +14070,7 @@ snapshots: cac: 6.7.14 esbuild: 0.21.5 magic-string: 0.30.11 - picocolors: 1.0.1 + picocolors: 1.1.0 vite: 5.4.6(@types/node@22.5.5)(terser@5.32.0) transitivePeerDependencies: - supports-color @@ -13969,6 +14609,18 @@ snapshots: signal-exit: 3.0.7 strip-eof: 1.0.0 + execa@5.1.1: + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + execa@8.0.1: dependencies: cross-spawn: 7.0.3 @@ -14035,6 +14687,10 @@ snapshots: dependencies: pend: 1.2.0 + fdir@6.3.0(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + fflate@0.4.8: {} file-entry-cache@8.0.0: @@ -14092,11 +14748,9 @@ snapshots: imul: 1.0.1 optional: true - follow-redirects@1.15.6(debug@4.3.6): + follow-redirects@1.15.9(debug@4.3.7): optionalDependencies: - debug: 4.3.6 - - follow-redirects@1.15.9: {} + debug: 4.3.7 font-list@1.5.1: {} @@ -14264,6 +14918,8 @@ snapshots: dependencies: pump: 3.0.0 + get-stream@6.0.1: {} + get-stream@8.0.1: {} get-tsconfig@4.8.0: @@ -14505,22 +15161,6 @@ snapshots: dependencies: '@types/hast': 3.0.4 - hast-util-raw@9.0.4: - dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 - '@ungap/structured-clone': 1.2.0 - hast-util-from-parse5: 8.0.1 - hast-util-to-parse5: 8.0.0 - html-void-elements: 3.0.0 - mdast-util-to-hast: 13.2.0 - parse5: 7.1.2 - unist-util-position: 5.0.0 - unist-util-visit: 5.0.0 - vfile: 6.0.3 - web-namespaces: 2.0.1 - zwitch: 2.0.4 - hast-util-sanitize@5.0.1: dependencies: '@types/hast': 3.0.4 @@ -14546,21 +15186,6 @@ snapshots: unist-util-visit: 5.0.0 zwitch: 2.0.4 - hast-util-to-html@9.0.1: - dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 - ccount: 2.0.1 - comma-separated-tokens: 2.0.3 - hast-util-raw: 9.0.4 - hast-util-whitespace: 3.0.0 - html-void-elements: 3.0.0 - mdast-util-to-hast: 13.2.0 - property-information: 6.5.0 - space-separated-tokens: 2.0.2 - stringify-entities: 4.0.4 - zwitch: 2.0.4 - hast-util-to-html@9.0.2: dependencies: '@types/hast': 3.0.4 @@ -14595,16 +15220,6 @@ snapshots: transitivePeerDependencies: - supports-color - hast-util-to-parse5@8.0.0: - dependencies: - '@types/hast': 3.0.4 - comma-separated-tokens: 2.0.3 - devlop: 1.1.0 - property-information: 6.5.0 - space-separated-tokens: 2.0.2 - web-namespaces: 2.0.1 - zwitch: 2.0.4 - hast-util-to-string@3.0.0: dependencies: '@types/hast': 3.0.4 @@ -14713,6 +15328,8 @@ snapshots: transitivePeerDependencies: - supports-color + human-signals@2.1.0: {} + human-signals@5.0.0: {} humanize-ms@1.2.1: @@ -14903,6 +15520,8 @@ snapshots: is-stream@1.1.0: {} + is-stream@2.0.1: {} + is-stream@3.0.0: {} is-unicode-supported@0.1.0: {} @@ -14949,6 +15568,8 @@ snapshots: '@types/react': 18.3.7 react: 18.3.1 + joycon@3.1.1: {} + js-tokens@4.0.0: {} js-yaml@4.1.0: @@ -15137,6 +15758,8 @@ snapshots: lodash.merge@4.6.2: {} + lodash.sortby@4.7.0: {} + lodash.union@4.6.0: {} lodash.uniq@4.5.0: {} @@ -15743,13 +16366,11 @@ snapshots: ms@2.0.0: {} - ms@2.1.2: {} - ms@2.1.3: {} msedge-tts@1.3.4(bufferutil@4.0.8)(utf-8-validate@6.0.4): dependencies: - axios: 1.7.4(debug@4.3.6) + axios: 1.7.7(debug@4.3.7) buffer: 6.0.3 crypto-browserify: 3.12.0 isomorphic-ws: 5.0.0(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4)) @@ -15867,6 +16488,10 @@ snapshots: dependencies: path-key: 2.0.1 + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + npm-run-path@5.3.0: dependencies: path-key: 4.0.0 @@ -15900,8 +16525,7 @@ snapshots: object-keys@1.1.1: optional: true - obuf@1.1.2: - optional: true + obuf@1.1.2: {} ofetch@1.3.4: dependencies: @@ -16016,8 +16640,6 @@ snapshots: dependencies: optimist: 0.6.1 - package-manager-detector@0.1.2: {} - package-manager-detector@0.2.0: {} pako@1.0.11: {} @@ -16143,8 +16765,7 @@ snapshots: pg-int8@1.0.1: {} - pg-numeric@1.0.2: - optional: true + pg-numeric@1.0.2: {} pg-protocol@1.6.1: {} @@ -16165,9 +16786,6 @@ snapshots: postgres-date: 2.1.0 postgres-interval: 3.0.0 postgres-range: 1.1.4 - optional: true - - picocolors@1.0.1: {} picocolors@1.1.0: {} @@ -16185,12 +16803,6 @@ snapshots: dependencies: find-up: 4.1.0 - pkg-types@1.1.3: - dependencies: - confbox: 0.1.7 - mlly: 1.7.1 - pathe: 1.1.2 - pkg-types@1.2.0: dependencies: confbox: 0.1.7 @@ -16263,6 +16875,15 @@ snapshots: optionalDependencies: postcss: 8.4.47 + postcss-load-config@6.0.1(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(yaml@2.5.1): + dependencies: + lilconfig: 3.1.2 + optionalDependencies: + jiti: 1.21.6 + postcss: 8.4.47 + tsx: 4.19.1 + yaml: 2.5.1 + postcss-merge-longhand@7.0.4(postcss@8.4.47): dependencies: postcss: 8.4.47 @@ -16400,30 +17021,25 @@ snapshots: postgres-array@2.0.0: {} - postgres-array@3.0.2: - optional: true + postgres-array@3.0.2: {} postgres-bytea@1.0.0: {} postgres-bytea@3.0.0: dependencies: obuf: 1.1.2 - optional: true postgres-date@1.0.7: {} - postgres-date@2.1.0: - optional: true + postgres-date@2.1.0: {} postgres-interval@1.2.0: dependencies: xtend: 4.0.2 - postgres-interval@3.0.0: - optional: true + postgres-interval@3.0.0: {} - postgres-range@1.1.4: - optional: true + postgres-range@1.1.4: {} posthog-js@1.161.5: dependencies: @@ -16433,7 +17049,7 @@ snapshots: posthog-node@4.2.0: dependencies: - axios: 1.7.6 + axios: 1.7.7(debug@4.3.7) rusha: 0.8.14 transitivePeerDependencies: - debug @@ -16599,7 +17215,7 @@ snapshots: react: 18.3.1 react-remove-scroll-bar: 2.3.6(@types/react@18.3.7)(react@18.3.1) react-style-singleton: 2.2.1(@types/react@18.3.7)(react@18.3.1) - tslib: 2.6.3 + tslib: 2.7.0 use-callback-ref: 1.3.2(@types/react@18.3.7)(react@18.3.1) use-sidecar: 1.1.2(@types/react@18.3.7)(react@18.3.1) optionalDependencies: @@ -16811,7 +17427,7 @@ snapshots: rehype-stringify@10.0.0: dependencies: '@types/hast': 3.0.4 - hast-util-to-html: 9.0.1 + hast-util-to-html: 9.0.2 unified: 11.0.5 remark-directive@3.0.0: @@ -16893,6 +17509,8 @@ snapshots: resolve-from@4.0.0: {} + resolve-from@5.0.0: {} + resolve-package@1.0.1: dependencies: get-installed-path: 2.1.1 @@ -17166,6 +17784,10 @@ snapshots: source-map@0.6.1: {} + source-map@0.8.0-beta.0: + dependencies: + whatwg-url: 7.1.0 + space-separated-tokens@2.0.2: {} spdx-correct@3.2.0: @@ -17253,6 +17875,8 @@ snapshots: strip-eof@1.0.0: {} + strip-final-newline@2.0.0: {} + strip-final-newline@3.0.0: {} strip-indent@3.0.0: @@ -17408,10 +18032,13 @@ snapshots: tinybench@2.9.0: {} - tinyexec@0.2.0: {} - tinyexec@0.3.0: {} + tinyglobby@0.2.6: + dependencies: + fdir: 6.3.0(picomatch@4.0.2) + picomatch: 4.0.2 + tinypool@1.0.1: {} tinyrainbow@1.2.0: {} @@ -17446,6 +18073,12 @@ snapshots: tr46@0.0.3: {} + tr46@1.0.1: + dependencies: + punycode: 2.3.1 + + tree-kill@1.2.2: {} + trigram-utils@2.0.1: dependencies: collapse-white-space: 2.1.0 @@ -17480,10 +18113,35 @@ snapshots: optionalDependencies: typescript: 5.6.2 - tslib@2.6.3: {} - tslib@2.7.0: {} + tsup@8.3.0(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.6.2)(yaml@2.5.1): + dependencies: + bundle-require: 5.0.0(esbuild@0.23.1) + cac: 6.7.14 + chokidar: 3.6.0 + consola: 3.2.3 + debug: 4.3.7 + esbuild: 0.23.1 + execa: 5.1.1 + joycon: 3.1.1 + picocolors: 1.1.0 + postcss-load-config: 6.0.1(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(yaml@2.5.1) + resolve-from: 5.0.0 + rollup: 4.21.2 + source-map: 0.8.0-beta.0 + sucrase: 3.35.0 + tinyglobby: 0.2.6 + tree-kill: 1.2.2 + optionalDependencies: + postcss: 8.4.47 + typescript: 5.6.2 + transitivePeerDependencies: + - jiti + - supports-color + - tsx + - yaml + tsx@4.19.1: dependencies: esbuild: 0.23.1 @@ -17739,16 +18397,16 @@ snapshots: vite-plugin-mkcert@1.17.6(vite@5.4.6(@types/node@22.5.5)(terser@5.32.0)): dependencies: '@octokit/rest': 20.1.1 - axios: 1.7.4(debug@4.3.6) - debug: 4.3.6 - picocolors: 1.0.1 + axios: 1.7.7(debug@4.3.7) + debug: 4.3.7 + picocolors: 1.1.0 vite: 5.4.6(@types/node@22.5.5)(terser@5.32.0) transitivePeerDependencies: - supports-color vite-tsconfig-paths@5.0.1(typescript@5.6.2)(vite@5.4.6(@types/node@22.5.5)(terser@5.32.0)): dependencies: - debug: 4.3.6 + debug: 4.3.7 globrex: 0.1.2 tsconfck: 3.1.1(typescript@5.6.2) optionalDependencies: @@ -17812,6 +18470,8 @@ snapshots: webidl-conversions@3.0.1: {} + webidl-conversions@4.0.2: {} + webpack-sources@3.2.3: {} webpack-virtual-modules@0.5.0: {} @@ -17827,6 +18487,12 @@ snapshots: tr46: 0.0.3 webidl-conversions: 3.0.1 + whatwg-url@7.1.0: + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + which@1.3.1: dependencies: isexe: 2.0.0 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 000000000..3ff5faaaf --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,3 @@ +packages: + - "apps/*" + - "packages/*" diff --git a/tailwind.config.ts b/tailwind.config.ts index 2c7956eea..ef575ab0d 100644 --- a/tailwind.config.ts +++ b/tailwind.config.ts @@ -11,7 +11,7 @@ import resolveConfig from "tailwindcss/resolveConfig" /** @type {import('tailwindcss').Config} */ export default resolveConfig({ darkMode: ["class", '[data-theme="dark"]'], - content: ["./src/**/*.{ts,tsx}"], + content: ["./apps/renderer/**/*.{ts,tsx}", "./apps/web/**/*.{ts,tsx}"], prefix: "", theme: { container: { @@ -127,7 +127,7 @@ export default resolveConfig({ require("tailwindcss-animate"), require("@tailwindcss/container-queries"), require("@tailwindcss/typography"), - require("./src/renderer/src/styles/tailwind-extend.css"), + require("./apps/renderer/src/styles/tailwind-extend.css"), plugin(({ addVariant }) => { addVariant("f-motion-reduce", '[data-motion-reduce="true"] &') addVariant("group-motion-reduce", ':merge(.group)[data-motion-reduce="true"] &') diff --git a/tsconfig.json b/tsconfig.json index 31bac6e94..f09abbbf2 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,4 +1,3 @@ { - "files": [], - "references": [{ "path": "./tsconfig.node.json" }, { "path": "./tsconfig.web.json" }] + "extends": "@electron-toolkit/tsconfig/tsconfig.node.json" } diff --git a/tsconfig.node.json b/tsconfig.node.json deleted file mode 100644 index 07637c617..000000000 --- a/tsconfig.node.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "extends": "@electron-toolkit/tsconfig/tsconfig.node.json", - "include": [ - "electron.vite.config.*", - "src/main/**/*", - "src/preload/**/*", - "types/**/*.d.ts", - "src/shared/src/**/*", - "src/env.ts", - "./src/hono.ts", - "src/shared/src/global.d.ts", - "configs/*", - "./scripts/**/*" - ], - "compilerOptions": { - "composite": true, - "types": ["electron-vite/node"], - "moduleResolution": "Bundler", - "noImplicitReturns": false, - "noUnusedLocals": false, - "noUnusedParameters": false, - "baseUrl": ".", - "paths": { - "@shared/*": ["src/shared/src/*"], - "@env": ["./src/env.ts"], - "@pkg": ["./package.json"], - "@locales/*": ["./locales/*"] - } - } -} diff --git a/tsconfig.web.json b/tsconfig.web.json deleted file mode 100644 index b7b3175fc..000000000 --- a/tsconfig.web.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "extends": "@electron-toolkit/tsconfig/tsconfig.web.json", - "include": [ - "src/renderer/src/env.d.ts", - "src/renderer/src/**/*", - "src/renderer/src/**/*.tsx", - "src/preload/*.d.ts", - "src/shared/src/**/*", - "types/**/*.d.ts", - "src/env.ts", - "src/hono.ts", - "src/shared/src/global.d.ts" - ], - "compilerOptions": { - "composite": true, - "jsx": "react-jsx", - "moduleResolution": "Bundler", - "target": "ES2022", - "noUnusedLocals": false, - "noUnusedParameters": false, - "strict": true, - "baseUrl": ".", - "noImplicitReturns": false, - "paths": { - "@renderer/*": ["src/renderer/src/*"], - "@main/*": ["src/main/*"], - "@shared/*": ["src/shared/src/*"], - "@pkg": ["./package.json"], - "@env": ["./src/env.ts"], - "@locales/*": ["./locales/*"] - } - } -} diff --git a/vite.config.ts b/vite.config.ts index cd6ace689..c8dfa02b6 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -13,7 +13,7 @@ import type { env as EnvType } from "./src/env" const __dirname = fileURLToPath(new URL(".", import.meta.url)) const isCI = process.env.CI === "true" || process.env.CI === "1" -const ROOT = "./src/renderer" +const ROOT = "./apps/renderer" function htmlPlugin(env: typeof EnvType): PluginOption { return { diff --git a/vitest.workspace.ts b/vitest.workspace.ts new file mode 100644 index 000000000..f59cfdd06 --- /dev/null +++ b/vitest.workspace.ts @@ -0,0 +1,6 @@ + +import { defineWorkspace } from "vitest/config" + + +// NOT work +export default defineWorkspace(["apps/*"])