diff --git a/deno.json b/deno.json index 66c90638..7e9bf6c4 100644 --- a/deno.json +++ b/deno.json @@ -22,6 +22,7 @@ "@/": "./src/", "@bradenmacdonald/s3-lite-client": "jsr:@bradenmacdonald/s3-lite-client@^0.7.4", "@db/sqlite": "jsr:@db/sqlite@^0.11.1", + "@hono/hono": "jsr:@hono/hono@^4.4.6", "@isaacs/ttlcache": "npm:@isaacs/ttlcache@^1.4.1", "@noble/secp256k1": "npm:@noble/secp256k1@^2.0.0", "@nostrify/nostrify": "jsr:@nostrify/nostrify@^0.23.3", @@ -43,12 +44,11 @@ "entities": "npm:entities@^4.5.0", "fast-stable-stringify": "npm:fast-stable-stringify@^1.0.0", "formdata-helper": "npm:formdata-helper@^0.3.0", - "hono": "https://deno.land/x/hono@v3.10.1/mod.ts", - "hono/middleware": "https://deno.land/x/hono@v3.10.1/middleware.ts", "iso-639-1": "npm:iso-639-1@2.1.15", "isomorphic-dompurify": "npm:isomorphic-dompurify@^2.11.0", "kysely": "npm:kysely@^0.27.3", "kysely_deno_postgres": "https://gitlab.com/soapbox-pub/kysely-deno-postgres/-/raw/f2948b86190a10faa293588775e162b3a8b52e70/mod.ts", + "light-bolt11-decoder": "npm:light-bolt11-decoder", "linkify-plugin-hashtag": "npm:linkify-plugin-hashtag@^4.1.1", "linkify-string": "npm:linkify-string@^4.1.1", "linkifyjs": "npm:linkifyjs@^4.1.1", @@ -62,8 +62,7 @@ "type-fest": "npm:type-fest@^4.3.0", "unfurl.js": "npm:unfurl.js@^6.4.0", "zod": "npm:zod@^3.23.8", - "~/fixtures/": "./fixtures/", - "light-bolt11-decoder": "npm:light-bolt11-decoder" + "~/fixtures/": "./fixtures/" }, "lint": { "include": ["src/", "scripts/"], diff --git a/deno.lock b/deno.lock index 03682e37..67e4b7e7 100644 --- a/deno.lock +++ b/deno.lock @@ -7,6 +7,7 @@ "jsr:@denosaurs/plug@1": "jsr:@denosaurs/plug@1.0.6", "jsr:@gleasonator/policy": "jsr:@gleasonator/policy@0.2.0", "jsr:@gleasonator/policy@0.2.0": "jsr:@gleasonator/policy@0.2.0", + "jsr:@hono/hono@^4.4.6": "jsr:@hono/hono@4.4.6", "jsr:@nostrify/nostrify@^0.22.1": "jsr:@nostrify/nostrify@0.22.5", "jsr:@nostrify/nostrify@^0.22.4": "jsr:@nostrify/nostrify@0.22.4", "jsr:@nostrify/nostrify@^0.22.5": "jsr:@nostrify/nostrify@0.22.5", @@ -37,6 +38,7 @@ "npm:@scure/base@^1.1.6": "npm:@scure/base@1.1.6", "npm:@scure/bip32@^1.4.0": "npm:@scure/bip32@1.4.0", "npm:@scure/bip39@^1.3.0": "npm:@scure/bip39@1.3.0", + "npm:@types/node": "npm:@types/node@18.16.19", "npm:comlink@^4.4.1": "npm:comlink@4.4.1", "npm:entities@^4.5.0": "npm:entities@4.5.0", "npm:fast-stable-stringify@^1.0.0": "npm:fast-stable-stringify@1.0.0", @@ -93,6 +95,9 @@ "jsr:@nostrify/nostrify@^0.22.1" ] }, + "@hono/hono@4.4.6": { + "integrity": "aa557ca9930787ee86b9ca1730691f1ce1c379174c2cb244d5934db2b6314453" + }, "@nostrify/nostrify@0.22.4": { "integrity": "1c8a7847e5773213044b491e85fd7cafae2ad194ce59da4d957d2b27c776b42d", "dependencies": [ @@ -313,6 +318,10 @@ "@types/trusted-types": "@types/trusted-types@2.0.7" } }, + "@types/node@18.16.19": { + "integrity": "sha512-IXl7o+R9iti9eBW4Wg2hx1xQDig183jj7YLn8F7udNceyfkbn1ZxmzZXuak20gR40D7pIkIY1kYGx5VIGbaHKA==", + "dependencies": {} + }, "@types/trusted-types@2.0.7": { "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", "dependencies": {} @@ -1342,6 +1351,10 @@ "https://esm.sh/v135/kysely@0.17.1/denonext/dist/esm/index-nodeless.js": "6f73bbf2d73bc7e96cdabf941c4ae8c12f58fd7b441031edec44c029aed9532b", "https://gitlab.com/soapbox-pub/deno-safe-fetch/-/raw/v1.0.0/load.ts": "3f74ab08cf97d4a3e6994cb79422e9b0069495e017416858121d5ff8ae04ac2a", "https://gitlab.com/soapbox-pub/deno-safe-fetch/-/raw/v1.0.0/mod.ts": "5f505cd265aefbcb687cde6f98c79344d3292ee1dd978e85e5ffa84a617c6682", + "https://gitlab.com/soapbox-pub/kysely-deno-postgres/-/raw/f2948b86190a10faa293588775e162b3a8b52e70/deps.ts": "b3dbecae69c30a5f161323b8c8ebd91d9af1eceb98fafab3091c7281a4b64fed", + "https://gitlab.com/soapbox-pub/kysely-deno-postgres/-/raw/f2948b86190a10faa293588775e162b3a8b52e70/mod.ts": "662438fd3909984bb8cbaf3fd44d2121e949d11301baf21d6c3f057ccf9887de", + "https://gitlab.com/soapbox-pub/kysely-deno-postgres/-/raw/f2948b86190a10faa293588775e162b3a8b52e70/src/PostgreSQLDriver.ts": "ac1a39e86fd676973bce215e19db1f26b82408b8f2bb09a3601802974ea7cec6", + "https://gitlab.com/soapbox-pub/kysely-deno-postgres/-/raw/f2948b86190a10faa293588775e162b3a8b52e70/src/PostgreSQLDriverDatabaseConnection.ts": "2158de426860bfd4f8e73afff0289bd40a11e273c8d883d4fd6474db01a9c2a7", "https://gitlab.com/soapbox-pub/kysely-deno-postgres/-/raw/main/deps.ts": "b3dbecae69c30a5f161323b8c8ebd91d9af1eceb98fafab3091c7281a4b64fed", "https://gitlab.com/soapbox-pub/kysely-deno-postgres/-/raw/main/mod.ts": "662438fd3909984bb8cbaf3fd44d2121e949d11301baf21d6c3f057ccf9887de", "https://gitlab.com/soapbox-pub/kysely-deno-postgres/-/raw/main/src/PostgreSQLDriver.ts": "590c2fa248cff38e6e0f623050983039b5fde61e9c7131593d2922fb1f0eb921", @@ -1362,6 +1375,7 @@ "dependencies": [ "jsr:@bradenmacdonald/s3-lite-client@^0.7.4", "jsr:@db/sqlite@^0.11.1", + "jsr:@hono/hono@^4.4.6", "jsr:@nostrify/nostrify@^0.23.3", "jsr:@soapbox/kysely-deno-sqlite@^2.1.0", "jsr:@soapbox/stickynotes@^0.4.0", diff --git a/src/app.ts b/src/app.ts index 276f9ee3..912001ac 100644 --- a/src/app.ts +++ b/src/app.ts @@ -1,7 +1,9 @@ +import { Context, Env as HonoEnv, Handler, Hono, Input as HonoInput, MiddlewareHandler } from '@hono/hono'; +import { cors } from '@hono/hono/cors'; +import { serveStatic } from '@hono/hono/deno'; +import { logger } from '@hono/hono/logger'; import { NostrEvent, NostrSigner, NStore, NUploader } from '@nostrify/nostrify'; import Debug from '@soapbox/stickynotes/debug'; -import { type Context, Env as HonoEnv, type Handler, Hono, Input as HonoInput, type MiddlewareHandler } from 'hono'; -import { cors, logger, serveStatic } from 'hono/middleware'; import { Conf } from '@/config.ts'; import { cron } from '@/cron.ts'; diff --git a/src/controllers/api/fallback.ts b/src/controllers/api/fallback.ts index b9479286..0fdf14a7 100644 --- a/src/controllers/api/fallback.ts +++ b/src/controllers/api/fallback.ts @@ -1,4 +1,4 @@ -import type { Context } from 'hono'; +import { Context } from '@hono/hono'; const emptyArrayController = (c: Context) => c.json([]); const emptyObjectController = (c: Context) => c.json({}); diff --git a/src/middleware/auth98Middleware.ts b/src/middleware/auth98Middleware.ts index 05b06817..85557151 100644 --- a/src/middleware/auth98Middleware.ts +++ b/src/middleware/auth98Middleware.ts @@ -1,5 +1,5 @@ +import { HTTPException } from '@hono/hono/http-exception'; import { NostrEvent } from '@nostrify/nostrify'; -import { HTTPException } from 'hono'; import { type AppContext, type AppMiddleware } from '@/app.ts'; import { ReadOnlySigner } from '@/signers/ReadOnlySigner.ts'; diff --git a/src/middleware/requireSigner.ts b/src/middleware/requireSigner.ts index 6e337c24..c954dbd6 100644 --- a/src/middleware/requireSigner.ts +++ b/src/middleware/requireSigner.ts @@ -1,4 +1,4 @@ -import { HTTPException } from 'hono'; +import { HTTPException } from '@hono/hono/http-exception'; import { AppMiddleware } from '@/app.ts'; diff --git a/src/middleware/signerMiddleware.ts b/src/middleware/signerMiddleware.ts index 5ea4235c..89a494c4 100644 --- a/src/middleware/signerMiddleware.ts +++ b/src/middleware/signerMiddleware.ts @@ -1,10 +1,10 @@ +import { HTTPException } from '@hono/hono/http-exception'; import { NSecSigner } from '@nostrify/nostrify'; import { nip19 } from 'nostr-tools'; import { AppMiddleware } from '@/app.ts'; import { ConnectSigner } from '@/signers/ConnectSigner.ts'; import { ReadOnlySigner } from '@/signers/ReadOnlySigner.ts'; -import { HTTPException } from 'hono'; import { DittoDB } from '@/db/DittoDB.ts'; /** We only accept "Bearer" type. */ diff --git a/src/signers/ReadOnlySigner.ts b/src/signers/ReadOnlySigner.ts index 8ba15554..56c32c45 100644 --- a/src/signers/ReadOnlySigner.ts +++ b/src/signers/ReadOnlySigner.ts @@ -1,6 +1,6 @@ // deno-lint-ignore-file require-await +import { HTTPException } from '@hono/hono/http-exception'; import { NostrEvent, NostrSigner } from '@nostrify/nostrify'; -import { HTTPException } from 'hono'; export class ReadOnlySigner implements NostrSigner { constructor(private pubkey: string) {} diff --git a/src/utils/api.ts b/src/utils/api.ts index 1fa397b5..355a7a12 100644 --- a/src/utils/api.ts +++ b/src/utils/api.ts @@ -1,6 +1,7 @@ +import { Context } from '@hono/hono'; +import { HTTPException } from '@hono/hono/http-exception'; import { NostrEvent, NostrFilter } from '@nostrify/nostrify'; import Debug from '@soapbox/stickynotes/debug'; -import { type Context, HTTPException } from 'hono'; import { parseFormData } from 'formdata-helper'; import { EventTemplate } from 'nostr-tools'; import * as TypeFest from 'type-fest'; diff --git a/src/utils/upload.ts b/src/utils/upload.ts index c4f2fc58..90603c5d 100644 --- a/src/utils/upload.ts +++ b/src/utils/upload.ts @@ -1,7 +1,9 @@ +import { HTTPException } from '@hono/hono/http-exception'; + import { AppContext } from '@/app.ts'; import { Conf } from '@/config.ts'; import { insertUnattachedMedia, UnattachedMedia } from '@/db/unattached-media.ts'; -import { HTTPException } from 'hono'; + interface FileMeta { pubkey: string; description?: string;