Add pack registry #434
No reviewers
Labels
No labels
breaking change
duplicate
good first issue
help wanted
invalid
question
scope: card
scope: docs
scope: game
scope: registry
scope: script
scope: tool
scope: universe
tracker
type: bug
type: card request
type: documentation
type: enhancement
type: improvement
type: parity
wontfix
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
LunarTides/Hearthstone.js!434
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "registry"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #427
I have a few ideas about what features the registry can support:
Necessary
Packdb column.meta.jsonc.Carddb column.isLatestVersionon packs / cards./static/assets/packs/{packUUID}/{packVersion}/{packUUID}.7z/static/assetsdirectly.Extra
and cardsSummary by CodeRabbit
New Features
Dependencies
7zip-minfor archive handling; removedstrip-ansidependency.✏️ Tip: You can customize this high-level summary in your review settings.
📝 Walkthrough
Walkthrough
Introduces a comprehensive web-based pack registry system under
sites/registry/with PostgreSQL database, token-based authentication, REST API endpoints, and Svelte UI components. Updates root tooling to support 7zip compression and Bun's native ANSI stripping.Changes
.gitignore,biome.json,package.json,tsconfig.jsonsrc/functions/color.ts,tools/packager.tssites/registry/.env.example,.gitignore,.npmrc,.prettierignore,.prettierrc,compose.yaml,drizzle.config.ts,eslint.config.js,package.json,svelte.config.js,tsconfig.json,vite.config.tssites/registry/src/lib/db/schema.ts,src/lib/db/index.ts,src/lib/db/pack.ts,src/lib/db/comment.ts,src/lib/db/setting.tssites/registry/src/lib/server/auth.ts,src/lib/user.ts,src/lib/pack.tssites/registry/src/routes/api/v1/user/login/+server.ts,register/+server.ts,[uuid]/+server.ts,sites/registry/src/routes/+page.server.tssites/registry/src/routes/api/v1/pack/[uuid]/+server.ts,upload/+server.ts,like/+server.ts,dislike/+server.tssites/registry/src/routes/api/v1/pack/[uuid]/versions/[version]/+server.ts,approve/+server.ts,cards/+server.ts,download/+server.ts,files/+server.ts,files/[...path]/+server.tssites/registry/src/routes/api/v1/pack/[uuid]/comments/+server.ts,[commentId]/+server.ts,[commentId]/like/+server.ts,[commentId]/dislike/+server.ts,[commentId]/heart/+server.tssites/registry/src/routes/api/v1/search/packs/+server.ts,cards/+server.ts,notifications/+server.ts,[uuid]/+server.ts,clear/+server.ts,feeds/packs/waiting-for-approval.xml/+server.tssites/registry/src/lib/components/badge.svelte,card-big.svelte,card-small.svelte,file-tree.svelte,pack-big.svelte,pack-small.svelte,user-big.sveltesites/registry/src/routes/login/+page.server.ts,+page.svelte,dashboard/**/+layout.server.ts,dashboard/packs/+page.svelte,dashboard/admin/settings/+page.sveltesites/registry/src/routes/pack/[uuid]/+layout.server.ts,+page.server.ts,+page.svelte,versions/+page.svelte,versions/[version]/+layout.server.ts,versions/[version]/+layout.svelte,versions/[version]/+page.svelte,versions/[version]/files/+page.server.ts,versions/all/+page.server.tssites/registry/src/routes/card/[uuid]/+layout.server.ts,+page.svelte,versions/+page.svelte,versions/[version]/+page.svelte,user/[uuid]/+layout.server.ts,+page.server.ts,+page.sveltesites/registry/src/routes/search/+page.server.ts,+page.svelte,notifications/+page.server.ts,+page.svelte,[uuid]/+page.server.tssites/registry/src/routes/upload/+page.server.ts,+page.svelte,+layout.server.ts,+layout.svelte,+page.svelte,app.d.ts,app.html,hooks.server.ts,layout.csssites/registry/static/robots.txtSequence Diagram(s)
Estimated code review effort
🎯 5 (Critical) | ⏱️ ~120 minutes
Possibly related issues
#427: Directly implements the "Add npm-like registry for packs" feature with database schema, authentication, pack/card management, search, upload/download, moderation tools, and approval workflows.Possibly related PRs
#438: Both PRs modifytools/packager.tsto handle 7zip-based pack discovery, import/export, and compression workflows.Suggested labels
scope: feature✨ Finishing touches
🧪 Generate unit tests (beta)
registry📜 Recent review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
📥 Commits
Reviewing files that changed from the base of the PR and between
89102c8f36and34fec4be0b.⛔ Files ignored due to path filters (3)
bun.lockis excluded by!**/*.locksites/registry/bun.lockis excluded by!**/*.locksites/registry/src/lib/assets/favicon.svgis excluded by!**/*.svg📒 Files selected for processing (108)
.gitignorebiome.jsonpackage.jsonsites/registry/.env.examplesites/registry/.gitignoresites/registry/.npmrcsites/registry/.prettierignoresites/registry/.prettierrcsites/registry/README.mdsites/registry/compose.yamlsites/registry/drizzle.config.tssites/registry/eslint.config.jssites/registry/package.jsonsites/registry/src/app.d.tssites/registry/src/app.htmlsites/registry/src/hooks.server.tssites/registry/src/lib/api/schemas.tssites/registry/src/lib/api/types.tssites/registry/src/lib/components/badge.sveltesites/registry/src/lib/components/card-big.sveltesites/registry/src/lib/components/card-small.sveltesites/registry/src/lib/components/file-tree.sveltesites/registry/src/lib/components/pack-big.sveltesites/registry/src/lib/components/pack-small.sveltesites/registry/src/lib/components/user-big.sveltesites/registry/src/lib/db/schema.tssites/registry/src/lib/index.tssites/registry/src/lib/pack.tssites/registry/src/lib/server/auth.tssites/registry/src/lib/server/db/comment.tssites/registry/src/lib/server/db/index.tssites/registry/src/lib/server/db/pack.tssites/registry/src/lib/server/db/setting.tssites/registry/src/lib/user.tssites/registry/src/routes/+layout.server.tssites/registry/src/routes/+layout.sveltesites/registry/src/routes/+page.server.tssites/registry/src/routes/+page.sveltesites/registry/src/routes/api/v1/feeds/packs/waiting-for-approval.xml/+server.tssites/registry/src/routes/api/v1/notifications/+server.tssites/registry/src/routes/api/v1/notifications/[uuid]/+server.tssites/registry/src/routes/api/v1/notifications/clear/+server.tssites/registry/src/routes/api/v1/pack/[uuid]/+server.tssites/registry/src/routes/api/v1/pack/[uuid]/comments/+server.tssites/registry/src/routes/api/v1/pack/[uuid]/comments/[commentId]/+server.tssites/registry/src/routes/api/v1/pack/[uuid]/comments/[commentId]/dislike/+server.tssites/registry/src/routes/api/v1/pack/[uuid]/comments/[commentId]/heart/+server.tssites/registry/src/routes/api/v1/pack/[uuid]/comments/[commentId]/like/+server.tssites/registry/src/routes/api/v1/pack/[uuid]/dislike/+server.tssites/registry/src/routes/api/v1/pack/[uuid]/like/+server.tssites/registry/src/routes/api/v1/pack/[uuid]/upload/+server.tssites/registry/src/routes/api/v1/pack/[uuid]/versions/[version]/+server.tssites/registry/src/routes/api/v1/pack/[uuid]/versions/[version]/approve/+server.tssites/registry/src/routes/api/v1/pack/[uuid]/versions/[version]/cards/+server.tssites/registry/src/routes/api/v1/pack/[uuid]/versions/[version]/download/+server.tssites/registry/src/routes/api/v1/pack/[uuid]/versions/[version]/files/+server.tssites/registry/src/routes/api/v1/pack/[uuid]/versions/[version]/files/[...path]/+server.tssites/registry/src/routes/api/v1/search/cards/+server.tssites/registry/src/routes/api/v1/search/packs/+server.tssites/registry/src/routes/api/v1/user/[uuid]/+server.tssites/registry/src/routes/api/v1/user/login/+server.tssites/registry/src/routes/api/v1/user/register/+server.tssites/registry/src/routes/card/[uuid]/+layout.server.tssites/registry/src/routes/card/[uuid]/+page.sveltesites/registry/src/routes/card/[uuid]/versions/+page.sveltesites/registry/src/routes/card/[uuid]/versions/[version]/+page.sveltesites/registry/src/routes/dashboard/+layout.server.tssites/registry/src/routes/dashboard/+layout.sveltesites/registry/src/routes/dashboard/admin/+layout.server.tssites/registry/src/routes/dashboard/admin/settings/+page.sveltesites/registry/src/routes/dashboard/packs/+page.sveltesites/registry/src/routes/layout.csssites/registry/src/routes/login/+page.server.tssites/registry/src/routes/login/+page.sveltesites/registry/src/routes/notifications/+page.server.tssites/registry/src/routes/notifications/+page.sveltesites/registry/src/routes/notifications/[uuid]/+page.server.tssites/registry/src/routes/pack/[uuid]/+layout.server.tssites/registry/src/routes/pack/[uuid]/+page.server.tssites/registry/src/routes/pack/[uuid]/+page.sveltesites/registry/src/routes/pack/[uuid]/comments/+page.server.tssites/registry/src/routes/pack/[uuid]/comments/[commentId]/+page.server.tssites/registry/src/routes/pack/[uuid]/edit/+page.sveltesites/registry/src/routes/pack/[uuid]/versions/+page.sveltesites/registry/src/routes/pack/[uuid]/versions/[version]/+layout.server.tssites/registry/src/routes/pack/[uuid]/versions/[version]/+layout.sveltesites/registry/src/routes/pack/[uuid]/versions/[version]/+page.server.tssites/registry/src/routes/pack/[uuid]/versions/[version]/+page.sveltesites/registry/src/routes/pack/[uuid]/versions/[version]/files/+page.server.tssites/registry/src/routes/pack/[uuid]/versions/[version]/files/[...path]/+page.server.tssites/registry/src/routes/pack/[uuid]/versions/[version]/files/[...path]/+page.sveltesites/registry/src/routes/pack/[uuid]/versions/all/+page.server.tssites/registry/src/routes/pack/[uuid]/versions/all/+page.sveltesites/registry/src/routes/search/+page.server.tssites/registry/src/routes/search/+page.sveltesites/registry/src/routes/upload/+page.server.tssites/registry/src/routes/upload/+page.sveltesites/registry/src/routes/user/[uuid]/+layout.server.tssites/registry/src/routes/user/[uuid]/+page.server.tssites/registry/src/routes/user/[uuid]/+page.sveltesites/registry/src/routes/user/[uuid]/delete/+page.sveltesites/registry/static/robots.txtsites/registry/svelte.config.jssites/registry/tsconfig.jsonsites/registry/vite.config.tssrc/functions/color.tstools/packager.tstsconfig.jsonThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
❤️ Share
Comment
@coderabbitai helpto get the list of available commands and usage tips.I need to do some cleaning up and resolving todo comments, since there's a lot. Duplicate code, lack of consistent i18n, bugs gallore, etc... I'm surprised this only adds ~4.5k loc with this level of quality. Then again, fixing these issues might cause the loc to spike, not that it matters too much...
Either way, none of this code can be shipped as is. The potential for bugs is way too high.
Merging so that I can deploy to Vercel. See #443