aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMohamedBassem <me@mbassem.com>2024-03-13 21:43:44 +0000
committerMohamed Bassem <me@mbassem.com>2024-03-14 16:40:45 +0000
commit04572a8e5081b1e4871e273cde9dbaaa44c52fe0 (patch)
tree8e993acb732a50d1306d4d6953df96c165c57f57
parent2df08ed08c065e8b91bc8df0266bd4bcbb062be4 (diff)
downloadkarakeep-04572a8e5081b1e4871e273cde9dbaaa44c52fe0.tar.zst
structure: Create apps dir and copy tooling dir from t3-turbo repo
Diffstat (limited to '')
-rw-r--r--.eslintrc.js43
-rw-r--r--.github/workflows/ci.yml50
-rw-r--r--.github/workflows/main.yml36
-rw-r--r--.gitignore3
-rw-r--r--apps/browser-extension/.eslintrc.cjs (renamed from packages/browser-extension/.eslintrc.cjs)0
-rw-r--r--apps/browser-extension/.gitignore (renamed from packages/browser-extension/.gitignore)0
-rw-r--r--apps/browser-extension/index.html (renamed from packages/browser-extension/index.html)0
-rw-r--r--apps/browser-extension/manifest.json (renamed from packages/browser-extension/manifest.json)0
-rw-r--r--apps/browser-extension/package.json (renamed from packages/browser-extension/package.json)25
-rw-r--r--apps/browser-extension/postcss.config.js (renamed from packages/browser-extension/postcss.config.js)0
-rw-r--r--apps/browser-extension/public/logo-128.png (renamed from packages/browser-extension/public/logo-128.png)bin2362 -> 2362 bytes
-rw-r--r--apps/browser-extension/public/logo-16.png (renamed from packages/browser-extension/public/logo-16.png)bin287 -> 287 bytes
-rw-r--r--apps/browser-extension/public/logo-48.png (renamed from packages/browser-extension/public/logo-48.png)bin780 -> 780 bytes
-rw-r--r--apps/browser-extension/public/logo.png (renamed from packages/browser-extension/public/logo.png)bin412 -> 412 bytes
-rw-r--r--apps/browser-extension/src/BookmarkDeletedPage.tsx (renamed from packages/browser-extension/src/BookmarkDeletedPage.tsx)0
-rw-r--r--apps/browser-extension/src/BookmarkSavedPage.tsx (renamed from packages/browser-extension/src/BookmarkSavedPage.tsx)0
-rw-r--r--apps/browser-extension/src/Layout.tsx (renamed from packages/browser-extension/src/Layout.tsx)0
-rw-r--r--apps/browser-extension/src/Logo.tsx (renamed from packages/browser-extension/src/Logo.tsx)0
-rw-r--r--apps/browser-extension/src/NotConfiguredPage.tsx (renamed from packages/browser-extension/src/NotConfiguredPage.tsx)0
-rw-r--r--apps/browser-extension/src/OptionsPage.tsx (renamed from packages/browser-extension/src/OptionsPage.tsx)0
-rw-r--r--apps/browser-extension/src/SavePage.tsx (renamed from packages/browser-extension/src/SavePage.tsx)0
-rw-r--r--apps/browser-extension/src/SignInPage.tsx (renamed from packages/browser-extension/src/SignInPage.tsx)0
-rw-r--r--apps/browser-extension/src/Spinner.tsx (renamed from packages/browser-extension/src/Spinner.tsx)0
-rw-r--r--apps/browser-extension/src/assets/react.svg (renamed from packages/browser-extension/src/assets/react.svg)0
-rw-r--r--apps/browser-extension/src/index.css (renamed from packages/browser-extension/src/index.css)0
-rw-r--r--apps/browser-extension/src/main.tsx (renamed from packages/browser-extension/src/main.tsx)0
-rw-r--r--apps/browser-extension/src/utils/providers.tsx (renamed from packages/browser-extension/src/utils/providers.tsx)0
-rw-r--r--apps/browser-extension/src/utils/settings.ts (renamed from packages/browser-extension/src/utils/settings.ts)0
-rw-r--r--apps/browser-extension/src/utils/trpc.ts (renamed from packages/browser-extension/src/utils/trpc.ts)0
-rw-r--r--apps/browser-extension/src/vite-env.d.ts (renamed from packages/browser-extension/src/vite-env.d.ts)0
-rw-r--r--apps/browser-extension/tailwind.config.js (renamed from packages/browser-extension/tailwind.config.js)0
-rw-r--r--apps/browser-extension/tsconfig.json (renamed from packages/browser-extension/tsconfig.json)0
-rw-r--r--apps/browser-extension/tsconfig.node.json (renamed from packages/browser-extension/tsconfig.node.json)0
-rw-r--r--apps/browser-extension/vite.config.ts (renamed from packages/browser-extension/vite.config.ts)0
-rw-r--r--apps/mobile/.eslintrc.js (renamed from packages/mobile/.eslintrc.js)0
-rw-r--r--apps/mobile/.gitignore (renamed from packages/mobile/.gitignore)0
-rw-r--r--apps/mobile/.npmrc (renamed from packages/mobile/.npmrc)0
-rw-r--r--apps/mobile/app.json (renamed from packages/mobile/app.json)0
-rw-r--r--apps/mobile/app/+not-found.tsx (renamed from packages/mobile/app/+not-found.tsx)0
-rw-r--r--apps/mobile/app/_layout.tsx (renamed from packages/mobile/app/_layout.tsx)0
-rw-r--r--apps/mobile/app/dashboard/(tabs)/_layout.tsx (renamed from packages/mobile/app/dashboard/(tabs)/_layout.tsx)0
-rw-r--r--apps/mobile/app/dashboard/(tabs)/index.tsx (renamed from packages/mobile/app/dashboard/(tabs)/index.tsx)0
-rw-r--r--apps/mobile/app/dashboard/(tabs)/lists.tsx (renamed from packages/mobile/app/dashboard/(tabs)/lists.tsx)0
-rw-r--r--apps/mobile/app/dashboard/(tabs)/search.tsx (renamed from packages/mobile/app/dashboard/(tabs)/search.tsx)0
-rw-r--r--apps/mobile/app/dashboard/(tabs)/settings.tsx (renamed from packages/mobile/app/dashboard/(tabs)/settings.tsx)0
-rw-r--r--apps/mobile/app/dashboard/_layout.tsx (renamed from packages/mobile/app/dashboard/_layout.tsx)0
-rw-r--r--apps/mobile/app/dashboard/add-link.tsx (renamed from packages/mobile/app/dashboard/add-link.tsx)0
-rw-r--r--apps/mobile/app/dashboard/add-note.tsx (renamed from packages/mobile/app/dashboard/add-note.tsx)0
-rw-r--r--apps/mobile/app/dashboard/archive.tsx (renamed from packages/mobile/app/dashboard/archive.tsx)0
-rw-r--r--apps/mobile/app/dashboard/favourites.tsx (renamed from packages/mobile/app/dashboard/favourites.tsx)0
-rw-r--r--apps/mobile/app/dashboard/lists/[slug].tsx (renamed from packages/mobile/app/dashboard/lists/[slug].tsx)0
-rw-r--r--apps/mobile/app/error.tsx (renamed from packages/mobile/app/error.tsx)0
-rw-r--r--apps/mobile/app/index.tsx (renamed from packages/mobile/app/index.tsx)0
-rw-r--r--apps/mobile/app/sharing.tsx (renamed from packages/mobile/app/sharing.tsx)0
-rw-r--r--apps/mobile/app/signin.tsx (renamed from packages/mobile/app/signin.tsx)0
-rw-r--r--apps/mobile/assets/blur.jpeg (renamed from packages/mobile/assets/blur.jpeg)bin178818 -> 178818 bytes
-rw-r--r--apps/mobile/assets/icon.png (renamed from packages/mobile/assets/icon.png)bin2362 -> 2362 bytes
-rw-r--r--apps/mobile/assets/splash.png (renamed from packages/mobile/assets/splash.png)bin117993 -> 117993 bytes
-rw-r--r--apps/mobile/babel.config.js (renamed from packages/mobile/babel.config.js)0
-rw-r--r--apps/mobile/components/Logo.tsx (renamed from packages/mobile/components/Logo.tsx)0
-rw-r--r--apps/mobile/components/bookmarks/BookmarkCard.tsx (renamed from packages/mobile/components/bookmarks/BookmarkCard.tsx)0
-rw-r--r--apps/mobile/components/bookmarks/BookmarkList.tsx (renamed from packages/mobile/components/bookmarks/BookmarkList.tsx)0
-rw-r--r--apps/mobile/components/ui/ActionButton.tsx (renamed from packages/mobile/components/ui/ActionButton.tsx)0
-rw-r--r--apps/mobile/components/ui/Button.tsx (renamed from packages/mobile/components/ui/Button.tsx)0
-rw-r--r--apps/mobile/components/ui/Divider.tsx (renamed from packages/mobile/components/ui/Divider.tsx)0
-rw-r--r--apps/mobile/components/ui/FullPageSpinner.tsx (renamed from packages/mobile/components/ui/FullPageSpinner.tsx)0
-rw-r--r--apps/mobile/components/ui/Input.tsx (renamed from packages/mobile/components/ui/Input.tsx)0
-rw-r--r--apps/mobile/components/ui/Skeleton.tsx (renamed from packages/mobile/components/ui/Skeleton.tsx)0
-rw-r--r--apps/mobile/components/ui/Toast.tsx (renamed from packages/mobile/components/ui/Toast.tsx)0
-rw-r--r--apps/mobile/eas.json (renamed from packages/mobile/eas.json)0
-rw-r--r--apps/mobile/globals.css (renamed from packages/mobile/globals.css)0
-rw-r--r--apps/mobile/lib/last-shared-intent.ts (renamed from packages/mobile/lib/last-shared-intent.ts)0
-rw-r--r--apps/mobile/lib/providers.tsx (renamed from packages/mobile/lib/providers.tsx)0
-rw-r--r--apps/mobile/lib/session.ts (renamed from packages/mobile/lib/session.ts)0
-rw-r--r--apps/mobile/lib/settings.ts (renamed from packages/mobile/lib/settings.ts)0
-rw-r--r--apps/mobile/lib/storage-state.ts (renamed from packages/mobile/lib/storage-state.ts)0
-rw-r--r--apps/mobile/lib/trpc.ts (renamed from packages/mobile/lib/trpc.ts)0
-rw-r--r--apps/mobile/lib/utils.ts (renamed from packages/mobile/lib/utils.ts)0
-rw-r--r--apps/mobile/metro.config.js58
-rw-r--r--apps/mobile/nativewind-env.d.ts (renamed from packages/mobile/nativewind-env.d.ts)0
-rw-r--r--apps/mobile/package.json (renamed from packages/mobile/package.json)32
-rw-r--r--apps/mobile/tailwind.config.ts (renamed from packages/mobile/tailwind.config.js)10
-rw-r--r--apps/mobile/tsconfig.json14
-rw-r--r--apps/web/README.md (renamed from packages/web/README.md)0
-rw-r--r--apps/web/app/api/auth/[...nextauth]/route.tsx (renamed from packages/web/app/api/auth/[...nextauth]/route.tsx)0
-rw-r--r--apps/web/app/api/trpc/[trpc]/route.ts (renamed from packages/web/app/api/trpc/[trpc]/route.ts)2
-rw-r--r--apps/web/app/dashboard/admin/page.tsx (renamed from packages/web/app/dashboard/admin/page.tsx)0
-rw-r--r--apps/web/app/dashboard/archive/page.tsx (renamed from packages/web/app/dashboard/archive/page.tsx)0
-rw-r--r--apps/web/app/dashboard/bookmarks/layout.tsx (renamed from packages/web/app/dashboard/bookmarks/layout.tsx)0
-rw-r--r--apps/web/app/dashboard/bookmarks/loading.tsx (renamed from packages/web/app/dashboard/bookmarks/loading.tsx)0
-rw-r--r--apps/web/app/dashboard/bookmarks/page.tsx (renamed from packages/web/app/dashboard/bookmarks/page.tsx)0
-rw-r--r--apps/web/app/dashboard/error.tsx (renamed from packages/web/app/dashboard/error.tsx)0
-rw-r--r--apps/web/app/dashboard/favourites/page.tsx (renamed from packages/web/app/dashboard/favourites/page.tsx)0
-rw-r--r--apps/web/app/dashboard/layout.tsx (renamed from packages/web/app/dashboard/layout.tsx)0
-rw-r--r--apps/web/app/dashboard/lists/[listId]/page.tsx (renamed from packages/web/app/dashboard/lists/[listId]/page.tsx)0
-rw-r--r--apps/web/app/dashboard/lists/page.tsx (renamed from packages/web/app/dashboard/lists/page.tsx)0
-rw-r--r--apps/web/app/dashboard/not-found.tsx (renamed from packages/web/app/dashboard/not-found.tsx)0
-rw-r--r--apps/web/app/dashboard/preview/[bookmarkId]/page.tsx (renamed from packages/web/app/dashboard/preview/[bookmarkId]/page.tsx)0
-rw-r--r--apps/web/app/dashboard/search/page.tsx (renamed from packages/web/app/dashboard/search/page.tsx)0
-rw-r--r--apps/web/app/dashboard/settings/page.tsx (renamed from packages/web/app/dashboard/settings/page.tsx)0
-rw-r--r--apps/web/app/dashboard/tags/[tagName]/page.tsx (renamed from packages/web/app/dashboard/tags/[tagName]/page.tsx)0
-rw-r--r--apps/web/app/dashboard/tags/page.tsx (renamed from packages/web/app/dashboard/tags/page.tsx)0
-rw-r--r--apps/web/app/favicon.ico (renamed from packages/web/app/favicon.ico)bin15406 -> 15406 bytes
-rw-r--r--apps/web/app/globals.css (renamed from packages/web/app/globals.css)0
-rw-r--r--apps/web/app/layout.tsx (renamed from packages/web/app/layout.tsx)0
-rw-r--r--apps/web/app/page.tsx (renamed from packages/web/app/page.tsx)0
-rw-r--r--apps/web/app/signin/page.tsx (renamed from packages/web/app/signin/page.tsx)0
-rw-r--r--apps/web/components.json (renamed from packages/web/components.json)0
-rw-r--r--apps/web/components/dashboard/bookmarks/AddLinkButton.tsx (renamed from packages/web/components/dashboard/bookmarks/AddLinkButton.tsx)0
-rw-r--r--apps/web/components/dashboard/bookmarks/AddToListModal.tsx (renamed from packages/web/components/dashboard/bookmarks/AddToListModal.tsx)0
-rw-r--r--apps/web/components/dashboard/bookmarks/BookmarkCardSkeleton.tsx (renamed from packages/web/components/dashboard/bookmarks/BookmarkCardSkeleton.tsx)0
-rw-r--r--apps/web/components/dashboard/bookmarks/BookmarkOptions.tsx (renamed from packages/web/components/dashboard/bookmarks/BookmarkOptions.tsx)0
-rw-r--r--apps/web/components/dashboard/bookmarks/BookmarkPreview.tsx (renamed from packages/web/components/dashboard/bookmarks/BookmarkPreview.tsx)0
-rw-r--r--apps/web/components/dashboard/bookmarks/BookmarkedTextEditor.tsx (renamed from packages/web/components/dashboard/bookmarks/BookmarkedTextEditor.tsx)0
-rw-r--r--apps/web/components/dashboard/bookmarks/BookmarkedTextViewer.tsx (renamed from packages/web/components/dashboard/bookmarks/BookmarkedTextViewer.tsx)0
-rw-r--r--apps/web/components/dashboard/bookmarks/Bookmarks.tsx (renamed from packages/web/components/dashboard/bookmarks/Bookmarks.tsx)0
-rw-r--r--apps/web/components/dashboard/bookmarks/BookmarksGrid.tsx (renamed from packages/web/components/dashboard/bookmarks/BookmarksGrid.tsx)0
-rw-r--r--apps/web/components/dashboard/bookmarks/LinkCard.tsx (renamed from packages/web/components/dashboard/bookmarks/LinkCard.tsx)0
-rw-r--r--apps/web/components/dashboard/bookmarks/TagList.tsx (renamed from packages/web/components/dashboard/bookmarks/TagList.tsx)0
-rw-r--r--apps/web/components/dashboard/bookmarks/TagModal.tsx (renamed from packages/web/components/dashboard/bookmarks/TagModal.tsx)0
-rw-r--r--apps/web/components/dashboard/bookmarks/TextCard.tsx (renamed from packages/web/components/dashboard/bookmarks/TextCard.tsx)0
-rw-r--r--apps/web/components/dashboard/bookmarks/TopNav.tsx (renamed from packages/web/components/dashboard/bookmarks/TopNav.tsx)0
-rw-r--r--apps/web/components/dashboard/lists/AllListsView.tsx (renamed from packages/web/components/dashboard/lists/AllListsView.tsx)0
-rw-r--r--apps/web/components/dashboard/lists/DeleteListButton.tsx (renamed from packages/web/components/dashboard/lists/DeleteListButton.tsx)0
-rw-r--r--apps/web/components/dashboard/lists/ListView.tsx (renamed from packages/web/components/dashboard/lists/ListView.tsx)0
-rw-r--r--apps/web/components/dashboard/search/SearchInput.tsx (renamed from packages/web/components/dashboard/search/SearchInput.tsx)0
-rw-r--r--apps/web/components/dashboard/settings/AddApiKey.tsx (renamed from packages/web/components/dashboard/settings/AddApiKey.tsx)0
-rw-r--r--apps/web/components/dashboard/settings/ApiKeySettings.tsx (renamed from packages/web/components/dashboard/settings/ApiKeySettings.tsx)0
-rw-r--r--apps/web/components/dashboard/settings/DeleteApiKey.tsx (renamed from packages/web/components/dashboard/settings/DeleteApiKey.tsx)0
-rw-r--r--apps/web/components/dashboard/sidebar/AllLists.tsx (renamed from packages/web/components/dashboard/sidebar/AllLists.tsx)0
-rw-r--r--apps/web/components/dashboard/sidebar/ModileSidebar.tsx (renamed from packages/web/components/dashboard/sidebar/ModileSidebar.tsx)0
-rw-r--r--apps/web/components/dashboard/sidebar/ModileSidebarItem.tsx (renamed from packages/web/components/dashboard/sidebar/ModileSidebarItem.tsx)0
-rw-r--r--apps/web/components/dashboard/sidebar/NewListModal.tsx (renamed from packages/web/components/dashboard/sidebar/NewListModal.tsx)0
-rw-r--r--apps/web/components/dashboard/sidebar/Sidebar.tsx (renamed from packages/web/components/dashboard/sidebar/Sidebar.tsx)0
-rw-r--r--apps/web/components/dashboard/sidebar/SidebarItem.tsx (renamed from packages/web/components/dashboard/sidebar/SidebarItem.tsx)0
-rw-r--r--apps/web/components/dashboard/sidebar/SidebarProfileOptions.tsx (renamed from packages/web/components/dashboard/sidebar/SidebarProfileOptions.tsx)0
-rw-r--r--apps/web/components/signin/CredentialsForm.tsx (renamed from packages/web/components/signin/CredentialsForm.tsx)0
-rw-r--r--apps/web/components/signin/SignInForm.tsx (renamed from packages/web/components/signin/SignInForm.tsx)0
-rw-r--r--apps/web/components/signin/SignInProviderButton.tsx (renamed from packages/web/components/signin/SignInProviderButton.tsx)0
-rw-r--r--apps/web/components/ui/action-button.tsx (renamed from packages/web/components/ui/action-button.tsx)0
-rw-r--r--apps/web/components/ui/back-button.tsx (renamed from packages/web/components/ui/back-button.tsx)0
-rw-r--r--apps/web/components/ui/badge.tsx (renamed from packages/web/components/ui/badge.tsx)0
-rw-r--r--apps/web/components/ui/button.tsx (renamed from packages/web/components/ui/button.tsx)0
-rw-r--r--apps/web/components/ui/card.tsx (renamed from packages/web/components/ui/card.tsx)0
-rw-r--r--apps/web/components/ui/dialog.tsx (renamed from packages/web/components/ui/dialog.tsx)0
-rw-r--r--apps/web/components/ui/dropdown-menu.tsx (renamed from packages/web/components/ui/dropdown-menu.tsx)0
-rw-r--r--apps/web/components/ui/form.tsx (renamed from packages/web/components/ui/form.tsx)0
-rw-r--r--apps/web/components/ui/imageCard.tsx (renamed from packages/web/components/ui/imageCard.tsx)0
-rw-r--r--apps/web/components/ui/input.tsx (renamed from packages/web/components/ui/input.tsx)0
-rw-r--r--apps/web/components/ui/label.tsx (renamed from packages/web/components/ui/label.tsx)0
-rw-r--r--apps/web/components/ui/popover.tsx (renamed from packages/web/components/ui/popover.tsx)0
-rw-r--r--apps/web/components/ui/scroll-area.tsx (renamed from packages/web/components/ui/scroll-area.tsx)0
-rw-r--r--apps/web/components/ui/select.tsx (renamed from packages/web/components/ui/select.tsx)0
-rw-r--r--apps/web/components/ui/separator.tsx (renamed from packages/web/components/ui/separator.tsx)0
-rw-r--r--apps/web/components/ui/skeleton.tsx (renamed from packages/web/components/ui/skeleton.tsx)0
-rw-r--r--apps/web/components/ui/spinner.tsx (renamed from packages/web/components/ui/spinner.tsx)0
-rw-r--r--apps/web/components/ui/table.tsx (renamed from packages/web/components/ui/table.tsx)0
-rw-r--r--apps/web/components/ui/tabs.tsx (renamed from packages/web/components/ui/tabs.tsx)0
-rw-r--r--apps/web/components/ui/textarea.tsx (renamed from packages/web/components/ui/textarea.tsx)0
-rw-r--r--apps/web/components/ui/toast.tsx (renamed from packages/web/components/ui/toast.tsx)0
-rw-r--r--apps/web/components/ui/toaster.tsx (renamed from packages/web/components/ui/toaster.tsx)0
-rw-r--r--apps/web/components/ui/use-toast.ts (renamed from packages/web/components/ui/use-toast.ts)0
-rw-r--r--apps/web/lib/bookmarkUtils.tsx (renamed from packages/web/lib/bookmarkUtils.tsx)0
-rw-r--r--apps/web/lib/hooks/bookmark-search.ts (renamed from packages/web/lib/hooks/bookmark-search.ts)0
-rw-r--r--apps/web/lib/providers.tsx (renamed from packages/web/lib/providers.tsx)0
-rw-r--r--apps/web/lib/trpc.tsx (renamed from packages/web/lib/trpc.tsx)0
-rw-r--r--apps/web/lib/utils.ts (renamed from packages/web/lib/utils.ts)0
-rw-r--r--apps/web/next.config.mjs (renamed from packages/web/next.config.mjs)10
-rw-r--r--apps/web/package.json (renamed from packages/web/package.json)53
-rw-r--r--apps/web/postcss.config.cjs (renamed from packages/web/postcss.config.js)0
-rw-r--r--apps/web/public/blur.avif (renamed from packages/web/public/blur.avif)bin52746 -> 52746 bytes
-rw-r--r--apps/web/public/icons/logo-128.png (renamed from packages/web/public/icons/logo-128.png)bin2362 -> 2362 bytes
-rw-r--r--apps/web/public/icons/logo-16.png (renamed from packages/web/public/icons/logo-16.png)bin287 -> 287 bytes
-rw-r--r--apps/web/public/icons/logo-48.png (renamed from packages/web/public/icons/logo-48.png)bin780 -> 780 bytes
-rw-r--r--apps/web/public/manifest.json (renamed from packages/web/public/manifest.json)0
-rw-r--r--apps/web/server/api/client.ts (renamed from packages/web/server/api/client.ts)0
-rw-r--r--apps/web/server/auth.ts (renamed from packages/web/server/auth.ts)0
-rw-r--r--apps/web/tailwind.config.ts (renamed from packages/web/tailwind.config.ts)0
-rw-r--r--apps/web/tsconfig.json17
-rw-r--r--apps/web/vitest.config.ts (renamed from packages/web/vitest.config.ts)0
-rw-r--r--apps/workers/crawlerWorker.ts (renamed from packages/workers/crawler.ts)0
-rw-r--r--apps/workers/index.ts (renamed from packages/workers/index.ts)6
-rw-r--r--apps/workers/openaiWorker.ts (renamed from packages/workers/openai.ts)0
-rw-r--r--apps/workers/package.json (renamed from packages/workers/package.json)17
-rw-r--r--apps/workers/searchWorker.ts (renamed from packages/workers/search.ts)0
-rw-r--r--apps/workers/tsconfig.json10
-rw-r--r--package.json34
-rw-r--r--packages/db/package.json13
-rw-r--r--packages/db/tsconfig.json7
-rw-r--r--packages/mobile/metro.config.js8
-rw-r--r--packages/mobile/tsconfig.json10
-rw-r--r--packages/shared/package.json15
-rw-r--r--packages/shared/tsconfig.json9
-rw-r--r--packages/trpc/package.json19
-rw-r--r--packages/trpc/tsconfig.json9
-rw-r--r--pnpm-lock.yaml1296
-rw-r--r--pnpm-workspace.yaml2
-rw-r--r--tooling/eslint/base.js43
-rw-r--r--tooling/eslint/nextjs.js10
-rw-r--r--tooling/eslint/package.json42
-rw-r--r--tooling/eslint/react.js24
-rw-r--r--tooling/eslint/tsconfig.json8
-rw-r--r--tooling/github/package.json3
-rw-r--r--tooling/github/setup/action.yml19
-rw-r--r--tooling/prettier/index.js36
-rw-r--r--tooling/prettier/package.json24
-rw-r--r--tooling/prettier/tsconfig.json8
-rw-r--r--tooling/tailwind/base.ts48
-rw-r--r--tooling/tailwind/native.ts9
-rw-r--r--tooling/tailwind/package.json37
-rw-r--r--tooling/tailwind/tsconfig.json8
-rw-r--r--tooling/tailwind/web.ts40
-rw-r--r--tooling/typescript/base.json (renamed from packages/web/tsconfig.json)19
-rw-r--r--tooling/typescript/node.json (renamed from packages/workers/tsconfig.json)5
-rw-r--r--tooling/typescript/package.json9
-rw-r--r--turbo.json49
216 files changed, 1544 insertions, 705 deletions
diff --git a/.eslintrc.js b/.eslintrc.js
deleted file mode 100644
index eccbab28..00000000
--- a/.eslintrc.js
+++ /dev/null
@@ -1,43 +0,0 @@
-module.exports = {
- root: true,
- env: {
- browser: true,
- es2021: true,
- },
- extends: [
- "next/core-web-vitals",
- "eslint:recommended",
- "plugin:react/recommended",
- "plugin:@next/next/recommended",
- "plugin:tailwindcss/recommended",
- "plugin:@typescript-eslint/recommended",
- "next",
- "prettier",
- "plugin:@tanstack/eslint-plugin-query/recommended",
- ],
- plugins: ["tailwindcss", "@typescript-eslint", "@tanstack/query"],
- parserOptions: {
- ecmaVersion: "latest",
- sourceType: "module",
- },
- ignorePatterns: ["postcss.config.js"],
- rules: {
- "@next/next/no-html-link-for-pages": "off",
- "tailwindcss/no-custom-classname": "off",
- "tailwindcss/migration-from-tailwind-2": "off",
-
- "@typescript-eslint/no-unused-vars": [
- "off",
- {
- varsIgnorePattern: "^_",
- argsIgnorePattern: "^_",
- },
- ],
- },
- overrides: [
- {
- files: ["*.ts", "*.tsx"],
- parser: "@typescript-eslint/parser",
- },
- ],
-};
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 00000000..fca0e286
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,50 @@
+name: CI
+
+on:
+ pull_request:
+ branches: ["*"]
+ push:
+ branches: ["main"]
+ merge_group:
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
+
+# You can leverage Vercel Remote Caching with Turbo to speed up your builds
+env:
+ FORCE_COLOR: 3
+
+jobs:
+ lint:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Setup
+ uses: ./tooling/github/setup
+
+ - name: Lint
+ run: pnpm lint && pnpm lint:ws
+
+ format:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Setup
+ uses: ./tooling/github/setup
+
+ - name: Format
+ run: pnpm format
+
+ typecheck:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Setup
+ uses: ./tooling/github/setup
+
+ - name: Typecheck
+ run: pnpm typecheck
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
deleted file mode 100644
index 1662bbe9..00000000
--- a/.github/workflows/main.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-name: Build and lint
-on:
- push:
- branches:
- - main
- pull_request:
-jobs:
- build-lint:
- name: Build and Lint
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- # This is a workaround for: https://github.com/actions/setup-node/issues/899
- - name: Enable Corepack before setting up Node
- run: corepack enable
- - uses: actions/setup-node@v4
- with:
- node-version: 21
- cache: "pnpm"
- - name: Install deps
- env:
- PUPPETEER_SKIP_DOWNLOAD: true
- run: pnpm install
- - name: Format
- run: pnpm format:check
- - name: Lint
- run: pnpm lint
- - name: Build the workers package
- working-directory: packages/workers
- run: pnpm typecheck
- - name: Build web app
- working-directory: packages/web
- run: pnpm run build
- - name: Build the browser extension
- working-directory: packages/browser-extension
- run: pnpm build
diff --git a/.gitignore b/.gitignore
index 1591e672..684ed2a2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -46,3 +46,6 @@ next-env.d.ts
**/public/sw.js.map
**/public/workbox-*.js.map
**/public/worker-*.js.map
+
+# Turbo
+.turbo
diff --git a/packages/browser-extension/.eslintrc.cjs b/apps/browser-extension/.eslintrc.cjs
index 450106a4..450106a4 100644
--- a/packages/browser-extension/.eslintrc.cjs
+++ b/apps/browser-extension/.eslintrc.cjs
diff --git a/packages/browser-extension/.gitignore b/apps/browser-extension/.gitignore
index a547bf36..a547bf36 100644
--- a/packages/browser-extension/.gitignore
+++ b/apps/browser-extension/.gitignore
diff --git a/packages/browser-extension/index.html b/apps/browser-extension/index.html
index e4b78eae..e4b78eae 100644
--- a/packages/browser-extension/index.html
+++ b/apps/browser-extension/index.html
diff --git a/packages/browser-extension/manifest.json b/apps/browser-extension/manifest.json
index d3a27e7b..d3a27e7b 100644
--- a/packages/browser-extension/manifest.json
+++ b/apps/browser-extension/manifest.json
diff --git a/packages/browser-extension/package.json b/apps/browser-extension/package.json
index b205a257..21cffb50 100644
--- a/packages/browser-extension/package.json
+++ b/apps/browser-extension/package.json
@@ -7,7 +7,8 @@
"dev": "vite",
"build": "tsc && vite build",
"lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
- "preview": "vite preview"
+ "preview": "vite preview",
+ "typecheck": "tsc --noEmit"
},
"dependencies": {
"@hoarder/trpc": "0.1.0",
@@ -16,7 +17,6 @@
"@trpc/next": "11.0.0-next-beta.308",
"@trpc/react-query": "11.0.0-next-beta.308",
"@trpc/server": "11.0.0-next-beta.308",
- "@types/chrome": "^0.0.260",
"lucide-react": "^0.330.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
@@ -26,19 +26,30 @@
"zod": "^3.22.4"
},
"devDependencies": {
+ "@hoarder/eslint-config": "workspace:^0.2.0",
+ "@hoarder/prettier-config": "workspace:^0.1.0",
+ "@hoarder/tailwind-config": "workspace:^0.1.0",
+ "@hoarder/tsconfig": "workspace:^0.1.0",
"@crxjs/vite-plugin": "^1.0.14",
"@types/react": "^18.2.55",
"@types/react-dom": "^18.2.19",
- "@typescript-eslint/eslint-plugin": "^6.21.0",
- "@typescript-eslint/parser": "^6.21.0",
+ "@types/chrome": "^0.0.260",
"@vitejs/plugin-react-swc": "^3.5.0",
"autoprefixer": "^10.4.17",
- "eslint": "^8.56.0",
+ "eslint": "^8.57.0",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-react-refresh": "^0.4.5",
"postcss": "^8.4.35",
"tailwindcss": "^3.4.1",
- "typescript": "^5.2.2",
+ "typescript": "^5.3.3",
"vite": "^5.1.0"
- }
+ },
+ "eslintConfig": {
+ "root": true,
+ "extends": [
+ "@hoarder/eslint-config/base",
+ "@hoarder/eslint-config/react"
+ ]
+ },
+ "prettier": "@hoarder/prettier-config"
}
diff --git a/packages/browser-extension/postcss.config.js b/apps/browser-extension/postcss.config.js
index 2aa7205d..2aa7205d 100644
--- a/packages/browser-extension/postcss.config.js
+++ b/apps/browser-extension/postcss.config.js
diff --git a/packages/browser-extension/public/logo-128.png b/apps/browser-extension/public/logo-128.png
index 71ead90c..71ead90c 100644
--- a/packages/browser-extension/public/logo-128.png
+++ b/apps/browser-extension/public/logo-128.png
Binary files differ
diff --git a/packages/browser-extension/public/logo-16.png b/apps/browser-extension/public/logo-16.png
index dd864d44..dd864d44 100644
--- a/packages/browser-extension/public/logo-16.png
+++ b/apps/browser-extension/public/logo-16.png
Binary files differ
diff --git a/packages/browser-extension/public/logo-48.png b/apps/browser-extension/public/logo-48.png
index 7ba1cd49..7ba1cd49 100644
--- a/packages/browser-extension/public/logo-48.png
+++ b/apps/browser-extension/public/logo-48.png
Binary files differ
diff --git a/packages/browser-extension/public/logo.png b/apps/browser-extension/public/logo.png
index ebe0a6a3..ebe0a6a3 100644
--- a/packages/browser-extension/public/logo.png
+++ b/apps/browser-extension/public/logo.png
Binary files differ
diff --git a/packages/browser-extension/src/BookmarkDeletedPage.tsx b/apps/browser-extension/src/BookmarkDeletedPage.tsx
index 23e1d9da..23e1d9da 100644
--- a/packages/browser-extension/src/BookmarkDeletedPage.tsx
+++ b/apps/browser-extension/src/BookmarkDeletedPage.tsx
diff --git a/packages/browser-extension/src/BookmarkSavedPage.tsx b/apps/browser-extension/src/BookmarkSavedPage.tsx
index f25a83ba..f25a83ba 100644
--- a/packages/browser-extension/src/BookmarkSavedPage.tsx
+++ b/apps/browser-extension/src/BookmarkSavedPage.tsx
diff --git a/packages/browser-extension/src/Layout.tsx b/apps/browser-extension/src/Layout.tsx
index f8279a18..f8279a18 100644
--- a/packages/browser-extension/src/Layout.tsx
+++ b/apps/browser-extension/src/Layout.tsx
diff --git a/packages/browser-extension/src/Logo.tsx b/apps/browser-extension/src/Logo.tsx
index 6b29e68c..6b29e68c 100644
--- a/packages/browser-extension/src/Logo.tsx
+++ b/apps/browser-extension/src/Logo.tsx
diff --git a/packages/browser-extension/src/NotConfiguredPage.tsx b/apps/browser-extension/src/NotConfiguredPage.tsx
index fc5c8f47..fc5c8f47 100644
--- a/packages/browser-extension/src/NotConfiguredPage.tsx
+++ b/apps/browser-extension/src/NotConfiguredPage.tsx
diff --git a/packages/browser-extension/src/OptionsPage.tsx b/apps/browser-extension/src/OptionsPage.tsx
index 6407b3cc..6407b3cc 100644
--- a/packages/browser-extension/src/OptionsPage.tsx
+++ b/apps/browser-extension/src/OptionsPage.tsx
diff --git a/packages/browser-extension/src/SavePage.tsx b/apps/browser-extension/src/SavePage.tsx
index 638af149..638af149 100644
--- a/packages/browser-extension/src/SavePage.tsx
+++ b/apps/browser-extension/src/SavePage.tsx
diff --git a/packages/browser-extension/src/SignInPage.tsx b/apps/browser-extension/src/SignInPage.tsx
index 6db7c348..6db7c348 100644
--- a/packages/browser-extension/src/SignInPage.tsx
+++ b/apps/browser-extension/src/SignInPage.tsx
diff --git a/packages/browser-extension/src/Spinner.tsx b/apps/browser-extension/src/Spinner.tsx
index 9fd8839b..9fd8839b 100644
--- a/packages/browser-extension/src/Spinner.tsx
+++ b/apps/browser-extension/src/Spinner.tsx
diff --git a/packages/browser-extension/src/assets/react.svg b/apps/browser-extension/src/assets/react.svg
index 6c87de9b..6c87de9b 100644
--- a/packages/browser-extension/src/assets/react.svg
+++ b/apps/browser-extension/src/assets/react.svg
diff --git a/packages/browser-extension/src/index.css b/apps/browser-extension/src/index.css
index e7d4bb2f..e7d4bb2f 100644
--- a/packages/browser-extension/src/index.css
+++ b/apps/browser-extension/src/index.css
diff --git a/packages/browser-extension/src/main.tsx b/apps/browser-extension/src/main.tsx
index 085a5a69..085a5a69 100644
--- a/packages/browser-extension/src/main.tsx
+++ b/apps/browser-extension/src/main.tsx
diff --git a/packages/browser-extension/src/utils/providers.tsx b/apps/browser-extension/src/utils/providers.tsx
index d20f2512..d20f2512 100644
--- a/packages/browser-extension/src/utils/providers.tsx
+++ b/apps/browser-extension/src/utils/providers.tsx
diff --git a/packages/browser-extension/src/utils/settings.ts b/apps/browser-extension/src/utils/settings.ts
index 37f474c0..37f474c0 100644
--- a/packages/browser-extension/src/utils/settings.ts
+++ b/apps/browser-extension/src/utils/settings.ts
diff --git a/packages/browser-extension/src/utils/trpc.ts b/apps/browser-extension/src/utils/trpc.ts
index da21a55a..da21a55a 100644
--- a/packages/browser-extension/src/utils/trpc.ts
+++ b/apps/browser-extension/src/utils/trpc.ts
diff --git a/packages/browser-extension/src/vite-env.d.ts b/apps/browser-extension/src/vite-env.d.ts
index 11f02fe2..11f02fe2 100644
--- a/packages/browser-extension/src/vite-env.d.ts
+++ b/apps/browser-extension/src/vite-env.d.ts
diff --git a/packages/browser-extension/tailwind.config.js b/apps/browser-extension/tailwind.config.js
index 1c0c7c87..1c0c7c87 100644
--- a/packages/browser-extension/tailwind.config.js
+++ b/apps/browser-extension/tailwind.config.js
diff --git a/packages/browser-extension/tsconfig.json b/apps/browser-extension/tsconfig.json
index a7fc6fbf..a7fc6fbf 100644
--- a/packages/browser-extension/tsconfig.json
+++ b/apps/browser-extension/tsconfig.json
diff --git a/packages/browser-extension/tsconfig.node.json b/apps/browser-extension/tsconfig.node.json
index 97ede7ee..97ede7ee 100644
--- a/packages/browser-extension/tsconfig.node.json
+++ b/apps/browser-extension/tsconfig.node.json
diff --git a/packages/browser-extension/vite.config.ts b/apps/browser-extension/vite.config.ts
index 29c6bc6e..29c6bc6e 100644
--- a/packages/browser-extension/vite.config.ts
+++ b/apps/browser-extension/vite.config.ts
diff --git a/packages/mobile/.eslintrc.js b/apps/mobile/.eslintrc.js
index 53beac49..53beac49 100644
--- a/packages/mobile/.eslintrc.js
+++ b/apps/mobile/.eslintrc.js
diff --git a/packages/mobile/.gitignore b/apps/mobile/.gitignore
index 2920e5a8..2920e5a8 100644
--- a/packages/mobile/.gitignore
+++ b/apps/mobile/.gitignore
diff --git a/packages/mobile/.npmrc b/apps/mobile/.npmrc
index d67f3748..d67f3748 100644
--- a/packages/mobile/.npmrc
+++ b/apps/mobile/.npmrc
diff --git a/packages/mobile/app.json b/apps/mobile/app.json
index e16baa37..e16baa37 100644
--- a/packages/mobile/app.json
+++ b/apps/mobile/app.json
diff --git a/packages/mobile/app/+not-found.tsx b/apps/mobile/app/+not-found.tsx
index 466505b6..466505b6 100644
--- a/packages/mobile/app/+not-found.tsx
+++ b/apps/mobile/app/+not-found.tsx
diff --git a/packages/mobile/app/_layout.tsx b/apps/mobile/app/_layout.tsx
index 6304ced5..6304ced5 100644
--- a/packages/mobile/app/_layout.tsx
+++ b/apps/mobile/app/_layout.tsx
diff --git a/packages/mobile/app/dashboard/(tabs)/_layout.tsx b/apps/mobile/app/dashboard/(tabs)/_layout.tsx
index 5b2d810a..5b2d810a 100644
--- a/packages/mobile/app/dashboard/(tabs)/_layout.tsx
+++ b/apps/mobile/app/dashboard/(tabs)/_layout.tsx
diff --git a/packages/mobile/app/dashboard/(tabs)/index.tsx b/apps/mobile/app/dashboard/(tabs)/index.tsx
index b2349525..b2349525 100644
--- a/packages/mobile/app/dashboard/(tabs)/index.tsx
+++ b/apps/mobile/app/dashboard/(tabs)/index.tsx
diff --git a/packages/mobile/app/dashboard/(tabs)/lists.tsx b/apps/mobile/app/dashboard/(tabs)/lists.tsx
index b534ddda..b534ddda 100644
--- a/packages/mobile/app/dashboard/(tabs)/lists.tsx
+++ b/apps/mobile/app/dashboard/(tabs)/lists.tsx
diff --git a/packages/mobile/app/dashboard/(tabs)/search.tsx b/apps/mobile/app/dashboard/(tabs)/search.tsx
index 980cab36..980cab36 100644
--- a/packages/mobile/app/dashboard/(tabs)/search.tsx
+++ b/apps/mobile/app/dashboard/(tabs)/search.tsx
diff --git a/packages/mobile/app/dashboard/(tabs)/settings.tsx b/apps/mobile/app/dashboard/(tabs)/settings.tsx
index 9f86d5ec..9f86d5ec 100644
--- a/packages/mobile/app/dashboard/(tabs)/settings.tsx
+++ b/apps/mobile/app/dashboard/(tabs)/settings.tsx
diff --git a/packages/mobile/app/dashboard/_layout.tsx b/apps/mobile/app/dashboard/_layout.tsx
index ff2384d2..ff2384d2 100644
--- a/packages/mobile/app/dashboard/_layout.tsx
+++ b/apps/mobile/app/dashboard/_layout.tsx
diff --git a/packages/mobile/app/dashboard/add-link.tsx b/apps/mobile/app/dashboard/add-link.tsx
index 69a9c7a2..69a9c7a2 100644
--- a/packages/mobile/app/dashboard/add-link.tsx
+++ b/apps/mobile/app/dashboard/add-link.tsx
diff --git a/packages/mobile/app/dashboard/add-note.tsx b/apps/mobile/app/dashboard/add-note.tsx
index cf775a15..cf775a15 100644
--- a/packages/mobile/app/dashboard/add-note.tsx
+++ b/apps/mobile/app/dashboard/add-note.tsx
diff --git a/packages/mobile/app/dashboard/archive.tsx b/apps/mobile/app/dashboard/archive.tsx
index d75cfe22..d75cfe22 100644
--- a/packages/mobile/app/dashboard/archive.tsx
+++ b/apps/mobile/app/dashboard/archive.tsx
diff --git a/packages/mobile/app/dashboard/favourites.tsx b/apps/mobile/app/dashboard/favourites.tsx
index 90374f18..90374f18 100644
--- a/packages/mobile/app/dashboard/favourites.tsx
+++ b/apps/mobile/app/dashboard/favourites.tsx
diff --git a/packages/mobile/app/dashboard/lists/[slug].tsx b/apps/mobile/app/dashboard/lists/[slug].tsx
index 54744874..54744874 100644
--- a/packages/mobile/app/dashboard/lists/[slug].tsx
+++ b/apps/mobile/app/dashboard/lists/[slug].tsx
diff --git a/packages/mobile/app/error.tsx b/apps/mobile/app/error.tsx
index 2ca227a4..2ca227a4 100644
--- a/packages/mobile/app/error.tsx
+++ b/apps/mobile/app/error.tsx
diff --git a/packages/mobile/app/index.tsx b/apps/mobile/app/index.tsx
index 5ce20cda..5ce20cda 100644
--- a/packages/mobile/app/index.tsx
+++ b/apps/mobile/app/index.tsx
diff --git a/packages/mobile/app/sharing.tsx b/apps/mobile/app/sharing.tsx
index 64bbd933..64bbd933 100644
--- a/packages/mobile/app/sharing.tsx
+++ b/apps/mobile/app/sharing.tsx
diff --git a/packages/mobile/app/signin.tsx b/apps/mobile/app/signin.tsx
index a89b0087..a89b0087 100644
--- a/packages/mobile/app/signin.tsx
+++ b/apps/mobile/app/signin.tsx
diff --git a/packages/mobile/assets/blur.jpeg b/apps/mobile/assets/blur.jpeg
index 387ce697..387ce697 100644
--- a/packages/mobile/assets/blur.jpeg
+++ b/apps/mobile/assets/blur.jpeg
Binary files differ
diff --git a/packages/mobile/assets/icon.png b/apps/mobile/assets/icon.png
index 71ead90c..71ead90c 100644
--- a/packages/mobile/assets/icon.png
+++ b/apps/mobile/assets/icon.png
Binary files differ
diff --git a/packages/mobile/assets/splash.png b/apps/mobile/assets/splash.png
index 3759c518..3759c518 100644
--- a/packages/mobile/assets/splash.png
+++ b/apps/mobile/assets/splash.png
Binary files differ
diff --git a/packages/mobile/babel.config.js b/apps/mobile/babel.config.js
index f3c649bb..f3c649bb 100644
--- a/packages/mobile/babel.config.js
+++ b/apps/mobile/babel.config.js
diff --git a/packages/mobile/components/Logo.tsx b/apps/mobile/components/Logo.tsx
index 57f7a5c3..57f7a5c3 100644
--- a/packages/mobile/components/Logo.tsx
+++ b/apps/mobile/components/Logo.tsx
diff --git a/packages/mobile/components/bookmarks/BookmarkCard.tsx b/apps/mobile/components/bookmarks/BookmarkCard.tsx
index 25947790..25947790 100644
--- a/packages/mobile/components/bookmarks/BookmarkCard.tsx
+++ b/apps/mobile/components/bookmarks/BookmarkCard.tsx
diff --git a/packages/mobile/components/bookmarks/BookmarkList.tsx b/apps/mobile/components/bookmarks/BookmarkList.tsx
index 8e408709..8e408709 100644
--- a/packages/mobile/components/bookmarks/BookmarkList.tsx
+++ b/apps/mobile/components/bookmarks/BookmarkList.tsx
diff --git a/packages/mobile/components/ui/ActionButton.tsx b/apps/mobile/components/ui/ActionButton.tsx
index c51eb332..c51eb332 100644
--- a/packages/mobile/components/ui/ActionButton.tsx
+++ b/apps/mobile/components/ui/ActionButton.tsx
diff --git a/packages/mobile/components/ui/Button.tsx b/apps/mobile/components/ui/Button.tsx
index 4c3cbc69..4c3cbc69 100644
--- a/packages/mobile/components/ui/Button.tsx
+++ b/apps/mobile/components/ui/Button.tsx
diff --git a/packages/mobile/components/ui/Divider.tsx b/apps/mobile/components/ui/Divider.tsx
index 1da0a71e..1da0a71e 100644
--- a/packages/mobile/components/ui/Divider.tsx
+++ b/apps/mobile/components/ui/Divider.tsx
diff --git a/packages/mobile/components/ui/FullPageSpinner.tsx b/apps/mobile/components/ui/FullPageSpinner.tsx
index 01187f11..01187f11 100644
--- a/packages/mobile/components/ui/FullPageSpinner.tsx
+++ b/apps/mobile/components/ui/FullPageSpinner.tsx
diff --git a/packages/mobile/components/ui/Input.tsx b/apps/mobile/components/ui/Input.tsx
index 2fcb2764..2fcb2764 100644
--- a/packages/mobile/components/ui/Input.tsx
+++ b/apps/mobile/components/ui/Input.tsx
diff --git a/packages/mobile/components/ui/Skeleton.tsx b/apps/mobile/components/ui/Skeleton.tsx
index 68b22e1e..68b22e1e 100644
--- a/packages/mobile/components/ui/Skeleton.tsx
+++ b/apps/mobile/components/ui/Skeleton.tsx
diff --git a/packages/mobile/components/ui/Toast.tsx b/apps/mobile/components/ui/Toast.tsx
index fb319f84..fb319f84 100644
--- a/packages/mobile/components/ui/Toast.tsx
+++ b/apps/mobile/components/ui/Toast.tsx
diff --git a/packages/mobile/eas.json b/apps/mobile/eas.json
index 0897755d..0897755d 100644
--- a/packages/mobile/eas.json
+++ b/apps/mobile/eas.json
diff --git a/packages/mobile/globals.css b/apps/mobile/globals.css
index de1cf559..de1cf559 100644
--- a/packages/mobile/globals.css
+++ b/apps/mobile/globals.css
diff --git a/packages/mobile/lib/last-shared-intent.ts b/apps/mobile/lib/last-shared-intent.ts
index 951bcf74..951bcf74 100644
--- a/packages/mobile/lib/last-shared-intent.ts
+++ b/apps/mobile/lib/last-shared-intent.ts
diff --git a/packages/mobile/lib/providers.tsx b/apps/mobile/lib/providers.tsx
index 1717afb2..1717afb2 100644
--- a/packages/mobile/lib/providers.tsx
+++ b/apps/mobile/lib/providers.tsx
diff --git a/packages/mobile/lib/session.ts b/apps/mobile/lib/session.ts
index e2ab245b..e2ab245b 100644
--- a/packages/mobile/lib/session.ts
+++ b/apps/mobile/lib/session.ts
diff --git a/packages/mobile/lib/settings.ts b/apps/mobile/lib/settings.ts
index 21f40528..21f40528 100644
--- a/packages/mobile/lib/settings.ts
+++ b/apps/mobile/lib/settings.ts
diff --git a/packages/mobile/lib/storage-state.ts b/apps/mobile/lib/storage-state.ts
index 4988f0e0..4988f0e0 100644
--- a/packages/mobile/lib/storage-state.ts
+++ b/apps/mobile/lib/storage-state.ts
diff --git a/packages/mobile/lib/trpc.ts b/apps/mobile/lib/trpc.ts
index 6b428bd9..6b428bd9 100644
--- a/packages/mobile/lib/trpc.ts
+++ b/apps/mobile/lib/trpc.ts
diff --git a/packages/mobile/lib/utils.ts b/apps/mobile/lib/utils.ts
index 365058ce..365058ce 100644
--- a/packages/mobile/lib/utils.ts
+++ b/apps/mobile/lib/utils.ts
diff --git a/apps/mobile/metro.config.js b/apps/mobile/metro.config.js
new file mode 100644
index 00000000..c5630a83
--- /dev/null
+++ b/apps/mobile/metro.config.js
@@ -0,0 +1,58 @@
+// Learn more: https://docs.expo.dev/guides/monorepos/
+const { getDefaultConfig } = require("expo/metro-config");
+const { FileStore } = require("metro-cache");
+const { withNativeWind } = require("nativewind/metro");
+
+const path = require("path");
+
+module.exports = withTurborepoManagedCache(
+ withMonorepoPaths(
+ withNativeWind(getDefaultConfig(__dirname), {
+ input: "./globals.css",
+ configPath: "./tailwind.config.ts",
+ }),
+ ),
+);
+
+/**
+ * Add the monorepo paths to the Metro config.
+ * This allows Metro to resolve modules from the monorepo.
+ *
+ * @see https://docs.expo.dev/guides/monorepos/#modify-the-metro-config
+ * @param {import('expo/metro-config').MetroConfig} config
+ * @returns {import('expo/metro-config').MetroConfig}
+ */
+function withMonorepoPaths(config) {
+ const projectRoot = __dirname;
+ const workspaceRoot = path.resolve(projectRoot, "../..");
+
+ // #1 - Watch all files in the monorepo
+ config.watchFolders = [workspaceRoot];
+
+ // #2 - Resolve modules within the project's `node_modules` first, then all monorepo modules
+ config.resolver.nodeModulesPaths = [
+ path.resolve(projectRoot, "node_modules"),
+ path.resolve(workspaceRoot, "node_modules"),
+ ];
+
+ return config;
+}
+
+/**
+ * Move the Metro cache to the `node_modules/.cache/metro` folder.
+ * This repository configured Turborepo to use this cache location as well.
+ * If you have any environment variables, you can configure Turborepo to invalidate it when needed.
+ *
+ * @see https://turbo.build/repo/docs/reference/configuration#env
+ * @param {import('expo/metro-config').MetroConfig} config
+ * @returns {import('expo/metro-config').MetroConfig}
+ */
+function withTurborepoManagedCache(config) {
+ config.cacheStores = [
+ new FileStore({ root: path.join(__dirname, "node_modules/.cache/metro") }),
+ ];
+ return config;
+}
+
+
+
diff --git a/packages/mobile/nativewind-env.d.ts b/apps/mobile/nativewind-env.d.ts
index a13e3136..a13e3136 100644
--- a/packages/mobile/nativewind-env.d.ts
+++ b/apps/mobile/nativewind-env.d.ts
diff --git a/packages/mobile/package.json b/apps/mobile/package.json
index 1298b8db..80036724 100644
--- a/packages/mobile/package.json
+++ b/apps/mobile/package.json
@@ -1,13 +1,16 @@
{
- "name": "hoarder-mobile",
+ "name": "@hoarder/mobile",
"version": "1.0.0",
"main": "expo-router/entry",
"scripts": {
+ "clean": "git clean -xdf .expo .turbo node_modules",
"start": "expo start",
"android": "expo run:android",
"ios": "expo run:ios",
"web": "expo start --web",
- "lint": "eslint ."
+ "lint": "eslint .",
+ "format": "prettier --check . --ignore-path .gitignore",
+ "typecheck": "tsc --noEmit"
},
"dependencies": {
"@hoarder/trpc": "0.1.0",
@@ -27,7 +30,7 @@
"expo-web-browser": "^12.8.2",
"lucide-react-native": "^0.354.0",
"nativewind": "^4.0.1",
- "react": "18.2.0",
+ "react": "^18.2.0",
"react-native": "0.73.4",
"react-native-markdown-display": "^7.0.2",
"react-native-reanimated": "^3.8.0",
@@ -40,14 +43,29 @@
"zustand": "^4.5.1"
},
"devDependencies": {
+ "@hoarder/eslint-config": "workspace:^0.2.0",
+ "@hoarder/prettier-config": "workspace:^0.1.0",
+ "@hoarder/tailwind-config": "workspace:^0.1.0",
+ "@hoarder/tsconfig": "workspace:^0.1.0",
"@babel/core": "^7.20.0",
- "@types/react": "~18.2.45",
+ "@types/react": "^18.2.55",
"ajv": "latest",
"eslint": "^8.57.0",
"eslint-config-universe": "^12.0.0",
"prettier": "^3.2.5",
- "tailwindcss": "3.3.2",
- "typescript": "^5.1.3"
+ "tailwindcss": "^3.4.1",
+ "typescript": "^5.3.3"
},
- "private": true
+ "private": true,
+ "eslintConfig": {
+ "root": true,
+ "extends": [
+ "@hoarder/eslint-config/base",
+ "@hoarder/eslint-config/react"
+ ],
+ "ignorePatterns": [
+ "expo-plugins/**"
+ ]
+ },
+ "prettier": "@hoarder/prettier-config"
}
diff --git a/packages/mobile/tailwind.config.js b/apps/mobile/tailwind.config.ts
index b49f9598..ce0059d4 100644
--- a/packages/mobile/tailwind.config.js
+++ b/apps/mobile/tailwind.config.ts
@@ -1,7 +1,7 @@
-const { hairlineWidth } = require("nativewind/theme");
+import type { Config } from "tailwindcss";
+import { hairlineWidth } from "nativewind/theme";
-/** @type {import('tailwindcss').Config} */
-module.exports = {
+const config = {
content: ["./app/**/*.{js,jsx,ts,tsx}", "./components/**/*.{js,jsx,ts,tsx}"],
plugins: [],
presets: [require("nativewind/preset")],
@@ -68,4 +68,6 @@ module.exports = {
},
},
},
-};
+} satisfies Config;
+
+export default config;
diff --git a/apps/mobile/tsconfig.json b/apps/mobile/tsconfig.json
new file mode 100644
index 00000000..3bcf5741
--- /dev/null
+++ b/apps/mobile/tsconfig.json
@@ -0,0 +1,14 @@
+{
+ "extends": "expo/tsconfig.base",
+ "compilerOptions": {
+ "tsBuildInfoFile": "node_modules/.cache/tsbuildinfo.json",
+ "types": ["nativewind/types"],
+ "incremental": true,
+ "strict": true,
+ "baseUrl": ".",
+ "paths": {
+ "@/*": ["./*"]
+ }
+ },
+ "exclude": ["node_modules"]
+}
diff --git a/packages/web/README.md b/apps/web/README.md
index c4033664..c4033664 100644
--- a/packages/web/README.md
+++ b/apps/web/README.md
diff --git a/packages/web/app/api/auth/[...nextauth]/route.tsx b/apps/web/app/api/auth/[...nextauth]/route.tsx
index 2f7f1cb0..2f7f1cb0 100644
--- a/packages/web/app/api/auth/[...nextauth]/route.tsx
+++ b/apps/web/app/api/auth/[...nextauth]/route.tsx
diff --git a/packages/web/app/api/trpc/[trpc]/route.ts b/apps/web/app/api/trpc/[trpc]/route.ts
index b6753101..02ca966d 100644
--- a/packages/web/app/api/trpc/[trpc]/route.ts
+++ b/apps/web/app/api/trpc/[trpc]/route.ts
@@ -21,7 +21,7 @@ const handler = (req: Request) =>
// Check if the request has an Authorization token, if it does, assume that API key authentication is requested.
const authorizationHeader = opts.req.headers.get("Authorization");
if (authorizationHeader && authorizationHeader.startsWith("Bearer ")) {
- const token = authorizationHeader.split(" ")[1];
+ const token = authorizationHeader.split(" ")[1]!;
try {
const user = await authenticateApiKey(token);
return { user, db };
diff --git a/packages/web/app/dashboard/admin/page.tsx b/apps/web/app/dashboard/admin/page.tsx
index 6babdd79..6babdd79 100644
--- a/packages/web/app/dashboard/admin/page.tsx
+++ b/apps/web/app/dashboard/admin/page.tsx
diff --git a/packages/web/app/dashboard/archive/page.tsx b/apps/web/app/dashboard/archive/page.tsx
index 69559185..69559185 100644
--- a/packages/web/app/dashboard/archive/page.tsx
+++ b/apps/web/app/dashboard/archive/page.tsx
diff --git a/packages/web/app/dashboard/bookmarks/layout.tsx b/apps/web/app/dashboard/bookmarks/layout.tsx
index 71ee143b..71ee143b 100644
--- a/packages/web/app/dashboard/bookmarks/layout.tsx
+++ b/apps/web/app/dashboard/bookmarks/layout.tsx
diff --git a/packages/web/app/dashboard/bookmarks/loading.tsx b/apps/web/app/dashboard/bookmarks/loading.tsx
index 4e56c3c4..4e56c3c4 100644
--- a/packages/web/app/dashboard/bookmarks/loading.tsx
+++ b/apps/web/app/dashboard/bookmarks/loading.tsx
diff --git a/packages/web/app/dashboard/bookmarks/page.tsx b/apps/web/app/dashboard/bookmarks/page.tsx
index c9391d85..c9391d85 100644
--- a/packages/web/app/dashboard/bookmarks/page.tsx
+++ b/apps/web/app/dashboard/bookmarks/page.tsx
diff --git a/packages/web/app/dashboard/error.tsx b/apps/web/app/dashboard/error.tsx
index 556e59a3..556e59a3 100644
--- a/packages/web/app/dashboard/error.tsx
+++ b/apps/web/app/dashboard/error.tsx
diff --git a/packages/web/app/dashboard/favourites/page.tsx b/apps/web/app/dashboard/favourites/page.tsx
index de17461d..de17461d 100644
--- a/packages/web/app/dashboard/favourites/page.tsx
+++ b/apps/web/app/dashboard/favourites/page.tsx
diff --git a/packages/web/app/dashboard/layout.tsx b/apps/web/app/dashboard/layout.tsx
index 31d592fb..31d592fb 100644
--- a/packages/web/app/dashboard/layout.tsx
+++ b/apps/web/app/dashboard/layout.tsx
diff --git a/packages/web/app/dashboard/lists/[listId]/page.tsx b/apps/web/app/dashboard/lists/[listId]/page.tsx
index 006fd3ad..006fd3ad 100644
--- a/packages/web/app/dashboard/lists/[listId]/page.tsx
+++ b/apps/web/app/dashboard/lists/[listId]/page.tsx
diff --git a/packages/web/app/dashboard/lists/page.tsx b/apps/web/app/dashboard/lists/page.tsx
index 88eeda47..88eeda47 100644
--- a/packages/web/app/dashboard/lists/page.tsx
+++ b/apps/web/app/dashboard/lists/page.tsx
diff --git a/packages/web/app/dashboard/not-found.tsx b/apps/web/app/dashboard/not-found.tsx
index 64df220c..64df220c 100644
--- a/packages/web/app/dashboard/not-found.tsx
+++ b/apps/web/app/dashboard/not-found.tsx
diff --git a/packages/web/app/dashboard/preview/[bookmarkId]/page.tsx b/apps/web/app/dashboard/preview/[bookmarkId]/page.tsx
index 707d2b69..707d2b69 100644
--- a/packages/web/app/dashboard/preview/[bookmarkId]/page.tsx
+++ b/apps/web/app/dashboard/preview/[bookmarkId]/page.tsx
diff --git a/packages/web/app/dashboard/search/page.tsx b/apps/web/app/dashboard/search/page.tsx
index 602f6aa0..602f6aa0 100644
--- a/packages/web/app/dashboard/search/page.tsx
+++ b/apps/web/app/dashboard/search/page.tsx
diff --git a/packages/web/app/dashboard/settings/page.tsx b/apps/web/app/dashboard/settings/page.tsx
index 38091e6c..38091e6c 100644
--- a/packages/web/app/dashboard/settings/page.tsx
+++ b/apps/web/app/dashboard/settings/page.tsx
diff --git a/packages/web/app/dashboard/tags/[tagName]/page.tsx b/apps/web/app/dashboard/tags/[tagName]/page.tsx
index c978b86a..c978b86a 100644
--- a/packages/web/app/dashboard/tags/[tagName]/page.tsx
+++ b/apps/web/app/dashboard/tags/[tagName]/page.tsx
diff --git a/packages/web/app/dashboard/tags/page.tsx b/apps/web/app/dashboard/tags/page.tsx
index 44c164e1..44c164e1 100644
--- a/packages/web/app/dashboard/tags/page.tsx
+++ b/apps/web/app/dashboard/tags/page.tsx
diff --git a/packages/web/app/favicon.ico b/apps/web/app/favicon.ico
index 750e3c04..750e3c04 100644
--- a/packages/web/app/favicon.ico
+++ b/apps/web/app/favicon.ico
Binary files differ
diff --git a/packages/web/app/globals.css b/apps/web/app/globals.css
index 8abdb15c..8abdb15c 100644
--- a/packages/web/app/globals.css
+++ b/apps/web/app/globals.css
diff --git a/packages/web/app/layout.tsx b/apps/web/app/layout.tsx
index b1790a1f..b1790a1f 100644
--- a/packages/web/app/layout.tsx
+++ b/apps/web/app/layout.tsx
diff --git a/packages/web/app/page.tsx b/apps/web/app/page.tsx
index f467b64b..f467b64b 100644
--- a/packages/web/app/page.tsx
+++ b/apps/web/app/page.tsx
diff --git a/packages/web/app/signin/page.tsx b/apps/web/app/signin/page.tsx
index fed71b62..fed71b62 100644
--- a/packages/web/app/signin/page.tsx
+++ b/apps/web/app/signin/page.tsx
diff --git a/packages/web/components.json b/apps/web/components.json
index fa674c93..fa674c93 100644
--- a/packages/web/components.json
+++ b/apps/web/components.json
diff --git a/packages/web/components/dashboard/bookmarks/AddLinkButton.tsx b/apps/web/components/dashboard/bookmarks/AddLinkButton.tsx
index 5973f909..5973f909 100644
--- a/packages/web/components/dashboard/bookmarks/AddLinkButton.tsx
+++ b/apps/web/components/dashboard/bookmarks/AddLinkButton.tsx
diff --git a/packages/web/components/dashboard/bookmarks/AddToListModal.tsx b/apps/web/components/dashboard/bookmarks/AddToListModal.tsx
index c9fd5da0..c9fd5da0 100644
--- a/packages/web/components/dashboard/bookmarks/AddToListModal.tsx
+++ b/apps/web/components/dashboard/bookmarks/AddToListModal.tsx
diff --git a/packages/web/components/dashboard/bookmarks/BookmarkCardSkeleton.tsx b/apps/web/components/dashboard/bookmarks/BookmarkCardSkeleton.tsx
index 1f5fa433..1f5fa433 100644
--- a/packages/web/components/dashboard/bookmarks/BookmarkCardSkeleton.tsx
+++ b/apps/web/components/dashboard/bookmarks/BookmarkCardSkeleton.tsx
diff --git a/packages/web/components/dashboard/bookmarks/BookmarkOptions.tsx b/apps/web/components/dashboard/bookmarks/BookmarkOptions.tsx
index 4f08ebee..4f08ebee 100644
--- a/packages/web/components/dashboard/bookmarks/BookmarkOptions.tsx
+++ b/apps/web/components/dashboard/bookmarks/BookmarkOptions.tsx
diff --git a/packages/web/components/dashboard/bookmarks/BookmarkPreview.tsx b/apps/web/components/dashboard/bookmarks/BookmarkPreview.tsx
index 2a8ae1b1..2a8ae1b1 100644
--- a/packages/web/components/dashboard/bookmarks/BookmarkPreview.tsx
+++ b/apps/web/components/dashboard/bookmarks/BookmarkPreview.tsx
diff --git a/packages/web/components/dashboard/bookmarks/BookmarkedTextEditor.tsx b/apps/web/components/dashboard/bookmarks/BookmarkedTextEditor.tsx
index a5b58f1a..a5b58f1a 100644
--- a/packages/web/components/dashboard/bookmarks/BookmarkedTextEditor.tsx
+++ b/apps/web/components/dashboard/bookmarks/BookmarkedTextEditor.tsx
diff --git a/packages/web/components/dashboard/bookmarks/BookmarkedTextViewer.tsx b/apps/web/components/dashboard/bookmarks/BookmarkedTextViewer.tsx
index 8a620341..8a620341 100644
--- a/packages/web/components/dashboard/bookmarks/BookmarkedTextViewer.tsx
+++ b/apps/web/components/dashboard/bookmarks/BookmarkedTextViewer.tsx
diff --git a/packages/web/components/dashboard/bookmarks/Bookmarks.tsx b/apps/web/components/dashboard/bookmarks/Bookmarks.tsx
index 1ad3670c..1ad3670c 100644
--- a/packages/web/components/dashboard/bookmarks/Bookmarks.tsx
+++ b/apps/web/components/dashboard/bookmarks/Bookmarks.tsx
diff --git a/packages/web/components/dashboard/bookmarks/BookmarksGrid.tsx b/apps/web/components/dashboard/bookmarks/BookmarksGrid.tsx
index 4d5b6b0a..4d5b6b0a 100644
--- a/packages/web/components/dashboard/bookmarks/BookmarksGrid.tsx
+++ b/apps/web/components/dashboard/bookmarks/BookmarksGrid.tsx
diff --git a/packages/web/components/dashboard/bookmarks/LinkCard.tsx b/apps/web/components/dashboard/bookmarks/LinkCard.tsx
index 50f30e47..50f30e47 100644
--- a/packages/web/components/dashboard/bookmarks/LinkCard.tsx
+++ b/apps/web/components/dashboard/bookmarks/LinkCard.tsx
diff --git a/packages/web/components/dashboard/bookmarks/TagList.tsx b/apps/web/components/dashboard/bookmarks/TagList.tsx
index 6c9d2d22..6c9d2d22 100644
--- a/packages/web/components/dashboard/bookmarks/TagList.tsx
+++ b/apps/web/components/dashboard/bookmarks/TagList.tsx
diff --git a/packages/web/components/dashboard/bookmarks/TagModal.tsx b/apps/web/components/dashboard/bookmarks/TagModal.tsx
index 8c09d00e..8c09d00e 100644
--- a/packages/web/components/dashboard/bookmarks/TagModal.tsx
+++ b/apps/web/components/dashboard/bookmarks/TagModal.tsx
diff --git a/packages/web/components/dashboard/bookmarks/TextCard.tsx b/apps/web/components/dashboard/bookmarks/TextCard.tsx
index 2565e69d..2565e69d 100644
--- a/packages/web/components/dashboard/bookmarks/TextCard.tsx
+++ b/apps/web/components/dashboard/bookmarks/TextCard.tsx
diff --git a/packages/web/components/dashboard/bookmarks/TopNav.tsx b/apps/web/components/dashboard/bookmarks/TopNav.tsx
index 6c0f18e5..6c0f18e5 100644
--- a/packages/web/components/dashboard/bookmarks/TopNav.tsx
+++ b/apps/web/components/dashboard/bookmarks/TopNav.tsx
diff --git a/packages/web/components/dashboard/lists/AllListsView.tsx b/apps/web/components/dashboard/lists/AllListsView.tsx
index 81f31cde..81f31cde 100644
--- a/packages/web/components/dashboard/lists/AllListsView.tsx
+++ b/apps/web/components/dashboard/lists/AllListsView.tsx
diff --git a/packages/web/components/dashboard/lists/DeleteListButton.tsx b/apps/web/components/dashboard/lists/DeleteListButton.tsx
index 5303b217..5303b217 100644
--- a/packages/web/components/dashboard/lists/DeleteListButton.tsx
+++ b/apps/web/components/dashboard/lists/DeleteListButton.tsx
diff --git a/packages/web/components/dashboard/lists/ListView.tsx b/apps/web/components/dashboard/lists/ListView.tsx
index 2d48d9e3..2d48d9e3 100644
--- a/packages/web/components/dashboard/lists/ListView.tsx
+++ b/apps/web/components/dashboard/lists/ListView.tsx
diff --git a/packages/web/components/dashboard/search/SearchInput.tsx b/apps/web/components/dashboard/search/SearchInput.tsx
index 73d14c90..73d14c90 100644
--- a/packages/web/components/dashboard/search/SearchInput.tsx
+++ b/apps/web/components/dashboard/search/SearchInput.tsx
diff --git a/packages/web/components/dashboard/settings/AddApiKey.tsx b/apps/web/components/dashboard/settings/AddApiKey.tsx
index a4fd9c25..a4fd9c25 100644
--- a/packages/web/components/dashboard/settings/AddApiKey.tsx
+++ b/apps/web/components/dashboard/settings/AddApiKey.tsx
diff --git a/packages/web/components/dashboard/settings/ApiKeySettings.tsx b/apps/web/components/dashboard/settings/ApiKeySettings.tsx
index 1598f25f..1598f25f 100644
--- a/packages/web/components/dashboard/settings/ApiKeySettings.tsx
+++ b/apps/web/components/dashboard/settings/ApiKeySettings.tsx
diff --git a/packages/web/components/dashboard/settings/DeleteApiKey.tsx b/apps/web/components/dashboard/settings/DeleteApiKey.tsx
index 566136af..566136af 100644
--- a/packages/web/components/dashboard/settings/DeleteApiKey.tsx
+++ b/apps/web/components/dashboard/settings/DeleteApiKey.tsx
diff --git a/packages/web/components/dashboard/sidebar/AllLists.tsx b/apps/web/components/dashboard/sidebar/AllLists.tsx
index a77252d0..a77252d0 100644
--- a/packages/web/components/dashboard/sidebar/AllLists.tsx
+++ b/apps/web/components/dashboard/sidebar/AllLists.tsx
diff --git a/packages/web/components/dashboard/sidebar/ModileSidebar.tsx b/apps/web/components/dashboard/sidebar/ModileSidebar.tsx
index 4bd6a347..4bd6a347 100644
--- a/packages/web/components/dashboard/sidebar/ModileSidebar.tsx
+++ b/apps/web/components/dashboard/sidebar/ModileSidebar.tsx
diff --git a/packages/web/components/dashboard/sidebar/ModileSidebarItem.tsx b/apps/web/components/dashboard/sidebar/ModileSidebarItem.tsx
index 9389d2e4..9389d2e4 100644
--- a/packages/web/components/dashboard/sidebar/ModileSidebarItem.tsx
+++ b/apps/web/components/dashboard/sidebar/ModileSidebarItem.tsx
diff --git a/packages/web/components/dashboard/sidebar/NewListModal.tsx b/apps/web/components/dashboard/sidebar/NewListModal.tsx
index f51616ed..f51616ed 100644
--- a/packages/web/components/dashboard/sidebar/NewListModal.tsx
+++ b/apps/web/components/dashboard/sidebar/NewListModal.tsx
diff --git a/packages/web/components/dashboard/sidebar/Sidebar.tsx b/apps/web/components/dashboard/sidebar/Sidebar.tsx
index a5c1d7a5..a5c1d7a5 100644
--- a/packages/web/components/dashboard/sidebar/Sidebar.tsx
+++ b/apps/web/components/dashboard/sidebar/Sidebar.tsx
diff --git a/packages/web/components/dashboard/sidebar/SidebarItem.tsx b/apps/web/components/dashboard/sidebar/SidebarItem.tsx
index 856bdffd..856bdffd 100644
--- a/packages/web/components/dashboard/sidebar/SidebarItem.tsx
+++ b/apps/web/components/dashboard/sidebar/SidebarItem.tsx
diff --git a/packages/web/components/dashboard/sidebar/SidebarProfileOptions.tsx b/apps/web/components/dashboard/sidebar/SidebarProfileOptions.tsx
index f931b63e..f931b63e 100644
--- a/packages/web/components/dashboard/sidebar/SidebarProfileOptions.tsx
+++ b/apps/web/components/dashboard/sidebar/SidebarProfileOptions.tsx
diff --git a/packages/web/components/signin/CredentialsForm.tsx b/apps/web/components/signin/CredentialsForm.tsx
index 5296e163..5296e163 100644
--- a/packages/web/components/signin/CredentialsForm.tsx
+++ b/apps/web/components/signin/CredentialsForm.tsx
diff --git a/packages/web/components/signin/SignInForm.tsx b/apps/web/components/signin/SignInForm.tsx
index 7c8f8936..7c8f8936 100644
--- a/packages/web/components/signin/SignInForm.tsx
+++ b/apps/web/components/signin/SignInForm.tsx
diff --git a/packages/web/components/signin/SignInProviderButton.tsx b/apps/web/components/signin/SignInProviderButton.tsx
index 0831236c..0831236c 100644
--- a/packages/web/components/signin/SignInProviderButton.tsx
+++ b/apps/web/components/signin/SignInProviderButton.tsx
diff --git a/packages/web/components/ui/action-button.tsx b/apps/web/components/ui/action-button.tsx
index 42e16f65..42e16f65 100644
--- a/packages/web/components/ui/action-button.tsx
+++ b/apps/web/components/ui/action-button.tsx
diff --git a/packages/web/components/ui/back-button.tsx b/apps/web/components/ui/back-button.tsx
index 685930df..685930df 100644
--- a/packages/web/components/ui/back-button.tsx
+++ b/apps/web/components/ui/back-button.tsx
diff --git a/packages/web/components/ui/badge.tsx b/apps/web/components/ui/badge.tsx
index c30daca1..c30daca1 100644
--- a/packages/web/components/ui/badge.tsx
+++ b/apps/web/components/ui/badge.tsx
diff --git a/packages/web/components/ui/button.tsx b/apps/web/components/ui/button.tsx
index 79b45fa0..79b45fa0 100644
--- a/packages/web/components/ui/button.tsx
+++ b/apps/web/components/ui/button.tsx
diff --git a/packages/web/components/ui/card.tsx b/apps/web/components/ui/card.tsx
index f4e57996..f4e57996 100644
--- a/packages/web/components/ui/card.tsx
+++ b/apps/web/components/ui/card.tsx
diff --git a/packages/web/components/ui/dialog.tsx b/apps/web/components/ui/dialog.tsx
index 8fe3fe35..8fe3fe35 100644
--- a/packages/web/components/ui/dialog.tsx
+++ b/apps/web/components/ui/dialog.tsx
diff --git a/packages/web/components/ui/dropdown-menu.tsx b/apps/web/components/ui/dropdown-menu.tsx
index 3a9a2ff7..3a9a2ff7 100644
--- a/packages/web/components/ui/dropdown-menu.tsx
+++ b/apps/web/components/ui/dropdown-menu.tsx
diff --git a/packages/web/components/ui/form.tsx b/apps/web/components/ui/form.tsx
index e62e10e9..e62e10e9 100644
--- a/packages/web/components/ui/form.tsx
+++ b/apps/web/components/ui/form.tsx
diff --git a/packages/web/components/ui/imageCard.tsx b/apps/web/components/ui/imageCard.tsx
index f10ebdb5..f10ebdb5 100644
--- a/packages/web/components/ui/imageCard.tsx
+++ b/apps/web/components/ui/imageCard.tsx
diff --git a/packages/web/components/ui/input.tsx b/apps/web/components/ui/input.tsx
index 21aac7ad..21aac7ad 100644
--- a/packages/web/components/ui/input.tsx
+++ b/apps/web/components/ui/input.tsx
diff --git a/packages/web/components/ui/label.tsx b/apps/web/components/ui/label.tsx
index 84f8b0c7..84f8b0c7 100644
--- a/packages/web/components/ui/label.tsx
+++ b/apps/web/components/ui/label.tsx
diff --git a/packages/web/components/ui/popover.tsx b/apps/web/components/ui/popover.tsx
index a361ba7d..a361ba7d 100644
--- a/packages/web/components/ui/popover.tsx
+++ b/apps/web/components/ui/popover.tsx
diff --git a/packages/web/components/ui/scroll-area.tsx b/apps/web/components/ui/scroll-area.tsx
index 32cb6022..32cb6022 100644
--- a/packages/web/components/ui/scroll-area.tsx
+++ b/apps/web/components/ui/scroll-area.tsx
diff --git a/packages/web/components/ui/select.tsx b/apps/web/components/ui/select.tsx
index efd4ff1e..efd4ff1e 100644
--- a/packages/web/components/ui/select.tsx
+++ b/apps/web/components/ui/select.tsx
diff --git a/packages/web/components/ui/separator.tsx b/apps/web/components/ui/separator.tsx
index 3b9f2b84..3b9f2b84 100644
--- a/packages/web/components/ui/separator.tsx
+++ b/apps/web/components/ui/separator.tsx
diff --git a/packages/web/components/ui/skeleton.tsx b/apps/web/components/ui/skeleton.tsx
index 5fab2023..5fab2023 100644
--- a/packages/web/components/ui/skeleton.tsx
+++ b/apps/web/components/ui/skeleton.tsx
diff --git a/packages/web/components/ui/spinner.tsx b/apps/web/components/ui/spinner.tsx
index adcd2807..adcd2807 100644
--- a/packages/web/components/ui/spinner.tsx
+++ b/apps/web/components/ui/spinner.tsx
diff --git a/packages/web/components/ui/table.tsx b/apps/web/components/ui/table.tsx
index 0fa9288e..0fa9288e 100644
--- a/packages/web/components/ui/table.tsx
+++ b/apps/web/components/ui/table.tsx
diff --git a/packages/web/components/ui/tabs.tsx b/apps/web/components/ui/tabs.tsx
index 990017db..990017db 100644
--- a/packages/web/components/ui/tabs.tsx
+++ b/apps/web/components/ui/tabs.tsx
diff --git a/packages/web/components/ui/textarea.tsx b/apps/web/components/ui/textarea.tsx
index a0de3371..a0de3371 100644
--- a/packages/web/components/ui/textarea.tsx
+++ b/apps/web/components/ui/textarea.tsx
diff --git a/packages/web/components/ui/toast.tsx b/apps/web/components/ui/toast.tsx
index 0d162dca..0d162dca 100644
--- a/packages/web/components/ui/toast.tsx
+++ b/apps/web/components/ui/toast.tsx
diff --git a/packages/web/components/ui/toaster.tsx b/apps/web/components/ui/toaster.tsx
index 7d82ed55..7d82ed55 100644
--- a/packages/web/components/ui/toaster.tsx
+++ b/apps/web/components/ui/toaster.tsx
diff --git a/packages/web/components/ui/use-toast.ts b/apps/web/components/ui/use-toast.ts
index 5491e140..5491e140 100644
--- a/packages/web/components/ui/use-toast.ts
+++ b/apps/web/components/ui/use-toast.ts
diff --git a/packages/web/lib/bookmarkUtils.tsx b/apps/web/lib/bookmarkUtils.tsx
index a2828c29..a2828c29 100644
--- a/packages/web/lib/bookmarkUtils.tsx
+++ b/apps/web/lib/bookmarkUtils.tsx
diff --git a/packages/web/lib/hooks/bookmark-search.ts b/apps/web/lib/hooks/bookmark-search.ts
index 738e1bd8..738e1bd8 100644
--- a/packages/web/lib/hooks/bookmark-search.ts
+++ b/apps/web/lib/hooks/bookmark-search.ts
diff --git a/packages/web/lib/providers.tsx b/apps/web/lib/providers.tsx
index 5c4649b5..5c4649b5 100644
--- a/packages/web/lib/providers.tsx
+++ b/apps/web/lib/providers.tsx
diff --git a/packages/web/lib/trpc.tsx b/apps/web/lib/trpc.tsx
index 79a2a9fe..79a2a9fe 100644
--- a/packages/web/lib/trpc.tsx
+++ b/apps/web/lib/trpc.tsx
diff --git a/packages/web/lib/utils.ts b/apps/web/lib/utils.ts
index 365058ce..365058ce 100644
--- a/packages/web/lib/utils.ts
+++ b/apps/web/lib/utils.ts
diff --git a/packages/web/next.config.mjs b/apps/web/next.config.mjs
index bda43a58..fa0757dd 100644
--- a/packages/web/next.config.mjs
+++ b/apps/web/next.config.mjs
@@ -38,6 +38,16 @@ const nextConfig = withPWA({
},
];
},
+
+ transpilePackages: [
+ "@hoarder/shared",
+ "@hoarder/db",
+ "@hoarder/trpc",
+ ],
+
+ /** We already do linting and typechecking as separate tasks in CI */
+ eslint: { ignoreDuringBuilds: true },
+ typescript: { ignoreBuildErrors: true },
});
export default nextConfig;
diff --git a/packages/web/package.json b/apps/web/package.json
index e0c9d407..28708c6c 100644
--- a/packages/web/package.json
+++ b/apps/web/package.json
@@ -3,23 +3,25 @@
"name": "@hoarder/web",
"version": "0.1.0",
"private": true,
+ "type": "module",
"scripts": {
"dev": "next dev",
+ "clean": "git clean -xdf .next .turbo node_modules",
"build": "next build",
"start": "next start",
"lint": "next lint",
"test": "vitest",
- "typecheck": "tsc --noEmit"
+ "typecheck": "tsc --noEmit",
+ "format": "prettier --check . --ignore-path ../../.gitignore"
},
"dependencies": {
"@auth/drizzle-adapter": "^0.8.0",
"@emoji-mart/data": "^1.1.2",
"@emoji-mart/react": "^1.1.1",
- "@hoarder/db": "0.1.0",
- "@hoarder/shared": "0.1.0",
- "@hoarder/trpc": "0.1.0",
+ "@hoarder/db": "workspace:^0.1.0",
+ "@hoarder/shared": "workspace:^0.1.0",
+ "@hoarder/trpc": "workspace:^0.1.0",
"@hookform/resolvers": "^3.3.4",
- "@next/eslint-plugin-next": "^14.1.1",
"@radix-ui/react-dialog": "^1.0.5",
"@radix-ui/react-dropdown-menu": "^2.0.6",
"@radix-ui/react-label": "^2.0.2",
@@ -30,25 +32,25 @@
"@radix-ui/react-slot": "^1.0.2",
"@radix-ui/react-tabs": "^1.0.4",
"@radix-ui/react-toast": "^1.1.5",
- "@tanstack/react-query": "^5.24.6",
+ "@tanstack/react-query": "^5.24.8",
"@tanstack/react-query-devtools": "^5.21.0",
- "@trpc/client": "11.0.0-next-beta.304",
- "@trpc/next": "11.0.0-next-beta.304",
- "@trpc/react-query": "^11.0.0-next-beta.304",
- "@trpc/server": "11.0.0-next-beta.304",
+ "@trpc/client": "11.0.0-next-beta.308",
+ "@trpc/next": "11.0.0-next-beta.308",
+ "@trpc/react-query": "11.0.0-next-beta.308",
+ "@trpc/server": "11.0.0-next-beta.308",
"better-sqlite3": "^9.4.3",
"class-variance-authority": "^0.7.0",
"clsx": "^2.1.0",
"drizzle-orm": "^0.29.4",
"install": "^0.13.0",
- "lucide-react": "^0.322.0",
+ "lucide-react": "^0.330.0",
"meilisearch": "^0.37.0",
"next": "14.1.1",
"next-auth": "^4.24.5",
"next-pwa": "^5.6.0",
"prettier": "^3.2.5",
- "react": "^18",
- "react-dom": "^18",
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0",
"react-hook-form": "^7.50.1",
"react-markdown": "^9.0.1",
"react-masonry-css": "^1.0.16",
@@ -60,15 +62,28 @@
"zustand": "^4.5.1"
},
"devDependencies": {
+ "@hoarder/eslint-config": "workspace:^0.2.0",
+ "@hoarder/prettier-config": "workspace:^0.1.0",
+ "@hoarder/tailwind-config": "workspace:^0.1.0",
+ "@hoarder/tsconfig": "workspace:^0.1.0",
"@tailwindcss/typography": "^0.5.10",
"@types/emoji-mart": "^3.0.14",
- "@types/react": "^18",
- "@types/react-dom": "^18",
- "autoprefixer": "^10.0.1",
- "postcss": "^8",
- "tailwindcss": "^3.3.0",
+ "@types/react": "^18.2.55",
+ "@types/react-dom": "^18.2.19",
+ "autoprefixer": "^10.4.17",
+ "postcss": "^8.4.35",
+ "tailwindcss": "^3.4.1",
"ts-node": "^10.9.2",
"vite-tsconfig-paths": "^4.3.1",
"vitest": "^1.3.1"
- }
+ },
+ "eslintConfig": {
+ "root": true,
+ "extends": [
+ "@hoarder/eslint-config/base",
+ "@hoarder/eslint-config/nextjs",
+ "@hoarder/eslint-config/react"
+ ]
+ },
+ "prettier": "@hoarder/prettier-config"
}
diff --git a/packages/web/postcss.config.js b/apps/web/postcss.config.cjs
index 12a703d9..12a703d9 100644
--- a/packages/web/postcss.config.js
+++ b/apps/web/postcss.config.cjs
diff --git a/packages/web/public/blur.avif b/apps/web/public/blur.avif
index cbc6cd37..cbc6cd37 100644
--- a/packages/web/public/blur.avif
+++ b/apps/web/public/blur.avif
Binary files differ
diff --git a/packages/web/public/icons/logo-128.png b/apps/web/public/icons/logo-128.png
index 71ead90c..71ead90c 100644
--- a/packages/web/public/icons/logo-128.png
+++ b/apps/web/public/icons/logo-128.png
Binary files differ
diff --git a/packages/web/public/icons/logo-16.png b/apps/web/public/icons/logo-16.png
index dd864d44..dd864d44 100644
--- a/packages/web/public/icons/logo-16.png
+++ b/apps/web/public/icons/logo-16.png
Binary files differ
diff --git a/packages/web/public/icons/logo-48.png b/apps/web/public/icons/logo-48.png
index 7ba1cd49..7ba1cd49 100644
--- a/packages/web/public/icons/logo-48.png
+++ b/apps/web/public/icons/logo-48.png
Binary files differ
diff --git a/packages/web/public/manifest.json b/apps/web/public/manifest.json
index b42343f6..b42343f6 100644
--- a/packages/web/public/manifest.json
+++ b/apps/web/public/manifest.json
diff --git a/packages/web/server/api/client.ts b/apps/web/server/api/client.ts
index 88ea7a0e..88ea7a0e 100644
--- a/packages/web/server/api/client.ts
+++ b/apps/web/server/api/client.ts
diff --git a/packages/web/server/auth.ts b/apps/web/server/auth.ts
index 950443b9..950443b9 100644
--- a/packages/web/server/auth.ts
+++ b/apps/web/server/auth.ts
diff --git a/packages/web/tailwind.config.ts b/apps/web/tailwind.config.ts
index 521ba51c..521ba51c 100644
--- a/packages/web/tailwind.config.ts
+++ b/apps/web/tailwind.config.ts
diff --git a/apps/web/tsconfig.json b/apps/web/tsconfig.json
new file mode 100644
index 00000000..db90cf17
--- /dev/null
+++ b/apps/web/tsconfig.json
@@ -0,0 +1,17 @@
+{
+ "$schema": "https://json.schemastore.org/tsconfig",
+ "extends": "@hoarder/tsconfig/base.json",
+ "compilerOptions": {
+ "baseUrl": ".",
+ "plugins": [
+ {
+ "name": "next"
+ }
+ ],
+ "paths": {
+ "@/*": ["./*"]
+ }
+ },
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
+ "exclude": ["node_modules"]
+}
diff --git a/packages/web/vitest.config.ts b/apps/web/vitest.config.ts
index c3d02f71..c3d02f71 100644
--- a/packages/web/vitest.config.ts
+++ b/apps/web/vitest.config.ts
diff --git a/packages/workers/crawler.ts b/apps/workers/crawlerWorker.ts
index 5db2da7b..5db2da7b 100644
--- a/packages/workers/crawler.ts
+++ b/apps/workers/crawlerWorker.ts
diff --git a/packages/workers/index.ts b/apps/workers/index.ts
index 295eeaef..5b6b62d5 100644
--- a/packages/workers/index.ts
+++ b/apps/workers/index.ts
@@ -1,7 +1,7 @@
import "dotenv/config";
-import { CrawlerWorker } from "./crawler";
-import { OpenAiWorker } from "./openai";
-import { SearchIndexingWorker } from "./search";
+import { CrawlerWorker } from "./crawlerWorker";
+import { OpenAiWorker } from "./openaiWorker";
+import { SearchIndexingWorker } from "./searchWorker";
async function main() {
const [crawler, openai, search] = [
diff --git a/packages/workers/openai.ts b/apps/workers/openaiWorker.ts
index 1ec22d32..1ec22d32 100644
--- a/packages/workers/openai.ts
+++ b/apps/workers/openaiWorker.ts
diff --git a/packages/workers/package.json b/apps/workers/package.json
index f2fc164c..8446a54d 100644
--- a/packages/workers/package.json
+++ b/apps/workers/package.json
@@ -3,6 +3,7 @@
"name": "@hoarder/workers",
"version": "0.1.0",
"private": true,
+ "type": "module",
"dependencies": {
"@hoarder/db": "workspace:*",
"@hoarder/shared": "workspace:*",
@@ -23,16 +24,19 @@
"metascraper-title": "^5.43.4",
"metascraper-twitter": "^5.43.4",
"metascraper-url": "^5.43.4",
- "openai": "^4.26.1",
+ "openai": "^4.29.0",
"puppeteer": "^22.0.0",
"puppeteer-extra": "^3.3.6",
"puppeteer-extra-plugin-adblocker": "^2.13.6",
"puppeteer-extra-plugin-stealth": "^2.11.2",
"tsx": "^4.7.1",
- "typescript": "^5",
+ "typescript": "^5.3.3",
"zod": "^3.22.4"
},
"devDependencies": {
+ "@hoarder/eslint-config": "workspace:^0.2.0",
+ "@hoarder/prettier-config": "workspace:^0.1.0",
+ "@hoarder/tsconfig": "workspace:^0.1.0",
"@types/dompurify": "^3.0.5",
"@types/jsdom": "^21.1.6",
"@types/metascraper": "^5.14.3"
@@ -41,5 +45,12 @@
"start": "tsx watch index.ts",
"start:prod": "tsx index.ts",
"typecheck": "tsc --noEmit"
- }
+ },
+ "eslintConfig": {
+ "root": true,
+ "extends": [
+ "@hoarder/eslint-config/base"
+ ]
+ },
+ "prettier": "@hoarder/prettier-config"
}
diff --git a/packages/workers/search.ts b/apps/workers/searchWorker.ts
index 618e7c89..618e7c89 100644
--- a/packages/workers/search.ts
+++ b/apps/workers/searchWorker.ts
diff --git a/apps/workers/tsconfig.json b/apps/workers/tsconfig.json
new file mode 100644
index 00000000..24b9a10d
--- /dev/null
+++ b/apps/workers/tsconfig.json
@@ -0,0 +1,10 @@
+{
+ "$schema": "https://json.schemastore.org/tsconfig",
+ "extends": "@hoarder/tsconfig/node.json",
+ "include": ["**/*.ts"],
+ "exclude": ["node_modules"],
+ "compilerOptions": {
+ "baseUrl": ".",
+ "tsBuildInfoFile": "node_modules/.cache/tsbuildinfo.json"
+ }
+}
diff --git a/package.json b/package.json
index 708e5ad4..74028b20 100644
--- a/package.json
+++ b/package.json
@@ -4,38 +4,36 @@
"version": "0.1.0",
"private": true,
"scripts": {
- "format": "prettier 'packages/**/*.{js,ts,tsx,mjs,cjs}' --write",
+ "build": "turbo build",
+ "dev": "turbo dev --parallel",
+ "clean": "git clean -xdf node_modules",
+ "clean:workspaces": "turbo clean",
"format:check": "prettier 'packages/**/*.{js,ts,tsx,mjs,cjs}' --check",
- "lint": "eslint . --ignore-path .gitignore",
"db:migrate": "pnpm --filter @hoarder/db run migrate",
"db:studio": "pnpm --filter @hoarder/db studio",
"workers": "pnpm --filter @hoarder/workers run start",
"web": "pnpm --filter @hoarder/web run dev",
- "prepare": "husky"
- },
- "dependencies": {
- "@next/eslint-plugin-next": "^14.1.0",
- "@typescript-eslint/eslint-plugin": "^6.21.0",
- "@typescript-eslint/parser": "^6.21.0",
- "bullmq": "^5.1.9",
- "class-variance-authority": "^0.7.0",
- "eslint-config-prettier": "^9.1.0",
- "eslint-plugin-react": "^7.33.2",
- "eslint-plugin-react-hooks": "^4.6.0",
- "typescript": "^5"
+ "prepare": "husky",
+ "format": "turbo format --continue -- --cache --cache-location node_modules/.cache/.prettiercache",
+ "format:fix": "turbo format --continue -- --write --cache --cache-location node_modules/.cache/.prettiercache",
+ "lint": "turbo lint --continue -- --cache --cache-location node_modules/.cache/.eslintcache",
+ "lint:fix": "turbo lint --continue -- --fix --cache --cache-location node_modules/.cache/.eslintcache",
+ "lint:ws": "pnpm dlx sherif@latest",
+ "postinstall": "pnpm lint:ws",
+ "typecheck": "turbo typecheck"
},
"devDependencies": {
+ "@hoarder/prettier-config": "workspace:^0.1.0",
"@tanstack/eslint-plugin-query": "^5.20.1",
"@types/node": "^20",
"es-errors": "^1.3.0",
- "eslint": "^8.56.0",
- "eslint-config-next": "14.1.0",
- "eslint-plugin-tailwindcss": "^3.14.2",
+ "eslint": "^8.57.0",
"husky": "^9.0.11",
"install": "^0.13.0",
"prettier": "3.2.5",
- "prettier-plugin-tailwindcss": "^0.5.11"
+ "turbo": "^1.12.4"
},
+ "prettier": "@hoarder/prettier-config",
"packageManager": "pnpm@8.15.4+sha256.cea6d0bdf2de3a0549582da3983c70c92ffc577ff4410cbf190817ddc35137c2",
"pnpm": {
"patchedDependencies": {
diff --git a/packages/db/package.json b/packages/db/package.json
index 20dee1e9..aebbf8fe 100644
--- a/packages/db/package.json
+++ b/packages/db/package.json
@@ -4,6 +4,7 @@
"version": "0.1.0",
"private": true,
"main": "index.ts",
+ "type": "module",
"scripts": {
"typecheck": "tsc --noEmit",
"migrate": "tsx migrate.ts",
@@ -18,8 +19,18 @@
"tsx": "^4.7.1"
},
"devDependencies": {
+ "@hoarder/eslint-config": "workspace:^0.2.0",
+ "@hoarder/prettier-config": "workspace:^0.1.0",
+ "@hoarder/tsconfig": "workspace:^0.1.0",
"@tsconfig/node21": "^21.0.1",
"@types/better-sqlite3": "^7.6.9",
"drizzle-kit": "^0.20.14"
- }
+ },
+ "eslintConfig": {
+ "root": true,
+ "extends": [
+ "@hoarder/eslint-config/base"
+ ]
+ },
+ "prettier": "@hoarder/prettier-config"
}
diff --git a/packages/db/tsconfig.json b/packages/db/tsconfig.json
index cf49c407..59982ea1 100644
--- a/packages/db/tsconfig.json
+++ b/packages/db/tsconfig.json
@@ -1,11 +1,10 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
- "extends": "@tsconfig/node21/tsconfig.json",
+ "extends": "@hoarder/tsconfig/node.json",
"include": ["**/*.ts"],
"exclude": ["node_modules"],
"compilerOptions": {
- "module": "ESNext",
- "moduleResolution": "node",
- "esModuleInterop": true
+ "baseUrl" : ".",
+ "tsBuildInfoFile": "node_modules/.cache/tsbuildinfo.json"
}
}
diff --git a/packages/mobile/metro.config.js b/packages/mobile/metro.config.js
deleted file mode 100644
index 6b2b0477..00000000
--- a/packages/mobile/metro.config.js
+++ /dev/null
@@ -1,8 +0,0 @@
-const { getDefaultConfig } = require("expo/metro-config");
-const { withNativeWind } = require("nativewind/metro");
-
-/** @type {import('expo/metro-config').MetroConfig} */
-// eslint-disable-next-line no-undef
-const config = getDefaultConfig(__dirname);
-
-module.exports = withNativeWind(config, { input: "./globals.css" });
diff --git a/packages/mobile/tsconfig.json b/packages/mobile/tsconfig.json
deleted file mode 100644
index 84d97cb0..00000000
--- a/packages/mobile/tsconfig.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "extends": "expo/tsconfig.base",
- "compilerOptions": {
- "strict": true,
- "baseUrl": ".",
- "paths": {
- "@/*": ["./*"]
- }
- }
-}
diff --git a/packages/shared/package.json b/packages/shared/package.json
index 0b3a8078..dca8925c 100644
--- a/packages/shared/package.json
+++ b/packages/shared/package.json
@@ -3,10 +3,23 @@
"name": "@hoarder/shared",
"version": "0.1.0",
"private": true,
+ "type": "module",
"dependencies": {
"meilisearch": "^0.37.0",
"winston": "^3.11.0",
"zod": "^3.22.4"
},
- "main": "index.ts"
+ "devDependencies": {
+ "@hoarder/eslint-config": "workspace:^0.2.0",
+ "@hoarder/prettier-config": "workspace:^0.1.0",
+ "@hoarder/tsconfig": "workspace:^0.1.0"
+ },
+ "main": "index.ts",
+ "eslintConfig": {
+ "root": true,
+ "extends": [
+ "@hoarder/eslint-config/base"
+ ]
+ },
+ "prettier": "@hoarder/prettier-config"
}
diff --git a/packages/shared/tsconfig.json b/packages/shared/tsconfig.json
new file mode 100644
index 00000000..71bf61e7
--- /dev/null
+++ b/packages/shared/tsconfig.json
@@ -0,0 +1,9 @@
+{
+ "$schema": "https://json.schemastore.org/tsconfig",
+ "extends": "@hoarder/tsconfig/node.json",
+ "include": ["**/*.ts"],
+ "exclude": ["node_modules"],
+ "compilerOptions": {
+ "tsBuildInfoFile": "node_modules/.cache/tsbuildinfo.json"
+ },
+}
diff --git a/packages/trpc/package.json b/packages/trpc/package.json
index ac4fb6fe..631f6ece 100644
--- a/packages/trpc/package.json
+++ b/packages/trpc/package.json
@@ -3,6 +3,7 @@
"name": "@hoarder/trpc",
"version": "0.1.0",
"private": true,
+ "type": "module",
"scripts": {
"typecheck": "tsc --noEmit",
"test": "vitest"
@@ -10,20 +11,28 @@
"dependencies": {
"@hoarder/db": "workspace:*",
"@hoarder/shared": "workspace:*",
- "@trpc/server": "11.0.0-next-beta.304",
+ "@trpc/server": "11.0.0-next-beta.308",
"bcryptjs": "^2.4.3",
"drizzle-orm": "^0.29.4",
"superjson": "^2.2.1",
"zod": "^3.22.4"
},
"devDependencies": {
+ "@hoarder/eslint-config": "workspace:^0.2.0",
+ "@hoarder/prettier-config": "workspace:^0.1.0",
+ "@hoarder/tsconfig": "workspace:^0.1.0",
"@types/bcryptjs": "^2.4.6",
"@tsconfig/node21": "^21.0.1",
"@types/bcrypt": "^5.0.2",
- "aws-sdk": "^2.1570.0",
- "mock-aws-s3": "^4.0.2",
"nock": "^13.5.4",
"vite-tsconfig-paths": "^4.3.1",
"vitest": "^1.3.1"
- }
-}
+ },
+ "eslintConfig": {
+ "root": true,
+ "extends": [
+ "@hoarder/eslint-config/base"
+ ]
+ },
+ "prettier": "@hoarder/prettier-config"
+} \ No newline at end of file
diff --git a/packages/trpc/tsconfig.json b/packages/trpc/tsconfig.json
index bf020b01..80329662 100644
--- a/packages/trpc/tsconfig.json
+++ b/packages/trpc/tsconfig.json
@@ -1,13 +1,10 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
- "extends": "@tsconfig/node21/tsconfig.json",
+ "extends": "@hoarder/tsconfig/node.json",
"include": ["**/*.ts"],
"exclude": ["node_modules"],
"compilerOptions": {
- "module": "ESNext",
- "moduleResolution": "node",
- "baseUrl": "./",
- "esModuleInterop": true
- }
+ "tsBuildInfoFile": "node_modules/.cache/tsbuildinfo.json"
+ },
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 3b80328c..4a6c1415 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -12,35 +12,10 @@ patchedDependencies:
importers:
.:
- dependencies:
- '@next/eslint-plugin-next':
- specifier: ^14.1.0
- version: 14.1.0
- '@typescript-eslint/eslint-plugin':
- specifier: ^6.21.0
- version: 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.3.3)
- '@typescript-eslint/parser':
- specifier: ^6.21.0
- version: 6.21.0(eslint@8.57.0)(typescript@5.3.3)
- bullmq:
- specifier: ^5.1.9
- version: 5.3.3
- class-variance-authority:
- specifier: ^0.7.0
- version: 0.7.0
- eslint-config-prettier:
- specifier: ^9.1.0
- version: 9.1.0(eslint@8.57.0)
- eslint-plugin-react:
- specifier: ^7.33.2
- version: 7.33.2(eslint@8.57.0)
- eslint-plugin-react-hooks:
- specifier: ^4.6.0
- version: 4.6.0(eslint@8.57.0)
- typescript:
- specifier: ^5
- version: 5.3.3
devDependencies:
+ '@hoarder/prettier-config':
+ specifier: workspace:^0.1.0
+ version: link:tooling/prettier
'@tanstack/eslint-plugin-query':
specifier: ^5.20.1
version: 5.20.1(eslint@8.57.0)(typescript@5.3.3)
@@ -51,14 +26,8 @@ importers:
specifier: ^1.3.0
version: 1.3.0
eslint:
- specifier: ^8.56.0
+ specifier: ^8.57.0
version: 8.57.0
- eslint-config-next:
- specifier: 14.1.0
- version: 14.1.0(eslint@8.57.0)(typescript@5.3.3)
- eslint-plugin-tailwindcss:
- specifier: ^3.14.2
- version: 3.14.3(tailwindcss@3.4.1)
husky:
specifier: ^9.0.11
version: 9.0.11
@@ -68,15 +37,15 @@ importers:
prettier:
specifier: 3.2.5
version: 3.2.5
- prettier-plugin-tailwindcss:
- specifier: ^0.5.11
- version: 0.5.11(prettier@3.2.5)
+ turbo:
+ specifier: ^1.12.4
+ version: 1.12.5
- packages/browser-extension:
+ apps/browser-extension:
dependencies:
'@hoarder/trpc':
specifier: 0.1.0
- version: link:../trpc
+ version: link:../../packages/trpc
'@tanstack/react-query':
specifier: ^5.24.8
version: 5.24.8(react@18.2.0)
@@ -92,9 +61,6 @@ importers:
'@trpc/server':
specifier: 11.0.0-next-beta.308
version: 11.0.0-next-beta.308
- '@types/chrome':
- specifier: ^0.0.260
- version: 0.0.260
lucide-react:
specifier: ^0.330.0
version: 0.330.0(react@18.2.0)
@@ -120,18 +86,27 @@ importers:
'@crxjs/vite-plugin':
specifier: ^1.0.14
version: 1.0.14(vite@5.1.4)
+ '@hoarder/eslint-config':
+ specifier: workspace:^0.2.0
+ version: link:../../tooling/eslint
+ '@hoarder/prettier-config':
+ specifier: workspace:^0.1.0
+ version: link:../../tooling/prettier
+ '@hoarder/tailwind-config':
+ specifier: workspace:^0.1.0
+ version: link:../../tooling/tailwind
+ '@hoarder/tsconfig':
+ specifier: workspace:^0.1.0
+ version: link:../../tooling/typescript
+ '@types/chrome':
+ specifier: ^0.0.260
+ version: 0.0.260
'@types/react':
specifier: ^18.2.55
version: 18.2.58
'@types/react-dom':
specifier: ^18.2.19
version: 18.2.19
- '@typescript-eslint/eslint-plugin':
- specifier: ^6.21.0
- version: 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.3.3)
- '@typescript-eslint/parser':
- specifier: ^6.21.0
- version: 6.21.0(eslint@8.57.0)(typescript@5.3.3)
'@vitejs/plugin-react-swc':
specifier: ^3.5.0
version: 3.6.0(vite@5.1.4)
@@ -139,7 +114,7 @@ importers:
specifier: ^10.4.17
version: 10.4.17(postcss@8.4.35)
eslint:
- specifier: ^8.56.0
+ specifier: ^8.57.0
version: 8.57.0
eslint-plugin-react-hooks:
specifier: ^4.6.0
@@ -154,48 +129,17 @@ importers:
specifier: ^3.4.1
version: 3.4.1(ts-node@10.9.2)
typescript:
- specifier: ^5.2.2
+ specifier: ^5.3.3
version: 5.3.3
vite:
specifier: ^5.1.0
version: 5.1.4(@types/node@20.11.20)
- packages/db:
- dependencies:
- '@auth/core':
- specifier: ^0.27.0
- version: 0.27.0
- '@paralleldrive/cuid2':
- specifier: ^2.2.2
- version: 2.2.2
- better-sqlite3:
- specifier: ^9.4.3
- version: 9.4.3
- dotenv:
- specifier: ^16.4.1
- version: 16.4.5
- drizzle-orm:
- specifier: ^0.29.4
- version: 0.29.4(@types/better-sqlite3@7.6.9)(better-sqlite3@9.4.3)
- tsx:
- specifier: ^4.7.1
- version: 4.7.1
- devDependencies:
- '@tsconfig/node21':
- specifier: ^21.0.1
- version: 21.0.1
- '@types/better-sqlite3':
- specifier: ^7.6.9
- version: 7.6.9
- drizzle-kit:
- specifier: ^0.20.14
- version: 0.20.14
-
- packages/mobile:
+ apps/mobile:
dependencies:
'@hoarder/trpc':
specifier: 0.1.0
- version: link:../trpc
+ version: link:../../packages/trpc
'@tanstack/react-query':
specifier: ^5.24.8
version: 5.24.8(react@18.2.0)
@@ -243,9 +187,9 @@ importers:
version: 0.354.0(react-native-svg@15.1.0)(react-native@0.73.4)(react@18.2.0)
nativewind:
specifier: ^4.0.1
- version: 4.0.36(@babel/core@7.23.9)(react-native-reanimated@3.8.0)(react-native-safe-area-context@4.8.2)(react-native-svg@15.1.0)(react-native@0.73.4)(react@18.2.0)(tailwindcss@3.3.2)
+ version: 4.0.36(@babel/core@7.23.9)(react-native-reanimated@3.8.0)(react-native-safe-area-context@4.8.2)(react-native-svg@15.1.0)(react-native@0.73.4)(react@18.2.0)(tailwindcss@3.4.1)
react:
- specifier: 18.2.0
+ specifier: ^18.2.0
version: 18.2.0
react-native:
specifier: 0.73.4
@@ -281,8 +225,20 @@ importers:
'@babel/core':
specifier: ^7.20.0
version: 7.23.9
+ '@hoarder/eslint-config':
+ specifier: workspace:^0.2.0
+ version: link:../../tooling/eslint
+ '@hoarder/prettier-config':
+ specifier: workspace:^0.1.0
+ version: link:../../tooling/prettier
+ '@hoarder/tailwind-config':
+ specifier: workspace:^0.1.0
+ version: link:../../tooling/tailwind
+ '@hoarder/tsconfig':
+ specifier: workspace:^0.1.0
+ version: link:../../tooling/typescript
'@types/react':
- specifier: ~18.2.45
+ specifier: ^18.2.55
version: 18.2.58
ajv:
specifier: latest
@@ -297,74 +253,13 @@ importers:
specifier: ^3.2.5
version: 3.2.5
tailwindcss:
- specifier: 3.3.2
- version: 3.3.2
+ specifier: ^3.4.1
+ version: 3.4.1(ts-node@10.9.2)
typescript:
- specifier: ^5.1.3
+ specifier: ^5.3.3
version: 5.3.3
- packages/shared:
- dependencies:
- meilisearch:
- specifier: ^0.37.0
- version: 0.37.0
- winston:
- specifier: ^3.11.0
- version: 3.11.0
- zod:
- specifier: ^3.22.4
- version: 3.22.4
-
- packages/trpc:
- dependencies:
- '@hoarder/db':
- specifier: workspace:*
- version: link:../db
- '@hoarder/shared':
- specifier: workspace:*
- version: link:../shared
- '@trpc/server':
- specifier: 11.0.0-next-beta.304
- version: 11.0.0-next-beta.304
- bcryptjs:
- specifier: ^2.4.3
- version: 2.4.3
- drizzle-orm:
- specifier: ^0.29.4
- version: 0.29.4(@types/react@18.2.58)(better-sqlite3@9.4.3)(react@18.2.0)
- superjson:
- specifier: ^2.2.1
- version: 2.2.1
- zod:
- specifier: ^3.22.4
- version: 3.22.4
- devDependencies:
- '@tsconfig/node21':
- specifier: ^21.0.1
- version: 21.0.1
- '@types/bcrypt':
- specifier: ^5.0.2
- version: 5.0.2
- '@types/bcryptjs':
- specifier: ^2.4.6
- version: 2.4.6
- aws-sdk:
- specifier: ^2.1570.0
- version: 2.1570.0
- mock-aws-s3:
- specifier: ^4.0.2
- version: 4.0.2
- nock:
- specifier: ^13.5.4
- version: 13.5.4
- vite-tsconfig-paths:
- specifier: ^4.3.1
- version: 4.3.1(typescript@5.3.3)
- vitest:
- specifier: ^1.3.1
- version: 1.3.1(@types/node@20.11.20)
-
- packages/web:
+ apps/web:
dependencies:
'@auth/drizzle-adapter':
specifier: ^0.8.0
@@ -376,20 +271,17 @@ importers:
specifier: ^1.1.1
version: 1.1.1(emoji-mart@5.5.2)(react@18.2.0)
'@hoarder/db':
- specifier: 0.1.0
- version: link:../db
+ specifier: workspace:^0.1.0
+ version: link:../../packages/db
'@hoarder/shared':
- specifier: 0.1.0
- version: link:../shared
+ specifier: workspace:^0.1.0
+ version: link:../../packages/shared
'@hoarder/trpc':
- specifier: 0.1.0
- version: link:../trpc
+ specifier: workspace:^0.1.0
+ version: link:../../packages/trpc
'@hookform/resolvers':
specifier: ^3.3.4
version: 3.3.4(react-hook-form@7.50.1)
- '@next/eslint-plugin-next':
- specifier: ^14.1.1
- version: 14.1.1
'@radix-ui/react-dialog':
specifier: ^1.0.5
version: 1.0.5(@types/react-dom@18.2.19)(@types/react@18.2.58)(react-dom@18.2.0)(react@18.2.0)
@@ -421,23 +313,23 @@ importers:
specifier: ^1.1.5
version: 1.1.5(@types/react-dom@18.2.19)(@types/react@18.2.58)(react-dom@18.2.0)(react@18.2.0)
'@tanstack/react-query':
- specifier: ^5.24.6
- version: 5.24.6(react@18.2.0)
+ specifier: ^5.24.8
+ version: 5.24.8(react@18.2.0)
'@tanstack/react-query-devtools':
specifier: ^5.21.0
- version: 5.24.1(@tanstack/react-query@5.24.6)(react@18.2.0)
+ version: 5.24.1(@tanstack/react-query@5.24.8)(react@18.2.0)
'@trpc/client':
- specifier: 11.0.0-next-beta.304
- version: 11.0.0-next-beta.304(@trpc/server@11.0.0-next-beta.304)
+ specifier: 11.0.0-next-beta.308
+ version: 11.0.0-next-beta.308(@trpc/server@11.0.0-next-beta.308)
'@trpc/next':
- specifier: 11.0.0-next-beta.304
- version: 11.0.0-next-beta.304(@tanstack/react-query@5.24.6)(@trpc/client@11.0.0-next-beta.304)(@trpc/react-query@11.0.0-next-beta.304)(@trpc/server@11.0.0-next-beta.304)(next@14.1.1)(react-dom@18.2.0)(react@18.2.0)
+ specifier: 11.0.0-next-beta.308
+ version: 11.0.0-next-beta.308(@tanstack/react-query@5.24.8)(@trpc/client@11.0.0-next-beta.308)(@trpc/react-query@11.0.0-next-beta.308)(@trpc/server@11.0.0-next-beta.308)(next@14.1.1)(react-dom@18.2.0)(react@18.2.0)
'@trpc/react-query':
- specifier: ^11.0.0-next-beta.304
- version: 11.0.0-next-beta.304(@tanstack/react-query@5.24.6)(@trpc/client@11.0.0-next-beta.304)(@trpc/server@11.0.0-next-beta.304)(react-dom@18.2.0)(react@18.2.0)
+ specifier: 11.0.0-next-beta.308
+ version: 11.0.0-next-beta.308(@tanstack/react-query@5.24.8)(@trpc/client@11.0.0-next-beta.308)(@trpc/server@11.0.0-next-beta.308)(react-dom@18.2.0)(react@18.2.0)
'@trpc/server':
- specifier: 11.0.0-next-beta.304
- version: 11.0.0-next-beta.304
+ specifier: 11.0.0-next-beta.308
+ version: 11.0.0-next-beta.308
better-sqlite3:
specifier: ^9.4.3
version: 9.4.3
@@ -454,28 +346,28 @@ importers:
specifier: ^0.13.0
version: 0.13.0
lucide-react:
- specifier: ^0.322.0
- version: 0.322.0(react@18.2.0)
+ specifier: ^0.330.0
+ version: 0.330.0(react@18.2.0)
meilisearch:
specifier: ^0.37.0
version: 0.37.0
next:
specifier: 14.1.1
- version: 14.1.1(@babel/core@7.23.9)(react-dom@18.2.0)(react@18.2.0)
+ version: 14.1.1(@babel/core@7.24.0)(react-dom@18.2.0)(react@18.2.0)
next-auth:
specifier: ^4.24.5
version: 4.24.6(next@14.1.1)(react-dom@18.2.0)(react@18.2.0)
next-pwa:
specifier: ^5.6.0
- version: 5.6.0(@babel/core@7.23.9)(next@14.1.1)(webpack@5.90.3)
+ version: 5.6.0(@babel/core@7.24.0)(next@14.1.1)(webpack@5.90.3)
prettier:
specifier: ^3.2.5
version: 3.2.5
react:
- specifier: ^18
+ specifier: ^18.2.0
version: 18.2.0
react-dom:
- specifier: ^18
+ specifier: ^18.2.0
version: 18.2.0(react@18.2.0)
react-hook-form:
specifier: ^7.50.1
@@ -505,6 +397,18 @@ importers:
specifier: ^4.5.1
version: 4.5.1(@types/react@18.2.58)(react@18.2.0)
devDependencies:
+ '@hoarder/eslint-config':
+ specifier: workspace:^0.2.0
+ version: link:../../tooling/eslint
+ '@hoarder/prettier-config':
+ specifier: workspace:^0.1.0
+ version: link:../../tooling/prettier
+ '@hoarder/tailwind-config':
+ specifier: workspace:^0.1.0
+ version: link:../../tooling/tailwind
+ '@hoarder/tsconfig':
+ specifier: workspace:^0.1.0
+ version: link:../../tooling/typescript
'@tailwindcss/typography':
specifier: ^0.5.10
version: 0.5.10(tailwindcss@3.4.1)
@@ -512,19 +416,19 @@ importers:
specifier: ^3.0.14
version: 3.0.14
'@types/react':
- specifier: ^18
+ specifier: ^18.2.55
version: 18.2.58
'@types/react-dom':
- specifier: ^18
+ specifier: ^18.2.19
version: 18.2.19
autoprefixer:
- specifier: ^10.0.1
+ specifier: ^10.4.17
version: 10.4.17(postcss@8.4.35)
postcss:
- specifier: ^8
+ specifier: ^8.4.35
version: 8.4.35
tailwindcss:
- specifier: ^3.3.0
+ specifier: ^3.4.1
version: 3.4.1(ts-node@10.9.2)
ts-node:
specifier: ^10.9.2
@@ -536,14 +440,14 @@ importers:
specifier: ^1.3.1
version: 1.3.1(@types/node@20.11.20)
- packages/workers:
+ apps/workers:
dependencies:
'@hoarder/db':
specifier: workspace:*
- version: link:../db
+ version: link:../../packages/db
'@hoarder/shared':
specifier: workspace:*
- version: link:../shared
+ version: link:../../packages/shared
'@mozilla/readability':
specifier: ^0.5.0
version: 0.5.0
@@ -596,8 +500,8 @@ importers:
specifier: ^5.43.4
version: 5.45.0
openai:
- specifier: ^4.26.1
- version: 4.28.0
+ specifier: ^4.29.0
+ version: 4.29.0
puppeteer:
specifier: ^22.0.0
version: 22.3.0(typescript@5.3.3)
@@ -614,12 +518,21 @@ importers:
specifier: ^4.7.1
version: 4.7.1
typescript:
- specifier: ^5
+ specifier: ^5.3.3
version: 5.3.3
zod:
specifier: ^3.22.4
version: 3.22.4
devDependencies:
+ '@hoarder/eslint-config':
+ specifier: workspace:^0.2.0
+ version: link:../../tooling/eslint
+ '@hoarder/prettier-config':
+ specifier: workspace:^0.1.0
+ version: link:../../tooling/prettier
+ '@hoarder/tsconfig':
+ specifier: workspace:^0.1.0
+ version: link:../../tooling/typescript
'@types/dompurify':
specifier: ^3.0.5
version: 3.0.5
@@ -630,6 +543,220 @@ importers:
specifier: ^5.14.3
version: 5.14.3
+ packages/db:
+ dependencies:
+ '@auth/core':
+ specifier: ^0.27.0
+ version: 0.27.0
+ '@paralleldrive/cuid2':
+ specifier: ^2.2.2
+ version: 2.2.2
+ better-sqlite3:
+ specifier: ^9.4.3
+ version: 9.4.3
+ dotenv:
+ specifier: ^16.4.1
+ version: 16.4.5
+ drizzle-orm:
+ specifier: ^0.29.4
+ version: 0.29.4(@types/better-sqlite3@7.6.9)(better-sqlite3@9.4.3)
+ tsx:
+ specifier: ^4.7.1
+ version: 4.7.1
+ devDependencies:
+ '@hoarder/eslint-config':
+ specifier: workspace:^0.2.0
+ version: link:../../tooling/eslint
+ '@hoarder/prettier-config':
+ specifier: workspace:^0.1.0
+ version: link:../../tooling/prettier
+ '@hoarder/tsconfig':
+ specifier: workspace:^0.1.0
+ version: link:../../tooling/typescript
+ '@tsconfig/node21':
+ specifier: ^21.0.1
+ version: 21.0.1
+ '@types/better-sqlite3':
+ specifier: ^7.6.9
+ version: 7.6.9
+ drizzle-kit:
+ specifier: ^0.20.14
+ version: 0.20.14
+
+ packages/shared:
+ dependencies:
+ meilisearch:
+ specifier: ^0.37.0
+ version: 0.37.0
+ winston:
+ specifier: ^3.11.0
+ version: 3.11.0
+ zod:
+ specifier: ^3.22.4
+ version: 3.22.4
+ devDependencies:
+ '@hoarder/eslint-config':
+ specifier: workspace:^0.2.0
+ version: link:../../tooling/eslint
+ '@hoarder/prettier-config':
+ specifier: workspace:^0.1.0
+ version: link:../../tooling/prettier
+ '@hoarder/tsconfig':
+ specifier: workspace:^0.1.0
+ version: link:../../tooling/typescript
+
+ packages/trpc:
+ dependencies:
+ '@hoarder/db':
+ specifier: workspace:*
+ version: link:../db
+ '@hoarder/shared':
+ specifier: workspace:*
+ version: link:../shared
+ '@trpc/server':
+ specifier: 11.0.0-next-beta.308
+ version: 11.0.0-next-beta.308
+ bcryptjs:
+ specifier: ^2.4.3
+ version: 2.4.3
+ drizzle-orm:
+ specifier: ^0.29.4
+ version: 0.29.4(@types/react@18.2.58)(better-sqlite3@9.4.3)(react@18.2.0)
+ superjson:
+ specifier: ^2.2.1
+ version: 2.2.1
+ zod:
+ specifier: ^3.22.4
+ version: 3.22.4
+ devDependencies:
+ '@hoarder/eslint-config':
+ specifier: workspace:^0.2.0
+ version: link:../../tooling/eslint
+ '@hoarder/prettier-config':
+ specifier: workspace:^0.1.0
+ version: link:../../tooling/prettier
+ '@hoarder/tsconfig':
+ specifier: workspace:^0.1.0
+ version: link:../../tooling/typescript
+ '@tsconfig/node21':
+ specifier: ^21.0.1
+ version: 21.0.1
+ '@types/bcrypt':
+ specifier: ^5.0.2
+ version: 5.0.2
+ '@types/bcryptjs':
+ specifier: ^2.4.6
+ version: 2.4.6
+ nock:
+ specifier: ^13.5.4
+ version: 13.5.4
+ vite-tsconfig-paths:
+ specifier: ^4.3.1
+ version: 4.3.1(typescript@5.3.3)
+ vitest:
+ specifier: ^1.3.1
+ version: 1.3.1(@types/node@20.11.20)
+
+ tooling/eslint:
+ dependencies:
+ '@next/eslint-plugin-next':
+ specifier: ^14.1.1
+ version: 14.1.1
+ '@typescript-eslint/eslint-plugin':
+ specifier: ^7.2.0
+ version: 7.2.0(@typescript-eslint/parser@7.2.0)(eslint@8.57.0)(typescript@5.3.3)
+ '@typescript-eslint/parser':
+ specifier: ^7.2.0
+ version: 7.2.0(eslint@8.57.0)(typescript@5.3.3)
+ eslint-config-turbo:
+ specifier: ^1.12.4
+ version: 1.12.5(eslint@8.57.0)
+ eslint-plugin-import:
+ specifier: ^2.29.1
+ version: 2.29.1(@typescript-eslint/parser@7.2.0)(eslint@8.57.0)
+ eslint-plugin-jsx-a11y:
+ specifier: ^6.8.0
+ version: 6.8.0(eslint@8.57.0)
+ eslint-plugin-react:
+ specifier: ^7.33.2
+ version: 7.33.2(eslint@8.57.0)
+ eslint-plugin-react-hooks:
+ specifier: ^4.6.0
+ version: 4.6.0(eslint@8.57.0)
+ devDependencies:
+ '@hoarder/prettier-config':
+ specifier: workspace:^0.1.0
+ version: link:../prettier
+ '@hoarder/tsconfig':
+ specifier: workspace:^0.1.0
+ version: link:../typescript
+ '@types/eslint':
+ specifier: ^8.56.5
+ version: 8.56.5
+ eslint:
+ specifier: ^8.57.0
+ version: 8.57.0
+ prettier:
+ specifier: ^3.2.5
+ version: 3.2.5
+ typescript:
+ specifier: ^5.3.3
+ version: 5.3.3
+
+ tooling/github: {}
+
+ tooling/prettier:
+ dependencies:
+ '@ianvs/prettier-plugin-sort-imports':
+ specifier: ^4.1.1
+ version: 4.2.0(prettier@3.2.5)
+ prettier:
+ specifier: ^3.2.5
+ version: 3.2.5
+ prettier-plugin-tailwindcss:
+ specifier: ^0.5.11
+ version: 0.5.11(@ianvs/prettier-plugin-sort-imports@4.2.0)(prettier@3.2.5)
+ devDependencies:
+ '@hoarder/tsconfig':
+ specifier: workspace:^0.1.0
+ version: link:../typescript
+ typescript:
+ specifier: ^5.3.3
+ version: 5.3.3
+
+ tooling/tailwind:
+ dependencies:
+ postcss:
+ specifier: ^8.4.35
+ version: 8.4.35
+ tailwindcss:
+ specifier: ^3.4.1
+ version: 3.4.1(ts-node@10.9.2)
+ tailwindcss-animate:
+ specifier: ^1.0.7
+ version: 1.0.7(tailwindcss@3.4.1)
+ devDependencies:
+ '@hoarder/eslint-config':
+ specifier: workspace:^0.2.0
+ version: link:../eslint
+ '@hoarder/prettier-config':
+ specifier: workspace:^0.1.0
+ version: link:../prettier
+ '@hoarder/tsconfig':
+ specifier: workspace:^0.1.0
+ version: link:../typescript
+ eslint:
+ specifier: ^8.57.0
+ version: 8.57.0
+ prettier:
+ specifier: ^3.2.5
+ version: 3.2.5
+ typescript:
+ specifier: ^5.3.3
+ version: 5.3.3
+
+ tooling/typescript: {}
+
packages:
/@aashutoshrathi/word-wrap@1.2.6:
@@ -757,12 +884,34 @@ packages:
transitivePeerDependencies:
- supports-color
+ /@babel/core@7.24.0:
+ resolution: {integrity: sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@ampproject/remapping': 2.2.1
+ '@babel/code-frame': 7.23.5
+ '@babel/generator': 7.23.6
+ '@babel/helper-compilation-targets': 7.23.6
+ '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0)
+ '@babel/helpers': 7.24.0
+ '@babel/parser': 7.24.0
+ '@babel/template': 7.24.0
+ '@babel/traverse': 7.24.0
+ '@babel/types': 7.24.0
+ convert-source-map: 2.0.0
+ debug: 4.3.4
+ gensync: 1.0.0-beta.2
+ json5: 2.2.3
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
/@babel/generator@7.23.6:
resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==}
engines: {node: '>=6.9.0'}
requiresBuild: true
dependencies:
- '@babel/types': 7.23.9
+ '@babel/types': 7.24.0
'@jridgewell/gen-mapping': 0.3.4
'@jridgewell/trace-mapping': 0.3.23
jsesc: 2.5.2
@@ -885,6 +1034,20 @@ packages:
'@babel/helper-split-export-declaration': 7.22.6
'@babel/helper-validator-identifier': 7.22.20
+ /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.0):
+ resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==}
+ engines: {node: '>=6.9.0'}
+ requiresBuild: true
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.24.0
+ '@babel/helper-environment-visitor': 7.22.20
+ '@babel/helper-module-imports': 7.22.15
+ '@babel/helper-simple-access': 7.22.5
+ '@babel/helper-split-export-declaration': 7.22.6
+ '@babel/helper-validator-identifier': 7.22.20
+
/@babel/helper-optimise-call-expression@7.22.5:
resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
engines: {node: '>=6.9.0'}
@@ -939,7 +1102,7 @@ packages:
engines: {node: '>=6.9.0'}
requiresBuild: true
dependencies:
- '@babel/types': 7.23.9
+ '@babel/types': 7.24.0
/@babel/helper-string-parser@7.23.4:
resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==}
@@ -975,6 +1138,16 @@ packages:
transitivePeerDependencies:
- supports-color
+ /@babel/helpers@7.24.0:
+ resolution: {integrity: sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/template': 7.24.0
+ '@babel/traverse': 7.24.0
+ '@babel/types': 7.24.0
+ transitivePeerDependencies:
+ - supports-color
+
/@babel/highlight@7.23.4:
resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==}
engines: {node: '>=6.9.0'}
@@ -991,6 +1164,13 @@ packages:
dependencies:
'@babel/types': 7.23.9
+ /@babel/parser@7.24.0:
+ resolution: {integrity: sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+ dependencies:
+ '@babel/types': 7.24.0
+
/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==}
engines: {node: '>=6.9.0'}
@@ -1822,6 +2002,19 @@ packages:
dependencies:
'@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.24.0
+ dev: false
+
+ /@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.24.0):
+ resolution: {integrity: sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==}
+ engines: {node: '>=6.9.0'}
+ requiresBuild: true
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.24.0
+ '@babel/helper-plugin-utils': 7.24.0
+ dev: true
+ optional: true
/@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==}
@@ -1832,6 +2025,19 @@ packages:
dependencies:
'@babel/core': 7.23.9
'@babel/helper-plugin-utils': 7.24.0
+ dev: false
+
+ /@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.24.0):
+ resolution: {integrity: sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==}
+ engines: {node: '>=6.9.0'}
+ requiresBuild: true
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.24.0
+ '@babel/helper-plugin-utils': 7.24.0
+ dev: true
+ optional: true
/@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.23.9):
resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==}
@@ -2169,6 +2375,7 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
regenerator-runtime: 0.14.1
+ dev: false
/@babel/template@7.23.9:
resolution: {integrity: sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==}
@@ -2179,6 +2386,14 @@ packages:
'@babel/parser': 7.23.9
'@babel/types': 7.23.9
+ /@babel/template@7.24.0:
+ resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/code-frame': 7.23.5
+ '@babel/parser': 7.24.0
+ '@babel/types': 7.24.0
+
/@babel/traverse@7.23.9:
resolution: {integrity: sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==}
engines: {node: '>=6.9.0'}
@@ -2197,6 +2412,23 @@ packages:
transitivePeerDependencies:
- supports-color
+ /@babel/traverse@7.24.0:
+ resolution: {integrity: sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/code-frame': 7.23.5
+ '@babel/generator': 7.23.6
+ '@babel/helper-environment-visitor': 7.22.20
+ '@babel/helper-function-name': 7.23.0
+ '@babel/helper-hoist-variables': 7.22.5
+ '@babel/helper-split-export-declaration': 7.22.6
+ '@babel/parser': 7.24.0
+ '@babel/types': 7.24.0
+ debug: 4.3.4
+ globals: 11.12.0
+ transitivePeerDependencies:
+ - supports-color
+
/@babel/types@7.23.9:
resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==}
engines: {node: '>=6.9.0'}
@@ -2206,6 +2438,14 @@ packages:
'@babel/helper-validator-identifier': 7.22.20
to-fast-properties: 2.0.0
+ /@babel/types@7.24.0:
+ resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-string-parser': 7.23.4
+ '@babel/helper-validator-identifier': 7.22.20
+ to-fast-properties: 2.0.0
+
/@cliqz/adblocker-content@1.26.16:
resolution: {integrity: sha512-N1pKg1gxfpnz47w2Sjs2sg3fxFZb113ClUhitgAFSVXeIhZ+S+bCaQtvwtP0mJT+SDfUx2NsPiLwZoPjVRI3wQ==}
dependencies:
@@ -3036,7 +3276,7 @@ packages:
resolution: {integrity: sha512-bOhuFnlRaS7CU33+rFFIWdcET/Vkyn1vsN8BYFwCDEF5P1fVVvYN7bFOsQLTMD3nvi35C1AGmtqUr/Wfv8Xaow==}
engines: {node: '>=12'}
dependencies:
- '@expo/spawn-async': 1.5.0
+ '@expo/spawn-async': 1.7.2
exec-async: 2.2.0
dev: false
@@ -3044,7 +3284,7 @@ packages:
resolution: {integrity: sha512-LKdo/6y4W7llZ6ghsg1kdx2CeH/qR/c6QI/JI8oPUvppsZoeIYjSkdflce978fAMfR8IXoi0wt0jA2w0kWpwbg==}
dependencies:
'@expo/json-file': 8.3.0
- '@expo/spawn-async': 1.5.0
+ '@expo/spawn-async': 1.7.2
ansi-regex: 5.0.1
chalk: 4.1.2
find-up: 5.0.0
@@ -3227,6 +3467,26 @@ packages:
/@humanwhocodes/object-schema@2.0.2:
resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==}
+ /@ianvs/prettier-plugin-sort-imports@4.2.0(prettier@3.2.5):
+ resolution: {integrity: sha512-WemEN61+hI4sQs+Ndp7TJAG5pMl7pY+tVAw+kt+Lj8vbgxRZaFQ8bU9nhjH2C45G9AABqFOQnY6j9drFGMmkyA==}
+ peerDependencies:
+ '@vue/compiler-sfc': 2.7.x || 3.x
+ prettier: 2 || 3
+ peerDependenciesMeta:
+ '@vue/compiler-sfc':
+ optional: true
+ dependencies:
+ '@babel/core': 7.24.0
+ '@babel/generator': 7.23.6
+ '@babel/parser': 7.24.0
+ '@babel/traverse': 7.24.0
+ '@babel/types': 7.24.0
+ prettier: 3.2.5
+ semver: 7.6.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
/@ioredis/commands@1.2.0:
resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==}
dev: false
@@ -3449,11 +3709,6 @@ packages:
resolution: {integrity: sha512-7CnQyD5G8shHxQIIg3c7/pSeYFeMhsNbpU/bmvH7ZnDql7mNRgg8O2JZrhrc/soFnfBnKP4/xXNiiSIPn2w8gA==}
dev: false
- /@next/eslint-plugin-next@14.1.0:
- resolution: {integrity: sha512-x4FavbNEeXx/baD/zC/SdrvkjSby8nBn8KcCREqk6UuwvwoAPZmaV8TFCAuo/cpovBRTIY67mHhe86MQQm/68Q==}
- dependencies:
- glob: 10.3.10
-
/@next/eslint-plugin-next@14.1.1:
resolution: {integrity: sha512-NP1WoGFnFLpqqCWgGFjnn/sTwUExdPyjeFKRdQP1X/bL/tjAQ/TXDmYqw6vzGaP5NaZ2u6xzg+N/0nd7fOPOGQ==}
dependencies:
@@ -5131,10 +5386,6 @@ packages:
dev: true
optional: true
- /@rushstack/eslint-patch@1.7.2:
- resolution: {integrity: sha512-RbhOOTCNoCrbfkRyoXODZp75MlpiHMgbE5MEBZAnnnLyQNgrigEj4p0lzsMDyc1zVsJDLrivB58tgg3emX0eEA==}
- dev: true
-
/@segment/loosely-validate-event@2.0.0:
resolution: {integrity: sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw==}
dependencies:
@@ -5345,10 +5596,6 @@ packages:
- typescript
dev: true
- /@tanstack/query-core@5.24.6:
- resolution: {integrity: sha512-xYhxiMUPh1JzamVK8VwwkBpIBXVYRyIBW9gjSN+/BB4kL1nS86gnRWeW8L+sacCj1RiyEsysJe3GSvtbIpHdWw==}
- dev: false
-
/@tanstack/query-core@5.24.8:
resolution: {integrity: sha512-yH7KnfXMf10p1U5GffTQzFi2Miiw6WJZImGYGdV7eqa5ZbKO8qVx9lOA9SfhIaJXomrMp1Yz5w/CBhVM3yWeTA==}
dev: false
@@ -5357,23 +5604,14 @@ packages:
resolution: {integrity: sha512-pThim455t69zrZaQKa7IRkEIK8UBTS+gHVAdNfhO72Xh4rWpMc63ovRje5/n6iw63+d6QiJzVadsJVdPoodSeQ==}
dev: false
- /@tanstack/react-query-devtools@5.24.1(@tanstack/react-query@5.24.6)(react@18.2.0):
+ /@tanstack/react-query-devtools@5.24.1(@tanstack/react-query@5.24.8)(react@18.2.0):
resolution: {integrity: sha512-qa4SEugN+EF8JJXcpsM9Lu05HfUv5cvHvLuB0uw/81eJZyNHFdtHFBi5RLCgpBrOyVMDfH8UQ3VBMqXzFKV68A==}
peerDependencies:
'@tanstack/react-query': ^5.24.1
react: ^18.0.0
dependencies:
'@tanstack/query-devtools': 5.24.0
- '@tanstack/react-query': 5.24.6(react@18.2.0)
- react: 18.2.0
- dev: false
-
- /@tanstack/react-query@5.24.6(react@18.2.0):
- resolution: {integrity: sha512-eyIWwHiO1ZirYGzqs0kfRMkf8icuXroFunjnsgntk9YgGFbGoPs3Hxy9/OushNvpnkHT9RwPZb8UfEKzMzzEaQ==}
- peerDependencies:
- react: ^18.0.0
- dependencies:
- '@tanstack/query-core': 5.24.6
+ '@tanstack/react-query': 5.24.8(react@18.2.0)
react: 18.2.0
dev: false
@@ -5390,14 +5628,6 @@ packages:
resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==}
dev: false
- /@trpc/client@11.0.0-next-beta.304(@trpc/server@11.0.0-next-beta.304):
- resolution: {integrity: sha512-NOTaKb9F3KWMruxdrU9TBIY45rGnnn4ImqmMoxW1CJO4SGL8XRqL/5xC8XcNTc3cXXv6eFOt8rNwQM9hCN2G2A==}
- peerDependencies:
- '@trpc/server': 11.0.0-next-beta.304+1724978f1
- dependencies:
- '@trpc/server': 11.0.0-next-beta.304
- dev: false
-
/@trpc/client@11.0.0-next-beta.308(@trpc/server@11.0.0-next-beta.308):
resolution: {integrity: sha512-bg8EV6qVZZl6/v9HhfmntEbPcjtzi3MFhdHUv9l24HLkLAJPvBCMMsjjFZG6PX+jwyXTFjSBGzaXwpnNtdE1tQ==}
peerDependencies:
@@ -5406,31 +5636,6 @@ packages:
'@trpc/server': 11.0.0-next-beta.308
dev: false
- /@trpc/next@11.0.0-next-beta.304(@tanstack/react-query@5.24.6)(@trpc/client@11.0.0-next-beta.304)(@trpc/react-query@11.0.0-next-beta.304)(@trpc/server@11.0.0-next-beta.304)(next@14.1.1)(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-bCCnkzqEpl6Z3R11fzPHxNxdgvoCZ2yDWxQZQlFPANSJVihjzLCMCK60AjXawDXdVUEqbA/OXP6htZeozjmWZg==}
- peerDependencies:
- '@tanstack/react-query': ^5.0.0
- '@trpc/client': 11.0.0-next-beta.304+1724978f1
- '@trpc/react-query': 11.0.0-next-beta.304+1724978f1
- '@trpc/server': 11.0.0-next-beta.304+1724978f1
- next: '*'
- react: '>=16.8.0'
- react-dom: '>=16.8.0'
- peerDependenciesMeta:
- '@tanstack/react-query':
- optional: true
- '@trpc/react-query':
- optional: true
- dependencies:
- '@tanstack/react-query': 5.24.6(react@18.2.0)
- '@trpc/client': 11.0.0-next-beta.304(@trpc/server@11.0.0-next-beta.304)
- '@trpc/react-query': 11.0.0-next-beta.304(@tanstack/react-query@5.24.6)(@trpc/client@11.0.0-next-beta.304)(@trpc/server@11.0.0-next-beta.304)(react-dom@18.2.0)(react@18.2.0)
- '@trpc/server': 11.0.0-next-beta.304
- next: 14.1.1(@babel/core@7.23.9)(react-dom@18.2.0)(react@18.2.0)
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- dev: false
-
/@trpc/next@11.0.0-next-beta.308(@tanstack/react-query@5.24.8)(@trpc/client@11.0.0-next-beta.308)(@trpc/react-query@11.0.0-next-beta.308)(@trpc/server@11.0.0-next-beta.308)(next@14.1.1)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-zur2BkpI4NzKlg5P0RxGwk9yzYMuaKlXrS4vgwEsnr8CrVTqgClnStLsQOD14gwWRilp5QaJcFiPE2607OzQAg==}
peerDependencies:
@@ -5451,23 +5656,7 @@ packages:
'@trpc/client': 11.0.0-next-beta.308(@trpc/server@11.0.0-next-beta.308)
'@trpc/react-query': 11.0.0-next-beta.308(@tanstack/react-query@5.24.8)(@trpc/client@11.0.0-next-beta.308)(@trpc/server@11.0.0-next-beta.308)(react-dom@18.2.0)(react@18.2.0)
'@trpc/server': 11.0.0-next-beta.308
- next: 14.1.1(@babel/core@7.23.9)(react-dom@18.2.0)(react@18.2.0)
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- dev: false
-
- /@trpc/react-query@11.0.0-next-beta.304(@tanstack/react-query@5.24.6)(@trpc/client@11.0.0-next-beta.304)(@trpc/server@11.0.0-next-beta.304)(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-DkfNUVxxEgKtel5Z9DUaw815oy8VGK7i626FrUs7PRQ7PEcQ5WDBXbYXsukOqx+qEpx09dgiWBBG6LGQf6U9Dg==}
- peerDependencies:
- '@tanstack/react-query': ^5.0.0
- '@trpc/client': 11.0.0-next-beta.304+1724978f1
- '@trpc/server': 11.0.0-next-beta.304+1724978f1
- react: '>=18.2.0'
- react-dom: '>=18.2.0'
- dependencies:
- '@tanstack/react-query': 5.24.6(react@18.2.0)
- '@trpc/client': 11.0.0-next-beta.304(@trpc/server@11.0.0-next-beta.304)
- '@trpc/server': 11.0.0-next-beta.304
+ next: 14.1.1(@babel/core@7.24.0)(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
dev: false
@@ -5488,10 +5677,6 @@ packages:
react-dom: 18.2.0(react@18.2.0)
dev: false
- /@trpc/server@11.0.0-next-beta.304:
- resolution: {integrity: sha512-vviyE80LZ8LFML/w0usDjcUbduhsBtLBO+MKXhAtRfo25FxajhDFWvuvdqglAlTxFmCuH7oX+GxfCTjcsnnHyQ==}
- dev: false
-
/@trpc/server@11.0.0-next-beta.308:
resolution: {integrity: sha512-GdYgcbecAafHQszqMVeHrX45c0hhAISvB+w9Ja40nZcb4kgaNvhflSVIn8XbHKUG8urmYI9kTL2k8hD/59/LMA==}
dev: false
@@ -5515,8 +5700,8 @@ packages:
resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
requiresBuild: true
dependencies:
- '@babel/parser': 7.23.9
- '@babel/types': 7.23.9
+ '@babel/parser': 7.24.0
+ '@babel/types': 7.24.0
'@types/babel__generator': 7.6.8
'@types/babel__template': 7.4.4
'@types/babel__traverse': 7.20.5
@@ -5527,7 +5712,7 @@ packages:
resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==}
requiresBuild: true
dependencies:
- '@babel/types': 7.23.9
+ '@babel/types': 7.24.0
dev: true
optional: true
@@ -5535,8 +5720,8 @@ packages:
resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
requiresBuild: true
dependencies:
- '@babel/parser': 7.23.9
- '@babel/types': 7.23.9
+ '@babel/parser': 7.24.0
+ '@babel/types': 7.24.0
dev: true
optional: true
@@ -5544,7 +5729,7 @@ packages:
resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==}
requiresBuild: true
dependencies:
- '@babel/types': 7.23.9
+ '@babel/types': 7.24.0
dev: true
optional: true
@@ -5577,7 +5762,6 @@ packages:
dependencies:
'@types/filesystem': 0.0.35
'@types/har-format': 1.2.15
- dev: false
/@types/cookie@0.4.1:
resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==}
@@ -5617,7 +5801,6 @@ packages:
dependencies:
'@types/estree': 1.0.5
'@types/json-schema': 7.0.15
- dev: false
/@types/estree-jsx@1.0.5:
resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==}
@@ -5636,11 +5819,9 @@ packages:
resolution: {integrity: sha512-1eKvCaIBdrD2mmMgy5dwh564rVvfEhZTWVQQGRNn0Nt4ZEnJ0C8oSUCzvMKRA4lGde5oEVo+q2MrTTbV/GHDCQ==}
dependencies:
'@types/filewriter': 0.0.33
- dev: false
/@types/filewriter@0.0.33:
resolution: {integrity: sha512-xFU8ZXTw4gd358lb2jw25nxY9QAgqn2+bKKjKOYfNCzN4DKCFetK7sPtrlpg66Ywe3vWY9FNxprZawAh9wfJ3g==}
- dev: false
/@types/firefox-webext-browser@120.0.1:
resolution: {integrity: sha512-IR+NpPC+/o9TSTelcvT/w3fXTanX3LrpVxC5EQrlQyTjyWOKFz8O2mCJQ9VuejBz4NtovCGGKacXQ/VyY63L0A==}
@@ -5655,7 +5836,6 @@ packages:
/@types/har-format@1.2.15:
resolution: {integrity: sha512-RpQH4rXLuvTXKR0zqHq3go0RVXYv/YVqv4TnPH95VbwUxZdQlK1EtcMvQvMpDngHbt13Csh9Z4qT9AbkiQH5BA==}
- dev: false
/@types/hast@3.0.4:
resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
@@ -5696,7 +5876,6 @@ packages:
/@types/json5@0.0.29:
resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
- dev: true
/@types/keyv@3.1.4:
resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==}
@@ -5847,6 +6026,36 @@ packages:
typescript: 5.3.3
transitivePeerDependencies:
- supports-color
+ dev: true
+
+ /@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0)(eslint@8.57.0)(typescript@5.3.3):
+ resolution: {integrity: sha512-mdekAHOqS9UjlmyF/LSs6AIEvfceV749GFxoBAjwAv0nkevfKHWQFDMcBZWUiIC5ft6ePWivXoS36aKQ0Cy3sw==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ peerDependencies:
+ '@typescript-eslint/parser': ^7.0.0
+ eslint: ^8.56.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@eslint-community/regexpp': 4.10.0
+ '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.3.3)
+ '@typescript-eslint/scope-manager': 7.2.0
+ '@typescript-eslint/type-utils': 7.2.0(eslint@8.57.0)(typescript@5.3.3)
+ '@typescript-eslint/utils': 7.2.0(eslint@8.57.0)(typescript@5.3.3)
+ '@typescript-eslint/visitor-keys': 7.2.0
+ debug: 4.3.4
+ eslint: 8.57.0
+ graphemer: 1.4.0
+ ignore: 5.3.1
+ natural-compare: 1.4.0
+ semver: 7.6.0
+ ts-api-utils: 1.2.1(typescript@5.3.3)
+ typescript: 5.3.3
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
/@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3):
resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==}
@@ -5867,6 +6076,28 @@ packages:
typescript: 5.3.3
transitivePeerDependencies:
- supports-color
+ dev: true
+
+ /@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.3.3):
+ resolution: {integrity: sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ peerDependencies:
+ eslint: ^8.56.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/scope-manager': 7.2.0
+ '@typescript-eslint/types': 7.2.0
+ '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.3.3)
+ '@typescript-eslint/visitor-keys': 7.2.0
+ debug: 4.3.4
+ eslint: 8.57.0
+ typescript: 5.3.3
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
/@typescript-eslint/scope-manager@6.21.0:
resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==}
@@ -5874,6 +6105,15 @@ packages:
dependencies:
'@typescript-eslint/types': 6.21.0
'@typescript-eslint/visitor-keys': 6.21.0
+ dev: true
+
+ /@typescript-eslint/scope-manager@7.2.0:
+ resolution: {integrity: sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ dependencies:
+ '@typescript-eslint/types': 7.2.0
+ '@typescript-eslint/visitor-keys': 7.2.0
+ dev: false
/@typescript-eslint/type-utils@6.21.0(eslint@8.57.0)(typescript@5.3.3):
resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==}
@@ -5893,10 +6133,37 @@ packages:
typescript: 5.3.3
transitivePeerDependencies:
- supports-color
+ dev: true
+
+ /@typescript-eslint/type-utils@7.2.0(eslint@8.57.0)(typescript@5.3.3):
+ resolution: {integrity: sha512-xHi51adBHo9O9330J8GQYQwrKBqbIPJGZZVQTHHmy200hvkLZFWJIFtAG/7IYTWUyun6DE6w5InDReePJYJlJA==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ peerDependencies:
+ eslint: ^8.56.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.3.3)
+ '@typescript-eslint/utils': 7.2.0(eslint@8.57.0)(typescript@5.3.3)
+ debug: 4.3.4
+ eslint: 8.57.0
+ ts-api-utils: 1.2.1(typescript@5.3.3)
+ typescript: 5.3.3
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
/@typescript-eslint/types@6.21.0:
resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==}
engines: {node: ^16.0.0 || >=18.0.0}
+ dev: true
+
+ /@typescript-eslint/types@7.2.0:
+ resolution: {integrity: sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ dev: false
/@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3):
resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==}
@@ -5918,6 +6185,29 @@ packages:
typescript: 5.3.3
transitivePeerDependencies:
- supports-color
+ dev: true
+
+ /@typescript-eslint/typescript-estree@7.2.0(typescript@5.3.3):
+ resolution: {integrity: sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/types': 7.2.0
+ '@typescript-eslint/visitor-keys': 7.2.0
+ debug: 4.3.4
+ globby: 11.1.0
+ is-glob: 4.0.3
+ minimatch: 9.0.3
+ semver: 7.6.0
+ ts-api-utils: 1.2.1(typescript@5.3.3)
+ typescript: 5.3.3
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
/@typescript-eslint/utils@6.21.0(eslint@8.57.0)(typescript@5.3.3):
resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==}
@@ -5936,6 +6226,26 @@ packages:
transitivePeerDependencies:
- supports-color
- typescript
+ dev: true
+
+ /@typescript-eslint/utils@7.2.0(eslint@8.57.0)(typescript@5.3.3):
+ resolution: {integrity: sha512-YfHpnMAGb1Eekpm3XRK8hcMwGLGsnT6L+7b2XyRv6ouDuJU1tZir1GS2i0+VXRatMwSI1/UfcyPe53ADkU+IuA==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ peerDependencies:
+ eslint: ^8.56.0
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
+ '@types/json-schema': 7.0.15
+ '@types/semver': 7.5.8
+ '@typescript-eslint/scope-manager': 7.2.0
+ '@typescript-eslint/types': 7.2.0
+ '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.3.3)
+ eslint: 8.57.0
+ semver: 7.6.0
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+ dev: false
/@typescript-eslint/visitor-keys@6.21.0:
resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==}
@@ -5943,6 +6253,15 @@ packages:
dependencies:
'@typescript-eslint/types': 6.21.0
eslint-visitor-keys: 3.4.3
+ dev: true
+
+ /@typescript-eslint/visitor-keys@7.2.0:
+ resolution: {integrity: sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ dependencies:
+ '@typescript-eslint/types': 7.2.0
+ eslint-visitor-keys: 3.4.3
+ dev: false
/@ungap/structured-clone@1.2.0:
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
@@ -5985,9 +6304,9 @@ packages:
peerDependencies:
vite: ^4.2.0 || ^5.0.0
dependencies:
- '@babel/core': 7.23.9
- '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.23.9)
- '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.9)
+ '@babel/core': 7.24.0
+ '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.24.0)
+ '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.24.0)
'@types/babel__core': 7.20.5
react-refresh: 0.14.0
vite: 5.1.4(@types/node@20.11.20)
@@ -6399,7 +6718,7 @@ packages:
resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
dependencies:
dequal: 2.0.3
- dev: true
+ dev: false
/arr-union@3.1.0:
resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==}
@@ -6448,7 +6767,6 @@ packages:
es-abstract: 1.22.4
es-array-method-boxes-properly: 1.0.0
is-string: 1.0.7
- dev: true
/array.prototype.findlastindex@1.2.4:
resolution: {integrity: sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==}
@@ -6459,7 +6777,6 @@ packages:
es-abstract: 1.22.4
es-errors: 1.3.0
es-shim-unscopables: 1.0.2
- dev: true
/array.prototype.flat@1.3.2:
resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==}
@@ -6511,7 +6828,7 @@ packages:
/ast-types-flow@0.0.8:
resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==}
- dev: true
+ dev: false
/ast-types@0.13.4:
resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==}
@@ -6587,32 +6904,16 @@ packages:
dependencies:
possible-typed-array-names: 1.0.0
- /aws-sdk@2.1570.0:
- resolution: {integrity: sha512-WySdibC3YOPCFcXNSevX7cGp6Nc0Ksv7m6aaz6YoqSrmSn7mZhkWaVXqfd14nsjJuyEbEgX+gAiZaahyvkUYJw==}
- engines: {node: '>= 10.0.0'}
- dependencies:
- buffer: 4.9.2
- events: 1.1.1
- ieee754: 1.1.13
- jmespath: 0.16.0
- querystring: 0.2.0
- sax: 1.2.1
- url: 0.10.3
- util: 0.12.5
- uuid: 8.0.0
- xml2js: 0.6.2
- dev: true
-
/axe-core@4.7.0:
resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==}
engines: {node: '>=4'}
- dev: true
+ dev: false
/axobject-query@3.2.1:
resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==}
dependencies:
dequal: 2.0.3
- dev: true
+ dev: false
/b4a@1.6.6:
resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==}
@@ -6626,14 +6927,14 @@ packages:
'@babel/core': 7.23.9
dev: false
- /babel-loader@8.3.0(@babel/core@7.23.9)(webpack@5.90.3):
+ /babel-loader@8.3.0(@babel/core@7.24.0)(webpack@5.90.3):
resolution: {integrity: sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==}
engines: {node: '>= 8.9'}
peerDependencies:
'@babel/core': ^7.0.0
webpack: '>=2'
dependencies:
- '@babel/core': 7.23.9
+ '@babel/core': 7.24.0
find-cache-dir: 3.3.2
loader-utils: 2.0.4
make-dir: 3.1.0
@@ -6805,6 +7106,7 @@ packages:
/base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
+ dev: false
/basic-ftp@5.0.4:
resolution: {integrity: sha512-8PzkB0arJFV4jJWSGOYR+OEic6aeKMu/osRhBULN6RY0ykby6LKhbmuQ5ublvaas5BOwboah5D87nrHyuh8PPA==}
@@ -6857,10 +7159,6 @@ packages:
readable-stream: 3.6.2
dev: false
- /bluebird@3.7.2:
- resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==}
- dev: true
-
/blueimp-md5@2.19.0:
resolution: {integrity: sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==}
dev: false
@@ -6943,14 +7241,6 @@ packages:
/buffer-from@1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
- /buffer@4.9.2:
- resolution: {integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==}
- dependencies:
- base64-js: 1.5.1
- ieee754: 1.2.1
- isarray: 1.0.0
- dev: true
-
/buffer@5.7.1:
resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
dependencies:
@@ -7765,7 +8055,7 @@ packages:
/damerau-levenshtein@1.0.8:
resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
- dev: true
+ dev: false
/data-uri-to-buffer@3.0.1:
resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==}
@@ -7986,6 +8276,7 @@ packages:
/dequal@2.0.3:
resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
engines: {node: '>=6'}
+ dev: false
/destroy@1.2.0:
resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
@@ -8347,6 +8638,7 @@ packages:
dependencies:
graceful-fs: 4.2.11
tapable: 2.2.1
+ dev: false
/entities@2.0.3:
resolution: {integrity: sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==}
@@ -8453,7 +8745,6 @@ packages:
/es-array-method-boxes-properly@1.0.0:
resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==}
- dev: true
/es-define-property@1.0.0:
resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==}
@@ -8653,31 +8944,6 @@ packages:
source-map: 0.6.1
dev: false
- /eslint-config-next@14.1.0(eslint@8.57.0)(typescript@5.3.3):
- resolution: {integrity: sha512-SBX2ed7DoRFXC6CQSLc/SbLY9Ut6HxNB2wPTcoIWjUMd7aF7O/SIE7111L8FdZ9TXsNV4pulUDnfthpyPtbFUg==}
- peerDependencies:
- eslint: ^7.23.0 || ^8.0.0
- typescript: '>=3.3.1'
- peerDependenciesMeta:
- typescript:
- optional: true
- dependencies:
- '@next/eslint-plugin-next': 14.1.0
- '@rushstack/eslint-patch': 1.7.2
- '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.3.3)
- eslint: 8.57.0
- eslint-import-resolver-node: 0.3.9
- eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0)
- eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0)
- eslint-plugin-jsx-a11y: 6.8.0(eslint@8.57.0)
- eslint-plugin-react: 7.33.2(eslint@8.57.0)
- eslint-plugin-react-hooks: 4.6.0(eslint@8.57.0)
- typescript: 5.3.3
- transitivePeerDependencies:
- - eslint-import-resolver-webpack
- - supports-color
- dev: true
-
/eslint-config-prettier@8.10.0(eslint@8.57.0):
resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==}
hasBin: true
@@ -8687,13 +8953,13 @@ packages:
eslint: 8.57.0
dev: true
- /eslint-config-prettier@9.1.0(eslint@8.57.0):
- resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==}
- hasBin: true
+ /eslint-config-turbo@1.12.5(eslint@8.57.0):
+ resolution: {integrity: sha512-wXytbX+vTzQ6rwgM6sIr447tjYJBlRj5V/eBFNGNXw5Xs1R715ppPYhbmxaFbkrWNQSGJsWRrYGAlyq0sT/OsQ==}
peerDependencies:
- eslint: '>=7.0.0'
+ eslint: '>6.6.0'
dependencies:
eslint: 8.57.0
+ eslint-plugin-turbo: 1.12.5(eslint@8.57.0)
dev: false
/eslint-config-universe@12.0.0(eslint@8.57.0)(prettier@3.2.5)(typescript@5.3.3):
@@ -8709,7 +8975,7 @@ packages:
'@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.3.3)
eslint: 8.57.0
eslint-config-prettier: 8.10.0(eslint@8.57.0)
- eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0)
+ eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)
eslint-plugin-node: 11.1.0(eslint@8.57.0)
eslint-plugin-prettier: 5.1.3(eslint-config-prettier@8.10.0)(eslint@8.57.0)(prettier@3.2.5)
eslint-plugin-react: 7.33.2(eslint@8.57.0)
@@ -8731,32 +8997,37 @@ packages:
resolve: 1.22.8
transitivePeerDependencies:
- supports-color
- dev: true
- /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0):
- resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==}
- engines: {node: ^14.18.0 || >=16.0.0}
+ /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0):
+ resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==}
+ engines: {node: '>=4'}
peerDependencies:
+ '@typescript-eslint/parser': '*'
eslint: '*'
- eslint-plugin-import: '*'
+ eslint-import-resolver-node: '*'
+ eslint-import-resolver-typescript: '*'
+ eslint-import-resolver-webpack: '*'
+ peerDependenciesMeta:
+ '@typescript-eslint/parser':
+ optional: true
+ eslint:
+ optional: true
+ eslint-import-resolver-node:
+ optional: true
+ eslint-import-resolver-typescript:
+ optional: true
+ eslint-import-resolver-webpack:
+ optional: true
dependencies:
- debug: 4.3.4
- enhanced-resolve: 5.15.0
+ '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.3.3)
+ debug: 3.2.7
eslint: 8.57.0
- eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0)
- eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0)
- fast-glob: 3.3.2
- get-tsconfig: 4.7.2
- is-core-module: 2.13.1
- is-glob: 4.0.3
+ eslint-import-resolver-node: 0.3.9
transitivePeerDependencies:
- - '@typescript-eslint/parser'
- - eslint-import-resolver-node
- - eslint-import-resolver-webpack
- supports-color
dev: true
- /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
+ /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0):
resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==}
engines: {node: '>=4'}
peerDependencies:
@@ -8777,14 +9048,13 @@ packages:
eslint-import-resolver-webpack:
optional: true
dependencies:
- '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.3.3)
+ '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.3.3)
debug: 3.2.7
eslint: 8.57.0
eslint-import-resolver-node: 0.3.9
- eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0)
transitivePeerDependencies:
- supports-color
- dev: true
+ dev: false
/eslint-plugin-es@3.0.1(eslint@8.57.0):
resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==}
@@ -8797,7 +9067,7 @@ packages:
regexpp: 3.2.0
dev: true
- /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
+ /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.57.0):
resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==}
engines: {node: '>=4'}
peerDependencies:
@@ -8816,7 +9086,7 @@ packages:
doctrine: 2.1.0
eslint: 8.57.0
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0)
+ eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0)
hasown: 2.0.1
is-core-module: 2.13.1
is-glob: 4.0.3
@@ -8832,6 +9102,41 @@ packages:
- supports-color
dev: true
+ /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.2.0)(eslint@8.57.0):
+ resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ '@typescript-eslint/parser': '*'
+ eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
+ peerDependenciesMeta:
+ '@typescript-eslint/parser':
+ optional: true
+ dependencies:
+ '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.3.3)
+ array-includes: 3.1.7
+ array.prototype.findlastindex: 1.2.4
+ array.prototype.flat: 1.3.2
+ array.prototype.flatmap: 1.3.2
+ debug: 3.2.7
+ doctrine: 2.1.0
+ eslint: 8.57.0
+ eslint-import-resolver-node: 0.3.9
+ eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0)
+ hasown: 2.0.1
+ is-core-module: 2.13.1
+ is-glob: 4.0.3
+ minimatch: 3.1.2
+ object.fromentries: 2.0.7
+ object.groupby: 1.0.2
+ object.values: 1.1.7
+ semver: 6.3.1
+ tsconfig-paths: 3.15.0
+ transitivePeerDependencies:
+ - eslint-import-resolver-typescript
+ - eslint-import-resolver-webpack
+ - supports-color
+ dev: false
+
/eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0):
resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==}
engines: {node: '>=4.0'}
@@ -8855,7 +9160,7 @@ packages:
minimatch: 3.1.2
object.entries: 1.1.7
object.fromentries: 2.0.7
- dev: true
+ dev: false
/eslint-plugin-node@11.1.0(eslint@8.57.0):
resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==}
@@ -8933,16 +9238,14 @@ packages:
semver: 6.3.1
string.prototype.matchall: 4.0.10
- /eslint-plugin-tailwindcss@3.14.3(tailwindcss@3.4.1):
- resolution: {integrity: sha512-1MKT8CrVuqVJleHxb7ICHsF2QwO0G+VJ28athTtlcOkccp0qmwK7nCUa1C9paCZ+VVgQU4fonsjLz/wUxoMHJQ==}
- engines: {node: '>=12.13.0'}
+ /eslint-plugin-turbo@1.12.5(eslint@8.57.0):
+ resolution: {integrity: sha512-cXy7mCzAdngBTJIWH4DASXHy0vQpujWDBqRTu0YYqCN/QEGsi3HWM+STZEbPYELdjtm5EsN2HshOSSqWnjdRHg==}
peerDependencies:
- tailwindcss: ^3.4.0
+ eslint: '>6.6.0'
dependencies:
- fast-glob: 3.3.2
- postcss: 8.4.35
- tailwindcss: 3.4.1(ts-node@10.9.2)
- dev: true
+ dotenv: 16.0.3
+ eslint: 8.57.0
+ dev: false
/eslint-scope@5.1.1:
resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
@@ -9105,11 +9408,6 @@ packages:
engines: {node: '>=6'}
dev: false
- /events@1.1.1:
- resolution: {integrity: sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==}
- engines: {node: '>=0.4.x'}
- dev: true
-
/events@3.3.0:
resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
engines: {node: '>=0.8.x'}
@@ -9796,15 +10094,6 @@ packages:
universalify: 2.0.1
dev: false
- /fs-extra@7.0.1:
- resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==}
- engines: {node: '>=6 <7 || >=8'}
- dependencies:
- graceful-fs: 4.2.11
- jsonfile: 4.0.0
- universalify: 0.1.2
- dev: true
-
/fs-extra@8.1.0:
resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==}
engines: {node: '>=6 <7 || >=8'}
@@ -10347,12 +10636,9 @@ packages:
resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==}
dev: false
- /ieee754@1.1.13:
- resolution: {integrity: sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==}
- dev: true
-
/ieee754@1.2.1:
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
+ dev: false
/ignore@5.3.1:
resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
@@ -10513,6 +10799,7 @@ packages:
dependencies:
call-bind: 1.0.7
has-tostringtag: 1.0.2
+ dev: false
/is-array-buffer@3.0.4:
resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==}
@@ -10841,6 +11128,7 @@ packages:
/isarray@1.0.0:
resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
+ dev: false
/isarray@2.0.5:
resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
@@ -10995,11 +11283,6 @@ packages:
resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
hasBin: true
- /jmespath@0.16.0:
- resolution: {integrity: sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==}
- engines: {node: '>= 0.6.0'}
- dev: true
-
/joi@17.12.2:
resolution: {integrity: sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==}
dependencies:
@@ -11209,6 +11492,7 @@ packages:
resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==}
optionalDependencies:
graceful-fs: 4.2.11
+ dev: false
/jsonfile@6.1.0:
resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
@@ -11266,14 +11550,14 @@ packages:
/language-subtag-registry@0.3.22:
resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==}
- dev: true
+ dev: false
/language-tags@1.0.9:
resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==}
engines: {node: '>=0.10'}
dependencies:
language-subtag-registry: 0.3.22
- dev: true
+ dev: false
/lazy-cache@0.2.7:
resolution: {integrity: sha512-gkX52wvU/R8DVMMt78ATVPFMJqfW8FPz1GZ1sVHBVQHmu/WvhIWE4cE1GBzhJNFicDeYhnwp6Rl35BcAIM3YOQ==}
@@ -11686,14 +11970,6 @@ packages:
react-native-svg: 15.1.0(react-native@0.73.4)(react@18.2.0)
dev: false
- /lucide-react@0.322.0(react@18.2.0):
- resolution: {integrity: sha512-7knx2HzI/J7wCVaAzbO4y622PYjBqy4w03DvXKri0EBxg1s3ogPHkLXvFoNVS6WTXgxLsIZDdvgY3AWQmc4JXA==}
- peerDependencies:
- react: ^16.5.1 || ^17.0.0 || ^18.0.0
- dependencies:
- react: 18.2.0
- dev: false
-
/lucide-react@0.330.0(react@18.2.0):
resolution: {integrity: sha512-CQwY+Fpbt2kxCoVhuN0RCZDCYlbYnqB870Bl/vIQf3ER/cnDDQ6moLmEkguRyruAUGd4j3Lc4mtnJosXnqHheA==}
peerDependencies:
@@ -12096,7 +12372,7 @@ packages:
resolution: {integrity: sha512-ssuoVC4OzqaOt3LpwfUbDfBlFGRu9v1Yf2JJnKPz0ROYHNjSBws4aUesqQQ/Ea8DbiH7TK4j4cJmm+XjdHmgqA==}
engines: {node: '>=18'}
dependencies:
- '@babel/core': 7.23.9
+ '@babel/core': 7.24.0
hermes-parser: 0.19.1
nullthrows: 1.1.1
transitivePeerDependencies:
@@ -12216,7 +12492,7 @@ packages:
resolution: {integrity: sha512-e04tdTC5Fy1vOQrTTXb5biao0t7nR/h+b1IaBTlM5UaHaAJZr658uVOoZhkRxKjbhF2mIwJ/8DdorD2CA15BCg==}
engines: {node: '>=18'}
dependencies:
- '@babel/core': 7.23.9
+ '@babel/core': 7.24.0
'@babel/generator': 7.23.6
'@babel/template': 7.23.9
'@babel/traverse': 7.23.9
@@ -12229,7 +12505,7 @@ packages:
resolution: {integrity: sha512-jV+VgCLiCj5jQadW/h09qJaqDreL6XcBRY52STCoz2xWn6WWLLMB5nXzQtvFNPmnIOps+Xu8+d5hiPcBNOhYmA==}
engines: {node: '>=18'}
dependencies:
- '@babel/core': 7.23.9
+ '@babel/core': 7.24.0
'@babel/generator': 7.23.6
'@babel/parser': 7.23.9
'@babel/types': 7.23.9
@@ -12695,15 +12971,6 @@ packages:
ufo: 1.4.0
dev: true
- /mock-aws-s3@4.0.2:
- resolution: {integrity: sha512-J6g3MMCuKHeuqVEOgvQfRGIfVmg6KKrED48Bux/L9rTY3NPK9TFRh/9bCf5AuzjJm9PIlwhDEO99tD8+smnTyQ==}
- engines: {node: '>=10.0.0'}
- dependencies:
- bluebird: 3.7.2
- fs-extra: 7.0.1
- underscore: 1.12.1
- dev: true
-
/mrmime@1.0.1:
resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==}
engines: {node: '>=10'}
@@ -12771,14 +13038,14 @@ packages:
resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==}
dev: false
- /nativewind@4.0.36(@babel/core@7.23.9)(react-native-reanimated@3.8.0)(react-native-safe-area-context@4.8.2)(react-native-svg@15.1.0)(react-native@0.73.4)(react@18.2.0)(tailwindcss@3.3.2):
+ /nativewind@4.0.36(@babel/core@7.23.9)(react-native-reanimated@3.8.0)(react-native-safe-area-context@4.8.2)(react-native-svg@15.1.0)(react-native@0.73.4)(react@18.2.0)(tailwindcss@3.4.1):
resolution: {integrity: sha512-nd0Xgjzaq0ISvUAjibZXcuSvvpX1BGX2mfOGBPZpjGfHL3By6fwLGsNhrKU6mi2FF30c+kdok3e2I4k/O0UO1Q==}
engines: {node: '>=16'}
peerDependencies:
tailwindcss: '>3.3.0'
dependencies:
- react-native-css-interop: 0.0.36(@babel/core@7.23.9)(react-native-reanimated@3.8.0)(react-native-safe-area-context@4.8.2)(react-native-svg@15.1.0)(react-native@0.73.4)(react@18.2.0)(tailwindcss@3.3.2)
- tailwindcss: 3.3.2
+ react-native-css-interop: 0.0.36(@babel/core@7.23.9)(react-native-reanimated@3.8.0)(react-native-safe-area-context@4.8.2)(react-native-svg@15.1.0)(react-native@0.73.4)(react@18.2.0)(tailwindcss@3.4.1)
+ tailwindcss: 3.4.1(ts-node@10.9.2)
transitivePeerDependencies:
- '@babel/core'
- react
@@ -12832,7 +13099,7 @@ packages:
'@panva/hkdf': 1.1.1
cookie: 0.5.0
jose: 4.15.4
- next: 14.1.1(@babel/core@7.23.9)(react-dom@18.2.0)(react@18.2.0)
+ next: 14.1.1(@babel/core@7.24.0)(react-dom@18.2.0)(react@18.2.0)
oauth: 0.9.15
openid-client: 5.6.4
preact: 10.19.6
@@ -12842,15 +13109,15 @@ packages:
uuid: 8.3.2
dev: false
- /next-pwa@5.6.0(@babel/core@7.23.9)(next@14.1.1)(webpack@5.90.3):
+ /next-pwa@5.6.0(@babel/core@7.24.0)(next@14.1.1)(webpack@5.90.3):
resolution: {integrity: sha512-XV8g8C6B7UmViXU8askMEYhWwQ4qc/XqJGnexbLV68hzKaGHZDMtHsm2TNxFcbR7+ypVuth/wwpiIlMwpRJJ5A==}
peerDependencies:
next: '>=9.0.0'
dependencies:
- babel-loader: 8.3.0(@babel/core@7.23.9)(webpack@5.90.3)
+ babel-loader: 8.3.0(@babel/core@7.24.0)(webpack@5.90.3)
clean-webpack-plugin: 4.0.0(webpack@5.90.3)
globby: 11.1.0
- next: 14.1.1(@babel/core@7.23.9)(react-dom@18.2.0)(react@18.2.0)
+ next: 14.1.1(@babel/core@7.24.0)(react-dom@18.2.0)(react@18.2.0)
terser-webpack-plugin: 5.3.10(webpack@5.90.3)
workbox-webpack-plugin: 6.6.0(webpack@5.90.3)
workbox-window: 6.6.0
@@ -12868,7 +13135,7 @@ packages:
resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==}
dev: true
- /next@14.1.1(@babel/core@7.23.9)(react-dom@18.2.0)(react@18.2.0):
+ /next@14.1.1(@babel/core@7.24.0)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-McrGJqlGSHeaz2yTRPkEucxQKe5Zq7uPwyeHNmJaZNY4wx9E9QdxmTp310agFRoMuIYgQrCrT3petg13fSVOww==}
engines: {node: '>=18.17.0'}
hasBin: true
@@ -12891,7 +13158,7 @@ packages:
postcss: 8.4.31
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
- styled-jsx: 5.1.1(@babel/core@7.23.9)(react@18.2.0)
+ styled-jsx: 5.1.1(@babel/core@7.24.0)(react@18.2.0)
optionalDependencies:
'@next/swc-darwin-arm64': 14.1.1
'@next/swc-darwin-x64': 14.1.1
@@ -13145,7 +13412,6 @@ packages:
define-properties: 1.2.1
es-abstract: 1.22.4
es-errors: 1.3.0
- dev: true
/object.hasown@1.1.3:
resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==}
@@ -13241,8 +13507,8 @@ packages:
is-wsl: 2.2.0
dev: false
- /openai@4.28.0:
- resolution: {integrity: sha512-JM8fhcpmpGN0vrUwGquYIzdcEQHtFuom6sRCbbCM6CfzZXNuRk33G7KfeRAIfnaCxSpzrP5iHtwJzIm6biUZ2Q==}
+ /openai@4.29.0:
+ resolution: {integrity: sha512-ic6C681bSow1XQdKhADthM/OOKqNL05M1gCFLx1mRqLJ+yH49v6qnvaWQ76kwqI/IieCuVTXfRfTk3sz4cB45w==}
hasBin: true
dependencies:
'@types/node': 18.19.18
@@ -13766,7 +14032,7 @@ packages:
fast-diff: 1.3.0
dev: true
- /prettier-plugin-tailwindcss@0.5.11(prettier@3.2.5):
+ /prettier-plugin-tailwindcss@0.5.11(@ianvs/prettier-plugin-sort-imports@4.2.0)(prettier@3.2.5):
resolution: {integrity: sha512-AvI/DNyMctyyxGOjyePgi/gqj5hJYClZ1avtQvLlqMT3uDZkRbi4HhGUpok3DRzv9z7Lti85Kdj3s3/1CeNI0w==}
engines: {node: '>=14.21.3'}
peerDependencies:
@@ -13815,8 +14081,9 @@ packages:
prettier-plugin-twig-melody:
optional: true
dependencies:
+ '@ianvs/prettier-plugin-sort-imports': 4.2.0(prettier@3.2.5)
prettier: 3.2.5
- dev: true
+ dev: false
/prettier@2.8.8:
resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==}
@@ -13959,10 +14226,6 @@ packages:
engines: {node: '>=0.10'}
dev: false
- /punycode@1.3.2:
- resolution: {integrity: sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==}
- dev: true
-
/punycode@1.4.1:
resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==}
dev: false
@@ -14173,12 +14436,6 @@ packages:
strict-uri-encode: 2.0.0
dev: false
- /querystring@0.2.0:
- resolution: {integrity: sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==}
- engines: {node: '>=0.4.x'}
- deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
- dev: true
-
/querystringify@2.2.0:
resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
dev: false
@@ -14339,7 +14596,7 @@ packages:
react: 18.2.0
dev: false
- /react-native-css-interop@0.0.36(@babel/core@7.23.9)(react-native-reanimated@3.8.0)(react-native-safe-area-context@4.8.2)(react-native-svg@15.1.0)(react-native@0.73.4)(react@18.2.0)(tailwindcss@3.3.2):
+ /react-native-css-interop@0.0.36(@babel/core@7.23.9)(react-native-reanimated@3.8.0)(react-native-safe-area-context@4.8.2)(react-native-svg@15.1.0)(react-native@0.73.4)(react@18.2.0)(tailwindcss@3.4.1):
resolution: {integrity: sha512-ZWoKQlq6XrI5DB4BdPk5ABvJQsX7zls1SQYWuYXOQB8u5QE0KH3OfOGAGRZPekTjgkhjqGO4Bf8G2JTSWAYMSg==}
engines: {node: '>=18'}
peerDependencies:
@@ -14365,7 +14622,7 @@ packages:
react-native-reanimated: 3.8.0(@babel/core@7.23.9)(react-native@0.73.4)(react@18.2.0)
react-native-safe-area-context: 4.8.2(react-native@0.73.4)(react@18.2.0)
react-native-svg: 15.1.0(react-native@0.73.4)(react@18.2.0)
- tailwindcss: 3.3.2
+ tailwindcss: 3.4.1(ts-node@10.9.2)
transitivePeerDependencies:
- '@babel/core'
- supports-color
@@ -14689,6 +14946,7 @@ packages:
/regenerator-runtime@0.14.1:
resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
+ dev: false
/regenerator-transform@0.15.2:
resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==}
@@ -14983,6 +15241,7 @@ packages:
/sax@1.2.1:
resolution: {integrity: sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==}
+ dev: false
/saxes@6.0.0:
resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
@@ -15571,7 +15830,6 @@ packages:
/strip-bom@3.0.0:
resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
engines: {node: '>=4'}
- dev: true
/strip-comments@2.0.1:
resolution: {integrity: sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==}
@@ -15629,7 +15887,7 @@ packages:
inline-style-parser: 0.2.2
dev: false
- /styled-jsx@5.1.1(@babel/core@7.23.9)(react@18.2.0):
+ /styled-jsx@5.1.1(@babel/core@7.24.0)(react@18.2.0):
resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
engines: {node: '>= 12.0.0'}
peerDependencies:
@@ -15642,7 +15900,7 @@ packages:
babel-plugin-macros:
optional: true
dependencies:
- '@babel/core': 7.23.9
+ '@babel/core': 7.24.0
client-only: 0.0.1
react: 18.2.0
dev: false
@@ -15749,37 +16007,6 @@ packages:
tailwindcss: 3.4.1(ts-node@10.9.2)
dev: false
- /tailwindcss@3.3.2:
- resolution: {integrity: sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==}
- engines: {node: '>=14.0.0'}
- hasBin: true
- dependencies:
- '@alloc/quick-lru': 5.2.0
- arg: 5.0.2
- chokidar: 3.6.0
- didyoumean: 1.2.2
- dlv: 1.1.3
- fast-glob: 3.3.2
- glob-parent: 6.0.2
- is-glob: 4.0.3
- jiti: 1.21.0
- lilconfig: 2.1.0
- micromatch: 4.0.5
- normalize-path: 3.0.0
- object-hash: 3.0.0
- picocolors: 1.0.0
- postcss: 8.4.35
- postcss-import: 15.1.0(postcss@8.4.35)
- postcss-js: 4.0.1(postcss@8.4.35)
- postcss-load-config: 4.0.2(postcss@8.4.35)(ts-node@10.9.2)
- postcss-nested: 6.0.1(postcss@8.4.35)
- postcss-selector-parser: 6.0.15
- postcss-value-parser: 4.2.0
- resolve: 1.22.8
- sucrase: 3.35.0
- transitivePeerDependencies:
- - ts-node
-
/tailwindcss@3.4.1(ts-node@10.9.2):
resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==}
engines: {node: '>=14.0.0'}
@@ -15813,6 +16040,7 @@ packages:
/tapable@2.2.1:
resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
engines: {node: '>=6'}
+ dev: false
/tar-fs@2.1.1:
resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==}
@@ -16173,7 +16401,6 @@ packages:
json5: 1.0.2
minimist: 1.2.8
strip-bom: 3.0.0
- dev: true
/tslib@2.6.2:
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
@@ -16195,6 +16422,66 @@ packages:
safe-buffer: 5.2.1
dev: false
+ /turbo-darwin-64@1.12.5:
+ resolution: {integrity: sha512-0GZ8reftwNQgIQLHkHjHEXTc/Z1NJm+YjsrBP+qhM/7yIZ3TEy9gJhuogDt2U0xIWwFgisTyzbtU7xNaQydtoA==}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /turbo-darwin-arm64@1.12.5:
+ resolution: {integrity: sha512-8WpOLNNzvH6kohQOjihD+gaWL+ZFNfjvBwhOF0rjEzvW+YR3Pa7KjhulrjWyeN2yMFqAPubTbZIGOz1EVXLuQA==}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /turbo-linux-64@1.12.5:
+ resolution: {integrity: sha512-INit73+bNUpwqGZCxgXCR3I+cQsdkQ3/LkfkgSOibkpg+oGqxJRzeXw3sp990d7SCoE8QOcs3iw+PtiFX/LDAA==}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /turbo-linux-arm64@1.12.5:
+ resolution: {integrity: sha512-6lkRBvxtI/GQdGtaAec9LvVQUoRw6nXFp0kM+Eu+5PbZqq7yn6cMkgDJLI08zdeui36yXhone8XGI8pHg8bpUQ==}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /turbo-windows-64@1.12.5:
+ resolution: {integrity: sha512-gQYbOhZg5Ww0bQ/bC0w/4W6yQRwBumUUnkB+QPo15VznwxZe2a7bo6JM+9Xy9dKLa/kn+p7zTqme4OEp6M3/Yg==}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /turbo-windows-arm64@1.12.5:
+ resolution: {integrity: sha512-auvhZ9FrhnvQ4mgBlY9O68MT4dIfprYGvd2uPICba/mHUZZvVy5SGgbHJ0KbMwaJfnnFoPgLJO6M+3N2gDprKw==}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /turbo@1.12.5:
+ resolution: {integrity: sha512-FATU5EnhrYG8RvQJYFJnDd18DpccDjyvd53hggw9T9JEg9BhWtIEoeaKtBjYbpXwOVrJQMDdXcIB4f2nD3QPPg==}
+ hasBin: true
+ optionalDependencies:
+ turbo-darwin-64: 1.12.5
+ turbo-darwin-arm64: 1.12.5
+ turbo-linux-64: 1.12.5
+ turbo-linux-arm64: 1.12.5
+ turbo-windows-64: 1.12.5
+ turbo-windows-arm64: 1.12.5
+ dev: true
+
/type-check@0.4.0:
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
engines: {node: '>= 0.8.0'}
@@ -16313,10 +16600,6 @@ packages:
through: 2.3.8
dev: false
- /underscore@1.12.1:
- resolution: {integrity: sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==}
- dev: true
-
/undici-types@5.26.5:
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
@@ -16438,6 +16721,7 @@ packages:
/universalify@0.1.2:
resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
engines: {node: '>= 4.0.0'}
+ dev: false
/universalify@0.2.0:
resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==}
@@ -16503,13 +16787,6 @@ packages:
tlds: 1.250.0
dev: false
- /url@0.10.3:
- resolution: {integrity: sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==}
- dependencies:
- punycode: 1.3.2
- querystring: 0.2.0
- dev: true
-
/url@0.11.3:
resolution: {integrity: sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==}
dependencies:
@@ -16596,6 +16873,7 @@ packages:
is-generator-function: 1.0.10
is-typed-array: 1.1.13
which-typed-array: 1.1.14
+ dev: false
/utils-merge@1.0.1:
resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
@@ -16607,11 +16885,6 @@ packages:
hasBin: true
dev: false
- /uuid@8.0.0:
- resolution: {integrity: sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==}
- hasBin: true
- dev: true
-
/uuid@8.3.2:
resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
hasBin: true
@@ -17352,17 +17625,10 @@ packages:
xmlbuilder: 11.0.1
dev: false
- /xml2js@0.6.2:
- resolution: {integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==}
- engines: {node: '>=4.0.0'}
- dependencies:
- sax: 1.2.1
- xmlbuilder: 11.0.1
- dev: true
-
/xmlbuilder@11.0.1:
resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==}
engines: {node: '>=4.0'}
+ dev: false
/xmlbuilder@14.0.0:
resolution: {integrity: sha512-ts+B2rSe4fIckR6iquDjsKbQFK2NlUk6iG5nf14mDEyldgoc2nEKZ3jZWMPTxGQwVgToSjt6VGIho1H8/fNFTg==}
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index dee51e92..af315f4a 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -1,2 +1,4 @@
packages:
- "packages/*"
+ - "apps/*"
+ - "tooling/*"
diff --git a/tooling/eslint/base.js b/tooling/eslint/base.js
new file mode 100644
index 00000000..d1f6296c
--- /dev/null
+++ b/tooling/eslint/base.js
@@ -0,0 +1,43 @@
+/** @type {import("eslint").Linter.Config} */
+const config = {
+ extends: [
+ "turbo",
+ "eslint:recommended",
+ "plugin:@typescript-eslint/recommended-type-checked",
+ "plugin:@typescript-eslint/stylistic-type-checked",
+ ],
+ env: {
+ es2022: true,
+ node: true,
+ },
+ parser: "@typescript-eslint/parser",
+ parserOptions: { project: true },
+ plugins: ["@typescript-eslint", "import"],
+ rules: {
+ "turbo/no-undeclared-env-vars": "off",
+ "@typescript-eslint/no-unused-vars": [
+ "error",
+ { argsIgnorePattern: "^_", varsIgnorePattern: "^_" },
+ ],
+ "@typescript-eslint/consistent-type-imports": [
+ "warn",
+ { prefer: "type-imports", fixStyle: "separate-type-imports" },
+ ],
+ "@typescript-eslint/no-misused-promises": [
+ 2,
+ { checksVoidReturn: { attributes: false } },
+ ],
+ "import/consistent-type-specifier-style": ["error", "prefer-top-level"],
+ },
+ ignorePatterns: [
+ "**/*.config.js",
+ "**/*.config.cjs",
+ "**/.eslintrc.cjs",
+ ".next",
+ "dist",
+ "pnpm-lock.yaml",
+ ],
+ reportUnusedDisableDirectives: true,
+};
+
+module.exports = config;
diff --git a/tooling/eslint/nextjs.js b/tooling/eslint/nextjs.js
new file mode 100644
index 00000000..169993e3
--- /dev/null
+++ b/tooling/eslint/nextjs.js
@@ -0,0 +1,10 @@
+/** @type {import('eslint').Linter.Config} */
+const config = {
+ extends: ["plugin:@next/next/core-web-vitals"],
+ rules: {
+ "@next/next/no-html-link-for-pages": "off",
+ "@typescript-eslint/require-await": "off",
+ },
+};
+
+module.exports = config;
diff --git a/tooling/eslint/package.json b/tooling/eslint/package.json
new file mode 100644
index 00000000..5329f6d2
--- /dev/null
+++ b/tooling/eslint/package.json
@@ -0,0 +1,42 @@
+{
+ "name": "@hoarder/eslint-config",
+ "version": "0.2.0",
+ "private": true,
+ "license": "MIT",
+ "files": [
+ "./base.js",
+ "./nextjs.js",
+ "./react.js"
+ ],
+ "scripts": {
+ "clean": "rm -rf .turbo node_modules",
+ "format": "prettier --check . --ignore-path ../../.gitignore",
+ "lint": "eslint .",
+ "typecheck": "tsc --noEmit"
+ },
+ "dependencies": {
+ "@next/eslint-plugin-next": "^14.1.1",
+ "@typescript-eslint/eslint-plugin": "^7.2.0",
+ "@typescript-eslint/parser": "^7.2.0",
+ "eslint-config-turbo": "^1.12.4",
+ "eslint-plugin-import": "^2.29.1",
+ "eslint-plugin-jsx-a11y": "^6.8.0",
+ "eslint-plugin-react": "^7.33.2",
+ "eslint-plugin-react-hooks": "^4.6.0"
+ },
+ "devDependencies": {
+ "@hoarder/prettier-config": "workspace:^0.1.0",
+ "@hoarder/tsconfig": "workspace:^0.1.0",
+ "@types/eslint": "^8.56.5",
+ "eslint": "^8.57.0",
+ "prettier": "^3.2.5",
+ "typescript": "^5.3.3"
+ },
+ "eslintConfig": {
+ "root": true,
+ "extends": [
+ "./base.js"
+ ]
+ },
+ "prettier": "@hoarder/prettier-config"
+} \ No newline at end of file
diff --git a/tooling/eslint/react.js b/tooling/eslint/react.js
new file mode 100644
index 00000000..618e1816
--- /dev/null
+++ b/tooling/eslint/react.js
@@ -0,0 +1,24 @@
+/** @type {import('eslint').Linter.Config} */
+const config = {
+ extends: [
+ "plugin:react/recommended",
+ "plugin:react-hooks/recommended",
+ "plugin:jsx-a11y/recommended",
+ ],
+ rules: {
+ "react/prop-types": "off",
+ },
+ globals: {
+ React: "writable",
+ },
+ settings: {
+ react: {
+ version: "detect",
+ },
+ },
+ env: {
+ browser: true,
+ },
+};
+
+module.exports = config;
diff --git a/tooling/eslint/tsconfig.json b/tooling/eslint/tsconfig.json
new file mode 100644
index 00000000..dcbd7d30
--- /dev/null
+++ b/tooling/eslint/tsconfig.json
@@ -0,0 +1,8 @@
+{
+ "extends": "@hoarder/tsconfig/base.json",
+ "compilerOptions": {
+ "tsBuildInfoFile": "node_modules/.cache/tsbuildinfo.json"
+ },
+ "include": ["."],
+ "exclude": ["node_modules"]
+}
diff --git a/tooling/github/package.json b/tooling/github/package.json
new file mode 100644
index 00000000..42e5fc74
--- /dev/null
+++ b/tooling/github/package.json
@@ -0,0 +1,3 @@
+{
+ "name": "@hoarder/github"
+}
diff --git a/tooling/github/setup/action.yml b/tooling/github/setup/action.yml
new file mode 100644
index 00000000..9a8ff513
--- /dev/null
+++ b/tooling/github/setup/action.yml
@@ -0,0 +1,19 @@
+name: "Setup and install"
+description: "Common setup steps for Actions"
+
+runs:
+ using: composite
+ steps:
+ - uses: pnpm/action-setup@v2
+ - uses: actions/setup-node@v4
+ with:
+ node-version: 21
+ cache: "pnpm"
+
+ - shell: bash
+ run: pnpm add -g turbo
+
+ - shell: bash
+ run: pnpm install
+ env:
+ PUPPETEER_SKIP_DOWNLOAD: "true"
diff --git a/tooling/prettier/index.js b/tooling/prettier/index.js
new file mode 100644
index 00000000..08618ae6
--- /dev/null
+++ b/tooling/prettier/index.js
@@ -0,0 +1,36 @@
+import { fileURLToPath } from "url";
+
+/** @typedef {import("prettier").Config} PrettierConfig */
+/** @typedef {import("prettier-plugin-tailwindcss").PluginOptions} TailwindConfig */
+/** @typedef {import("@ianvs/prettier-plugin-sort-imports").PluginConfig} SortImportsConfig */
+
+/** @type { PrettierConfig | SortImportsConfig | TailwindConfig } */
+const config = {
+ plugins: [
+ "@ianvs/prettier-plugin-sort-imports",
+ "prettier-plugin-tailwindcss",
+ ],
+ tailwindConfig: fileURLToPath(
+ new URL("../../tooling/tailwind/web.ts", import.meta.url),
+ ),
+ tailwindFunctions: ["cn", "cva"],
+ importOrder: [
+ "<TYPES>",
+ "^(react/(.*)$)|^(react$)|^(react-native(.*)$)",
+ "^(next/(.*)$)|^(next$)",
+ "^(expo(.*)$)|^(expo$)",
+ "<THIRD_PARTY_MODULES>",
+ "",
+ "<TYPES>^@hoarder",
+ "^@hoarder/(.*)$",
+ "",
+ "<TYPES>^[.|..|~]",
+ "^~/",
+ "^[../]",
+ "^[./]",
+ ],
+ importOrderParserPlugins: ["typescript", "jsx", "decorators-legacy"],
+ importOrderTypeScriptVersion: "4.4.0",
+};
+
+export default config;
diff --git a/tooling/prettier/package.json b/tooling/prettier/package.json
new file mode 100644
index 00000000..e16a183d
--- /dev/null
+++ b/tooling/prettier/package.json
@@ -0,0 +1,24 @@
+{
+ "name": "@hoarder/prettier-config",
+ "private": true,
+ "version": "0.1.0",
+ "type": "module",
+ "exports": {
+ ".": "./index.js"
+ },
+ "scripts": {
+ "clean": "rm -rf .turbo node_modules",
+ "format": "prettier --check . --ignore-path ../../.gitignore",
+ "typecheck": "tsc --noEmit"
+ },
+ "dependencies": {
+ "@ianvs/prettier-plugin-sort-imports": "^4.1.1",
+ "prettier": "^3.2.5",
+ "prettier-plugin-tailwindcss": "^0.5.11"
+ },
+ "devDependencies": {
+ "@hoarder/tsconfig": "workspace:^0.1.0",
+ "typescript": "^5.3.3"
+ },
+ "prettier": "@hoarder/prettier-config"
+}
diff --git a/tooling/prettier/tsconfig.json b/tooling/prettier/tsconfig.json
new file mode 100644
index 00000000..dcbd7d30
--- /dev/null
+++ b/tooling/prettier/tsconfig.json
@@ -0,0 +1,8 @@
+{
+ "extends": "@hoarder/tsconfig/base.json",
+ "compilerOptions": {
+ "tsBuildInfoFile": "node_modules/.cache/tsbuildinfo.json"
+ },
+ "include": ["."],
+ "exclude": ["node_modules"]
+}
diff --git a/tooling/tailwind/base.ts b/tooling/tailwind/base.ts
new file mode 100644
index 00000000..15fd759a
--- /dev/null
+++ b/tooling/tailwind/base.ts
@@ -0,0 +1,48 @@
+import type { Config } from "tailwindcss";
+
+export default {
+ darkMode: ["class"],
+ content: ["src/**/*.{ts,tsx}"],
+ theme: {
+ extend: {
+ colors: {
+ border: "hsl(var(--border))",
+ input: "hsl(var(--input))",
+ ring: "hsl(var(--ring))",
+ background: "hsl(var(--background))",
+ foreground: "hsl(var(--foreground))",
+ primary: {
+ DEFAULT: "hsl(var(--primary))",
+ foreground: "hsl(var(--primary-foreground))",
+ },
+ secondary: {
+ DEFAULT: "hsl(var(--secondary))",
+ foreground: "hsl(var(--secondary-foreground))",
+ },
+ destructive: {
+ DEFAULT: "hsl(var(--destructive))",
+ foreground: "hsl(var(--destructive-foreground))",
+ },
+ muted: {
+ DEFAULT: "hsl(var(--muted))",
+ foreground: "hsl(var(--muted-foreground))",
+ },
+ accent: {
+ DEFAULT: "hsl(var(--accent))",
+ foreground: "hsl(var(--accent-foreground))",
+ },
+ popover: {
+ DEFAULT: "hsl(var(--popover))",
+ foreground: "hsl(var(--popover-foreground))",
+ },
+ card: {
+ DEFAULT: "hsl(var(--card))",
+ foreground: "hsl(var(--card-foreground))",
+ },
+ },
+ borderColor: {
+ DEFAULT: "hsl(var(--border))",
+ },
+ },
+ },
+} satisfies Config;
diff --git a/tooling/tailwind/native.ts b/tooling/tailwind/native.ts
new file mode 100644
index 00000000..7441221e
--- /dev/null
+++ b/tooling/tailwind/native.ts
@@ -0,0 +1,9 @@
+import type { Config } from "tailwindcss";
+
+import base from "./base";
+
+export default {
+ content: base.content,
+ presets: [base],
+ theme: {},
+} satisfies Config;
diff --git a/tooling/tailwind/package.json b/tooling/tailwind/package.json
new file mode 100644
index 00000000..9ee573a5
--- /dev/null
+++ b/tooling/tailwind/package.json
@@ -0,0 +1,37 @@
+{
+ "name": "@hoarder/tailwind-config",
+ "version": "0.1.0",
+ "private": true,
+ "type": "module",
+ "exports": {
+ "./native": "./native.ts",
+ "./web": "./web.ts"
+ },
+ "license": "MIT",
+ "scripts": {
+ "clean": "rm -rf .turbo node_modules",
+ "format": "prettier --check . --ignore-path ../../.gitignore",
+ "lint": "eslint .",
+ "typecheck": "tsc --noEmit"
+ },
+ "dependencies": {
+ "postcss": "^8.4.35",
+ "tailwindcss": "^3.4.1",
+ "tailwindcss-animate": "^1.0.7"
+ },
+ "devDependencies": {
+ "@hoarder/eslint-config": "workspace:^0.2.0",
+ "@hoarder/prettier-config": "workspace:^0.1.0",
+ "@hoarder/tsconfig": "workspace:^0.1.0",
+ "eslint": "^8.57.0",
+ "prettier": "^3.2.5",
+ "typescript": "^5.3.3"
+ },
+ "eslintConfig": {
+ "root": true,
+ "extends": [
+ "@hoarder/eslint-config/base"
+ ]
+ },
+ "prettier": "@hoarder/prettier-config"
+}
diff --git a/tooling/tailwind/tsconfig.json b/tooling/tailwind/tsconfig.json
new file mode 100644
index 00000000..dcbd7d30
--- /dev/null
+++ b/tooling/tailwind/tsconfig.json
@@ -0,0 +1,8 @@
+{
+ "extends": "@hoarder/tsconfig/base.json",
+ "compilerOptions": {
+ "tsBuildInfoFile": "node_modules/.cache/tsbuildinfo.json"
+ },
+ "include": ["."],
+ "exclude": ["node_modules"]
+}
diff --git a/tooling/tailwind/web.ts b/tooling/tailwind/web.ts
new file mode 100644
index 00000000..0729477a
--- /dev/null
+++ b/tooling/tailwind/web.ts
@@ -0,0 +1,40 @@
+import type { Config } from "tailwindcss";
+import animate from "tailwindcss-animate";
+
+import base from "./base";
+
+export default {
+ content: base.content,
+ presets: [base],
+ theme: {
+ container: {
+ center: true,
+ padding: "2rem",
+ screens: {
+ "2xl": "1400px",
+ },
+ },
+ extend: {
+ borderRadius: {
+ lg: "var(--radius)",
+ md: "calc(var(--radius) - 2px)",
+ sm: "calc(var(--radius) - 4px)",
+ },
+ keyframes: {
+ "accordion-down": {
+ from: { height: "0" },
+ to: { height: "var(--radix-accordion-content-height)" },
+ },
+ "accordion-up": {
+ from: { height: "var(--radix-accordion-content-height)" },
+ to: { height: "0" },
+ },
+ },
+ animation: {
+ "accordion-down": "accordion-down 0.2s ease-out",
+ "accordion-up": "accordion-up 0.2s ease-out",
+ },
+ },
+ },
+ plugins: [animate],
+} satisfies Config;
diff --git a/packages/web/tsconfig.json b/tooling/typescript/base.json
index ecbd5643..2708b280 100644
--- a/packages/web/tsconfig.json
+++ b/tooling/typescript/base.json
@@ -1,28 +1,21 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"compilerOptions": {
- "lib": ["dom", "dom.iterable", "esnext"],
+ "target": "ES2022",
+ "lib": ["dom", "dom.iterable", "ES2022"],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
- "moduleResolution": "bundler",
+ "moduleResolution": "Bundler",
"resolveJsonModule": true,
"isolatedModules": true,
+ "moduleDetection": "force",
"jsx": "preserve",
"incremental": true,
- "target": "ES6",
- "plugins": [
- {
- "name": "next"
- }
- ],
- "paths": {
- "@/*": ["./*"]
- }
+ "noUncheckedIndexedAccess": false
},
- "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
- "exclude": ["node_modules"]
+ "exclude": ["node_modules", "build", "dist", ".next", ".expo"]
}
diff --git a/packages/workers/tsconfig.json b/tooling/typescript/node.json
index cf49c407..aeda1ffd 100644
--- a/packages/workers/tsconfig.json
+++ b/tooling/typescript/node.json
@@ -2,10 +2,13 @@
"$schema": "https://json.schemastore.org/tsconfig",
"extends": "@tsconfig/node21/tsconfig.json",
"include": ["**/*.ts"],
- "exclude": ["node_modules"],
+ "exclude": ["node_modules", "build", "dist", ".next", ".expo"],
"compilerOptions": {
"module": "ESNext",
"moduleResolution": "node",
+ "incremental": true,
+ "isolatedModules": true,
+ "strict": true,
"esModuleInterop": true
}
}
diff --git a/tooling/typescript/package.json b/tooling/typescript/package.json
new file mode 100644
index 00000000..e2961b9f
--- /dev/null
+++ b/tooling/typescript/package.json
@@ -0,0 +1,9 @@
+{
+ "name": "@hoarder/tsconfig",
+ "private": true,
+ "version": "0.1.0",
+ "files": [
+ "base.json",
+ "node.json"
+ ]
+}
diff --git a/turbo.json b/turbo.json
new file mode 100644
index 00000000..92c6720a
--- /dev/null
+++ b/turbo.json
@@ -0,0 +1,49 @@
+{
+ "$schema": "https://turborepo.org/schema.json",
+ "globalDependencies": ["**/.env"],
+ "pipeline": {
+ "topo": {
+ "dependsOn": ["^topo"]
+ },
+ "build": {
+ "dependsOn": ["^build"],
+ "outputs": [
+ ".next/**",
+ "!.next/cache/**",
+ "next-env.d.ts",
+ ".expo/**",
+ ".output/**",
+ ".vercel/output/**"
+ ]
+ },
+ "dev": {
+ "persistent": true,
+ "cache": false
+ },
+ "format": {
+ "outputs": ["node_modules/.cache/.prettiercache"],
+ "outputMode": "new-only"
+ },
+ "lint": {
+ "dependsOn": ["^topo"],
+ "outputs": ["node_modules/.cache/.eslintcache"]
+ },
+ "typecheck": {
+ "dependsOn": ["^topo"],
+ "outputs": ["node_modules/.cache/tsbuildinfo.json"]
+ },
+ "clean": {
+ "cache": false
+ },
+ "//#clean": {
+ "cache": false
+ }
+ },
+ "globalEnv": [
+ "DATABASE_URL",
+ "AUTH_DISCORD_ID",
+ "AUTH_DISCORD_SECRET",
+ "AUTH_REDIRECT_PROXY_URL",
+ "AUTH_SECRET"
+ ]
+}