From d677ed24c354d94ba6b90e0b7f98f478b52c55d6 Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Mon, 9 Feb 2026 10:28:12 +0100 Subject: [PATCH] chore: migrate to deno --- deno.json | 2 + deno.lock | 168 +++++++++++++++++++++++---------------------------- package.json | 16 ----- server.ts | 13 ++++ 4 files changed, 92 insertions(+), 107 deletions(-) delete mode 100644 package.json create mode 100644 server.ts diff --git a/deno.json b/deno.json index c172242..3511c9c 100644 --- a/deno.json +++ b/deno.json @@ -4,6 +4,8 @@ "migrate": "deno run --allow-read --allow-write src/migrations/init.ts" }, "imports": { + "@oak/oak": "jsr:@oak/oak@^17.2.0", + "@skyware/jetstream": "npm:@skyware/jetstream@^0.2.5", "@std/assert": "jsr:@std/assert@1" } } diff --git a/deno.lock b/deno.lock index 1c4ccc2..e959212 100644 --- a/deno.lock +++ b/deno.lock @@ -1,9 +1,77 @@ { "version": "5", "specifiers": { - "npm:@atproto/lexicon@~0.6.1": "0.6.1", + "jsr:@oak/commons@1": "1.0.0", + "jsr:@oak/oak@^17.2.0": "17.2.0", + "jsr:@std/assert@1": "1.0.18", + "jsr:@std/bytes@1": "1.0.4", + "jsr:@std/crypto@1": "1.0.3", + "jsr:@std/encoding@1": "1.0.6", + "jsr:@std/encoding@^1.0.5": "1.0.6", + "jsr:@std/http@1": "1.0.12", + "jsr:@std/internal@^1.0.12": "1.0.12", + "jsr:@std/media-types@1": "1.1.0", + "jsr:@std/path@1": "1.1.4", "npm:@skyware/jetstream@~0.2.5": "0.2.5", - "npm:@types/bun@latest": "1.3.8" + "npm:path-to-regexp@^6.3.0": "6.3.0" + }, + "jsr": { + "@oak/commons@1.0.0": { + "integrity": "49805b55603c3627a9d6235c0655aa2b6222d3036b3a13ff0380c16368f607ac", + "dependencies": [ + "jsr:@std/assert", + "jsr:@std/bytes", + "jsr:@std/crypto", + "jsr:@std/encoding@1", + "jsr:@std/http", + "jsr:@std/media-types" + ] + }, + "@oak/oak@17.2.0": { + "integrity": "938537a92fc7922a46a9984696c65fb189c9baad164416ac3e336768a9ff0cd1", + "dependencies": [ + "jsr:@oak/commons", + "jsr:@std/assert", + "jsr:@std/bytes", + "jsr:@std/http", + "jsr:@std/media-types", + "jsr:@std/path", + "npm:path-to-regexp" + ] + }, + "@std/assert@1.0.18": { + "integrity": "270245e9c2c13b446286de475131dc688ca9abcd94fc5db41d43a219b34d1c78", + "dependencies": [ + "jsr:@std/internal" + ] + }, + "@std/bytes@1.0.4": { + "integrity": "11a0debe522707c95c7b7ef89b478c13fb1583a7cfb9a85674cd2cc2e3a28abc" + }, + "@std/crypto@1.0.3": { + "integrity": "a2a32f51ddef632d299e3879cd027c630dcd4d1d9a5285d6e6788072f4e51e7f" + }, + "@std/encoding@1.0.6": { + "integrity": "ca87122c196e8831737d9547acf001766618e78cd8c33920776c7f5885546069" + }, + "@std/http@1.0.12": { + "integrity": "85246d8bfe9c8e2538518725b158bdc31f616e0869255f4a8d9e3de919cab2aa", + "dependencies": [ + "jsr:@std/encoding@^1.0.5" + ] + }, + "@std/internal@1.0.12": { + "integrity": "972a634fd5bc34b242024402972cd5143eac68d8dffaca5eaa4dba30ce17b027" + }, + "@std/media-types@1.1.0": { + "integrity": "c9d093f0c05c3512932b330e3cc1fe1d627b301db33a4c2c2185c02471d6eaa4" + }, + "@std/path@1.1.4": { + "integrity": "1d2d43f39efb1b42f0b1882a25486647cb851481862dc7313390b2bb044314b5", + "dependencies": [ + "jsr:@std/internal" + ] + } }, "npm": { "@atcute/atproto@3.1.10": { @@ -37,47 +105,6 @@ "unicode-segmenter" ] }, - "@atproto/common-web@0.4.16": { - "integrity": "sha512-Ufvaff5JgxUyUyTAG0/3o7ltpy3lnZ1DvLjyAnvAf+hHfiK7OMQg+8byr+orN+KP9MtIQaRTsCgYPX+PxMKUoA==", - "dependencies": [ - "@atproto/lex-data", - "@atproto/lex-json", - "@atproto/syntax", - "zod" - ] - }, - "@atproto/lex-data@0.0.11": { - "integrity": "sha512-4+KTtHdqwlhiTKA7D4SACea4jprsNpCQsNALW09wsZ6IHhCDGO5tr1cmV+QnLYe3G3mu1E1yXHXbPUHrUUDT/A==", - "dependencies": [ - "multiformats", - "tslib", - "uint8arrays", - "unicode-segmenter" - ] - }, - "@atproto/lex-json@0.0.11": { - "integrity": "sha512-2IExAoQ4KsR5fyPa1JjIvtR316PvdgRH/l3BVGLBd3cSxM3m5MftIv1B6qZ9HjNiK60SgkWp0mi9574bTNDhBQ==", - "dependencies": [ - "@atproto/lex-data", - "tslib" - ] - }, - "@atproto/lexicon@0.6.1": { - "integrity": "sha512-/vI1kVlY50Si+5MXpvOucelnYwb0UJ6Qto5mCp+7Q5C+Jtp+SoSykAPVvjVtTnQUH2vrKOFOwpb3C375vSKzXw==", - "dependencies": [ - "@atproto/common-web", - "@atproto/syntax", - "iso-datestring-validator", - "multiformats", - "zod" - ] - }, - "@atproto/syntax@0.4.3": { - "integrity": "sha512-YoZUz40YAJr5nPwvCDWgodEOlt5IftZqPJvA0JDWjuZKD8yXddTwSzXSaKQAzGOpuM+/A3uXRtPzJJqlScc+iA==", - "dependencies": [ - "tslib" - ] - }, "@skyware/jetstream@0.2.5": { "integrity": "sha512-fM/zs03DLwqRyzZZJFWN20e76KrdqIp97Tlm8Cek+vxn96+tu5d/fx79V6H85L0QN6HvGiX2l9A8hWFqHvYlOA==", "dependencies": [ @@ -91,62 +118,26 @@ "@standard-schema/spec@1.1.0": { "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==" }, - "@types/bun@1.3.8": { - "integrity": "sha512-3LvWJ2q5GerAXYxO2mffLTqOzEu5qnhEAlh48Vnu8WQfnmSwbgagjGZV6BoHKJztENYEDn6QmVd949W4uESRJA==", - "dependencies": [ - "bun-types" - ] - }, - "@types/node@25.0.10": { - "integrity": "sha512-zWW5KPngR/yvakJgGOmZ5vTBemDoSqF3AcV/LrO5u5wTWyEAVVh+IT39G4gtyAkh3CtTZs8aX/yRM82OfzHJRg==", - "dependencies": [ - "undici-types" - ] - }, - "bun-types@1.3.8": { - "integrity": "sha512-fL99nxdOWvV4LqjmC+8Q9kW3M4QTtTR1eePs94v5ctGqU8OeceWrSUaRw3JYb7tU3FkMIAjkueehrHPPPGKi5Q==", - "dependencies": [ - "@types/node" - ] - }, "esm-env@1.2.2": { "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==" }, "event-target-polyfill@0.0.4": { "integrity": "sha512-Gs6RLjzlLRdT8X9ZipJdIZI/Y6/HhRLyq9RdDlCsnpxr/+Nn6bU2EFGuC94GjxqhM+Nmij2Vcq98yoHrU8uNFQ==" }, - "iso-datestring-validator@2.2.2": { - "integrity": "sha512-yLEMkBbLZTlVQqOnQ4FiMujR6T4DEcCb1xizmvXS+OxuhwcbtynoosRzdMA69zZCShCNAbi+gJ71FxZBBXx1SA==" - }, - "multiformats@9.9.0": { - "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==" - }, "partysocket@1.1.12": { "integrity": "sha512-079YDW1QZsFwJ8syLmr9xFMbE+VwbK4SpcKSOPVApX8rpIMennkxx0MeWl4oWutP/Zjgy8TMnQZ3FOXTQvu3DA==", "dependencies": [ "event-target-polyfill" ] }, + "path-to-regexp@6.3.0": { + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==" + }, "tiny-emitter@2.1.0": { "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" }, - "tslib@2.8.1": { - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" - }, - "uint8arrays@3.0.0": { - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "dependencies": [ - "multiformats" - ] - }, - "undici-types@7.16.0": { - "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==" - }, "unicode-segmenter@0.14.5": { "integrity": "sha512-jHGmj2LUuqDcX3hqY12Ql+uhUTn8huuxNZGq7GvtF6bSybzH3aFgedYu/KTzQStEgt1Ra2F3HxadNXsNjb3m3g==" - }, - "zod@3.25.76": { - "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==" } }, "redirects": { @@ -165,14 +156,9 @@ }, "workspace": { "dependencies": [ - "jsr:@std/assert@1" - ], - "packageJson": { - "dependencies": [ - "npm:@atproto/lexicon@~0.6.1", - "npm:@skyware/jetstream@~0.2.5", - "npm:@types/bun@latest" - ] - } + "jsr:@oak/oak@^17.2.0", + "jsr:@std/assert@1", + "npm:@skyware/jetstream@~0.2.5" + ] } } diff --git a/package.json b/package.json deleted file mode 100644 index 99d7c0e..0000000 --- a/package.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "litenote-jetstream", - "module": "main.ts", - "type": "module", - "private": true, - "devDependencies": { - "@types/bun": "latest" - }, - "peerDependencies": { - "typescript": "^5" - }, - "dependencies": { - "@atproto/lexicon": "^0.6.1", - "@skyware/jetstream": "^0.2.5" - } -} diff --git a/server.ts b/server.ts new file mode 100644 index 0000000..5b7125a --- /dev/null +++ b/server.ts @@ -0,0 +1,13 @@ +import { Application, Router } from "@oak/oak"; + +const router = new Router(); + +router.get("/", (ctx) => { + ctx.response.body = "Hello world"; +}); + +const app = new Application(); +app.use(router.routes()); +app.use(router.allowedMethods()); + +app.listen();