custom element for embedding Bluesky posts and feeds mary-ext.github.io/bluesky-embed
typescript npm bluesky atcute
7
fork

Configure Feed

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

refactor: upgrade bluesky-client to 0.4.0

Mary 65fe4397 49db9f43

+29 -21
+19 -11
lib/core.tsx
··· 1 1 import type { TrustedHTML } from '@intrnl/jsx-to-string'; 2 - import type { Records, RefOf, ResponseOf } from '@externdefs/bluesky-client/atp-schema'; 2 + import type { 3 + AppBskyEmbedExternal, 4 + AppBskyEmbedImages, 5 + AppBskyEmbedRecord, 6 + AppBskyFeedDefs, 7 + AppBskyFeedGetPostThread, 8 + AppBskyFeedPost, 9 + AppBskyGraphDefs, 10 + } from '@externdefs/bluesky-client/atp-schema'; 3 11 4 12 import './style.css'; 5 13 ··· 11 19 import { format_abs_date, format_abs_date_time } from './utils/date.ts'; 12 20 import { format_compact } from './utils/number.ts'; 13 21 14 - type ThreadResponse = ResponseOf<'app.bsky.feed.getPostThread'>; 15 - type PostData = RefOf<'app.bsky.feed.defs#postView'>; 16 - type PostRecord = Records['app.bsky.feed.post']; 22 + type ThreadResponse = AppBskyFeedGetPostThread.Output; 23 + type PostData = AppBskyFeedDefs.PostView; 24 + type PostRecord = AppBskyFeedPost.Record; 17 25 18 26 /// Fetch post 19 27 const parse_src = (src: string): [actor: string, rkey: string] => { ··· 358 366 }; 359 367 360 368 /// <Embeds /> 361 - type EmbeddedImage = RefOf<'app.bsky.embed.images#viewImage'>; 362 - type EmbeddedLink = RefOf<'app.bsky.embed.external#viewExternal'>; 363 - type EmbeddedRecord = RefOf<'app.bsky.embed.record#view'>['record']; 369 + type EmbeddedImage = AppBskyEmbedImages.ViewImage; 370 + type EmbeddedLink = AppBskyEmbedExternal.ViewExternal; 371 + type EmbeddedRecord = AppBskyEmbedRecord.View['record']; 364 372 365 373 const Embeds = ({ embed, large }: { embed: NonNullable<PostData['embed']>; large: boolean }) => { 366 374 let images: EmbeddedImage[] | undefined; ··· 562 570 }; 563 571 564 572 /// <EmbedPost /> 565 - const EmbedPost = ({ post, large }: { post: RefOf<'app.bsky.embed.record#viewRecord'>; large: boolean }) => { 573 + const EmbedPost = ({ post, large }: { post: AppBskyEmbedRecord.ViewRecord; large: boolean }) => { 566 574 const author = post.author; 567 575 568 576 const record = post.value as PostRecord; ··· 619 627 ); 620 628 }; 621 629 622 - const get_post_images = (post: RefOf<'app.bsky.embed.record#viewRecord'>) => { 630 + const get_post_images = (post: AppBskyEmbedRecord.ViewRecord) => { 623 631 const embeds = post.embeds; 624 632 625 633 if (embeds && embeds.length > 0) { ··· 638 646 }; 639 647 640 648 /// <EmbedFeed /> 641 - const EmbedFeed = ({ feed }: { feed: RefOf<'app.bsky.feed.defs#generatorView'> }) => { 649 + const EmbedFeed = ({ feed }: { feed: AppBskyFeedDefs.GeneratorView }) => { 642 650 const creator = feed.creator; 643 651 644 652 const feed_url = `https://bsky.app/profile/${creator.handle}/feed/${get_record_key(feed.uri)}`; ··· 658 666 }; 659 667 660 668 /// <EmbedList /> 661 - const EmbedList = ({ list }: { list: RefOf<'app.bsky.graph.defs#listView'> }) => { 669 + const EmbedList = ({ list }: { list: AppBskyGraphDefs.ListView }) => { 662 670 const creator = list.creator; 663 671 664 672 const raw_purpose = list.purpose;
+5 -5
lib/utils/richtext/types.ts
··· 1 - import type { RefOf, UnionOf } from '@externdefs/bluesky-client/atp-schema'; 1 + import type { AppBskyRichtextFacet } from '@externdefs/bluesky-client/atp-schema'; 2 2 3 - export type Facet = RefOf<'app.bsky.richtext.facet'>; 4 - export type LinkFeature = UnionOf<'app.bsky.richtext.facet#link'>; 5 - export type MentionFeature = UnionOf<'app.bsky.richtext.facet#mention'>; 6 - export type TagFeature = UnionOf<'app.bsky.richtext.facet#tag'>; 3 + export type Facet = AppBskyRichtextFacet.Main; 4 + export type LinkFeature = AppBskyRichtextFacet.Link; 5 + export type MentionFeature = AppBskyRichtextFacet.Mention; 6 + export type TagFeature = AppBskyRichtextFacet.Tag;
+1 -1
package.json
··· 24 24 "./style.css": "./dist/style.css" 25 25 }, 26 26 "dependencies": { 27 - "@externdefs/bluesky-client": "^0.3.14" 27 + "@externdefs/bluesky-client": "^0.4.0" 28 28 }, 29 29 "devDependencies": { 30 30 "@babel/core": "^7.24.0",
+4 -4
pnpm-lock.yaml
··· 6 6 7 7 dependencies: 8 8 '@externdefs/bluesky-client': 9 - specifier: ^0.3.14 10 - version: 0.3.14 9 + specifier: ^0.4.0 10 + version: 0.4.0 11 11 12 12 devDependencies: 13 13 '@babel/core': ··· 471 471 dev: true 472 472 optional: true 473 473 474 - /@externdefs/bluesky-client@0.3.14: 475 - resolution: {integrity: sha512-Y6tBURjHv//vQunxUFoRtkmidvuANZbdhP7jLlA2otnTBV6krfgmT+l/lNLo1BUvvo6jKlsrWiNxa+AUH2X9NQ==} 474 + /@externdefs/bluesky-client@0.4.0: 475 + resolution: {integrity: sha512-PAeGem21mdmMvnWZOV1uruRM104nqhdPJkW7G3j4F9buwODc4sEGY/HrFJj4bwTs3CNcufz+H6niv1aOb2L2rQ==} 476 476 dev: false 477 477 478 478 /@intrnl/jsx-to-string@0.1.6(@babel/core@7.24.0):