aboutsummaryrefslogtreecommitdiffstats
path: root/packages/trpc/models (follow)
Commit message (Collapse)AuthorAgeFilesLines
* feat: Add bookmark sources statistics section (#2110)Mohamed Bassem2025-11-091-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * feat: add bookmark sources statistics to usage stats page Add a new section to the usage statistics page that displays stats about bookmark sources (mobile, extension, web, API, CLI, etc). Changes: - Add bookmarksBySource field to user stats response schema - Implement backend query to fetch bookmarks grouped by source - Add new "Bookmark Sources" card to stats page UI - Add helper function to format source names for display * refactor: use stricter enum type for bookmark sources in stats API Replace generic string type with zBookmarkSourceSchema enum for better type safety and autocomplete. This ensures the API contract matches the database schema definition. Changes: - Import and use zBookmarkSourceSchema in user stats response - Define BookmarkSource type alias in frontend - Update formatSourceName to use stricter type and return non-nullable - Remove fallback case since all enum values are now handled * refactor: use shared BookmarkSource type and add i18n support - Replace local BookmarkSource type with canonical type from shared package using z.infer<typeof zBookmarkSourceSchema> - Add translation support for "Bookmark Sources" title and empty state - Add bookmark_sources.title and bookmark_sources.empty keys to English locale file This ensures type consistency across the codebase and prepares for future localization of the bookmark sources feature. * fix icons --------- Co-authored-by: Claude <noreply@anthropic.com>
* feat: Add support for user uploaded files (#2100)Mohamed Bassem2025-11-081-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * feat: add user file upload support for bookmarks Add a new "user-uploaded" asset type that allows users to upload and attach their own files to bookmarks from the attachment box in the bookmark preview page. Changes: - Add USER_UPLOADED asset type to database schema - Add userUploaded to zAssetTypesSchema for type safety - Update attachment permissions to allow attaching/detaching user files - Add fileName field to asset schema for displaying custom filenames - Add "Upload File" button in AttachmentBox component - Display actual filename for user-uploaded files - Allow any file type for user uploads (respects existing upload limits) - Add Upload icon for user-uploaded files Fixes #1863 related asset attachment improvements * fix: ensure fileName is returned and remove edit button for user uploads - Fix attachAsset mutation to fetch and return complete asset with fileName instead of just returning the input (which lacks fileName) - Remove replace/edit button for user-uploaded files - users can only delete and re-upload instead - This ensures the filename displays correctly in the UI immediately after upload Fixes fileName propagation issue for user-uploaded assets * fix asset file name * remove filename from attach asset api --------- Co-authored-by: Claude <noreply@anthropic.com>
* feat(rss): Add import tags from RSS feed categories (#2031)Mohamed Bassem2025-11-021-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * feat(feeds): Add import tags from RSS feed categories - Add importTags boolean field to rssFeedsTable schema (default: false) - Create database migration 0063_add_import_tags_to_feeds.sql - Update zod schemas (zFeedSchema, zNewFeedSchema, zUpdateFeedSchema) to include importTags - Update Feed model to handle importTags in create and update methods - Update feedWorker to: - Read title and categories from RSS parser - Attach categories as tags to bookmarks when importTags is enabled - Log warnings if tag attachment fails Resolves #1996 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Mohamed Bassem <MohamedBassem@users.noreply.github.com> * feat(web): Add importTags option to feed settings UI - Add importTags toggle to FeedsEditorDialog (create feed) - Add importTags toggle to EditFeedDialog (edit feed) - Display as a bordered switch control with descriptive text - Defaults to false for new feeds Co-authored-by: Mohamed Bassem <MohamedBassem@users.noreply.github.com> * fix migration * remove extra migration --------- Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Mohamed Bassem <MohamedBassem@users.noreply.github.com>
* feat: Revamp import experience (#2001)Mohamed Bassem2025-10-041-0/+180
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * WIP: import v2 * remove new session button * don't redirect after import * store and lint to root list * models + tests * redesign the progress * simplify the import session for ow * drop status from session schema * split the import session page * i18n * fix test * remove pagination * fix some colors in darkmode * one last fix * add privacy filter * privacy check * fix interactivity of import progress * fix test
* feat: recursive list delete (#1989)Mohamed Bassem2025-09-281-0/+35
|
* feat: Add tag search and pagination (#1987)Mohamed Bassem2025-09-281-30/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * feat: Add tag search and use in the homepage * use paginated query in the all tags view * wire the load more buttons * add skeleton to all tags page * fix attachedby aggregation * fix loading states * fix hasNextPage * use action buttons for load more buttons * migrate the tags auto complete to the search api * Migrate the tags editor to the new search API * Replace tag merging dialog with tag auto completion * Merge both search and list APIs * fix tags.list * add some tests for the endpoint * add relevance based sorting * change cursor * update the REST API * fix review comments * more fixes * fix lockfile * i18n * fix visible tags
* fix: optimize memory usage of tag listingMohamed Bassem2025-09-211-50/+62
|
* refactor: Move callsites to liteque to be behind a pluginMohamed Bassem2025-09-142-2/+2
|
* fix: fix tag flicker caused by tag sortingMohamed Bassem2025-09-071-0/+6
|
* refactor: Move highlights object into modelsMohamed Bassem2025-08-311-0/+171
|
* refactor: Move feed object into modelsMohamed Bassem2025-08-311-0/+119
|
* fix: Get rid of the userSetting table completelyMohamedBassem2025-08-031-27/+16
|
* refactor: Move webhook, users and tags into modelsMohamedBassem2025-08-023-0/+1253
|
* feat: Store large html content in the asset dbMohamed Bassem2025-07-061-1/+79
|
* fix: Change public image's signed tokens to be time aligned for better cachingMohamed Bassem2025-06-211-2/+10
|
* fix: Use a new public list metadata endpoint for metadata generationMohamed Bassem2025-06-071-6/+38
|
* feat: Add support for public lists (#1511)Mohamed Bassem2025-06-012-7/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * WIP: public lists * Drop viewing modes * Add the public endpoint for assets * regen the openapi spec * proper handling for different asset types * Add num bookmarks and a no bookmark banner * Correctly set page title * Add a not-found page * merge the RSS and public list endpoints * Add e2e tests for the public endpoints * Redesign the share list modal * Make NEXTAUTH_SECRET not required * propery render text bookmarks * rebase migration * fix public token tests * Add more tests
* feat: Generate RSS feeds from lists (#1507)Mohamed Bassem2025-05-312-2/+462
| | | | | | | | | | | * refactor: Move bookmark utils from shared-react to shared * Expose RSS feeds for lists * Add e2e tests * Slightly improve the look of the share dialog * allow specifying a limit in the rss endpoint
* fix(api): make PUT bookmark to a list idempotent (#1427)xuatz2025-05-171-4/+2
| | | | | * fix(api): make duplicate PUT /lists/:id/bookmarks/:id as allowed operation * apply pr comments
* Revert "fix: Fix smart lists not working in list search qualifiers". #1321Mohamed Bassem2025-04-281-17/+6
| | | | This reverts commit 6178736d64180f9bc8954099c90d54aa2f9f35f5.
* fix: Fix smart lists not working in list search qualifiers. Fixes #845Mohamed Bassem2025-04-271-6/+17
|
* feat: Implement generic rule engine (#1318)Mohamed Bassem2025-04-272-2/+250
| | | | | | | | | | | | | | | | | * Add schema for the new rule engine * Add rule engine backend logic * Implement the worker logic and event firing * Implement the UI changesfor the rule engine * Ensure that when a referenced list or tag are deleted, the corresponding event/action is * Dont show smart lists in rule engine events * Add privacy validations for attached tag and list ids * Move the rules logic into a models
* feat(web): Add support for merging lists (#1231)omnitrix2025-04-161-0/+46
| | | | | | | | | | | * feat: Support list merging * some fixes * move @hoarder to @karakeep --------- Co-authored-by: Mohamed Bassem <me@mbassem.com>
* feat(web): Optionally add short description to lists (#1225)ekambains2025-04-121-0/+2
| | | | | | | | | * feat(web): Optionally add short description to lists * regenerate openapi spec --------- Co-authored-by: Mohamed Bassem <me@mbassem.com>
* chore: Rename hoarder packages to karakeepMohamedBassem2025-04-121-4/+4
|
* refactor: Move the list logic into a separate modelMohamed Bassem2025-03-022-0/+282