a collection of lightweight TypeScript packages for AT Protocol, the protocol powering Bluesky
atproto bluesky typescript npm
101
fork

Configure Feed

Select the types of activity you want to include in your feed.

chore: migrate to Vitest for everything else

Mary 78ea443a 1e595d13

+250 -149
-1
packages/bluesky/moderation/package.json
··· 33 33 "devDependencies": { 34 34 "@atcute/atproto": "workspace:^", 35 35 "@atcute/bluesky": "workspace:^", 36 - "@types/bun": "^1.3.3", 37 36 "vitest": "^4.0.14" 38 37 } 39 38 }
+1 -1
packages/bluesky/moderation/tsconfig.json
··· 1 1 { 2 2 "compilerOptions": { 3 - "types": ["bun"], 3 + "types": [], 4 4 "outDir": "dist/", 5 5 "esModuleInterop": true, 6 6 "skipLibCheck": true,
+1
packages/bluesky/richtext-parser/.gitignore
··· 1 + /coverage/
+1 -1
packages/bluesky/richtext-parser/lib/index.test.ts
··· 1 - import { expect, it } from 'bun:test'; 1 + import { expect, it } from 'vitest'; 2 2 3 3 import { tokenize } from './index.js'; 4 4
+3 -2
packages/bluesky/richtext-parser/package.json
··· 20 20 "sideEffects": false, 21 21 "scripts": { 22 22 "build": "tsc --project tsconfig.build.json", 23 - "test": "bun test --coverage", 23 + "test": "vitest", 24 24 "prepublish": "rm -rf dist; pnpm run build" 25 25 }, 26 26 "devDependencies": { 27 - "@types/bun": "^1.3.3" 27 + "@vitest/coverage-v8": "^4.0.14", 28 + "vitest": "^4.0.14" 28 29 } 29 30 }
+1 -1
packages/bluesky/richtext-parser/tsconfig.json
··· 1 1 { 2 2 "compilerOptions": { 3 - "types": ["bun"], 3 + "types": [], 4 4 "outDir": "dist/", 5 5 "esModuleInterop": true, 6 6 "skipLibCheck": true,
+1
packages/bluesky/richtext-segmenter/.gitignore
··· 1 + /coverage/
+1 -1
packages/bluesky/richtext-segmenter/lib/index.test.ts
··· 1 - import { expect, it } from 'bun:test'; 1 + import { expect, it } from 'vitest'; 2 2 import { segmentize } from './index.js'; 3 3 4 4 it('does utf8 slicing', () => {
+3 -2
packages/bluesky/richtext-segmenter/package.json
··· 20 20 "sideEffects": false, 21 21 "scripts": { 22 22 "build": "tsc --project tsconfig.build.json", 23 - "test": "bun test --coverage", 23 + "test": "vitest", 24 24 "prepublish": "rm -rf dist; pnpm run build" 25 25 }, 26 26 "dependencies": { ··· 28 28 "@atcute/lexicons": "workspace:^" 29 29 }, 30 30 "devDependencies": { 31 - "@types/bun": "^1.3.3" 31 + "@vitest/coverage-v8": "^4.0.14", 32 + "vitest": "^4.0.14" 32 33 } 33 34 }
+1 -1
packages/bluesky/richtext-segmenter/tsconfig.json
··· 1 1 { 2 2 "compilerOptions": { 3 - "types": ["bun"], 3 + "types": [], 4 4 "outDir": "dist/", 5 5 "esModuleInterop": true, 6 6 "skipLibCheck": true,
+1
packages/bluesky/search-parser/.gitignore
··· 1 + /coverage/
+1 -1
packages/bluesky/search-parser/lib/index.test.ts
··· 1 - import { expect, it } from 'bun:test'; 1 + import { expect, it } from 'vitest'; 2 2 import * as fc from 'fast-check'; 3 3 4 4 import { tokenize, type Token } from './index.js';
+4 -3
packages/bluesky/search-parser/package.json
··· 20 20 "sideEffects": false, 21 21 "scripts": { 22 22 "build": "tsc --project tsconfig.build.json", 23 - "test": "bun test --coverage", 23 + "test": "vitest", 24 24 "prepublish": "rm -rf dist; pnpm run build" 25 25 }, 26 26 "devDependencies": { 27 - "@types/bun": "^1.3.3", 28 - "fast-check": "^3.23.2" 27 + "@vitest/coverage-v8": "^4.0.14", 28 + "fast-check": "^3.23.2", 29 + "vitest": "^4.0.14" 29 30 } 30 31 }
+1 -1
packages/bluesky/search-parser/tsconfig.json
··· 1 1 { 2 2 "compilerOptions": { 3 - "types": ["bun"], 3 + "types": [], 4 4 "outDir": "dist/", 5 5 "esModuleInterop": true, 6 6 "skipLibCheck": true,
+1
packages/identity/did-plc/.gitignore
··· 1 + /coverage/
+2 -2
packages/identity/did-plc/lib/data.test.ts
··· 1 - import { describe, expect, it } from 'bun:test'; 1 + import { describe, expect, it } from 'vitest'; 2 2 3 3 import { processIndexedEntryLog } from './data.js'; 4 4 import { indexedEntryLog } from './typedefs.js'; ··· 82 82 }, 83 83 ]); 84 84 85 + // test passes if no error is thrown 85 86 await processIndexedEntryLog('did:plc:oky5czdrnfjpqslsw2a5iclo', log); 86 - expect().pass(); 87 87 }); 88 88 89 89 it('validates an operation log containing a nullified op', async () => {
+3 -2
packages/identity/did-plc/package.json
··· 25 25 "sideEffects": false, 26 26 "scripts": { 27 27 "build": "tsc --project tsconfig.build.json", 28 - "test": "bun test --coverage", 28 + "test": "vitest", 29 29 "prepublish": "rm -rf dist; pnpm run build" 30 30 }, 31 31 "devDependencies": { 32 - "@types/bun": "^1.3.3" 32 + "@vitest/coverage-v8": "^4.0.14", 33 + "vitest": "^4.0.14" 33 34 }, 34 35 "dependencies": { 35 36 "@atcute/cbor": "workspace:^",
+1 -1
packages/identity/did-plc/tsconfig.json
··· 1 1 { 2 2 "compilerOptions": { 3 - "types": ["bun"], 3 + "types": [], 4 4 "outDir": "dist/", 5 5 "esModuleInterop": true, 6 6 "skipLibCheck": true,
+1
packages/identity/identity/.gitignore
··· 1 + /coverage/
+1 -1
packages/identity/identity/lib/typedefs.test.ts
··· 1 - import { describe, expect, it } from 'bun:test'; 1 + import { describe, expect, it } from 'vitest'; 2 2 3 3 import { didDocument } from './typedefs.js'; 4 4
+1 -1
packages/identity/identity/lib/utils.test.ts
··· 1 - import { describe, it, expect } from 'bun:test'; 1 + import { describe, expect, it } from 'vitest'; 2 2 3 3 import { didDocument } from './typedefs.js'; 4 4 import {
+3 -2
packages/identity/identity/package.json
··· 24 24 "sideEffects": false, 25 25 "scripts": { 26 26 "build": "tsc --project tsconfig.build.json", 27 - "test": "bun test --coverage", 27 + "test": "vitest", 28 28 "prepublish": "rm -rf dist; pnpm run build" 29 29 }, 30 30 "devDependencies": { 31 - "@types/bun": "^1.3.3" 31 + "@vitest/coverage-v8": "^4.0.14", 32 + "vitest": "^4.0.14" 32 33 }, 33 34 "dependencies": { 34 35 "@atcute/lexicons": "workspace:^",
+1 -1
packages/identity/identity/tsconfig.json
··· 1 1 { 2 2 "compilerOptions": { 3 - "types": ["bun"], 3 + "types": [], 4 4 "outDir": "dist/", 5 5 "esModuleInterop": true, 6 6 "skipLibCheck": true,
+1
packages/lexicons/lexicon-resolver/.gitignore
··· 1 + /coverage/
+1 -1
packages/lexicons/lexicon-resolver/lib/authority/doh-json.test.ts
··· 1 - import { describe, expect, it } from 'bun:test'; 1 + import { describe, expect, it } from 'vitest'; 2 2 3 3 import { 4 4 AmbiguousAuthorityError,
+3 -2
packages/lexicons/lexicon-resolver/package.json
··· 25 25 "sideEffects": false, 26 26 "scripts": { 27 27 "build": "tsc --project tsconfig.build.json", 28 - "test": "bun test --coverage", 28 + "test": "vitest", 29 29 "prepublish": "rm -rf dist; pnpm run build" 30 30 }, 31 31 "peerDependencies": { ··· 43 43 "devDependencies": { 44 44 "@atcute/identity": "workspace:^", 45 45 "@atcute/identity-resolver": "workspace:^", 46 - "@types/bun": "^1.3.3" 46 + "@vitest/coverage-v8": "^4.0.14", 47 + "vitest": "^4.0.14" 47 48 } 48 49 }
+1 -1
packages/lexicons/lexicon-resolver/tsconfig.json
··· 1 1 { 2 2 "compilerOptions": { 3 - "types": ["bun"], 3 + "types": [], 4 4 "outDir": "dist/", 5 5 "esModuleInterop": true, 6 6 "skipLibCheck": true,
+1
packages/utilities/cbor/.gitignore
··· 1 + /coverage/
+1 -1
packages/utilities/cbor/lib/index.test.ts
··· 1 - import { expect, it, describe } from 'bun:test'; 1 + import { describe, expect, it } from 'vitest'; 2 2 3 3 import * as CID from '@atcute/cid'; 4 4 import { fromBase64, toBase16 } from '@atcute/multibase';
+4 -3
packages/utilities/cbor/package.json
··· 26 26 "sideEffects": false, 27 27 "scripts": { 28 28 "build": "tsc --project tsconfig.build.json", 29 - "test": "bun test --coverage", 29 + "test": "vitest", 30 30 "prepublish": "rm -rf dist; pnpm run build" 31 31 }, 32 32 "devDependencies": { 33 33 "@ipld/dag-cbor": "^9.2.5", 34 - "@types/bun": "^1.3.3", 35 - "cbor-x": "^1.6.0" 34 + "@vitest/coverage-v8": "^4.0.14", 35 + "cbor-x": "^1.6.0", 36 + "vitest": "^4.0.14" 36 37 }, 37 38 "dependencies": { 38 39 "@atcute/cid": "workspace:^",
+1 -1
packages/utilities/cbor/tsconfig.json
··· 1 1 { 2 2 "compilerOptions": { 3 - "types": ["bun"], 3 + "types": [], 4 4 "outDir": "dist/", 5 5 "esModuleInterop": true, 6 6 "skipLibCheck": true,
+1
packages/utilities/cid/.gitignore
··· 1 + /coverage/
+1 -1
packages/utilities/cid/lib/codec.test.ts
··· 1 - import { describe, expect, it } from 'bun:test'; 1 + import { describe, expect, it } from 'vitest'; 2 2 3 3 import { create, createEmpty, decode, fromString, toString } from './codec.js'; 4 4
+3 -2
packages/utilities/cid/package.json
··· 26 26 "sideEffects": false, 27 27 "scripts": { 28 28 "build": "tsc --project tsconfig.build.json", 29 - "test": "bun test --coverage", 29 + "test": "vitest", 30 30 "prepublish": "rm -rf dist; pnpm run build" 31 31 }, 32 32 "devDependencies": { 33 - "@types/bun": "^1.3.3" 33 + "@vitest/coverage-v8": "^4.0.14", 34 + "vitest": "^4.0.14" 34 35 }, 35 36 "dependencies": { 36 37 "@atcute/multibase": "workspace:^",
+1 -1
packages/utilities/cid/tsconfig.json
··· 1 1 { 2 2 "compilerOptions": { 3 - "types": ["bun"], 3 + "types": [], 4 4 "outDir": "dist/", 5 5 "esModuleInterop": true, 6 6 "skipLibCheck": true,
+1
packages/utilities/multibase/.gitignore
··· 1 + /coverage/
+50 -19
packages/utilities/multibase/lib/bases/base16.test.ts
··· 1 - import { expect, it, mock } from 'bun:test'; 1 + import { describe, expect, it, vi } from 'vitest'; 2 2 3 3 import { fromBase16 as fromBase16Node, toBase16 as toBase16Node } from './base16-node.js'; 4 4 import { fromBase16 as fromBase16Native, toBase16 as toBase16Native } from './base16-web-native.js'; 5 5 import { fromBase16 as fromBase16Polyfill, toBase16 as toBase16Polyfill } from './base16-web-polyfill.js'; 6 + 7 + vi.mock('@atcute/uint8array', async (importOriginal) => { 8 + const actual = await importOriginal<typeof import('@atcute/uint8array')>(); 9 + return { 10 + ...actual, 11 + allocUnsafe: (size: number): Uint8Array => { 12 + return crypto.getRandomValues(new Uint8Array(size)); 13 + }, 14 + }; 15 + }); 16 + 17 + // native methods only available in Node.js 22.1+ or modern browsers 18 + const hasNativeMethods = typeof Uint8Array.prototype.toHex === 'function'; 6 19 7 20 const inputs = [ 8 21 { ··· 30 43 }, 31 44 ]; 32 45 33 - mock.module('@atcute/uint8array', () => { 34 - return { 35 - allocUnsafe: (size: number): Uint8Array => { 36 - return crypto.getRandomValues(new Uint8Array(size)); 37 - }, 38 - }; 46 + describe('polyfill', () => { 47 + it('can encode', () => { 48 + for (const { buffer, encoded } of inputs) { 49 + expect(toBase16Polyfill(buffer)).toEqual(encoded); 50 + } 51 + }); 52 + 53 + it('can decode', () => { 54 + for (const { buffer, encoded } of inputs) { 55 + expect(fromBase16Polyfill(encoded)).toEqual(buffer); 56 + } 57 + }); 39 58 }); 40 59 41 - it('can encode', () => { 42 - for (const { buffer, encoded } of inputs) { 43 - expect(toBase16Polyfill(buffer)).toEqual(encoded); 44 - expect(toBase16Node(buffer)).toEqual(encoded); 45 - expect(toBase16Native(buffer)).toEqual(encoded); 46 - } 60 + describe('node', () => { 61 + it('can encode', () => { 62 + for (const { buffer, encoded } of inputs) { 63 + expect(toBase16Node(buffer)).toEqual(encoded); 64 + } 65 + }); 66 + 67 + it('can decode', () => { 68 + for (const { buffer, encoded } of inputs) { 69 + expect(fromBase16Node(encoded)).toEqual(buffer); 70 + } 71 + }); 47 72 }); 48 73 49 - it('can decode', () => { 50 - for (const { buffer, encoded } of inputs) { 51 - expect(fromBase16Polyfill(encoded)).toEqual(buffer); 52 - expect(fromBase16Node(encoded)).toEqual(buffer); 53 - expect(fromBase16Native(encoded)).toEqual(buffer); 54 - } 74 + describe.skipIf(!hasNativeMethods)('native', () => { 75 + it('can encode', () => { 76 + for (const { buffer, encoded } of inputs) { 77 + expect(toBase16Native(buffer)).toEqual(encoded); 78 + } 79 + }); 80 + 81 + it('can decode', () => { 82 + for (const { buffer, encoded } of inputs) { 83 + expect(fromBase16Native(encoded)).toEqual(buffer); 84 + } 85 + }); 55 86 });
+7 -9
packages/utilities/multibase/lib/bases/base32.test.ts
··· 1 - import { expect, it, mock } from 'bun:test'; 1 + import { expect, it, vi } from 'vitest'; 2 2 3 3 import { fromBase32, toBase32 } from './base32.js'; 4 + 5 + vi.mock('@atcute/uint8array', () => ({ 6 + allocUnsafe: (size: number): Uint8Array => { 7 + return crypto.getRandomValues(new Uint8Array(size)); 8 + }, 9 + })); 4 10 5 11 const inputs = [ 6 12 { ··· 24 30 encoded: `aaahszltebwwc3tjeaqq`, 25 31 }, 26 32 ]; 27 - 28 - mock.module('@atcute/uint8array', () => { 29 - return { 30 - allocUnsafe: (size: number): Uint8Array => { 31 - return crypto.getRandomValues(new Uint8Array(size)); 32 - }, 33 - }; 34 - }); 35 33 36 34 it('can encode', () => { 37 35 const encoder = new TextEncoder();
+11 -9
packages/utilities/multibase/lib/bases/base58.test.ts
··· 1 - import { expect, it, mock } from 'bun:test'; 1 + import { expect, it, vi } from 'vitest'; 2 2 3 3 import { fromBase58Btc, toBase58Btc } from './base58.js'; 4 + 5 + vi.mock('@atcute/uint8array', async (importOriginal) => { 6 + const actual = await importOriginal<typeof import('@atcute/uint8array')>(); 7 + return { 8 + ...actual, 9 + allocUnsafe: (size: number): Uint8Array => { 10 + return crypto.getRandomValues(new Uint8Array(size)); 11 + }, 12 + }; 13 + }); 4 14 5 15 const inputs = [ 6 16 { ··· 27 37 encoded: `117paNL19xttacUY`, 28 38 }, 29 39 ]; 30 - 31 - mock.module('@atcute/uint8array', () => { 32 - return { 33 - allocUnsafe: (size: number): Uint8Array => { 34 - return crypto.getRandomValues(new Uint8Array(size)); 35 - }, 36 - }; 37 - }); 38 40 39 41 it('can encode', () => { 40 42 for (const { buffer, encoded } of inputs) {
+66 -41
packages/utilities/multibase/lib/bases/base64.test.ts
··· 1 - import { expect, it, mock } from 'bun:test'; 1 + import { describe, expect, it, vi } from 'vitest'; 2 2 3 3 import { 4 4 fromBase64 as fromBase64Node, ··· 31 31 toBase64Url as toBase64UrlPolyfill, 32 32 } from './base64-web-polyfill.js'; 33 33 34 + vi.mock('@atcute/uint8array', async (importOriginal) => { 35 + const actual = await importOriginal<typeof import('@atcute/uint8array')>(); 36 + return { 37 + ...actual, 38 + allocUnsafe: (size: number): Uint8Array => { 39 + return crypto.getRandomValues(new Uint8Array(size)); 40 + }, 41 + }; 42 + }); 43 + 44 + // native methods only available in Node.js 22.1+ or modern browsers 45 + const hasNativeMethods = typeof Uint8Array.prototype.toBase64 === 'function'; 46 + 34 47 const inputs = [ 35 48 { 36 49 buffer: Uint8Array.from([63, 63, 63, 63]), ··· 41 54 }, 42 55 ]; 43 56 44 - mock.module('@atcute/uint8array', () => { 45 - return { 46 - allocUnsafe: (size: number): Uint8Array => { 47 - return crypto.getRandomValues(new Uint8Array(size)); 48 - }, 49 - }; 57 + describe('polyfill', () => { 58 + it('can encode', () => { 59 + for (const input of inputs) { 60 + expect(toBase64Polyfill(input.buffer)).toEqual(input.base64); 61 + expect(toBase64PadPolyfill(input.buffer)).toEqual(input.base64pad); 62 + expect(toBase64UrlPolyfill(input.buffer)).toEqual(input.base64url); 63 + expect(toBase64UrlPadPolyfill(input.buffer)).toEqual(input.base64urlpad); 64 + } 65 + }); 66 + 67 + it('can decode', () => { 68 + for (const input of inputs) { 69 + expect(fromBase64Polyfill(input.base64)).toEqual(input.buffer); 70 + expect(fromBase64PadPolyfill(input.base64pad)).toEqual(input.buffer); 71 + expect(fromBase64UrlPolyfill(input.base64url)).toEqual(input.buffer); 72 + expect(fromBase64UrlPadPolyfill(input.base64urlpad)).toEqual(input.buffer); 73 + } 74 + }); 50 75 }); 51 76 52 - it('can encode', () => { 53 - for (const input of inputs) { 54 - expect(toBase64Polyfill(input.buffer)).toEqual(input.base64); 55 - expect(toBase64Node(input.buffer)).toEqual(input.base64); 56 - expect(toBase64Native(input.buffer)).toEqual(input.base64); 77 + describe('node', () => { 78 + it('can encode', () => { 79 + for (const input of inputs) { 80 + expect(toBase64Node(input.buffer)).toEqual(input.base64); 81 + expect(toBase64PadNode(input.buffer)).toEqual(input.base64pad); 82 + expect(toBase64UrlNode(input.buffer)).toEqual(input.base64url); 83 + expect(toBase64UrlPadNode(input.buffer)).toEqual(input.base64urlpad); 84 + } 85 + }); 57 86 58 - expect(toBase64PadPolyfill(input.buffer)).toEqual(input.base64pad); 59 - expect(toBase64PadNode(input.buffer)).toEqual(input.base64pad); 60 - expect(toBase64PadNative(input.buffer)).toEqual(input.base64pad); 61 - 62 - expect(toBase64UrlPolyfill(input.buffer)).toEqual(input.base64url); 63 - expect(toBase64UrlNode(input.buffer)).toEqual(input.base64url); 64 - expect(toBase64UrlNative(input.buffer)).toEqual(input.base64url); 65 - 66 - expect(toBase64UrlPadPolyfill(input.buffer)).toEqual(input.base64urlpad); 67 - expect(toBase64UrlPadNode(input.buffer)).toEqual(input.base64urlpad); 68 - expect(toBase64UrlPadNative(input.buffer)).toEqual(input.base64urlpad); 69 - } 87 + it('can decode', () => { 88 + for (const input of inputs) { 89 + expect(fromBase64Node(input.base64)).toEqual(input.buffer); 90 + expect(fromBase64PadNode(input.base64pad)).toEqual(input.buffer); 91 + expect(fromBase64UrlNode(input.base64url)).toEqual(input.buffer); 92 + expect(fromBase64UrlPadNode(input.base64urlpad)).toEqual(input.buffer); 93 + } 94 + }); 70 95 }); 71 96 72 - it('can decode', () => { 73 - for (const input of inputs) { 74 - expect(fromBase64Polyfill(input.base64)).toEqual(input.buffer); 75 - expect(fromBase64Node(input.base64)).toEqual(input.buffer); 76 - expect(fromBase64Native(input.base64)).toEqual(input.buffer); 77 - 78 - expect(fromBase64PadPolyfill(input.base64pad)).toEqual(input.buffer); 79 - expect(fromBase64PadNode(input.base64pad)).toEqual(input.buffer); 80 - expect(fromBase64PadNative(input.base64pad)).toEqual(input.buffer); 81 - 82 - expect(fromBase64UrlPolyfill(input.base64url)).toEqual(input.buffer); 83 - expect(fromBase64UrlNode(input.base64url)).toEqual(input.buffer); 84 - expect(fromBase64UrlNative(input.base64url)).toEqual(input.buffer); 97 + describe.skipIf(!hasNativeMethods)('native', () => { 98 + it('can encode', () => { 99 + for (const input of inputs) { 100 + expect(toBase64Native(input.buffer)).toEqual(input.base64); 101 + expect(toBase64PadNative(input.buffer)).toEqual(input.base64pad); 102 + expect(toBase64UrlNative(input.buffer)).toEqual(input.base64url); 103 + expect(toBase64UrlPadNative(input.buffer)).toEqual(input.base64urlpad); 104 + } 105 + }); 85 106 86 - expect(fromBase64UrlPadPolyfill(input.base64urlpad)).toEqual(input.buffer); 87 - expect(fromBase64UrlPadNode(input.base64urlpad)).toEqual(input.buffer); 88 - expect(fromBase64UrlPadNative(input.base64urlpad)).toEqual(input.buffer); 89 - } 107 + it('can decode', () => { 108 + for (const input of inputs) { 109 + expect(fromBase64Native(input.base64)).toEqual(input.buffer); 110 + expect(fromBase64PadNative(input.base64pad)).toEqual(input.buffer); 111 + expect(fromBase64UrlNative(input.base64url)).toEqual(input.buffer); 112 + expect(fromBase64UrlPadNative(input.base64urlpad)).toEqual(input.buffer); 113 + } 114 + }); 90 115 });
+4 -2
packages/utilities/multibase/package.json
··· 32 32 "sideEffects": false, 33 33 "scripts": { 34 34 "build": "tsc --project tsconfig.build.json", 35 - "test": "bun test --coverage", 35 + "test": "vitest", 36 36 "prepublish": "rm -rf dist; pnpm run build" 37 37 }, 38 38 "devDependencies": { 39 - "@types/bun": "^1.3.3" 39 + "@types/node": "^22.19.1", 40 + "@vitest/coverage-v8": "^4.0.14", 41 + "vitest": "^4.0.14" 40 42 }, 41 43 "dependencies": { 42 44 "@atcute/uint8array": "workspace:^"
+1 -1
packages/utilities/multibase/tsconfig.json
··· 1 1 { 2 2 "compilerOptions": { 3 - "types": ["bun"], 3 + "types": ["node"], 4 4 "outDir": "dist/", 5 5 "esModuleInterop": true, 6 6 "skipLibCheck": true,
+57 -30
pnpm-lock.yaml
··· 42 42 '@atcute/bluesky': 43 43 specifier: workspace:^ 44 44 version: link:../../definitions/bluesky 45 - '@types/bun': 46 - specifier: ^1.3.3 47 - version: 1.3.3 48 45 vitest: 49 46 specifier: ^4.0.14 50 47 version: 4.0.14(@types/node@24.10.1)(@vitest/browser-playwright@4.0.14)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.0) ··· 60 57 61 58 packages/bluesky/richtext-parser: 62 59 devDependencies: 63 - '@types/bun': 64 - specifier: ^1.3.3 65 - version: 1.3.3 60 + '@vitest/coverage-v8': 61 + specifier: ^4.0.14 62 + version: 4.0.14(@vitest/browser@4.0.14(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.0))(vitest@4.0.14))(vitest@4.0.14) 63 + vitest: 64 + specifier: ^4.0.14 65 + version: 4.0.14(@types/node@24.10.1)(@vitest/browser-playwright@4.0.14)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.0) 66 66 67 67 packages/bluesky/richtext-segmenter: 68 68 dependencies: ··· 73 73 specifier: workspace:^ 74 74 version: link:../../lexicons/lexicons 75 75 devDependencies: 76 - '@types/bun': 77 - specifier: ^1.3.3 78 - version: 1.3.3 76 + '@vitest/coverage-v8': 77 + specifier: ^4.0.14 78 + version: 4.0.14(@vitest/browser@4.0.14(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.0))(vitest@4.0.14))(vitest@4.0.14) 79 + vitest: 80 + specifier: ^4.0.14 81 + version: 4.0.14(@types/node@24.10.1)(@vitest/browser-playwright@4.0.14)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.0) 79 82 80 83 packages/bluesky/search-parser: 81 84 devDependencies: 82 - '@types/bun': 83 - specifier: ^1.3.3 84 - version: 1.3.3 85 + '@vitest/coverage-v8': 86 + specifier: ^4.0.14 87 + version: 4.0.14(@vitest/browser@4.0.14(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.0))(vitest@4.0.14))(vitest@4.0.14) 85 88 fast-check: 86 89 specifier: ^3.23.2 87 90 version: 3.23.2 91 + vitest: 92 + specifier: ^4.0.14 93 + version: 4.0.14(@types/node@24.10.1)(@vitest/browser-playwright@4.0.14)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.0) 88 94 89 95 packages/bluesky/threading: 90 96 dependencies: ··· 390 396 specifier: ^0.4.6 391 397 version: 0.4.6 392 398 devDependencies: 393 - '@types/bun': 394 - specifier: ^1.3.3 395 - version: 1.3.3 399 + '@vitest/coverage-v8': 400 + specifier: ^4.0.14 401 + version: 4.0.14(@vitest/browser@4.0.14(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.0))(vitest@4.0.14))(vitest@4.0.14) 402 + vitest: 403 + specifier: ^4.0.14 404 + version: 4.0.14(@types/node@24.10.1)(@vitest/browser-playwright@4.0.14)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.0) 396 405 397 406 packages/identity/identity: 398 407 dependencies: ··· 403 412 specifier: ^0.4.6 404 413 version: 0.4.6 405 414 devDependencies: 406 - '@types/bun': 407 - specifier: ^1.3.3 408 - version: 1.3.3 415 + '@vitest/coverage-v8': 416 + specifier: ^4.0.14 417 + version: 4.0.14(@vitest/browser@4.0.14(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.0))(vitest@4.0.14))(vitest@4.0.14) 418 + vitest: 419 + specifier: ^4.0.14 420 + version: 4.0.14(@types/node@24.10.1)(@vitest/browser-playwright@4.0.14)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.0) 409 421 410 422 packages/identity/identity-resolver: 411 423 dependencies: ··· 583 595 '@atcute/identity-resolver': 584 596 specifier: workspace:^ 585 597 version: link:../../identity/identity-resolver 586 - '@types/bun': 587 - specifier: ^1.3.3 588 - version: 1.3.3 598 + '@vitest/coverage-v8': 599 + specifier: ^4.0.14 600 + version: 4.0.14(@vitest/browser@4.0.14(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.0))(vitest@4.0.14))(vitest@4.0.14) 601 + vitest: 602 + specifier: ^4.0.14 603 + version: 4.0.14(@types/node@24.10.1)(@vitest/browser-playwright@4.0.14)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.0) 589 604 590 605 packages/lexicons/lexicons: 591 606 dependencies: ··· 798 813 '@ipld/dag-cbor': 799 814 specifier: ^9.2.5 800 815 version: 9.2.5 801 - '@types/bun': 802 - specifier: ^1.3.3 803 - version: 1.3.3 816 + '@vitest/coverage-v8': 817 + specifier: ^4.0.14 818 + version: 4.0.14(@vitest/browser@4.0.14(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.0))(vitest@4.0.14))(vitest@4.0.14) 804 819 cbor-x: 805 820 specifier: ^1.6.0 806 821 version: 1.6.0 822 + vitest: 823 + specifier: ^4.0.14 824 + version: 4.0.14(@types/node@24.10.1)(@vitest/browser-playwright@4.0.14)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.0) 807 825 808 826 packages/utilities/cid: 809 827 dependencies: ··· 814 832 specifier: workspace:^ 815 833 version: link:../../misc/uint8array 816 834 devDependencies: 817 - '@types/bun': 818 - specifier: ^1.3.3 819 - version: 1.3.3 835 + '@vitest/coverage-v8': 836 + specifier: ^4.0.14 837 + version: 4.0.14(@vitest/browser@4.0.14(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.0))(vitest@4.0.14))(vitest@4.0.14) 838 + vitest: 839 + specifier: ^4.0.14 840 + version: 4.0.14(@types/node@24.10.1)(@vitest/browser-playwright@4.0.14)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.0) 820 841 821 842 packages/utilities/crypto: 822 843 dependencies: ··· 883 904 specifier: workspace:^ 884 905 version: link:../../misc/uint8array 885 906 devDependencies: 886 - '@types/bun': 887 - specifier: ^1.3.3 888 - version: 1.3.3 907 + '@types/node': 908 + specifier: ^22.19.1 909 + version: 22.19.1 910 + '@vitest/coverage-v8': 911 + specifier: ^4.0.14 912 + version: 4.0.14(@vitest/browser@4.0.14(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.0))(vitest@4.0.14))(vitest@4.0.14) 913 + vitest: 914 + specifier: ^4.0.14 915 + version: 4.0.14(@types/node@22.19.1)(@vitest/browser-playwright@4.0.14)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.0) 889 916 890 917 packages/utilities/repo: 891 918 dependencies: