diff --git a/bskyembed/eslint.config.mjs b/bskyembed/eslint.config.mjs index 2e020cd55d..0934a2a755 100644 --- a/bskyembed/eslint.config.mjs +++ b/bskyembed/eslint.config.mjs @@ -4,6 +4,7 @@ import {defineConfig} from 'eslint/config' import tseslint from 'typescript-eslint' import simpleImportSort from 'eslint-plugin-simple-import-sort' import {importX} from 'eslint-plugin-import-x' +import {createTypeScriptImportResolver} from 'eslint-import-resolver-typescript' import globals from 'globals' export default defineConfig( @@ -55,5 +56,8 @@ export default defineConfig( ], 'import-x/consistent-type-specifier-style': ['warn', 'prefer-inline'], }, + settings: { + 'import-x/resolver-next': [createTypeScriptImportResolver()], + }, }, ) diff --git a/bskyembed/lexicons.json b/bskyembed/lexicons.json deleted file mode 100644 index 0562a65bb7..0000000000 --- a/bskyembed/lexicons.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "version": 1, - "lexicons": [ - "app.bsky.feed.getPosts", - "app.bsky.feed.post", - "app.bsky.graph.starterpack", - "com.atproto.identity.resolveHandle" - ], - "resolutions": { - "app.bsky.actor.defs": { - "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.actor.defs", - "cid": "bafyreielcp7ccfxuvtdthry5qqdqmvcqo5wx3shkuz32xd5rlypmhw6ufa" - }, - "app.bsky.actor.status": { - "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.actor.status", - "cid": "bafyreifdg4b64wohpwkh5lydc6tckvol2rspnpni6dec6recy2rhvlnz4a" - }, - "app.bsky.embed.defs": { - "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.embed.defs", - "cid": "bafyreia42uud4qil67wknywzbxfyxc3b7woewsii54cakq2ould3ldetei" - }, - "app.bsky.embed.external": { - "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.embed.external", - "cid": "bafyreigwach36azu4xg3jvcmb6fe53umfln3wkuj5srqsvcjaypa6rw534" - }, - "app.bsky.embed.gallery": { - "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.embed.gallery", - "cid": "bafyreia4tixag4sadkirfo63qfma6fz3ifbqanify4e6ce6swkl5lwjnfq" - }, - "app.bsky.embed.images": { - "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.embed.images", - "cid": "bafyreifw77mkqkzlvm5csjwutkrnaivsjvlhg2qxdlwwabqpahlyyjrpwi" - }, - "app.bsky.embed.record": { - "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.embed.record", - "cid": "bafyreia7yq4c6rqkz32fjf6gj5rcvxsirguducn545s3dvls7qutnn2ali" - }, - "app.bsky.embed.recordWithMedia": { - "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.embed.recordWithMedia", - "cid": "bafyreidszvpeqf7copdmowm4ln4eyhahlqxktlvootjjjdmtkwy6s62jya" - }, - "app.bsky.embed.video": { - "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.embed.video", - "cid": "bafyreie3nug4ezpwodl6yrpgv5edkazzn22t7ea4yaeuun4rctyekkngai" - }, - "app.bsky.feed.defs": { - "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.feed.defs", - "cid": "bafyreibg2zvz4n25vtd5yfqlodqra72s4h4lz7vwdexoutv3523wbw6jca" - }, - "app.bsky.feed.getPosts": { - "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.feed.getPosts", - "cid": "bafyreihy4tanaizkynghab46n3qztsspvoaqtbrkzinvxi4igeylg5ghji" - }, - "app.bsky.feed.post": { - "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.feed.post", - "cid": "bafyreia7rgxu7467phwpcgzaw62l5bzmxufkpikrc5zm4q3xhjmuhq4pti" - }, - "app.bsky.feed.postgate": { - "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.feed.postgate", - "cid": "bafyreiai5efexyluyptv5tbl6kqbqlnneczqzexcqnxmitmulyjfaftgva" - }, - "app.bsky.feed.threadgate": { - "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.feed.threadgate", - "cid": "bafyreiht77wd6duduz4yqp62m6dwma5dy7gdihps4g2nd73acfzqlglvdi" - }, - "app.bsky.graph.defs": { - "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.defs", - "cid": "bafyreifcipomli7yggtl46xufgxlnrw7se6xmsdxmzgfcz2tiu76ljatxm" - }, - "app.bsky.graph.starterpack": { - "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.starterpack", - "cid": "bafyreiejgf46gibbkpmjtgt5yyiir3wyxgrtvnfxtcdeyxrdrdnsvwgjc4" - }, - "app.bsky.labeler.defs": { - "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.labeler.defs", - "cid": "bafyreicxx5i36v5dbqk5vvfzhnta5gajrvc544mnepux4wksrkid7mw3q4" - }, - "app.bsky.notification.defs": { - "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.notification.defs", - "cid": "bafyreifzktxnol5rafjoznauk5j7ub2gsxxm7qjskg3vqmcgn6krrsz55u" - }, - "app.bsky.richtext.facet": { - "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.richtext.facet", - "cid": "bafyreidg56eo7zynf6ihz4xb627vwoqf5idnevkmwp7sxc4tijg6xngbu4" - }, - "com.atproto.identity.resolveHandle": { - "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.identity.resolveHandle", - "cid": "bafyreigckmqtt3jrtzd7tvigjatnz6ajqyafs26h5pwcudwag2anedxnmu" - }, - "com.atproto.label.defs": { - "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.label.defs", - "cid": "bafyreidp2wpcbzl2qiob2uwoc7lhntojx3tjcr553mmahw2f5cumtm3wpm" - }, - "com.atproto.moderation.defs": { - "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.moderation.defs", - "cid": "bafyreideawy4rlpgces2oebk5q4kpurbonhb5qtl4pes7dvxsc5osaiksy" - }, - "com.atproto.repo.strongRef": { - "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.repo.strongRef", - "cid": "bafyreifrkdbnkvfjujntdaeigolnrjj3srrs53tfixjhmacclps72qlov4" - }, - "tools.ozone.report.defs": { - "uri": "at://did:plc:33dt5kftu3jq2h5h4jjlqezt/com.atproto.lexicon.schema/tools.ozone.report.defs", - "cid": "bafyreic3l2rmh2ugirt3jz372wcvy333m7t2ynlyzj2k54oshijs6lxdfu" - } - } -} diff --git a/bskyembed/package.json b/bskyembed/package.json index b54e525f39..e9d2f3d223 100644 --- a/bskyembed/package.json +++ b/bskyembed/package.json @@ -10,18 +10,13 @@ "analyze": "ANALYZE=1 vite build", "lint": "eslint --cache src", "typecheck": "tsc --noEmit", - "format": "prettier -w src", - "lex": "lex", - "lex:install": "lex install", - "lex:update": "lex install --update", - "lex:ci": "lex install --ci", - "lex:build": "lex build --lexicons ./lexicons --out ./src/lexicons --clear", - "postinstall": "pnpm lex:ci && pnpm lex:build" + "format": "prettier -w src" }, "dependencies": { "@atproto/lex": "^0.3.0", "@atproto/syntax": "^0.7.2", - "@typescript/native": "npm:typescript@^7.0.2", + "@bsky.app/sdk": "npm:bsky-sdk-preview@0.0.1-preview.1", + "@tailwindcss/vite": "^4.3.2", "preact": "^10.29.7" }, "devDependencies": { @@ -31,6 +26,7 @@ "@vitejs/plugin-legacy": "^8.2.1", "autoprefixer": "^10.5.3", "eslint": "^10.7.0", + "eslint-import-resolver-typescript": "^4.4.5", "eslint-plugin-import-x": "^4.17.1", "eslint-plugin-simple-import-sort": "^13.0.0", "globals": "^17.7.0", @@ -39,7 +35,7 @@ "serve": "^14.2.6", "tailwindcss": "^4.3.2", "terser": "^5.49.0", - "typescript": "npm:@typescript/typescript6@^6.0.2", + "typescript": "^6.0.3", "typescript-eslint": "^8.64.0", "vite": "^8.1.5", "vite-bundle-analyzer": "^1.3.9" diff --git a/bskyembed/pnpm-lock.yaml b/bskyembed/pnpm-lock.yaml index c8cefadf59..aa48201c6f 100644 --- a/bskyembed/pnpm-lock.yaml +++ b/bskyembed/pnpm-lock.yaml @@ -14,37 +14,43 @@ importers: '@atproto/syntax': specifier: ^0.7.2 version: 0.7.2 - '@typescript/native': - specifier: npm:typescript@^7.0.2 - version: typescript@7.0.2 + '@bsky.app/sdk': + specifier: npm:bsky-sdk-preview@0.0.1-preview.1 + version: bsky-sdk-preview@0.0.1-preview.1 + '@tailwindcss/vite': + specifier: ^4.3.2 + version: 4.3.2(vite@8.1.5(jiti@2.7.0)(terser@5.49.0)) preact: specifier: ^10.29.7 version: 10.29.7 devDependencies: '@eslint/js': specifier: ^10.0.1 - version: 10.0.1(eslint@10.7.0(jiti@1.21.7)) + version: 10.0.1(eslint@10.7.0(jiti@2.7.0)) '@preact/preset-vite': specifier: ^2.10.5 - version: 2.10.5(@babel/core@7.29.7)(preact@10.29.7)(vite@8.1.5(jiti@1.21.7)(terser@5.49.0)) + version: 2.10.5(@babel/core@7.29.7)(preact@10.29.7)(vite@8.1.5(jiti@2.7.0)(terser@5.49.0)) '@typescript-eslint/parser': specifier: ^8.64.0 - version: 8.64.0(@typescript/typescript6@6.0.2)(eslint@10.7.0(jiti@1.21.7)) + version: 8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@6.0.3) '@vitejs/plugin-legacy': specifier: ^8.2.1 - version: 8.2.1(terser@5.49.0)(vite@8.1.5(jiti@1.21.7)(terser@5.49.0)) + version: 8.2.1(terser@5.49.0)(vite@8.1.5(jiti@2.7.0)(terser@5.49.0)) autoprefixer: specifier: ^10.5.3 version: 10.5.3(postcss@8.5.19) eslint: specifier: ^10.7.0 - version: 10.7.0(jiti@1.21.7) + version: 10.7.0(jiti@2.7.0) + eslint-import-resolver-typescript: + specifier: ^4.4.5 + version: 4.4.5(eslint-plugin-import-x@4.17.1(@typescript-eslint/utils@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.7.0(jiti@2.7.0)))(eslint@10.7.0(jiti@2.7.0)) eslint-plugin-import-x: specifier: ^4.17.1 - version: 4.17.1(@typescript-eslint/utils@8.64.0(@typescript/typescript6@6.0.2)(eslint@10.7.0(jiti@1.21.7)))(eslint@10.7.0(jiti@1.21.7)) + version: 4.17.1(@typescript-eslint/utils@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.7.0(jiti@2.7.0)) eslint-plugin-simple-import-sort: specifier: ^13.0.0 - version: 13.0.0(eslint@10.7.0(jiti@1.21.7)) + version: 13.0.0(eslint@10.7.0(jiti@2.7.0)) globals: specifier: ^17.7.0 version: 17.7.0 @@ -64,14 +70,14 @@ importers: specifier: ^5.49.0 version: 5.49.0 typescript: - specifier: npm:@typescript/typescript6@^6.0.2 - version: '@typescript/typescript6@6.0.2' + specifier: ^6.0.3 + version: 6.0.3 typescript-eslint: specifier: ^8.64.0 - version: 8.64.0(@typescript/typescript6@6.0.2)(eslint@10.7.0(jiti@1.21.7)) + version: 8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@6.0.3) vite: specifier: ^8.1.5 - version: 8.1.5(jiti@1.21.7)(terser@5.49.0) + version: 8.1.5(jiti@2.7.0)(terser@5.49.0) vite-bundle-analyzer: specifier: ^1.3.9 version: 1.3.9 @@ -86,6 +92,10 @@ packages: resolution: {integrity: sha512-YxXwi8HMk2HHDd5rljPGqxZ8bSeU78sFNz511Y222D0FraEq98p2r1ifkIgI23KQOfy0k0VzafeJAiGDh1CvfQ==} engines: {node: '>=22'} + '@atproto-labs/handle-resolver@0.4.6': + resolution: {integrity: sha512-a3ZoQ0xpIowFuIhvjXwaloJwT3He6NJ02FfrKaRW0tdT2GvEH6nLaVHr46ps8A4ddCz+Q4oUha9atfr4O+0P2g==} + engines: {node: '>=22'} + '@atproto-labs/pipe@0.2.4': resolution: {integrity: sha512-n67jCcrC+ouAeO10cWkpPzzLMlDi/lDCU30Us+LGqhOPhT6c4t5ASdBLQi9W3jUQtRzQBt3G9zipF+xKWNvVbw==} engines: {node: '>=22'} @@ -122,6 +132,10 @@ packages: resolution: {integrity: sha512-1reaooZfNFunJn2Fz21Up7iFQBPZlifQKlBsRvQoLG67mv43nmH4dZWgnGLD54ShCu8dyZ8Y6Wgh7BCg+2gRSw==} engines: {node: '>=22'} + '@atproto/lex-client@0.2.4': + resolution: {integrity: sha512-Y640ET2TF07yjwctfBFZFY1S7Du3h8v5YgGWcSZt1qWeA5JedeNbnioYemY1tj9k0j9hDIWp/cC2WgoibLI9mQ==} + engines: {node: '>=22'} + '@atproto/lex-client@0.3.0': resolution: {integrity: sha512-P+S3hWdIIOgNTun7J42dvxSyCkQog3Q2ShTjvcwP761TqiRex7zDWaRAaT9gvCy6I4pRuNdBCStysjSMlJeSdg==} engines: {node: '>=22'} @@ -146,6 +160,10 @@ packages: resolution: {integrity: sha512-/7rm1bq2me4ptNoPWOrWmlmzRSPhxbcm3BaeD0V8+OzJ5VKBrYHxqp8BBZTzqgVSmwF+TqANctUG4c/y0hkigw==} engines: {node: '>=22'} + '@atproto/lex-schema@0.1.6': + resolution: {integrity: sha512-4AMwaB0HumrQuaXmYQDHeeZGKj8x6ACiIb8fX96Y0ZZaiM/JUmgZl0LTl/1kbQ7cGPfG+NoGsiuz1iJuFhTjxw==} + engines: {node: '>=22'} + '@atproto/lex-schema@0.2.2': resolution: {integrity: sha512-UFK0EH8pw31dvL27aoZ5K78z+UMiD3ybIgkCyd7Idm267KM1IpycerTDeABqo4CYP3/IAnzjGpQaUaVc12bELA==} engines: {node: '>=22'} @@ -159,6 +177,10 @@ packages: resolution: {integrity: sha512-ayX/ieAni4ZMbpdu6VMOCYIjzT8HctCQtcSBWWR8eoynsGZ6FzK/Lln6bH8i0wAj8vPV2pcecd57d33YsahRcQ==} engines: {node: '>=22'} + '@atproto/syntax@0.6.4': + resolution: {integrity: sha512-ELgpShRGMF65cvLXcoMCZFL0HBzy67yz/Nlhox3yOtTh120B09KjjvZYXhMysVog3nUJqv2EW5rf1VRYCeM/hw==} + engines: {node: '>=22'} + '@atproto/syntax@0.7.2': resolution: {integrity: sha512-tZ1Tr0R9pK4bI4Zs69t29cjMlCFQvRNBeNkqJC5pGeNuCt64D0eoF7s/AlqeVmYppClmQ0xJquggGgsMDP6j7w==} engines: {node: '>=22'} @@ -931,6 +953,100 @@ packages: '@standard-schema/spec@1.1.0': resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} + '@tailwindcss/node@4.3.2': + resolution: {integrity: sha512-yWP/sqEcBLaD8JuA6zNwxoYKr75qxTioYwlRwekj5Jr/I5GXnoJfjetH/psLUIv74cYTH2lBUEzBkinthoYcBg==} + + '@tailwindcss/oxide-android-arm64@4.3.2': + resolution: {integrity: sha512-WHxqIuHpvZ5VtdX6GTl1Ik/Vp2YuN42Et+0CdeaVd/frQ9jAvGmvR8vLT+jk3e8/Q3x8kECB9+R17pgpp2BulA==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [android] + + '@tailwindcss/oxide-darwin-arm64@4.3.2': + resolution: {integrity: sha512-GZypeUY/IDJW3877KeM+O67vbXr3MBnbtEL4aYhNErv/JWZhye2vGSWWG9tB6iiqR2MqRNkY8IOUy4NdSZV26w==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [darwin] + + '@tailwindcss/oxide-darwin-x64@4.3.2': + resolution: {integrity: sha512-UIIzmefR6KO1sDU7MzRqAxC8iBpft/VhkGjTjnhoS6k7Z3rQ9wEgA1ODSiyH/tcSYssulNm4Ci3hOeK1jH7ccQ==} + engines: {node: '>= 20'} + cpu: [x64] + os: [darwin] + + '@tailwindcss/oxide-freebsd-x64@4.3.2': + resolution: {integrity: sha512-GN+uAmcI6DNspnCDwtOAZrTz6oukJnp337qZvxqCGLd3BHBzJpO0ZbTLRvJNdztOeAmTzewewGIMPb0tk2R4WA==} + engines: {node: '>= 20'} + cpu: [x64] + os: [freebsd] + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.2': + resolution: {integrity: sha512-4ABn7qSbdHRwTiDiuWNegCyb5+2FJ4vKIKc3DmKrvAFw7MU1Lm11dIkTPwUaFdTzc7IsOpDbqBrlh0x6y36U/w==} + engines: {node: '>= 20'} + cpu: [arm] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-gnu@4.3.2': + resolution: {integrity: sha512-wDgEIGwoM8w8pufh9LVt1PahDgNdKXrLC2qfAnV3vAmococ9RWbxeAw4pxPttd/TsJfwjyLf90Dg1y9y8I6Emw==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@tailwindcss/oxide-linux-arm64-musl@4.3.2': + resolution: {integrity: sha512-J5Nuk0uZQIiMTJj3LEx4sAA9tMFUoXQZFv1J6An+QGYe53HKRJuFDi0rpq/tuouCZeAbOBY3kQ6g8qeD4TUjtA==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@tailwindcss/oxide-linux-x64-gnu@4.3.2': + resolution: {integrity: sha512-kqCZpSKOBEJO4mz7OqWoofBZeXTAwaVGPj0ErAj7CojmhKpWVWVOnrt9dE8odoIraZq4oj3ausM37kXi+Tow8w==} + engines: {node: '>= 20'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@tailwindcss/oxide-linux-x64-musl@4.3.2': + resolution: {integrity: sha512-cixpqbh2toJDmkuCRI68nXA8ZxNmdK9Y+9v5h3MC3ZQKy/0BO8AWzlkWyRM7JAFSGBlfig4YVTPsK6MVgqz1uw==} + engines: {node: '>= 20'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@tailwindcss/oxide-wasm32-wasi@4.3.2': + resolution: {integrity: sha512-4ec2Z/LOmRsAgU23CS4xeJfcJlmRg94A/XrbGRCF1gyU/zdDfRLYDVsS+ynSZCmGNxQ1jQriQOKMQeQxBA3Isw==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + bundledDependencies: + - '@napi-rs/wasm-runtime' + - '@emnapi/core' + - '@emnapi/runtime' + - '@tybys/wasm-util' + - '@emnapi/wasi-threads' + - tslib + + '@tailwindcss/oxide-win32-arm64-msvc@4.3.2': + resolution: {integrity: sha512-Zyr/M0+XcYZu3bZrUytc7TXvrk0ftWfl8gN2MwekNDzhqhKRUucMPSeOzM0o0wH5AWOU49BsKRrfKxI2atCPMQ==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [win32] + + '@tailwindcss/oxide-win32-x64-msvc@4.3.2': + resolution: {integrity: sha512-QI9BO7KlNZsp2GuO0jwAAj5jCDABOKXRkCk2XuKTSaNEFSdfzqswYVTtCHBNKHLsqyjFyFkqlDiwkNbTYSssMQ==} + engines: {node: '>= 20'} + cpu: [x64] + os: [win32] + + '@tailwindcss/oxide@4.3.2': + resolution: {integrity: sha512-z8ZgnzX8gdNoWLBLqBPoh/sjnxkwvf9ZuWjnO0l0yIzbLa5/9S+eC5QxGZKRobVHIC3/1BoMWjHblqWjcgFgag==} + engines: {node: '>= 20'} + + '@tailwindcss/vite@4.3.2': + resolution: {integrity: sha512-eHpMeX4JXfVNJDEcsouTeCBubJBTcTLigeaw/NTUW6PB5ATKKXdyonnXgTBX2VuRbjz1hjfz6C5XAhr52ImQXA==} + peerDependencies: + vite: ^5.2.0 || ^6 || ^7 || ^8 + '@ts-morph/common@0.28.1': resolution: {integrity: sha512-W74iWf7ILp1ZKNYXY5qbddNaml7e9Sedv5lvU1V8lftlitkc9Pq1A+jlH23ltDgWYeZFFEqGCD1Ies9hqu3O+g==} @@ -1005,130 +1121,6 @@ packages: resolution: {integrity: sha512-mrtuL8Nsn6gi2H4mo5KMTp823M+3Q19Ew/i+Zlikq20tIMm99C3Ez0dCmkWWnxut20esQvTg8aUSEhMcAOXhEw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript/typescript-aix-ppc64@7.0.2': - resolution: {integrity: sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==} - engines: {node: '>=16.20.0'} - cpu: [ppc64] - os: [aix] - - '@typescript/typescript-darwin-arm64@7.0.2': - resolution: {integrity: sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==} - engines: {node: '>=16.20.0'} - cpu: [arm64] - os: [darwin] - - '@typescript/typescript-darwin-x64@7.0.2': - resolution: {integrity: sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==} - engines: {node: '>=16.20.0'} - cpu: [x64] - os: [darwin] - - '@typescript/typescript-freebsd-arm64@7.0.2': - resolution: {integrity: sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==} - engines: {node: '>=16.20.0'} - cpu: [arm64] - os: [freebsd] - - '@typescript/typescript-freebsd-x64@7.0.2': - resolution: {integrity: sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==} - engines: {node: '>=16.20.0'} - cpu: [x64] - os: [freebsd] - - '@typescript/typescript-linux-arm64@7.0.2': - resolution: {integrity: sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==} - engines: {node: '>=16.20.0'} - cpu: [arm64] - os: [linux] - - '@typescript/typescript-linux-arm@7.0.2': - resolution: {integrity: sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==} - engines: {node: '>=16.20.0'} - cpu: [arm] - os: [linux] - - '@typescript/typescript-linux-loong64@7.0.2': - resolution: {integrity: sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==} - engines: {node: '>=16.20.0'} - cpu: [loong64] - os: [linux] - - '@typescript/typescript-linux-mips64el@7.0.2': - resolution: {integrity: sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==} - engines: {node: '>=16.20.0'} - cpu: [mips64el] - os: [linux] - - '@typescript/typescript-linux-ppc64@7.0.2': - resolution: {integrity: sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==} - engines: {node: '>=16.20.0'} - cpu: [ppc64] - os: [linux] - - '@typescript/typescript-linux-riscv64@7.0.2': - resolution: {integrity: sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==} - engines: {node: '>=16.20.0'} - cpu: [riscv64] - os: [linux] - - '@typescript/typescript-linux-s390x@7.0.2': - resolution: {integrity: sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==} - engines: {node: '>=16.20.0'} - cpu: [s390x] - os: [linux] - - '@typescript/typescript-linux-x64@7.0.2': - resolution: {integrity: sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==} - engines: {node: '>=16.20.0'} - cpu: [x64] - os: [linux] - - '@typescript/typescript-netbsd-arm64@7.0.2': - resolution: {integrity: sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==} - engines: {node: '>=16.20.0'} - cpu: [arm64] - os: [netbsd] - - '@typescript/typescript-netbsd-x64@7.0.2': - resolution: {integrity: sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==} - engines: {node: '>=16.20.0'} - cpu: [x64] - os: [netbsd] - - '@typescript/typescript-openbsd-arm64@7.0.2': - resolution: {integrity: sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==} - engines: {node: '>=16.20.0'} - cpu: [arm64] - os: [openbsd] - - '@typescript/typescript-openbsd-x64@7.0.2': - resolution: {integrity: sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==} - engines: {node: '>=16.20.0'} - cpu: [x64] - os: [openbsd] - - '@typescript/typescript-sunos-x64@7.0.2': - resolution: {integrity: sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==} - engines: {node: '>=16.20.0'} - cpu: [x64] - os: [sunos] - - '@typescript/typescript-win32-arm64@7.0.2': - resolution: {integrity: sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==} - engines: {node: '>=16.20.0'} - cpu: [arm64] - os: [win32] - - '@typescript/typescript-win32-x64@7.0.2': - resolution: {integrity: sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==} - engines: {node: '>=16.20.0'} - cpu: [x64] - os: [win32] - - '@typescript/typescript6@6.0.2': - resolution: {integrity: sha512-mbCddXd+jm7hfx7w2YU64/Av4/NqqeG3GoRZgxPcgoTxYjhrcfJRw9ULch71SS4G+Q3bOXFhRvPqjguN0Hyp5w==} - hasBin: true - '@unrs/resolver-binding-android-arm-eabi@1.12.2': resolution: {integrity: sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w==} cpu: [arm] @@ -1369,6 +1361,10 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + bsky-sdk-preview@0.0.1-preview.1: + resolution: {integrity: sha512-mIKnugbD/zues2c0sFdw0jimcM+oQWxc5RxVfU8HnHNV2lwGbarfFo7GDJjgL767LhvN/fC/YWX7KVZS+HQNtA==} + engines: {node: '>=22.12.0'} + buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -1527,6 +1523,10 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + enhanced-resolve@5.21.6: + resolution: {integrity: sha512-aNnGCvbJ/RIyWo1IuhNdVjnNF+EjH9wpzpNHt+ci/m9He9LJvUN8wrCcXjp9cWsGNAuvSpVFTx/vraAFQ8qGjQ==} + engines: {node: '>=10.13.0'} + entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -1552,6 +1552,19 @@ packages: unrs-resolver: optional: true + eslint-import-resolver-typescript@4.4.5: + resolution: {integrity: sha512-nbE5XLph6TLtGYcu/U6e6ZVXyKBhbDWK5cLGk76eJ7NdZpwf1P9EFkpt1Z01mNZNrrilsAYWKH6zUkL4reoXbw==} + engines: {node: ^16.17.0 || >=18.6.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + eslint-plugin-import-x: '*' + peerDependenciesMeta: + eslint-plugin-import: + optional: true + eslint-plugin-import-x: + optional: true + eslint-plugin-import-x@4.17.1: resolution: {integrity: sha512-4cdstYkKCyjumM2Q9NSI03K8D2a9F4Ssz33K2lv2hQa4KmR9jPLwk3uWGtNvclfqBrPGfGuMBwsGMbe6dMRbfg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1693,6 +1706,9 @@ packages: resolution: {integrity: sha512-Czmyns5dUsq4seFBR/Kdydhmo8y9kC79hiSkPn0YcGtNnYWnrgt0vjrSjx9tspoDGWm2CMarffRuLjM4xUz8xg==} engines: {node: '>=18'} + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} @@ -1724,6 +1740,9 @@ packages: ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + is-bun-module@2.0.0: + resolution: {integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==} + is-core-module@2.16.2: resolution: {integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==} engines: {node: '>= 0.4'} @@ -1763,8 +1782,8 @@ packages: iso-datestring-validator@2.2.2: resolution: {integrity: sha512-yLEMkBbLZTlVQqOnQ4FiMujR6T4DEcCb1xizmvXS+OxuhwcbtynoosRzdMA69zZCShCNAbi+gJ71FxZBBXx1SA==} - jiti@1.21.7: - resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} + jiti@2.7.0: + resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} hasBin: true js-tokens@4.0.0: @@ -2235,6 +2254,10 @@ packages: resolution: {integrity: sha512-WtctNNSH8A9jlMIqxzuYumOHU5uGZyRv0Q5svQl+oEPy5w84YpBxdb7MdqyiSPQge5jTJ6zFQLq0PFygdccSBA==} hasBin: true + tapable@2.3.3: + resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} + engines: {node: '>=6'} + terser@5.49.0: resolution: {integrity: sha512-SNiDnXyHSrxVcIOtVbULzcTmniUiwcV7Nwdyj1twVubeTmbjoa8p69KKDpfkdoOavuM4/GRm1+ykI8qqnavHoA==} engines: {node: '>=10'} @@ -2248,6 +2271,10 @@ packages: resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} engines: {node: '>=12.0.0'} + tlds@1.261.0: + resolution: {integrity: sha512-QXqwfEl9ddlGBaRFXIvNKK6OhipSiLXuRuLJX5DErz0o0Q0rYxulWLdFryTkV5PkdZct5iMInwYEGe/eR++1AA==} + hasBin: true + ts-api-utils@2.5.0: resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==} engines: {node: '>=18.12'} @@ -2280,11 +2307,6 @@ packages: engines: {node: '>=14.17'} hasBin: true - typescript@7.0.2: - resolution: {integrity: sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==} - engines: {node: '>=16.20.0'} - hasBin: true - uint8arrays@5.1.1: resolution: {integrity: sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==} @@ -2442,6 +2464,13 @@ snapshots: dependencies: '@atproto-labs/pipe': 0.2.4 + '@atproto-labs/handle-resolver@0.4.6': + dependencies: + '@atproto-labs/simple-store': 0.4.4 + '@atproto-labs/simple-store-memory': 0.2.4 + '@atproto/did': 0.5.4 + zod: 3.25.76 + '@atproto-labs/pipe@0.2.4': {} '@atproto-labs/simple-store-memory@0.2.4': @@ -2490,6 +2519,13 @@ snapshots: cborg: 4.5.8 tslib: 2.8.1 + '@atproto/lex-client@0.2.4': + dependencies: + '@atproto/lex-data': 0.1.5 + '@atproto/lex-json': 0.1.4 + '@atproto/lex-schema': 0.2.2 + tslib: 2.8.1 + '@atproto/lex-client@0.3.0': dependencies: '@atproto/lex-data': 0.1.5 @@ -2537,6 +2573,13 @@ snapshots: '@atproto/syntax': 0.7.2 tslib: 2.8.1 + '@atproto/lex-schema@0.1.6': + dependencies: + '@atproto/lex-data': 0.1.5 + '@atproto/syntax': 0.6.4 + '@standard-schema/spec': 1.1.0 + tslib: 2.8.1 + '@atproto/lex-schema@0.2.2': dependencies: '@atproto/lex-data': 0.1.5 @@ -2566,6 +2609,11 @@ snapshots: varint: 6.0.0 zod: 3.25.76 + '@atproto/syntax@0.6.4': + dependencies: + iso-datestring-validator: 2.2.2 + tslib: 2.8.1 + '@atproto/syntax@0.7.2': dependencies: iso-datestring-validator: 2.2.2 @@ -3287,9 +3335,9 @@ snapshots: tslib: 2.8.1 optional: true - '@eslint-community/eslint-utils@4.9.1(eslint@10.7.0(jiti@1.21.7))': + '@eslint-community/eslint-utils@4.9.1(eslint@10.7.0(jiti@2.7.0))': dependencies: - eslint: 10.7.0(jiti@1.21.7) + eslint: 10.7.0(jiti@2.7.0) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.2': {} @@ -3310,9 +3358,9 @@ snapshots: dependencies: '@types/json-schema': 7.0.15 - '@eslint/js@10.0.1(eslint@10.7.0(jiti@1.21.7))': + '@eslint/js@10.0.1(eslint@10.7.0(jiti@2.7.0))': optionalDependencies: - eslint: 10.7.0(jiti@1.21.7) + eslint: 10.7.0(jiti@2.7.0) '@eslint/object-schema@3.0.5': {} @@ -3385,19 +3433,19 @@ snapshots: '@pinojs/redact@0.4.0': {} - '@preact/preset-vite@2.10.5(@babel/core@7.29.7)(preact@10.29.7)(vite@8.1.5(jiti@1.21.7)(terser@5.49.0))': + '@preact/preset-vite@2.10.5(@babel/core@7.29.7)(preact@10.29.7)(vite@8.1.5(jiti@2.7.0)(terser@5.49.0))': dependencies: '@babel/core': 7.29.7 '@babel/plugin-transform-react-jsx': 7.29.7(@babel/core@7.29.7) '@babel/plugin-transform-react-jsx-development': 7.29.7(@babel/core@7.29.7) - '@prefresh/vite': 2.4.12(preact@10.29.7)(vite@8.1.5(jiti@1.21.7)(terser@5.49.0)) + '@prefresh/vite': 2.4.12(preact@10.29.7)(vite@8.1.5(jiti@2.7.0)(terser@5.49.0)) '@rollup/pluginutils': 5.4.0 babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.29.7) debug: 4.4.3 magic-string: 0.30.21 picocolors: 1.1.1 - vite: 8.1.5(jiti@1.21.7)(terser@5.49.0) - vite-prerender-plugin: 0.5.13(vite@8.1.5(jiti@1.21.7)(terser@5.49.0)) + vite: 8.1.5(jiti@2.7.0)(terser@5.49.0) + vite-prerender-plugin: 0.5.13(vite@8.1.5(jiti@2.7.0)(terser@5.49.0)) zimmerframe: 1.1.4 transitivePeerDependencies: - preact @@ -3412,7 +3460,7 @@ snapshots: '@prefresh/utils@1.2.1': {} - '@prefresh/vite@2.4.12(preact@10.29.7)(vite@8.1.5(jiti@1.21.7)(terser@5.49.0))': + '@prefresh/vite@2.4.12(preact@10.29.7)(vite@8.1.5(jiti@2.7.0)(terser@5.49.0))': dependencies: '@babel/core': 7.29.7 '@prefresh/babel-plugin': 0.5.3 @@ -3420,7 +3468,7 @@ snapshots: '@prefresh/utils': 1.2.1 '@rollup/pluginutils': 4.2.1 preact: 10.29.7 - vite: 8.1.5(jiti@1.21.7)(terser@5.49.0) + vite: 8.1.5(jiti@2.7.0)(terser@5.49.0) transitivePeerDependencies: - supports-color @@ -3488,6 +3536,74 @@ snapshots: '@standard-schema/spec@1.1.0': {} + '@tailwindcss/node@4.3.2': + dependencies: + '@jridgewell/remapping': 2.3.5 + enhanced-resolve: 5.21.6 + jiti: 2.7.0 + lightningcss: 1.32.0 + magic-string: 0.30.21 + source-map-js: 1.2.1 + tailwindcss: 4.3.2 + + '@tailwindcss/oxide-android-arm64@4.3.2': + optional: true + + '@tailwindcss/oxide-darwin-arm64@4.3.2': + optional: true + + '@tailwindcss/oxide-darwin-x64@4.3.2': + optional: true + + '@tailwindcss/oxide-freebsd-x64@4.3.2': + optional: true + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.2': + optional: true + + '@tailwindcss/oxide-linux-arm64-gnu@4.3.2': + optional: true + + '@tailwindcss/oxide-linux-arm64-musl@4.3.2': + optional: true + + '@tailwindcss/oxide-linux-x64-gnu@4.3.2': + optional: true + + '@tailwindcss/oxide-linux-x64-musl@4.3.2': + optional: true + + '@tailwindcss/oxide-wasm32-wasi@4.3.2': + optional: true + + '@tailwindcss/oxide-win32-arm64-msvc@4.3.2': + optional: true + + '@tailwindcss/oxide-win32-x64-msvc@4.3.2': + optional: true + + '@tailwindcss/oxide@4.3.2': + optionalDependencies: + '@tailwindcss/oxide-android-arm64': 4.3.2 + '@tailwindcss/oxide-darwin-arm64': 4.3.2 + '@tailwindcss/oxide-darwin-x64': 4.3.2 + '@tailwindcss/oxide-freebsd-x64': 4.3.2 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.3.2 + '@tailwindcss/oxide-linux-arm64-gnu': 4.3.2 + '@tailwindcss/oxide-linux-arm64-musl': 4.3.2 + '@tailwindcss/oxide-linux-x64-gnu': 4.3.2 + '@tailwindcss/oxide-linux-x64-musl': 4.3.2 + '@tailwindcss/oxide-wasm32-wasi': 4.3.2 + '@tailwindcss/oxide-win32-arm64-msvc': 4.3.2 + '@tailwindcss/oxide-win32-x64-msvc': 4.3.2 + + '@tailwindcss/vite@4.3.2(vite@8.1.5(jiti@2.7.0)(terser@5.49.0))': + dependencies: + '@tailwindcss/node': 4.3.2 + '@tailwindcss/oxide': 4.3.2 + tailwindcss: 4.3.2 + vite: 8.1.5(jiti@2.7.0)(terser@5.49.0) + '@ts-morph/common@0.28.1': dependencies: minimatch: 10.2.5 @@ -3505,40 +3621,40 @@ snapshots: '@types/json-schema@7.0.15': {} - '@typescript-eslint/eslint-plugin@8.64.0(@typescript-eslint/parser@8.64.0(@typescript/typescript6@6.0.2)(eslint@10.7.0(jiti@1.21.7)))(@typescript/typescript6@6.0.2)(eslint@10.7.0(jiti@1.21.7))': + '@typescript-eslint/eslint-plugin@8.64.0(@typescript-eslint/parser@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.7.0(jiti@2.7.0))(typescript@6.0.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.64.0(@typescript/typescript6@6.0.2)(eslint@10.7.0(jiti@1.21.7)) + '@typescript-eslint/parser': 8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@6.0.3) '@typescript-eslint/scope-manager': 8.64.0 - '@typescript-eslint/type-utils': 8.64.0(@typescript/typescript6@6.0.2)(eslint@10.7.0(jiti@1.21.7)) - '@typescript-eslint/utils': 8.64.0(@typescript/typescript6@6.0.2)(eslint@10.7.0(jiti@1.21.7)) + '@typescript-eslint/type-utils': 8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/utils': 8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@6.0.3) '@typescript-eslint/visitor-keys': 8.64.0 - eslint: 10.7.0(jiti@1.21.7) + eslint: 10.7.0(jiti@2.7.0) ignore: 7.0.6 natural-compare: 1.4.0 - ts-api-utils: 2.5.0(@typescript/typescript6@6.0.2) - typescript: '@typescript/typescript6@6.0.2' + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.64.0(@typescript/typescript6@6.0.2)(eslint@10.7.0(jiti@1.21.7))': + '@typescript-eslint/parser@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@6.0.3)': dependencies: '@typescript-eslint/scope-manager': 8.64.0 '@typescript-eslint/types': 8.64.0 - '@typescript-eslint/typescript-estree': 8.64.0(@typescript/typescript6@6.0.2) + '@typescript-eslint/typescript-estree': 8.64.0(typescript@6.0.3) '@typescript-eslint/visitor-keys': 8.64.0 debug: 4.4.3 - eslint: 10.7.0(jiti@1.21.7) - typescript: '@typescript/typescript6@6.0.2' + eslint: 10.7.0(jiti@2.7.0) + typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.64.0(@typescript/typescript6@6.0.2)': + '@typescript-eslint/project-service@8.64.0(typescript@6.0.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.64.0(@typescript/typescript6@6.0.2) + '@typescript-eslint/tsconfig-utils': 8.64.0(typescript@6.0.3) '@typescript-eslint/types': 8.64.0 debug: 4.4.3 - typescript: '@typescript/typescript6@6.0.2' + typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -3547,47 +3663,47 @@ snapshots: '@typescript-eslint/types': 8.64.0 '@typescript-eslint/visitor-keys': 8.64.0 - '@typescript-eslint/tsconfig-utils@8.64.0(@typescript/typescript6@6.0.2)': + '@typescript-eslint/tsconfig-utils@8.64.0(typescript@6.0.3)': dependencies: - typescript: '@typescript/typescript6@6.0.2' + typescript: 6.0.3 - '@typescript-eslint/type-utils@8.64.0(@typescript/typescript6@6.0.2)(eslint@10.7.0(jiti@1.21.7))': + '@typescript-eslint/type-utils@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@6.0.3)': dependencies: '@typescript-eslint/types': 8.64.0 - '@typescript-eslint/typescript-estree': 8.64.0(@typescript/typescript6@6.0.2) - '@typescript-eslint/utils': 8.64.0(@typescript/typescript6@6.0.2)(eslint@10.7.0(jiti@1.21.7)) + '@typescript-eslint/typescript-estree': 8.64.0(typescript@6.0.3) + '@typescript-eslint/utils': 8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@6.0.3) debug: 4.4.3 - eslint: 10.7.0(jiti@1.21.7) - ts-api-utils: 2.5.0(@typescript/typescript6@6.0.2) - typescript: '@typescript/typescript6@6.0.2' + eslint: 10.7.0(jiti@2.7.0) + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 transitivePeerDependencies: - supports-color '@typescript-eslint/types@8.64.0': {} - '@typescript-eslint/typescript-estree@8.64.0(@typescript/typescript6@6.0.2)': + '@typescript-eslint/typescript-estree@8.64.0(typescript@6.0.3)': dependencies: - '@typescript-eslint/project-service': 8.64.0(@typescript/typescript6@6.0.2) - '@typescript-eslint/tsconfig-utils': 8.64.0(@typescript/typescript6@6.0.2) + '@typescript-eslint/project-service': 8.64.0(typescript@6.0.3) + '@typescript-eslint/tsconfig-utils': 8.64.0(typescript@6.0.3) '@typescript-eslint/types': 8.64.0 '@typescript-eslint/visitor-keys': 8.64.0 debug: 4.4.3 minimatch: 10.2.5 semver: 7.8.5 tinyglobby: 0.2.17 - ts-api-utils: 2.5.0(@typescript/typescript6@6.0.2) - typescript: '@typescript/typescript6@6.0.2' + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.64.0(@typescript/typescript6@6.0.2)(eslint@10.7.0(jiti@1.21.7))': + '@typescript-eslint/utils@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@6.0.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.7.0(jiti@1.21.7)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.7.0(jiti@2.7.0)) '@typescript-eslint/scope-manager': 8.64.0 '@typescript-eslint/types': 8.64.0 - '@typescript-eslint/typescript-estree': 8.64.0(@typescript/typescript6@6.0.2) - eslint: 10.7.0(jiti@1.21.7) - typescript: '@typescript/typescript6@6.0.2' + '@typescript-eslint/typescript-estree': 8.64.0(typescript@6.0.3) + eslint: 10.7.0(jiti@2.7.0) + typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -3596,70 +3712,6 @@ snapshots: '@typescript-eslint/types': 8.64.0 eslint-visitor-keys: 5.0.1 - '@typescript/typescript-aix-ppc64@7.0.2': - optional: true - - '@typescript/typescript-darwin-arm64@7.0.2': - optional: true - - '@typescript/typescript-darwin-x64@7.0.2': - optional: true - - '@typescript/typescript-freebsd-arm64@7.0.2': - optional: true - - '@typescript/typescript-freebsd-x64@7.0.2': - optional: true - - '@typescript/typescript-linux-arm64@7.0.2': - optional: true - - '@typescript/typescript-linux-arm@7.0.2': - optional: true - - '@typescript/typescript-linux-loong64@7.0.2': - optional: true - - '@typescript/typescript-linux-mips64el@7.0.2': - optional: true - - '@typescript/typescript-linux-ppc64@7.0.2': - optional: true - - '@typescript/typescript-linux-riscv64@7.0.2': - optional: true - - '@typescript/typescript-linux-s390x@7.0.2': - optional: true - - '@typescript/typescript-linux-x64@7.0.2': - optional: true - - '@typescript/typescript-netbsd-arm64@7.0.2': - optional: true - - '@typescript/typescript-netbsd-x64@7.0.2': - optional: true - - '@typescript/typescript-openbsd-arm64@7.0.2': - optional: true - - '@typescript/typescript-openbsd-x64@7.0.2': - optional: true - - '@typescript/typescript-sunos-x64@7.0.2': - optional: true - - '@typescript/typescript-win32-arm64@7.0.2': - optional: true - - '@typescript/typescript-win32-x64@7.0.2': - optional: true - - '@typescript/typescript6@6.0.2': - dependencies: - '@typescript/old': typescript@6.0.3 - '@unrs/resolver-binding-android-arm-eabi@1.12.2': optional: true @@ -3730,7 +3782,7 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.12.2': optional: true - '@vitejs/plugin-legacy@8.2.1(terser@5.49.0)(vite@8.1.5(jiti@1.21.7)(terser@5.49.0))': + '@vitejs/plugin-legacy@8.2.1(terser@5.49.0)(vite@8.1.5(jiti@2.7.0)(terser@5.49.0))': dependencies: '@babel/core': 7.29.7 '@babel/plugin-transform-dynamic-import': 7.29.7(@babel/core@7.29.7) @@ -3745,7 +3797,7 @@ snapshots: regenerator-runtime: 0.14.1 systemjs: 6.15.1 terser: 5.49.0 - vite: 8.1.5(jiti@1.21.7)(terser@5.49.0) + vite: 8.1.5(jiti@2.7.0)(terser@5.49.0) transitivePeerDependencies: - supports-color @@ -3869,6 +3921,15 @@ snapshots: node-releases: 2.0.51 update-browserslist-db: 1.2.3(browserslist@4.28.6) + bsky-sdk-preview@0.0.1-preview.1: + dependencies: + '@atproto-labs/handle-resolver': 0.4.6 + '@atproto/lex-client': 0.2.4 + '@atproto/lex-data': 0.1.5 + '@atproto/lex-schema': 0.1.6 + '@atproto/syntax': 0.6.4 + tlds: 1.261.0 + buffer-from@1.1.2: {} bytes@3.0.0: {} @@ -4006,6 +4067,11 @@ snapshots: emoji-regex@9.2.2: {} + enhanced-resolve@5.21.6: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.3.3 + entities@4.5.0: {} es-errors@1.3.0: {} @@ -4021,12 +4087,27 @@ snapshots: optionalDependencies: unrs-resolver: 1.12.2 - eslint-plugin-import-x@4.17.1(@typescript-eslint/utils@8.64.0(@typescript/typescript6@6.0.2)(eslint@10.7.0(jiti@1.21.7)))(eslint@10.7.0(jiti@1.21.7)): + eslint-import-resolver-typescript@4.4.5(eslint-plugin-import-x@4.17.1(@typescript-eslint/utils@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.7.0(jiti@2.7.0)))(eslint@10.7.0(jiti@2.7.0)): + dependencies: + debug: 4.4.3 + eslint: 10.7.0(jiti@2.7.0) + eslint-import-context: 0.1.9(unrs-resolver@1.12.2) + get-tsconfig: 4.14.0 + is-bun-module: 2.0.0 + stable-hash-x: 0.2.0 + tinyglobby: 0.2.17 + unrs-resolver: 1.12.2 + optionalDependencies: + eslint-plugin-import-x: 4.17.1(@typescript-eslint/utils@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.7.0(jiti@2.7.0)) + transitivePeerDependencies: + - supports-color + + eslint-plugin-import-x@4.17.1(@typescript-eslint/utils@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.7.0(jiti@2.7.0)): dependencies: '@typescript-eslint/types': 8.64.0 comment-parser: 1.4.7 debug: 4.4.3 - eslint: 10.7.0(jiti@1.21.7) + eslint: 10.7.0(jiti@2.7.0) eslint-import-context: 0.1.9(unrs-resolver@1.12.2) is-glob: 4.0.3 minimatch: 10.2.5 @@ -4034,13 +4115,13 @@ snapshots: stable-hash-x: 0.2.0 unrs-resolver: 1.12.2 optionalDependencies: - '@typescript-eslint/utils': 8.64.0(@typescript/typescript6@6.0.2)(eslint@10.7.0(jiti@1.21.7)) + '@typescript-eslint/utils': 8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@6.0.3) transitivePeerDependencies: - supports-color - eslint-plugin-simple-import-sort@13.0.0(eslint@10.7.0(jiti@1.21.7)): + eslint-plugin-simple-import-sort@13.0.0(eslint@10.7.0(jiti@2.7.0)): dependencies: - eslint: 10.7.0(jiti@1.21.7) + eslint: 10.7.0(jiti@2.7.0) eslint-scope@9.1.2: dependencies: @@ -4053,9 +4134,9 @@ snapshots: eslint-visitor-keys@5.0.1: {} - eslint@10.7.0(jiti@1.21.7): + eslint@10.7.0(jiti@2.7.0): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.7.0(jiti@1.21.7)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.7.0(jiti@2.7.0)) '@eslint-community/regexpp': 4.12.2 '@eslint/config-array': 0.23.5 '@eslint/config-helpers': 0.6.0 @@ -4086,7 +4167,7 @@ snapshots: natural-compare: 1.4.0 optionator: 0.9.4 optionalDependencies: - jiti: 1.21.7 + jiti: 2.7.0 transitivePeerDependencies: - supports-color @@ -4175,6 +4256,8 @@ snapshots: globals@17.7.0: {} + graceful-fs@4.2.11: {} + has-flag@4.0.0: {} hasown@2.0.4: @@ -4193,6 +4276,10 @@ snapshots: ini@1.3.8: {} + is-bun-module@2.0.0: + dependencies: + semver: 7.8.5 + is-core-module@2.16.2: dependencies: hasown: 2.0.4 @@ -4219,8 +4306,7 @@ snapshots: iso-datestring-validator@2.2.2: {} - jiti@1.21.7: - optional: true + jiti@2.7.0: {} js-tokens@4.0.0: {} @@ -4632,6 +4718,8 @@ snapshots: tailwindcss@4.3.2: {} + tapable@2.3.3: {} + terser@5.49.0: dependencies: '@jridgewell/source-map': 0.3.11 @@ -4648,9 +4736,11 @@ snapshots: fdir: 6.5.0(picomatch@4.0.5) picomatch: 4.0.5 - ts-api-utils@2.5.0(@typescript/typescript6@6.0.2): + tlds@1.261.0: {} + + ts-api-utils@2.5.0(typescript@6.0.3): dependencies: - typescript: '@typescript/typescript6@6.0.2' + typescript: 6.0.3 ts-morph@27.0.2: dependencies: @@ -4665,42 +4755,19 @@ snapshots: type-fest@2.19.0: {} - typescript-eslint@8.64.0(@typescript/typescript6@6.0.2)(eslint@10.7.0(jiti@1.21.7)): + typescript-eslint@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@6.0.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.64.0(@typescript-eslint/parser@8.64.0(@typescript/typescript6@6.0.2)(eslint@10.7.0(jiti@1.21.7)))(@typescript/typescript6@6.0.2)(eslint@10.7.0(jiti@1.21.7)) - '@typescript-eslint/parser': 8.64.0(@typescript/typescript6@6.0.2)(eslint@10.7.0(jiti@1.21.7)) - '@typescript-eslint/typescript-estree': 8.64.0(@typescript/typescript6@6.0.2) - '@typescript-eslint/utils': 8.64.0(@typescript/typescript6@6.0.2)(eslint@10.7.0(jiti@1.21.7)) - eslint: 10.7.0(jiti@1.21.7) - typescript: '@typescript/typescript6@6.0.2' + '@typescript-eslint/eslint-plugin': 8.64.0(@typescript-eslint/parser@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.7.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/parser': 8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.64.0(typescript@6.0.3) + '@typescript-eslint/utils': 8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@6.0.3) + eslint: 10.7.0(jiti@2.7.0) + typescript: 6.0.3 transitivePeerDependencies: - supports-color typescript@6.0.3: {} - typescript@7.0.2: - optionalDependencies: - '@typescript/typescript-aix-ppc64': 7.0.2 - '@typescript/typescript-darwin-arm64': 7.0.2 - '@typescript/typescript-darwin-x64': 7.0.2 - '@typescript/typescript-freebsd-arm64': 7.0.2 - '@typescript/typescript-freebsd-x64': 7.0.2 - '@typescript/typescript-linux-arm': 7.0.2 - '@typescript/typescript-linux-arm64': 7.0.2 - '@typescript/typescript-linux-loong64': 7.0.2 - '@typescript/typescript-linux-mips64el': 7.0.2 - '@typescript/typescript-linux-ppc64': 7.0.2 - '@typescript/typescript-linux-riscv64': 7.0.2 - '@typescript/typescript-linux-s390x': 7.0.2 - '@typescript/typescript-linux-x64': 7.0.2 - '@typescript/typescript-netbsd-arm64': 7.0.2 - '@typescript/typescript-netbsd-x64': 7.0.2 - '@typescript/typescript-openbsd-arm64': 7.0.2 - '@typescript/typescript-openbsd-x64': 7.0.2 - '@typescript/typescript-sunos-x64': 7.0.2 - '@typescript/typescript-win32-arm64': 7.0.2 - '@typescript/typescript-win32-x64': 7.0.2 - uint8arrays@5.1.1: dependencies: multiformats: 13.4.2 @@ -4766,7 +4833,7 @@ snapshots: vite-bundle-analyzer@1.3.9: {} - vite-prerender-plugin@0.5.13(vite@8.1.5(jiti@1.21.7)(terser@5.49.0)): + vite-prerender-plugin@0.5.13(vite@8.1.5(jiti@2.7.0)(terser@5.49.0)): dependencies: kolorist: 1.8.0 magic-string: 0.30.21 @@ -4774,9 +4841,9 @@ snapshots: simple-code-frame: 1.3.0 source-map: 0.7.6 stack-trace: 1.0.0 - vite: 8.1.5(jiti@1.21.7)(terser@5.49.0) + vite: 8.1.5(jiti@2.7.0)(terser@5.49.0) - vite@8.1.5(jiti@1.21.7)(terser@5.49.0): + vite@8.1.5(jiti@2.7.0)(terser@5.49.0): dependencies: lightningcss: 1.32.0 picomatch: 4.0.5 @@ -4785,7 +4852,7 @@ snapshots: tinyglobby: 0.2.17 optionalDependencies: fsevents: 2.3.3 - jiti: 1.21.7 + jiti: 2.7.0 terser: 5.49.0 which@2.0.2: diff --git a/bskyembed/pnpm-workspace.yaml b/bskyembed/pnpm-workspace.yaml index 0fd811707e..92953e723c 100644 --- a/bskyembed/pnpm-workspace.yaml +++ b/bskyembed/pnpm-workspace.yaml @@ -5,3 +5,4 @@ minimumReleaseAgeExclude: - '@atproto/*' - '@atproto-labs/*' - '@bsky.app/*' + - 'bsky-sdk-preview@0.0.1-preview.1' diff --git a/bskyembed/postcss.config.cjs b/bskyembed/postcss.config.cjs deleted file mode 100644 index 33ad091d26..0000000000 --- a/bskyembed/postcss.config.cjs +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, -} diff --git a/bskyembed/src/components/embed.tsx b/bskyembed/src/components/embed.tsx index 9d4ddcf26f..4e8945a957 100644 --- a/bskyembed/src/components/embed.tsx +++ b/bskyembed/src/components/embed.tsx @@ -1,16 +1,17 @@ +import {app} from '@bsky.app/sdk/lexicons' import {ComponentChildren, h} from 'preact' import {useMemo} from 'preact/hooks' -import infoIcon from '../../assets/circleInfo_stroke2_corner0_rounded.svg' +import {Link} from '#/components/link' +import {VerificationCheck} from '#/components/verification-check' +import {Globe} from '#/icons/Globe' +import {CONTENT_LABELS, labelsToInfo} from '#/labels' +import {getRkey} from '#/util/rkey' +import {getVerificationState} from '#/util/verification-state' + +import infoIcon from '../../assets/arrowBottom_stroke2_corner0_rounded.svg' import playIcon from '../../assets/play_filled_corner0_rounded.svg' import starterPackIcon from '../../assets/starterPack.svg' -import {Globe} from '../icons/Globe' -import {CONTENT_LABELS, labelsToInfo} from '../labels' -import * as app from '../lexicons/app' -import {getRkey} from '../util/rkey' -import {getVerificationState} from '../util/verification-state' -import {Link} from './link' -import {VerificationCheck} from './verification-check' export function Embed({ content, @@ -32,7 +33,7 @@ export function Embed({ } // Case 1b: Gallery (Photos v2) - if (AppBskyEmbedGallery.isView(content)) { + if (app.bsky.embed.gallery.view.isTypeOf(content)) { return } @@ -253,14 +254,14 @@ function GalleryEmbed({ content, labelInfo, }: { - content: AppBskyEmbedGallery.View + content: app.bsky.embed.gallery.View labelInfo?: string }) { if (labelInfo) { return {labelInfo} } const images = content.items - .filter(AppBskyEmbedGallery.isViewImage) + .filter(i => app.bsky.embed.gallery.viewImage.isTypeOf(i)) .map(i => ({thumb: i.thumbnail, alt: i.alt})) return } diff --git a/bskyembed/src/components/post.tsx b/bskyembed/src/components/post.tsx index e607f10104..37ef27559d 100644 --- a/bskyembed/src/components/post.tsx +++ b/bskyembed/src/components/post.tsx @@ -1,21 +1,22 @@ +import {app} from '@bsky.app/sdk/lexicons' +import {RichText} from '@bsky.app/sdk/richtext' import {ComponentChild, h} from 'preact' +import {Container} from '#/components/container' +import {Embed} from '#/components/embed' +import {Link} from '#/components/link' +import {VerificationCheck} from '#/components/verification-check' +import {Like as LikeIcon} from '#/icons/Like' +import {Reply as ReplyIcon} from '#/icons/Reply' +import {Repost as RepostIcon} from '#/icons/Repost' +import {Robot as RobotIcon} from '#/icons/Robot' +import {CONTENT_LABELS} from '#/labels' +import {niceDate} from '#/util/nice-date' +import {prettyNumber} from '#/util/pretty-number' +import {getRkey} from '#/util/rkey' +import {getVerificationState} from '#/util/verification-state' + import logo from '../../assets/logo_full_name.svg' -import {Like as LikeIcon} from '../icons/Like' -import {Reply as ReplyIcon} from '../icons/Reply' -import {Repost as RepostIcon} from '../icons/Repost' -import {Robot as RobotIcon} from '../icons/Robot' -import {CONTENT_LABELS} from '../labels' -import * as app from '../lexicons/app' -import {FacetRenderer} from '../util/facet-renderer' -import {niceDate} from '../util/nice-date' -import {prettyNumber} from '../util/pretty-number' -import {getRkey} from '../util/rkey' -import {getVerificationState} from '../util/verification-state' -import {Container} from './container' -import {Embed} from './embed' -import {Link} from './link' -import {VerificationCheck} from './verification-check' interface Props { post: app.bsky.feed.defs.PostView @@ -147,7 +148,7 @@ function PostContent({record}: {record: app.bsky.feed.post.Main | null}) { // render an empty

that adds an extra flex gap above the embed if (!record?.text) return null - const rt = new FacetRenderer({text: record.text, facets: record.facets}) + const rt = new RichText({text: record.text, facets: record.facets}) const richText: ComponentChild[] = [] let counter = 0 diff --git a/bskyembed/src/labels.ts b/bskyembed/src/labels.ts index 3e392eacb3..8a55c28c82 100644 --- a/bskyembed/src/labels.ts +++ b/bskyembed/src/labels.ts @@ -1,4 +1,4 @@ -import * as app from './lexicons/app' +import {app} from '@bsky.app/sdk/lexicons' export const CONTENT_LABELS = ['porn', 'sexual', 'nudity', 'graphic-media'] diff --git a/bskyembed/src/screens/landing.tsx b/bskyembed/src/screens/landing.tsx index 70c2f21383..0984916c1e 100644 --- a/bskyembed/src/screens/landing.tsx +++ b/bskyembed/src/screens/landing.tsx @@ -2,22 +2,22 @@ import '../index.css' import {AtUriString, Client, type HandleString} from '@atproto/lex' import {AtUri} from '@atproto/syntax' +import {app, com} from '@bsky.app/sdk/lexicons' import {h, render} from 'preact' import {useEffect, useMemo, useRef, useState} from 'preact/hooks' -import arrowBottom from '../../assets/arrowBottom_stroke2_corner0_rounded.svg' -import logo from '../../assets/logo.svg' import { assertColorModeValues, ColorModeValues, initSystemColorMode, -} from '../color-mode' -import {Container} from '../components/container' -import {Link} from '../components/link' -import {Post} from '../components/post' -import * as app from '../lexicons/app' -import * as com from '../lexicons/com' -import {niceDate} from '../util/nice-date' +} from '#/color-mode' +import {Container} from '#/components/container' +import {Link} from '#/components/link' +import {Post} from '#/components/post' +import {niceDate} from '#/util/nice-date' + +import arrowBottom from '../../assets/arrowBottom_stroke2_corner0_rounded.svg' +import logo from '../../assets/logo.svg' const DEFAULT_POST = 'https://bsky.app/profile/did:plc:vjug55kidv6sye7ykr5faxxn/post/3jzn6g7ixgq2y' @@ -85,7 +85,7 @@ function LandingPage() { atUri = `at://${did}/app.bsky.feed.post/${rkey}` } catch (err) { console.log(err) - throw new Error('Invalid Bluesky URL') + throw new Error('Invalid Bluesky URL', {cause: err}) } } } diff --git a/bskyembed/src/screens/post.tsx b/bskyembed/src/screens/post.tsx index 32ee7be488..9c93f5676c 100644 --- a/bskyembed/src/screens/post.tsx +++ b/bskyembed/src/screens/post.tsx @@ -1,15 +1,16 @@ import '../index.css' import {Client, isAtUriString} from '@atproto/lex' +import {app} from '@bsky.app/sdk/lexicons' import {h, render} from 'preact' +import {applyTheme, initSystemColorMode} from '#/color-mode' +import {Container} from '#/components/container' +import {Link} from '#/components/link' +import {Post} from '#/components/post' +import {getRkey} from '#/util/rkey' + import logo from '../../assets/logo.svg' -import {applyTheme, initSystemColorMode} from '../color-mode' -import {Container} from '../components/container' -import {Link} from '../components/link' -import {Post} from '../components/post' -import * as app from '../lexicons/app' -import {getRkey} from '../util/rkey' const root = document.getElementById('app') if (!root) throw new Error('No root element') diff --git a/bskyembed/src/util/facet-renderer.ts b/bskyembed/src/util/facet-renderer.ts deleted file mode 100644 index c195083d30..0000000000 --- a/bskyembed/src/util/facet-renderer.ts +++ /dev/null @@ -1,78 +0,0 @@ -import * as app from '../lexicons/app' - -type Facet = app.bsky.richtext.facet.Main - -const encoder = new TextEncoder() -const decoder = new TextDecoder() - -export class FacetSegment { - constructor( - public text: string, - public facet?: Facet, - ) {} - - get link() { - return this.facet?.features.find(app.bsky.richtext.facet.link.$isTypeOf) - } - - get mention() { - return this.facet?.features.find(app.bsky.richtext.facet.mention.$isTypeOf) - } - - get tag() { - return this.facet?.features.find(app.bsky.richtext.facet.tag.$isTypeOf) - } -} - -export class FacetRenderer { - private utf8: Uint8Array - private facets: Facet[] - - constructor({text, facets}: {text: string; facets?: Facet[]}) { - this.utf8 = encoder.encode(text) - this.facets = (facets ?? []) - .filter(f => f.index.byteStart <= f.index.byteEnd) - .sort((a, b) => a.index.byteStart - b.index.byteStart) - } - - private slice(start: number, end: number): string { - return decoder.decode(this.utf8.slice(start, end)) - } - - *segments(): Generator { - if (!this.facets.length) { - yield new FacetSegment(decoder.decode(this.utf8)) - return - } - - let textCursor = 0 - let facetCursor = 0 - do { - const currFacet = this.facets[facetCursor] - if (textCursor < currFacet.index.byteStart) { - yield new FacetSegment( - this.slice(textCursor, currFacet.index.byteStart), - ) - } else if (textCursor > currFacet.index.byteStart) { - facetCursor++ - continue - } - if (currFacet.index.byteStart < currFacet.index.byteEnd) { - const subtext = this.slice( - currFacet.index.byteStart, - currFacet.index.byteEnd, - ) - if (!subtext.trim()) { - yield new FacetSegment(subtext) - } else { - yield new FacetSegment(subtext, currFacet) - } - } - textCursor = currFacet.index.byteEnd - facetCursor++ - } while (facetCursor < this.facets.length) - if (textCursor < this.utf8.byteLength) { - yield new FacetSegment(this.slice(textCursor, this.utf8.byteLength)) - } - } -} diff --git a/bskyembed/src/util/verification-state.ts b/bskyembed/src/util/verification-state.ts index d17e3e7db6..7ecf0b9100 100644 --- a/bskyembed/src/util/verification-state.ts +++ b/bskyembed/src/util/verification-state.ts @@ -1,4 +1,4 @@ -import * as app from '../lexicons/app' +import {app} from '@bsky.app/sdk/lexicons' export type VerificationState = { role: 'default' | 'verifier' diff --git a/bskyembed/tsconfig.json b/bskyembed/tsconfig.json index edcaa96d4f..b46400f873 100644 --- a/bskyembed/tsconfig.json +++ b/bskyembed/tsconfig.json @@ -16,6 +16,9 @@ "jsx": "react", "jsxFactory": "h", "jsxFragmentFactory": "Fragment", + "paths": { + "#/*": ["./src/*"], + } }, "include": ["src", "snippet", "vite.config.ts", "*.config.cjs", "eslint.config.mjs"] } diff --git a/bskyembed/vite.config.ts b/bskyembed/vite.config.ts index 63e1f41027..099c8b818d 100644 --- a/bskyembed/vite.config.ts +++ b/bskyembed/vite.config.ts @@ -2,6 +2,7 @@ import fs from 'node:fs' import {resolve} from 'node:path' import {preact} from '@preact/preset-vite' +import tailwindcss from '@tailwindcss/vite' import legacy from '@vitejs/plugin-legacy' import type {Plugin, UserConfig} from 'vite' import {analyzer} from 'vite-bundle-analyzer' @@ -38,6 +39,7 @@ function devOnlyRouter(): Plugin { const config: UserConfig = { plugins: [ preact(), + tailwindcss(), legacy({ targets: ['defaults', 'not IE 11'], }),