ghostguild-org/server/utils
Jennie Robinson Faber 51230e5151 refactor(launch): simplify launch-readiness fixes
Follow-up to 208638e. Code review surfaced a few real issues; this
commit addresses them.

- login.post.js now uses the new sendMagicLink util instead of
  duplicating the jti/jwt/Resend/logActivity logic. Reduces 60 lines.
- sendMagicLink accepts an optional pre-loaded Member doc, skipping
  the redundant findOne when the caller already has one. customer.post.js
  passes the just-created/upgraded member, dropping signup from 3
  Mongo round-trips to 1 (lookup is gone; jti burn remains).
- sendMagicLink now lowercases the email defensively so callers don't
  have to remember.
- rateLimit.js: replaced an effectively-dead eviction line with a
  probabilistic sweep (~1% of calls scan and evict keys whose newest
  entry has aged out). Caps unbounded Map growth under random-key
  spraying.
- reconcile-payments.post.js: 401/403/404 from Helcim now bails out
  immediately instead of burning all 3 retry attempts; dry-run
  summary filters via the same RECONCILABLE_STATUSES set as apply
  mode so counts match.
- Deleted WHAT-comments and section banners per CLAUDE.md no-comment
  rule. Kept genuine WHY-comments (validateBeforeSave rationale,
  amount-IGNORED-for-tickets, sendConfirmation deliberately-omitted).

Tests: 758/760 passing (unchanged).
2026-04-25 19:34:16 +01:00
..
activityLog.js feat: board post + channel API routes 2026-04-14 16:25:42 +01:00
adminAlerts.js feat(admin): add restore dismissed alerts flow 2026-04-08 12:22:35 +01:00
auth.js feat(launch): security and correctness fixes for 2026-05-01 launch 2026-04-25 18:42:36 +01:00
checkSlackJoins.js feat(slack): add background job to detect Slack workspace joins 2026-04-09 22:32:48 +01:00
escapeHtml.js Implement OWASP ASVS L1 security remediation (Phases 0-2) 2026-03-01 12:53:18 +00:00
escapeRegex.js refactor: extract escapeRegex and validateTagSlugs server utils 2026-04-09 23:51:56 +01:00
helcim.js feat(launch): security and correctness fixes for 2026-05-01 launch 2026-04-25 18:42:36 +01:00
loadEvent.js fix(events): enforce series-pass, hidden, and deadline gates 2026-04-20 19:03:34 +01:00
magicLink.js refactor(launch): simplify launch-readiness fixes 2026-04-25 19:34:16 +01:00
memberNumber.js Huge bunch of UI/UX improvements and tweaks! 2026-04-06 16:17:12 +01:00
mongoose.js Enhance application structure: Add runtime configuration for environment variables, integrate new dependencies for Cloudinary and UI components, and refactor member management features including improved forms and member dashboard. Update styles and layout for better user experience. 2025-08-27 16:49:51 +01:00
oidc-mongodb-adapter.ts Add OIDC provider for Outline wiki SSO 2026-03-01 15:46:01 +00:00
oidc-provider.ts fix(auth): auto-submit OIDC logout form to eliminate xsrf desync 2026-04-15 18:26:51 +01:00
outline.js Member/Ecology revamp. 2026-04-14 09:25:09 +01:00
payments.js feat(payments): add upsertPaymentFromHelcim helper with idempotent insert 2026-04-20 13:15:38 +01:00
rateLimit.js refactor(launch): simplify launch-readiness fixes 2026-04-25 19:34:16 +01:00
resend.js feat(emails): warmer copy across invite, welcome, and event emails 2026-04-20 13:48:38 +01:00
schemas.js feat(launch): security and correctness fixes for 2026-05-01 launch 2026-04-25 18:42:36 +01:00
slack.ts feat(server): rename contributionTier → contributionAmount in routes + utils 2026-04-19 18:44:29 +01:00
syncWikiArticles.js Member/Ecology revamp. 2026-04-14 09:25:09 +01:00
tickets.js fix(events): gate members-only events in calculateTicketPrice 2026-04-20 20:12:24 +01:00
validateBody.js Add Zod validation, fix mass assignment, remove test endpoints and dead code 2026-03-01 14:02:46 +00:00
validateTagSlugs.js refactor: extract escapeRegex and validateTagSlugs server utils 2026-04-09 23:51:56 +01:00