diff --git a/backend/src/database/index.ts b/backend/src/database/index.ts index 260409e..01ab295 100644 --- a/backend/src/database/index.ts +++ b/backend/src/database/index.ts @@ -23,6 +23,6 @@ export interface PreparedStatement { raw(): Promise } -export function getDatabase(env: Pick): Database { +export async function getDatabase(env: Pick): Promise { return d1(env) } diff --git a/backend/src/middleware/main.ts b/backend/src/middleware/main.ts index dd10e80..f226e8b 100644 --- a/backend/src/middleware/main.ts +++ b/backend/src/middleware/main.ts @@ -97,7 +97,7 @@ export async function main(context: EventContext) { // configuration, which are used to verify the JWT. // TODO: since we don't load the instance configuration anymore, we // don't need to load the user before anymore. - if (!(await loadContextData(getDatabase(context.env), clientId, payload.email, context))) { + if (!(await loadContextData(await getDatabase(context.env), clientId, payload.email, context))) { return errors.notAuthorized('failed to load context data') } diff --git a/consumer/src/deliver.ts b/consumer/src/deliver.ts index c033825..ca0ed22 100644 --- a/consumer/src/deliver.ts +++ b/consumer/src/deliver.ts @@ -8,12 +8,12 @@ import { deliverToActor } from 'wildebeest/backend/src/activitypub/deliver' export async function handleDeliverMessage(env: Env, actor: Actor, message: DeliverMessageBody) { const toActorId = new URL(message.toActorId) - const targetActor = await actors.getAndCache(toActorId, getDatabase(env)) + const targetActor = await actors.getAndCache(toActorId, await getDatabase(env)) if (targetActor === null) { console.warn(`actor ${toActorId} not found`) return } - const signingKey = await getSigningKey(message.userKEK, getDatabase(env), actor) + const signingKey = await getSigningKey(message.userKEK, await getDatabase(env), actor) await deliverToActor(signingKey, actor, targetActor, message.activity, env.DOMAIN) } diff --git a/consumer/src/inbox.ts b/consumer/src/inbox.ts index 35687c4..5ef3227 100644 --- a/consumer/src/inbox.ts +++ b/consumer/src/inbox.ts @@ -9,7 +9,7 @@ import type { Env } from './' export async function handleInboxMessage(env: Env, actor: Actor, message: InboxMessageBody) { const domain = env.DOMAIN - const db = getDatabase(env) + const db = await getDatabase(env) const adminEmail = env.ADMIN_EMAIL const cache = cacheFromEnv(env) const activity = message.activity diff --git a/consumer/src/index.ts b/consumer/src/index.ts index bf070b1..fa6d72e 100644 --- a/consumer/src/index.ts +++ b/consumer/src/index.ts @@ -20,7 +20,7 @@ export type Env = { export default { async queue(batch: MessageBatch, env: Env, ctx: ExecutionContext) { const sentry = initSentryQueue(env, ctx) - const db = getDatabase(env) + const db = await getDatabase(env) try { for (const message of batch.messages) { diff --git a/frontend/src/routes/(admin)/oauth/authorize/index.tsx b/frontend/src/routes/(admin)/oauth/authorize/index.tsx index 0085774..e2fc9fb 100644 --- a/frontend/src/routes/(admin)/oauth/authorize/index.tsx +++ b/frontend/src/routes/(admin)/oauth/authorize/index.tsx @@ -14,7 +14,7 @@ export const clientLoader = loader$, { DATABASE: D1Database }>(a const client_id = query.get('client_id') || '' let client: Client | null = null try { - client = await getClientById(getDatabase(platform), client_id) + client = await getClientById(await getDatabase(platform), client_id) } catch (e: unknown) { const error = e as { stack: string; cause: string } console.warn(error.stack, error.cause) @@ -49,10 +49,10 @@ export const userLoader = loader$< throw html(500, getErrorHtml("The Access JWT doesn't contain an email")) } - const person = await getPersonByEmail(getDatabase(platform), payload.email) + const person = await getPersonByEmail(await getDatabase(platform), payload.email) if (person === null) { const isFirstLogin = true - const res = await buildRedirect(getDatabase(platform), request as Request, isFirstLogin, jwt.value) + const res = await buildRedirect(await getDatabase(platform), request as Request, isFirstLogin, jwt.value) if (res.status === 302) { throw redirect(302, res.headers.get('location') || '') } else { diff --git a/frontend/src/routes/(frontend)/[accountId]/[statusId]/index.tsx b/frontend/src/routes/(frontend)/[accountId]/[statusId]/index.tsx index 06951cd..0b9a3b2 100644 --- a/frontend/src/routes/(frontend)/[accountId]/[statusId]/index.tsx +++ b/frontend/src/routes/(frontend)/[accountId]/[statusId]/index.tsx @@ -19,7 +19,7 @@ export const statusLoader = loader$< let statusText = '' try { const statusResponse = await statusAPI.handleRequestGet( - getDatabase(platform), + await getDatabase(platform), params.statusId, domain, {} as Person @@ -37,7 +37,7 @@ export const statusLoader = loader$< const statusTextContent = await getTextContent(status.content) try { - const contextResponse = await contextAPI.handleRequest(domain, getDatabase(platform), params.statusId) + const contextResponse = await contextAPI.handleRequest(domain, await getDatabase(platform), params.statusId) const contextText = await contextResponse.text() const context = JSON.parse(contextText ?? null) as StatusContext | null if (!context) { diff --git a/frontend/src/routes/(frontend)/[accountId]/index.tsx b/frontend/src/routes/(frontend)/[accountId]/index.tsx index 8cf8de8..7afb0d2 100644 --- a/frontend/src/routes/(frontend)/[accountId]/index.tsx +++ b/frontend/src/routes/(frontend)/[accountId]/index.tsx @@ -22,7 +22,7 @@ export const statusesLoader = loader$< const handle = parseHandle(accountId) accountId = handle.localPart - const response = await getLocalStatuses(request as Request, getDatabase(platform), handle, 0, false) + const response = await getLocalStatuses(request as Request, await getDatabase(platform), handle, 0, false) statuses = await response.json>() } catch { throw html( diff --git a/frontend/src/routes/(frontend)/[accountId]/layout.tsx b/frontend/src/routes/(frontend)/[accountId]/layout.tsx index 7985839..109b766 100644 --- a/frontend/src/routes/(frontend)/[accountId]/layout.tsx +++ b/frontend/src/routes/(frontend)/[accountId]/layout.tsx @@ -25,14 +25,14 @@ export const accountPageLoader = loader$< const accountId = url.pathname.split('/')[1] try { - const statusResponse = await statusAPI.handleRequestGet(getDatabase(platform), params.statusId, domain) + const statusResponse = await statusAPI.handleRequestGet(await getDatabase(platform), params.statusId, domain) const statusText = await statusResponse.text() isValidStatus = !!statusText } catch { isValidStatus = false } - account = await getAccount(domain, accountId, getDatabase(platform)) + account = await getAccount(domain, accountId, await getDatabase(platform)) } catch { throw html( 500, diff --git a/frontend/src/routes/(frontend)/[accountId]/with_replies/index.tsx b/frontend/src/routes/(frontend)/[accountId]/with_replies/index.tsx index 8009950..7d89c9a 100644 --- a/frontend/src/routes/(frontend)/[accountId]/with_replies/index.tsx +++ b/frontend/src/routes/(frontend)/[accountId]/with_replies/index.tsx @@ -23,7 +23,7 @@ export const statusesLoader = loader$< const handle = parseHandle(accountId) accountId = handle.localPart - const response = await getLocalStatuses(request as Request, getDatabase(platform), handle, 0, true) + const response = await getLocalStatuses(request as Request, await getDatabase(platform), handle, 0, true) statuses = await response.json>() } catch { throw html( diff --git a/frontend/src/routes/(frontend)/explore/index.tsx b/frontend/src/routes/(frontend)/explore/index.tsx index 932f4ff..cd39c0a 100644 --- a/frontend/src/routes/(frontend)/explore/index.tsx +++ b/frontend/src/routes/(frontend)/explore/index.tsx @@ -11,7 +11,7 @@ export const statusesLoader = loader$, { DATABASE: D1D async ({ platform, html }) => { try { // TODO: use the "trending" API endpoint here. - const response = await timelines.handleRequest(platform.domain, getDatabase(platform)) + const response = await timelines.handleRequest(platform.domain, await getDatabase(platform)) const results = await response.text() // Manually parse the JSON to ensure that Qwik finds the resulting objects serializable. return JSON.parse(results) as MastodonStatus[] diff --git a/frontend/src/routes/(frontend)/public/index.tsx b/frontend/src/routes/(frontend)/public/index.tsx index f32a349..cbb33d7 100644 --- a/frontend/src/routes/(frontend)/public/index.tsx +++ b/frontend/src/routes/(frontend)/public/index.tsx @@ -12,7 +12,7 @@ export const statusesLoader = loader$, { DATABASE: D1D async ({ platform, html }) => { try { // TODO: use the "trending" API endpoint here. - const response = await timelines.handleRequest(platform.domain, getDatabase(platform)) + const response = await timelines.handleRequest(platform.domain, await getDatabase(platform)) const results = await response.text() // Manually parse the JSON to ensure that Qwik finds the resulting objects serializable. return JSON.parse(results) as MastodonStatus[] diff --git a/frontend/src/routes/(frontend)/public/local/index.tsx b/frontend/src/routes/(frontend)/public/local/index.tsx index f756133..c2e8833 100644 --- a/frontend/src/routes/(frontend)/public/local/index.tsx +++ b/frontend/src/routes/(frontend)/public/local/index.tsx @@ -12,7 +12,7 @@ export const statusesLoader = loader$, { DATABASE: D1D async ({ platform, html }) => { try { // TODO: use the "trending" API endpoint here. - const response = await timelines.handleRequest(platform.domain, getDatabase(platform), { local: true }) + const response = await timelines.handleRequest(platform.domain, await getDatabase(platform), { local: true }) const results = await response.text() // Manually parse the JSON to ensure that Qwik finds the resulting objects serializable. return JSON.parse(results) as MastodonStatus[] diff --git a/functions/.well-known/webfinger.ts b/functions/.well-known/webfinger.ts index 9786aba..72d79e1 100644 --- a/functions/.well-known/webfinger.ts +++ b/functions/.well-known/webfinger.ts @@ -7,7 +7,7 @@ import type { WebFingerResponse } from '../../backend/src/webfinger' import { type Database, getDatabase } from 'wildebeest/backend/src/database' export const onRequest: PagesFunction = async ({ request, env }) => { - return handleRequest(request, getDatabase(env)) + return handleRequest(request, await getDatabase(env)) } const headers = { diff --git a/functions/ap/o/[id].ts b/functions/ap/o/[id].ts index 6ead150..8c401ff 100644 --- a/functions/ap/o/[id].ts +++ b/functions/ap/o/[id].ts @@ -5,7 +5,7 @@ import * as objects from 'wildebeest/backend/src/activitypub/objects' export const onRequest: PagesFunction = async ({ params, request, env }) => { const domain = new URL(request.url).hostname - return handleRequest(domain, getDatabase(env), params.id as string) + return handleRequest(domain, await getDatabase(env), params.id as string) } const headers = { diff --git a/functions/ap/users/[id].ts b/functions/ap/users/[id].ts index 3ef7862..ddfba06 100644 --- a/functions/ap/users/[id].ts +++ b/functions/ap/users/[id].ts @@ -7,7 +7,7 @@ import * as actors from 'wildebeest/backend/src/activitypub/actors' export const onRequest: PagesFunction = async ({ params, request, env }) => { const domain = new URL(request.url).hostname - return handleRequest(domain, getDatabase(env), params.id as string) + return handleRequest(domain, await getDatabase(env), params.id as string) } const headers = { diff --git a/functions/ap/users/[id]/followers.ts b/functions/ap/users/[id]/followers.ts index 931be69..b865bad 100644 --- a/functions/ap/users/[id]/followers.ts +++ b/functions/ap/users/[id]/followers.ts @@ -11,7 +11,7 @@ const headers = { export const onRequest: PagesFunction = async ({ params, request, env }) => { const domain = new URL(request.url).hostname - return handleRequest(domain, getDatabase(env), params.id as string) + return handleRequest(domain, await getDatabase(env), params.id as string) } export async function handleRequest(domain: string, db: Database, id: string): Promise { diff --git a/functions/ap/users/[id]/followers/page.ts b/functions/ap/users/[id]/followers/page.ts index 499b1f3..ff23c70 100644 --- a/functions/ap/users/[id]/followers/page.ts +++ b/functions/ap/users/[id]/followers/page.ts @@ -8,7 +8,7 @@ import type { Env } from 'wildebeest/backend/src/types/env' export const onRequest: PagesFunction = async ({ request, env, params }) => { const domain = new URL(request.url).hostname - return handleRequest(domain, getDatabase(env), params.id as string) + return handleRequest(domain, await getDatabase(env), params.id as string) } const headers = { diff --git a/functions/ap/users/[id]/following.ts b/functions/ap/users/[id]/following.ts index 5e40c08..0e09c44 100644 --- a/functions/ap/users/[id]/following.ts +++ b/functions/ap/users/[id]/following.ts @@ -11,7 +11,7 @@ const headers = { export const onRequest: PagesFunction = async ({ params, request, env }) => { const domain = new URL(request.url).hostname - return handleRequest(domain, getDatabase(env), params.id as string) + return handleRequest(domain, await getDatabase(env), params.id as string) } export async function handleRequest(domain: string, db: Database, id: string): Promise { diff --git a/functions/ap/users/[id]/following/page.ts b/functions/ap/users/[id]/following/page.ts index f79ee9c..bef7e30 100644 --- a/functions/ap/users/[id]/following/page.ts +++ b/functions/ap/users/[id]/following/page.ts @@ -8,7 +8,7 @@ import type { Env } from 'wildebeest/backend/src/types/env' export const onRequest: PagesFunction = async ({ request, env, params }) => { const domain = new URL(request.url).hostname - return handleRequest(domain, getDatabase(env), params.id as string) + return handleRequest(domain, await getDatabase(env), params.id as string) } const headers = { diff --git a/functions/ap/users/[id]/inbox.ts b/functions/ap/users/[id]/inbox.ts index 0913eae..52bd370 100644 --- a/functions/ap/users/[id]/inbox.ts +++ b/functions/ap/users/[id]/inbox.ts @@ -41,7 +41,7 @@ export const onRequest: PagesFunction = async ({ params, request, env const domain = new URL(request.url).hostname return handleRequest( domain, - getDatabase(env), + await getDatabase(env), params.id as string, activity, env.QUEUE, diff --git a/functions/ap/users/[id]/outbox.ts b/functions/ap/users/[id]/outbox.ts index 8ba8d9a..a7717e4 100644 --- a/functions/ap/users/[id]/outbox.ts +++ b/functions/ap/users/[id]/outbox.ts @@ -7,7 +7,7 @@ import type { Env } from 'wildebeest/backend/src/types/env' export const onRequest: PagesFunction = async ({ request, env, params }) => { const domain = new URL(request.url).hostname - return handleRequest(domain, getDatabase(env), params.id as string, env.userKEK) + return handleRequest(domain, await getDatabase(env), params.id as string, env.userKEK) } const headers = { diff --git a/functions/ap/users/[id]/outbox/page.ts b/functions/ap/users/[id]/outbox/page.ts index 6b91c55..b574a63 100644 --- a/functions/ap/users/[id]/outbox/page.ts +++ b/functions/ap/users/[id]/outbox/page.ts @@ -12,7 +12,7 @@ import { PUBLIC_GROUP } from 'wildebeest/backend/src/activitypub/activities' export const onRequest: PagesFunction = async ({ request, env, params }) => { const domain = new URL(request.url).hostname - return handleRequest(domain, getDatabase(env), params.id as string) + return handleRequest(domain, await getDatabase(env), params.id as string) } const headers = { diff --git a/functions/api/v1/accounts/[id].ts b/functions/api/v1/accounts/[id].ts index e3861d1..8101380 100644 --- a/functions/api/v1/accounts/[id].ts +++ b/functions/api/v1/accounts/[id].ts @@ -13,7 +13,7 @@ const headers = { export const onRequest: PagesFunction = async ({ request, env, params }) => { const domain = new URL(request.url).hostname - return handleRequest(domain, params.id as string, getDatabase(env)) + return handleRequest(domain, params.id as string, await getDatabase(env)) } export async function handleRequest(domain: string, id: string, db: Database): Promise { diff --git a/functions/api/v1/accounts/[id]/follow.ts b/functions/api/v1/accounts/[id]/follow.ts index ad74505..da9b916 100644 --- a/functions/api/v1/accounts/[id]/follow.ts +++ b/functions/api/v1/accounts/[id]/follow.ts @@ -13,7 +13,7 @@ import type { Relationship } from 'wildebeest/backend/src/types/account' import { addFollowing } from 'wildebeest/backend/src/mastodon/follow' export const onRequest: PagesFunction = async ({ request, env, params, data }) => { - return handleRequest(request, getDatabase(env), params.id as string, data.connectedActor, env.userKEK) + return handleRequest(request, await getDatabase(env), params.id as string, data.connectedActor, env.userKEK) } export async function handleRequest( diff --git a/functions/api/v1/accounts/[id]/followers.ts b/functions/api/v1/accounts/[id]/followers.ts index 21b4e6d..f093537 100644 --- a/functions/api/v1/accounts/[id]/followers.ts +++ b/functions/api/v1/accounts/[id]/followers.ts @@ -16,7 +16,7 @@ import { getFollowers, loadActors } from 'wildebeest/backend/src/activitypub/act import * as localFollow from 'wildebeest/backend/src/mastodon/follow' export const onRequest: PagesFunction = async ({ params, request, env }) => { - return handleRequest(request, getDatabase(env), params.id as string) + return handleRequest(request, await getDatabase(env), params.id as string) } export async function handleRequest(request: Request, db: Database, id: string): Promise { diff --git a/functions/api/v1/accounts/[id]/following.ts b/functions/api/v1/accounts/[id]/following.ts index 8db6e49..cc2ecac 100644 --- a/functions/api/v1/accounts/[id]/following.ts +++ b/functions/api/v1/accounts/[id]/following.ts @@ -16,7 +16,7 @@ import * as webfinger from 'wildebeest/backend/src/webfinger' import { getFollowing, loadActors } from 'wildebeest/backend/src/activitypub/actors/follow' export const onRequest: PagesFunction = async ({ params, request, env }) => { - return handleRequest(request, getDatabase(env), params.id as string) + return handleRequest(request, await getDatabase(env), params.id as string) } export async function handleRequest(request: Request, db: Database, id: string): Promise { diff --git a/functions/api/v1/accounts/[id]/statuses.ts b/functions/api/v1/accounts/[id]/statuses.ts index a79fe5e..ae44cfe 100644 --- a/functions/api/v1/accounts/[id]/statuses.ts +++ b/functions/api/v1/accounts/[id]/statuses.ts @@ -26,7 +26,7 @@ const headers = { } export const onRequest: PagesFunction = async ({ request, env, params }) => { - return handleRequest(request, getDatabase(env), params.id as string) + return handleRequest(request, await getDatabase(env), params.id as string) } export async function handleRequest(request: Request, db: Database, id: string): Promise { diff --git a/functions/api/v1/accounts/[id]/unfollow.ts b/functions/api/v1/accounts/[id]/unfollow.ts index 693022b..3b8ca1f 100644 --- a/functions/api/v1/accounts/[id]/unfollow.ts +++ b/functions/api/v1/accounts/[id]/unfollow.ts @@ -12,7 +12,7 @@ import type { Relationship } from 'wildebeest/backend/src/types/account' import { removeFollowing } from 'wildebeest/backend/src/mastodon/follow' export const onRequest: PagesFunction = async ({ request, env, params, data }) => { - return handleRequest(request, getDatabase(env), params.id as string, data.connectedActor, env.userKEK) + return handleRequest(request, await getDatabase(env), params.id as string, data.connectedActor, env.userKEK) } export async function handleRequest( diff --git a/functions/api/v1/accounts/relationships.ts b/functions/api/v1/accounts/relationships.ts index 0894f2d..1bbf96c 100644 --- a/functions/api/v1/accounts/relationships.ts +++ b/functions/api/v1/accounts/relationships.ts @@ -8,7 +8,7 @@ import type { ContextData } from 'wildebeest/backend/src/types/context' import { getFollowingAcct, getFollowingRequestedAcct } from 'wildebeest/backend/src/mastodon/follow' export const onRequest: PagesFunction = async ({ request, env, data }) => { - return handleRequest(request, getDatabase(env), data.connectedActor) + return handleRequest(request, await getDatabase(env), data.connectedActor) } export async function handleRequest(req: Request, db: Database, connectedActor: Person): Promise { diff --git a/functions/api/v1/accounts/update_credentials.ts b/functions/api/v1/accounts/update_credentials.ts index 82991c3..e015c97 100644 --- a/functions/api/v1/accounts/update_credentials.ts +++ b/functions/api/v1/accounts/update_credentials.ts @@ -22,7 +22,7 @@ const headers = { export const onRequest: PagesFunction = async ({ request, data, env }) => { return handleRequest( - getDatabase(env), + await getDatabase(env), request, data.connectedActor, env.CF_ACCOUNT_ID, diff --git a/functions/api/v1/accounts/verify_credentials.ts b/functions/api/v1/accounts/verify_credentials.ts index 0cd2ecb..84d06f7 100644 --- a/functions/api/v1/accounts/verify_credentials.ts +++ b/functions/api/v1/accounts/verify_credentials.ts @@ -12,7 +12,7 @@ export const onRequest: PagesFunction = async ({ data, en if (!data.connectedActor) { return errors.notAuthorized('no connected user') } - const user = await loadLocalMastodonAccount(getDatabase(env), data.connectedActor) + const user = await loadLocalMastodonAccount(await getDatabase(env), data.connectedActor) const res: CredentialAccount = { ...user, diff --git a/functions/api/v1/apps.ts b/functions/api/v1/apps.ts index c341820..32d9f17 100644 --- a/functions/api/v1/apps.ts +++ b/functions/api/v1/apps.ts @@ -17,7 +17,7 @@ type AppsPost = { } export const onRequest: PagesFunction = async ({ request, env }) => { - return handleRequest(getDatabase(env), request, getVAPIDKeys(env)) + return handleRequest(await getDatabase(env), request, getVAPIDKeys(env)) } export async function handleRequest(db: Database, request: Request, vapidKeys: JWK) { diff --git a/functions/api/v1/instance/peers.ts b/functions/api/v1/instance/peers.ts index e5535a6..d087d76 100644 --- a/functions/api/v1/instance/peers.ts +++ b/functions/api/v1/instance/peers.ts @@ -4,7 +4,7 @@ import type { Env } from 'wildebeest/backend/src/types/env' import { getPeers } from 'wildebeest/backend/src/activitypub/peers' export const onRequest: PagesFunction = async ({ env }) => { - return handleRequest(getDatabase(env)) + return handleRequest(await getDatabase(env)) } export async function handleRequest(db: Database): Promise { diff --git a/functions/api/v1/notifications/[id].ts b/functions/api/v1/notifications/[id].ts index 2a1fff4..af67df3 100644 --- a/functions/api/v1/notifications/[id].ts +++ b/functions/api/v1/notifications/[id].ts @@ -15,7 +15,7 @@ const headers = { export const onRequest: PagesFunction = async ({ data, request, env, params }) => { const domain = new URL(request.url).hostname - return handleRequest(domain, params.id as string, getDatabase(env), data.connectedActor) + return handleRequest(domain, params.id as string, await getDatabase(env), data.connectedActor) } export async function handleRequest( diff --git a/functions/api/v1/push/subscription.ts b/functions/api/v1/push/subscription.ts index ad83cb0..c5ba357 100644 --- a/functions/api/v1/push/subscription.ts +++ b/functions/api/v1/push/subscription.ts @@ -12,11 +12,11 @@ import { VAPIDPublicKey } from 'wildebeest/backend/src/mastodon/subscription' import { type Database, getDatabase } from 'wildebeest/backend/src/database' export const onRequestGet: PagesFunction = async ({ request, env, data }) => { - return handleGetRequest(getDatabase(env), request, data.connectedActor, data.clientId, getVAPIDKeys(env)) + return handleGetRequest(await getDatabase(env), request, data.connectedActor, data.clientId, getVAPIDKeys(env)) } export const onRequestPost: PagesFunction = async ({ request, env, data }) => { - return handlePostRequest(getDatabase(env), request, data.connectedActor, data.clientId, getVAPIDKeys(env)) + return handlePostRequest(await getDatabase(env), request, data.connectedActor, data.clientId, getVAPIDKeys(env)) } const headers = { diff --git a/functions/api/v1/statuses.ts b/functions/api/v1/statuses.ts index 3b7ba94..15c0207 100644 --- a/functions/api/v1/statuses.ts +++ b/functions/api/v1/statuses.ts @@ -39,7 +39,7 @@ type StatusCreate = { } export const onRequest: PagesFunction = async ({ request, env, data }) => { - return handleRequest(request, getDatabase(env), data.connectedActor, env.userKEK, env.QUEUE, cacheFromEnv(env)) + return handleRequest(request, await getDatabase(env), data.connectedActor, env.userKEK, env.QUEUE, cacheFromEnv(env)) } // FIXME: add tests for delivery to followers and mentions to a specific Actor. diff --git a/functions/api/v1/statuses/[id].ts b/functions/api/v1/statuses/[id].ts index c813bfa..7194978 100644 --- a/functions/api/v1/statuses/[id].ts +++ b/functions/api/v1/statuses/[id].ts @@ -20,13 +20,13 @@ import { type Database, getDatabase } from 'wildebeest/backend/src/database' export const onRequestGet: PagesFunction = async ({ params, env, request, data }) => { const domain = new URL(request.url).hostname - return handleRequestGet(getDatabase(env), params.id as UUID, domain, data.connectedActor) + return handleRequestGet(await getDatabase(env), params.id as UUID, domain, data.connectedActor) } export const onRequestDelete: PagesFunction = async ({ params, env, request, data }) => { const domain = new URL(request.url).hostname return handleRequestDelete( - getDatabase(env), + await getDatabase(env), params.id as UUID, data.connectedActor, domain, diff --git a/functions/api/v1/statuses/[id]/context.ts b/functions/api/v1/statuses/[id]/context.ts index 710fda6..e5af0df 100644 --- a/functions/api/v1/statuses/[id]/context.ts +++ b/functions/api/v1/statuses/[id]/context.ts @@ -10,7 +10,7 @@ import { type Database, getDatabase } from 'wildebeest/backend/src/database' export const onRequest: PagesFunction = async ({ request, env, params }) => { const domain = new URL(request.url).hostname - return handleRequest(domain, getDatabase(env), params.id as string) + return handleRequest(domain, await getDatabase(env), params.id as string) } const headers = { diff --git a/functions/api/v1/statuses/[id]/favourite.ts b/functions/api/v1/statuses/[id]/favourite.ts index 5ec5692..10c9080 100644 --- a/functions/api/v1/statuses/[id]/favourite.ts +++ b/functions/api/v1/statuses/[id]/favourite.ts @@ -17,7 +17,7 @@ import { type Database, getDatabase } from 'wildebeest/backend/src/database' export const onRequest: PagesFunction = async ({ env, data, params, request }) => { const domain = new URL(request.url).hostname - return handleRequest(getDatabase(env), params.id as string, data.connectedActor, env.userKEK, domain) + return handleRequest(await getDatabase(env), params.id as string, data.connectedActor, env.userKEK, domain) } export async function handleRequest( diff --git a/functions/api/v1/statuses/[id]/reblog.ts b/functions/api/v1/statuses/[id]/reblog.ts index 15296ce..456437b 100644 --- a/functions/api/v1/statuses/[id]/reblog.ts +++ b/functions/api/v1/statuses/[id]/reblog.ts @@ -17,7 +17,7 @@ import { type Database, getDatabase } from 'wildebeest/backend/src/database' export const onRequest: PagesFunction = async ({ env, data, params, request }) => { const domain = new URL(request.url).hostname - return handleRequest(getDatabase(env), params.id as string, data.connectedActor, env.userKEK, env.QUEUE, domain) + return handleRequest(await getDatabase(env), params.id as string, data.connectedActor, env.userKEK, env.QUEUE, domain) } export async function handleRequest( diff --git a/functions/api/v1/tags/[tag].ts b/functions/api/v1/tags/[tag].ts index 6c2b9eb..8b71c04 100644 --- a/functions/api/v1/tags/[tag].ts +++ b/functions/api/v1/tags/[tag].ts @@ -14,7 +14,7 @@ const headers = { export const onRequestGet: PagesFunction = async ({ params, env, request }) => { const domain = new URL(request.url).hostname - return handleRequestGet(getDatabase(env), domain, params.tag as string) + return handleRequestGet(await getDatabase(env), domain, params.tag as string) } export async function handleRequestGet(db: Database, domain: string, value: string): Promise { diff --git a/functions/api/v1/timelines/public.ts b/functions/api/v1/timelines/public.ts index ec946c1..2b2dc96 100644 --- a/functions/api/v1/timelines/public.ts +++ b/functions/api/v1/timelines/public.ts @@ -16,7 +16,7 @@ export const onRequest: PagesFunction = async ({ request, const only_media = searchParams.get('only_media') === 'true' const offset = Number.parseInt(searchParams.get('offset') ?? '0') const domain = new URL(request.url).hostname - return handleRequest(domain, getDatabase(env), { local, remote, only_media, offset }) + return handleRequest(domain, await getDatabase(env), { local, remote, only_media, offset }) } export async function handleRequest( diff --git a/functions/api/v1/timelines/tag/[tag].ts b/functions/api/v1/timelines/tag/[tag].ts index 01a9654..9074fe4 100644 --- a/functions/api/v1/timelines/tag/[tag].ts +++ b/functions/api/v1/timelines/tag/[tag].ts @@ -11,7 +11,7 @@ const headers = { export const onRequest: PagesFunction = async ({ request, env, params }) => { const domain = new URL(request.url).hostname - return handleRequest(getDatabase(env), request, domain, params.tag as string) + return handleRequest(await getDatabase(env), request, domain, params.tag as string) } export async function handleRequest(db: Database, request: Request, domain: string, tag: string): Promise { diff --git a/functions/api/v2/instance.ts b/functions/api/v2/instance.ts index eea8c43..adc34b2 100644 --- a/functions/api/v2/instance.ts +++ b/functions/api/v2/instance.ts @@ -7,7 +7,7 @@ import { type Database, getDatabase } from 'wildebeest/backend/src/database' export const onRequest: PagesFunction = async ({ env, request }) => { const domain = new URL(request.url).hostname - return handleRequest(domain, getDatabase(env), env) + return handleRequest(domain, await getDatabase(env), env) } export async function handleRequest(domain: string, db: Database, env: Env) { diff --git a/functions/api/v2/media.ts b/functions/api/v2/media.ts index f19b3f5..f3c5bd5 100644 --- a/functions/api/v2/media.ts +++ b/functions/api/v2/media.ts @@ -9,7 +9,7 @@ import { mastodonIdSymbol } from 'wildebeest/backend/src/activitypub/objects' import { type Database, getDatabase } from 'wildebeest/backend/src/database' export const onRequestPost: PagesFunction = async ({ request, env, data }) => { - return handleRequestPost(request, getDatabase(env), data.connectedActor, env.CF_ACCOUNT_ID, env.CF_API_TOKEN) + return handleRequestPost(request, await getDatabase(env), data.connectedActor, env.CF_ACCOUNT_ID, env.CF_API_TOKEN) } export async function handleRequestPost( diff --git a/functions/api/v2/media/[id].ts b/functions/api/v2/media/[id].ts index 2d1fa03..8e40cde 100644 --- a/functions/api/v2/media/[id].ts +++ b/functions/api/v2/media/[id].ts @@ -14,7 +14,7 @@ import { updateObjectProperty } from 'wildebeest/backend/src/activitypub/objects import { type Database, getDatabase } from 'wildebeest/backend/src/database' export const onRequestPut: PagesFunction = async ({ params, env, request }) => { - return handleRequestPut(getDatabase(env), params.id as UUID, request) + return handleRequestPut(await getDatabase(env), params.id as UUID, request) } type UpdateMedia = { diff --git a/functions/api/v2/search.ts b/functions/api/v2/search.ts index 019e54c..622de8c 100644 --- a/functions/api/v2/search.ts +++ b/functions/api/v2/search.ts @@ -22,7 +22,7 @@ type SearchResult = { } export const onRequest: PagesFunction = async ({ request, env }) => { - return handleRequest(getDatabase(env), request) + return handleRequest(await getDatabase(env), request) } export async function handleRequest(db: Database, request: Request): Promise { diff --git a/functions/api/wb/settings/account/alias.ts b/functions/api/wb/settings/account/alias.ts index a8ef1b1..6eaa3ca 100644 --- a/functions/api/wb/settings/account/alias.ts +++ b/functions/api/wb/settings/account/alias.ts @@ -8,7 +8,7 @@ import * as errors from 'wildebeest/backend/src/errors' import { type Database, getDatabase } from 'wildebeest/backend/src/database' export const onRequestPost: PagesFunction = async ({ env, request, data }) => { - return handleRequestPost(getDatabase(env), request, data.connectedActor) + return handleRequestPost(await getDatabase(env), request, data.connectedActor) } type AddAliasRequest = { diff --git a/functions/first-login.ts b/functions/first-login.ts index 8d0c418..c175aec 100644 --- a/functions/first-login.ts +++ b/functions/first-login.ts @@ -9,7 +9,7 @@ import * as access from 'wildebeest/backend/src/access' import { type Database, getDatabase } from 'wildebeest/backend/src/database' export const onRequestPost: PagesFunction = async ({ request, env }) => { - return handlePostRequest(request, getDatabase(env), env.userKEK, env.ACCESS_AUTH_DOMAIN, env.ACCESS_AUD) + return handlePostRequest(request, await getDatabase(env), env.userKEK, env.ACCESS_AUTH_DOMAIN, env.ACCESS_AUD) } export async function handlePostRequest( diff --git a/functions/oauth/authorize.ts b/functions/oauth/authorize.ts index 7bda1c2..f0ed5bd 100644 --- a/functions/oauth/authorize.ts +++ b/functions/oauth/authorize.ts @@ -13,7 +13,7 @@ import { type Database, getDatabase } from 'wildebeest/backend/src/database' const extractJWTFromRequest = (request: Request) => request.headers.get('Cf-Access-Jwt-Assertion') || '' export const onRequestPost: PagesFunction = async ({ request, env }) => { - return handleRequestPost(request, getDatabase(env), env.userKEK, env.ACCESS_AUTH_DOMAIN, env.ACCESS_AUD) + return handleRequestPost(request, await getDatabase(env), env.userKEK, env.ACCESS_AUTH_DOMAIN, env.ACCESS_AUD) } export async function buildRedirect( diff --git a/functions/oauth/token.ts b/functions/oauth/token.ts index e44e940..ffc7478 100644 --- a/functions/oauth/token.ts +++ b/functions/oauth/token.ts @@ -12,7 +12,7 @@ type Body = { } export const onRequest: PagesFunction = async ({ request, env }) => { - return handleRequest(getDatabase(env), request) + return handleRequest(await getDatabase(env), request) } export async function handleRequest(db: Database, request: Request): Promise {