Files
hackdex-website/package.json
Jared Schoeny e0747efb82
Some checks failed
Deploy Supabase Migrations to Production / migrate (push) Has been cancelled
Add Discord review threads and a Resend reply loop for submitted hacks (#76)
* Add a Discord review thread and Resend reply loop for submitted hacks.

Admins can email submitters from a forum thread and inbound replies land back in that same thread.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Add an admin endpoint to register Discord guild commands.

Local still uses the npm script; production can hit /api/discord/register while logged in as an admin.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Add an admin backup to create a missing Discord review thread.

If submit fails to open a thread, an admin can create one from the hack details menu.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Match inbound review replies when the plus-address token is lowercased.

Mail delivers To in lowercase, so tokens are now hex and lookups are case-insensitive.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Use distinct review embeds for /reply and inbound creator mail.

/reply posts a green embed with subject, Discord avatar, and the creator username; thread replies drop the To field.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Gate /reply by Discord role and mark inbound From as verified.

DISCORD_REPLY_ROLE_IDS is required; creator mail still posts when the address does not match the account.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Retry inbound review mail when Discord does not post the embed.

A failed thread post no longer records the email as processed or returns 200 to Resend.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Notify the admin webhook when a review thread cannot be loaded.

Patch upload no longer stays silent if getHackReviewThread throws.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Keep the /reply ack honest after the review email is sent.

A later Discord or deferred-response failure no longer claims the email failed.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Make the admin review message stand out in the reply email.

The quote sits in a rose-tinted box so it is not just another paragraph.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Tag review threads as claimed or unclaimed and announce claims.

New and backup-created threads get the matching forum tag; dashboard claims swap Unclaimed to Claimed.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-22 22:07:33 -06:00

67 lines
2.0 KiB
JSON

{
"name": "pokemon-romhack-platform",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev --turbopack",
"build": "next build --turbopack",
"start": "next start",
"db:pull": "supabase db pull && supabase migration up && supabase gen types --local > src/types/db.ts",
"discord:register": "node scripts/register-discord-commands.mjs",
"postinstall": "patch-package"
},
"dependencies": {
"@dnd-kit/core": "6.3.1",
"@dnd-kit/sortable": "10.0.0",
"@dnd-kit/utilities": "3.2.2",
"@headlessui/react": "^2.2.9",
"@supabase/ssr": "^0.7.0",
"@supabase/supabase-js": "^2.74.0",
"@types/serialize-javascript": "^5.0.4",
"@vercel/analytics": "^1.6.1",
"@vercel/edge-config": "^1.4.3",
"canvas-confetti": "^1.9.4",
"chart.js": "^4.5.1",
"discord-interactions": "^4.4.0",
"embla-carousel-react": "8.6.0",
"js-sha1": "^0.7.0",
"mdast-util-to-hast": "^13.2.1",
"minio": "^8.0.6",
"mjml": "^5.3.0",
"next": "^15.5.8",
"next-turnstile": "^1.0.7",
"nodemailer": "^7.0.11",
"react": "^19.1.2",
"react-chartjs-2": "^5.3.1",
"react-dom": "^19.1.2",
"react-icons": "^5.5.0",
"react-markdown": "^10",
"rehype-slug": "^6.0.0",
"remark-custom-header-id": "^1.0.0",
"remark-gfm": "4.0.0",
"resend": "^6.22.0",
"rom-patcher-js": "github:Hackdex-App/RomPatcher.js",
"schema-dts": "^1.1.5",
"serialize-javascript": "^7.0.0",
"sonner": "^2.0.7",
"unist-util-visit": "^5.0.0",
"uuid": "^13.0.0"
},
"devDependencies": {
"@tailwindcss/postcss": "^4",
"@tailwindcss/typography": "^0.5.19",
"@types/canvas-confetti": "^1.9.0",
"@types/mjml": "^5.0.0",
"@types/mjml-core": "^5.0.0",
"@types/node": "^20",
"@types/nodemailer": "^7.0.4",
"@types/react": "^19",
"@types/react-dom": "^19",
"discord-api-types": "^0.38.32",
"patch-package": "^8.0.0",
"raw-loader": "^4.0.2",
"tailwindcss": "^4",
"typescript": "^5"
}
}