From a6159b9d55026c411fc940015141b69f5586980c Mon Sep 17 00:00:00 2001 From: Jesse Wierzbinski Date: Wed, 12 Jun 2024 13:48:58 -1000 Subject: [PATCH] feat(api): :sparkles: Preliminary captcha support database tables --- bun.lockb | Bin 262044 -> 262396 bytes drizzle/migrations/0026_neat_stranger.sql | 6 + drizzle/migrations/meta/0026_snapshot.json | 2137 ++++++++++++++++++++ drizzle/migrations/meta/_journal.json | 7 + drizzle/schema.ts | 16 + package.json | 1 + 6 files changed, 2167 insertions(+) create mode 100644 drizzle/migrations/0026_neat_stranger.sql create mode 100644 drizzle/migrations/meta/0026_snapshot.json diff --git a/bun.lockb b/bun.lockb index 49b8190ecd7cdbdae2b5258bc699bb7a6e78e5b3..67d1890e67c0bf3d8cd341a4a048632245b2b70f 100755 GIT binary patch delta 43873 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 delta 44091 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 Jt?#(), + expiresAt: timestamp("expires_at", { + precision: 3, + mode: "string", + }).default( + // 5 minutes + sql`NOW() + INTERVAL '5 minutes'`, + ), + createdAt: timestamp("created_at", { precision: 3, mode: "string" }) + .defaultNow() + .notNull(), +}); + export const Emojis = pgTable("Emojis", { id: uuid("id").default(sql`uuid_generate_v7()`).primaryKey().notNull(), shortcode: text("shortcode").notNull(), diff --git a/package.json b/package.json index e646d56f..b0aeb295 100644 --- a/package.json +++ b/package.json @@ -103,6 +103,7 @@ "@lysand-org/federation": "^1.2.0", "@oclif/core": "^4.0.4", "@tufjs/canonical-json": "^2.0.0", + "altcha-lib": "^0.3.0", "blurhash": "^2.0.5", "chalk": "^5.3.0", "cli-progress": "^3.12.0",