Monorepo for wisp.place. A static site hosting service built on top of the AT Protocol. wisp.place

make bun-firehose a package

+90 -8
+29 -5
bun.lock
··· 128 128 "@types/mime-types": "^3.0.1", 129 129 "@types/node": "^22.0.0", 130 130 "@wispplace/atproto-utils": "workspace:*", 131 + "@wispplace/bun-firehose": "workspace:*", 131 132 "@wispplace/constants": "workspace:*", 132 133 "@wispplace/fs-utils": "workspace:*", 133 134 "@wispplace/lexicons": "workspace:*", ··· 151 152 }, 152 153 "devDependencies": { 153 154 "@atproto/lexicon": "^0.6.1", 155 + }, 156 + }, 157 + "packages/@wispplace/bun-firehose": { 158 + "name": "@wispplace/bun-firehose", 159 + "version": "1.0.0", 160 + "dependencies": { 161 + "@atproto/identity": "^0.4.10", 162 + "@atproto/lex-cbor": "^0.0.9", 163 + "@atproto/lex-data": "^0.0.9", 164 + "@atproto/repo": "^0.8.12", 165 + "@atproto/syntax": "^0.4.3", 166 + "multiformats": "^13.4.2", 167 + }, 168 + "devDependencies": { 169 + "@types/bun": "latest", 154 170 }, 155 171 }, 156 172 "packages/@wispplace/constants": { ··· 268 284 269 285 "@atproto/api": ["@atproto/api@0.18.17", "", { "dependencies": { "@atproto/common-web": "^0.4.13", "@atproto/lexicon": "^0.6.1", "@atproto/syntax": "^0.4.3", "@atproto/xrpc": "^0.7.7", "await-lock": "^2.2.2", "multiformats": "^9.9.0", "tlds": "^1.234.0", "zod": "^3.23.8" } }, "sha512-TeJkLGPkiK3jblwTDSNTH+CnS6WgaOiHDZeVVzywtxomyyF0FpQVSMz5eP3sDhxyHJqpI3E2AOYD7PO/JSbzJw=="], 270 286 271 - "@atproto/common": ["@atproto/common@0.4.12", "", { "dependencies": { "@atproto/common-web": "^0.4.3", "@ipld/dag-cbor": "^7.0.3", "cbor-x": "^1.5.1", "iso-datestring-validator": "^2.2.2", "multiformats": "^9.9.0", "pino": "^8.21.0" } }, "sha512-NC+TULLQiqs6MvNymhQS5WDms3SlbIKGLf4n33tpftRJcalh507rI+snbcUb7TLIkKw7VO17qMqxEXtIdd5auQ=="], 287 + "@atproto/common": ["@atproto/common@0.5.9", "", { "dependencies": { "@atproto/common-web": "^0.4.13", "@atproto/lex-cbor": "0.0.9", "@atproto/lex-data": "0.0.9", "iso-datestring-validator": "^2.2.2", "multiformats": "^9.9.0", "pino": "^8.21.0" } }, "sha512-rzl8dB7ErpA/VUgCidahUtbxEph50J4g7j68bZmlwwrHlrtvTe8DjrwH5EUFEcegl9dadIhcVJ3qi0kPKEUr+g=="], 272 288 273 289 "@atproto/common-web": ["@atproto/common-web@0.4.13", "", { "dependencies": { "@atproto/lex-data": "0.0.9", "@atproto/lex-json": "0.0.9", "@atproto/syntax": "0.4.3", "zod": "^3.23.8" } }, "sha512-TewRUyB/dVJ5PtI3QmJzEgT3wDsvpnLJ+48hPl+LuUueJPamZevXKJN6dFjtbKAMFRnl2bKfdsf79qwvdSaLKQ=="], 274 290 ··· 840 856 841 857 "@wispplace/atproto-utils": ["@wispplace/atproto-utils@workspace:packages/@wispplace/atproto-utils"], 842 858 859 + "@wispplace/bun-firehose": ["@wispplace/bun-firehose@workspace:packages/@wispplace/bun-firehose"], 860 + 843 861 "@wispplace/constants": ["@wispplace/constants@workspace:packages/@wispplace/constants"], 844 862 845 863 "@wispplace/css": ["@wispplace/css@workspace:packages/@wispplace/css"], ··· 1384 1402 1385 1403 "@atproto/oauth-client/multiformats": ["multiformats@9.9.0", "", {}, "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg=="], 1386 1404 1387 - "@atproto/repo/@atproto/common": ["@atproto/common@0.5.9", "", { "dependencies": { "@atproto/common-web": "^0.4.13", "@atproto/lex-cbor": "0.0.9", "@atproto/lex-data": "0.0.9", "iso-datestring-validator": "^2.2.2", "multiformats": "^9.9.0", "pino": "^8.21.0" } }, "sha512-rzl8dB7ErpA/VUgCidahUtbxEph50J4g7j68bZmlwwrHlrtvTe8DjrwH5EUFEcegl9dadIhcVJ3qi0kPKEUr+g=="], 1388 - 1389 1405 "@atproto/repo/multiformats": ["multiformats@9.9.0", "", {}, "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg=="], 1390 1406 1391 - "@atproto/sync/@atproto/common": ["@atproto/common@0.5.9", "", { "dependencies": { "@atproto/common-web": "^0.4.13", "@atproto/lex-cbor": "0.0.9", "@atproto/lex-data": "0.0.9", "iso-datestring-validator": "^2.2.2", "multiformats": "^9.9.0", "pino": "^8.21.0" } }, "sha512-rzl8dB7ErpA/VUgCidahUtbxEph50J4g7j68bZmlwwrHlrtvTe8DjrwH5EUFEcegl9dadIhcVJ3qi0kPKEUr+g=="], 1392 - 1393 1407 "@atproto/sync/@atproto/xrpc-server": ["@atproto/xrpc-server@0.10.10", "", { "dependencies": { "@atproto/common": "^0.5.9", "@atproto/crypto": "^0.4.5", "@atproto/lex-cbor": "0.0.9", "@atproto/lex-data": "0.0.9", "@atproto/lexicon": "^0.6.1", "@atproto/ws-client": "^0.0.4", "@atproto/xrpc": "^0.7.7", "express": "^4.17.2", "http-errors": "^2.0.0", "mime-types": "^2.1.35", "rate-limiter-flexible": "^2.4.1", "ws": "^8.12.0", "zod": "^3.23.8" } }, "sha512-USDjOZGiletqzuWHC3Q2fk30hJDk4uYt6KPgvnZidShCouTf3hzwJZ8d2eOKOofSjGXW+GC0QYp7fYJFn6lZ2Q=="], 1394 1408 1395 1409 "@atproto/sync/multiformats": ["multiformats@9.9.0", "", {}, "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg=="], 1396 1410 1411 + "@atproto/ws-client/@atproto/common": ["@atproto/common@0.4.12", "", { "dependencies": { "@atproto/common-web": "^0.4.3", "@ipld/dag-cbor": "^7.0.3", "cbor-x": "^1.5.1", "iso-datestring-validator": "^2.2.2", "multiformats": "^9.9.0", "pino": "^8.21.0" } }, "sha512-NC+TULLQiqs6MvNymhQS5WDms3SlbIKGLf4n33tpftRJcalh507rI+snbcUb7TLIkKw7VO17qMqxEXtIdd5auQ=="], 1412 + 1413 + "@atproto/xrpc-server/@atproto/common": ["@atproto/common@0.4.12", "", { "dependencies": { "@atproto/common-web": "^0.4.3", "@ipld/dag-cbor": "^7.0.3", "cbor-x": "^1.5.1", "iso-datestring-validator": "^2.2.2", "multiformats": "^9.9.0", "pino": "^8.21.0" } }, "sha512-NC+TULLQiqs6MvNymhQS5WDms3SlbIKGLf4n33tpftRJcalh507rI+snbcUb7TLIkKw7VO17qMqxEXtIdd5auQ=="], 1414 + 1397 1415 "@atproto/xrpc-server/@atproto/lexicon": ["@atproto/lexicon@0.5.2", "", { "dependencies": { "@atproto/common-web": "^0.4.4", "@atproto/syntax": "^0.4.1", "iso-datestring-validator": "^2.2.2", "multiformats": "^9.9.0", "zod": "^3.23.8" } }, "sha512-lRmJgMA8f5j7VB5Iu5cp188ald5FuI4FlmZ7nn6EBrk1dgOstWVrI5Ft6K3z2vjyLZRG6nzknlsw+tDP63p7bQ=="], 1398 1416 1399 1417 "@aws-crypto/sha1-browser/@smithy/util-utf8": ["@smithy/util-utf8@2.3.0", "", { "dependencies": { "@smithy/util-buffer-from": "^2.2.0", "tslib": "^2.6.2" } }, "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A=="], ··· 1538 1556 1539 1557 "@types/bun/bun-types": ["bun-types@1.3.6", "", { "dependencies": { "@types/node": "*" } }, "sha512-OlFwHcnNV99r//9v5IIOgQ9Uk37gZqrNMCcqEaExdkVq3Avwqok1bJFmvGMCkCE0FqzdY8VMOZpfpR3lwI+CsQ=="], 1540 1558 1559 + "@wispplace/bun-firehose/@types/bun": ["@types/bun@1.3.8", "", { "dependencies": { "bun-types": "1.3.8" } }, "sha512-3LvWJ2q5GerAXYxO2mffLTqOzEu5qnhEAlh48Vnu8WQfnmSwbgagjGZV6BoHKJztENYEDn6QmVd949W4uESRJA=="], 1560 + 1541 1561 "@wispplace/lexicons/@atproto/lexicon": ["@atproto/lexicon@0.5.2", "", { "dependencies": { "@atproto/common-web": "^0.4.4", "@atproto/syntax": "^0.4.1", "iso-datestring-validator": "^2.2.2", "multiformats": "^9.9.0", "zod": "^3.23.8" } }, "sha512-lRmJgMA8f5j7VB5Iu5cp188ald5FuI4FlmZ7nn6EBrk1dgOstWVrI5Ft6K3z2vjyLZRG6nzknlsw+tDP63p7bQ=="], 1542 1562 1543 1563 "@wispplace/main-app/@atproto/api": ["@atproto/api@0.17.7", "", { "dependencies": { "@atproto/common-web": "^0.4.3", "@atproto/lexicon": "^0.5.1", "@atproto/syntax": "^0.4.1", "@atproto/xrpc": "^0.7.5", "await-lock": "^2.2.2", "multiformats": "^9.9.0", "tlds": "^1.234.0", "zod": "^3.23.8" } }, "sha512-V+OJBZq9chcrD21xk1bUa6oc5DSKfQj5DmUPf5rmZncqL1w9ZEbS38H5cMyqqdhfgo2LWeDRdZHD0rvNyJsIaw=="], ··· 1571 1591 "wispctl/mime-types": ["mime-types@3.0.2", "", { "dependencies": { "mime-db": "^1.54.0" } }, "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A=="], 1572 1592 1573 1593 "@atproto/sync/@atproto/xrpc-server/@atproto/ws-client": ["@atproto/ws-client@0.0.4", "", { "dependencies": { "@atproto/common": "^0.5.3", "ws": "^8.12.0" } }, "sha512-dox1XIymuC7/ZRhUqKezIGgooZS45C6vHCfu0PnWjfvsLCK2kAlnvX4IBkA/WpcoijDhQ9ejChnFbo/sLmgvAg=="], 1594 + 1595 + "@atproto/ws-client/@atproto/common/multiformats": ["multiformats@9.9.0", "", {}, "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg=="], 1596 + 1597 + "@atproto/xrpc-server/@atproto/common/multiformats": ["multiformats@9.9.0", "", {}, "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg=="], 1574 1598 1575 1599 "@atproto/xrpc-server/@atproto/lexicon/multiformats": ["multiformats@9.9.0", "", {}, "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg=="], 1576 1600
+1 -2
cli/commands/serve.ts
··· 10 10 import { pull } from './pull.ts'; 11 11 import { createSpinner, pc } from '../lib/progress.ts'; 12 12 import { parseRedirectsFile, matchRedirectRule, parseQueryString, type RedirectRule } from '@wispplace/fs-utils'; 13 - import { isBun } from '../lib/runtime.ts'; 14 - import { BunFirehose } from '../lib/firehose.ts'; 13 + import { isBun, BunFirehose } from '@wispplace/bun-firehose'; 15 14 16 15 export interface ServeOptions { 17 16 site: string;
+1 -1
cli/lib/auth.ts
··· 7 7 import { existsSync, mkdirSync, readFileSync, writeFileSync, unlinkSync } from "fs"; 8 8 import { dirname, join } from "path"; 9 9 import { homedir } from "os"; 10 - import { isBun } from "./runtime"; 10 + import { isBun } from "@wispplace/bun-firehose"; 11 11 12 12 // OAuth scope for CLI 13 13 const OAUTH_SCOPE = 'atproto repo:place.wisp.fs repo:place.wisp.subfs repo:place.wisp.settings blob:*/*';
cli/lib/firehose.ts packages/@wispplace/bun-firehose/src/firehose.ts
cli/lib/runtime.ts packages/@wispplace/bun-firehose/src/runtime.ts
cli/lib/subscription.ts packages/@wispplace/bun-firehose/src/subscription.ts
+1
cli/package.json
··· 31 31 "@types/mime-types": "^3.0.1", 32 32 "@types/node": "^22.0.0", 33 33 "@wispplace/atproto-utils": "workspace:*", 34 + "@wispplace/bun-firehose": "workspace:*", 34 35 "@wispplace/constants": "workspace:*", 35 36 "@wispplace/fs-utils": "workspace:*", 36 37 "@wispplace/lexicons": "workspace:*",
+37
packages/@wispplace/bun-firehose/package.json
··· 1 + { 2 + "name": "@wispplace/bun-firehose", 3 + "version": "1.0.0", 4 + "private": true, 5 + "type": "module", 6 + "main": "./src/index.ts", 7 + "types": "./src/index.ts", 8 + "exports": { 9 + ".": { 10 + "types": "./src/index.ts", 11 + "default": "./src/index.ts" 12 + }, 13 + "./subscription": { 14 + "types": "./src/subscription.ts", 15 + "default": "./src/subscription.ts" 16 + }, 17 + "./firehose": { 18 + "types": "./src/firehose.ts", 19 + "default": "./src/firehose.ts" 20 + }, 21 + "./runtime": { 22 + "types": "./src/runtime.ts", 23 + "default": "./src/runtime.ts" 24 + } 25 + }, 26 + "dependencies": { 27 + "@atproto/identity": "^0.4.10", 28 + "@atproto/lex-cbor": "^0.0.9", 29 + "@atproto/lex-data": "^0.0.9", 30 + "@atproto/repo": "^0.8.12", 31 + "@atproto/syntax": "^0.4.3", 32 + "multiformats": "^13.4.2" 33 + }, 34 + "devDependencies": { 35 + "@types/bun": "latest" 36 + } 37 + }
+12
packages/@wispplace/bun-firehose/src/index.ts
··· 1 + // Re-export everything from the individual modules 2 + export { BunSubscription, type BunSubscriptionOptions } from './subscription'; 3 + export { 4 + BunFirehose, 5 + type BunFirehoseOptions, 6 + type CommitMeta, 7 + type CommitEvt, 8 + type IdentityEvt, 9 + type AccountEvt, 10 + type Event, 11 + } from './firehose'; 12 + export { isBun, isNode, getRuntimeName } from './runtime';
+9
packages/@wispplace/bun-firehose/tsconfig.json
··· 1 + { 2 + "extends": "../../../tsconfig.json", 3 + "compilerOptions": { 4 + "outDir": "./dist", 5 + "rootDir": "./src" 6 + }, 7 + "include": ["src/**/*"], 8 + "exclude": ["node_modules", "dist"] 9 + }