@atproto/bsky 0.0.239 → 0.0.240
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/dist/data-plane/server/db/migrations/20260604T224952774Z-post-embed-gallery-image.d.ts +4 -0
- package/dist/data-plane/server/db/migrations/20260604T224952774Z-post-embed-gallery-image.d.ts.map +1 -0
- package/dist/data-plane/server/db/migrations/20260604T224952774Z-post-embed-gallery-image.js +17 -0
- package/dist/data-plane/server/db/migrations/20260604T224952774Z-post-embed-gallery-image.js.map +1 -0
- package/dist/data-plane/server/db/migrations/index.d.ts +1 -0
- package/dist/data-plane/server/db/migrations/index.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/index.js +1 -0
- package/dist/data-plane/server/db/migrations/index.js.map +1 -1
- package/dist/data-plane/server/db/tables/post-embed.d.ts +8 -0
- package/dist/data-plane/server/db/tables/post-embed.d.ts.map +1 -1
- package/dist/data-plane/server/db/tables/post-embed.js +1 -0
- package/dist/data-plane/server/db/tables/post-embed.js.map +1 -1
- package/dist/data-plane/server/indexing/index.d.ts +1 -1
- package/dist/data-plane/server/indexing/index.d.ts.map +1 -1
- package/dist/data-plane/server/indexing/index.js +8 -0
- package/dist/data-plane/server/indexing/index.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/post.d.ts +2 -1
- package/dist/data-plane/server/indexing/plugins/post.d.ts.map +1 -1
- package/dist/data-plane/server/indexing/plugins/post.js +39 -1
- package/dist/data-plane/server/indexing/plugins/post.js.map +1 -1
- package/dist/data-plane/server/routes/feeds.d.ts.map +1 -1
- package/dist/data-plane/server/routes/feeds.js +7 -2
- package/dist/data-plane/server/routes/feeds.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo/defs.defs.d.ts +4 -0
- package/dist/lexicons/chat/bsky/convo/defs.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo/defs.defs.js +1 -0
- package/dist/lexicons/chat/bsky/convo/defs.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo/unlockConvo.defs.d.ts +1 -1
- package/dist/lexicons/chat/bsky/convo/unlockConvo.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo/unlockConvo.defs.js +1 -0
- package/dist/lexicons/chat/bsky/convo/unlockConvo.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/embed/joinLink.defs.d.ts +1 -1
- package/dist/lexicons/chat/bsky/embed/joinLink.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/embed/joinLink.defs.js +5 -1
- package/dist/lexicons/chat/bsky/embed/joinLink.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/group/defs.defs.d.ts +18 -1
- package/dist/lexicons/chat/bsky/group/defs.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/group/defs.defs.js +10 -1
- package/dist/lexicons/chat/bsky/group/defs.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/group/getJoinLinkPreviews.defs.d.ts +3 -3
- package/dist/lexicons/chat/bsky/group/getJoinLinkPreviews.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/group/getJoinLinkPreviews.defs.js +6 -2
- package/dist/lexicons/chat/bsky/group/getJoinLinkPreviews.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/moderation/subscribeModEvents.defs.d.ts +1 -1
- package/dist/lexicons/chat/bsky/moderation/subscribeModEvents.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/moderation/subscribeModEvents.defs.js.map +1 -1
- package/package.json +6 -6
- package/src/data-plane/server/db/migrations/20260604T224952774Z-post-embed-gallery-image.ts +19 -0
- package/src/data-plane/server/db/migrations/index.ts +1 -0
- package/src/data-plane/server/db/tables/post-embed.ts +9 -0
- package/src/data-plane/server/indexing/index.ts +8 -0
- package/src/data-plane/server/indexing/plugins/post.ts +49 -1
- package/src/data-plane/server/routes/feeds.ts +17 -4
- package/tests/views/author-feed.test.ts +47 -0
- package/tsconfig.build.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/post.ts"],"names":[],"mappings":"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","sourcesContent":["import { Insertable, Selectable, sql } from 'kysely'\nimport { $Typed, Cid, getBlobCidString, lexParse } from '@atproto/lex'\nimport { AtUri, normalizeDatetimeAlways } from '@atproto/syntax'\nimport { app } from '../../../../lexicons/index.js'\nimport {\n postUriToPostgateUri,\n postUriToThreadgateUri,\n uriToDid,\n} from '../../../../util/uris.js'\nimport { RecordWithMedia } from '../../../../views/types.js'\nimport { parsePostgate } from '../../../../views/util.js'\nimport { BackgroundQueue } from '../../background.js'\nimport { DatabaseSchema, DatabaseSchemaType } from '../../db/database-schema.js'\nimport { Database } from '../../db/index.js'\nimport { Notification } from '../../db/tables/notification.js'\nimport { countAll, excluded } from '../../db/util.js'\nimport {\n getAncestorsAndSelfQb,\n getDescendentsQb,\n invalidReplyRoot as checkInvalidReplyRoot,\n violatesThreadGate as checkViolatesThreadGate,\n} from '../../util.js'\nimport { RecordProcessor } from '../processor.js'\n\ntype Notif = Insertable<Notification>\ntype Post = Selectable<DatabaseSchemaType['post']>\ntype PostEmbedImage = DatabaseSchemaType['post_embed_image']\ntype PostEmbedExternal = DatabaseSchemaType['post_embed_external']\ntype PostEmbedRecord = DatabaseSchemaType['post_embed_record']\ntype PostEmbedVideo = DatabaseSchemaType['post_embed_video']\ntype PostAncestor = {\n uri: string\n height: number\n}\ntype PostDescendent = {\n uri: string\n depth: number\n cid: string\n creator: string\n sortAt: string\n}\ntype IndexedPost = {\n post: Post\n facets?: { type: 'mention' | 'link'; value: string }[]\n embeds?: (\n | PostEmbedImage[]\n | PostEmbedExternal\n | PostEmbedRecord\n | PostEmbedVideo\n )[]\n ancestors?: PostAncestor[]\n descendents?: PostDescendent[]\n threadgate?: app.bsky.feed.threadgate.Main\n}\n\nconst REPLY_NOTIF_DEPTH = 5\n\nconst insertFn = async (\n db: DatabaseSchema,\n uri: AtUri,\n cid: Cid,\n obj: app.bsky.feed.post.Main,\n timestamp: string,\n): Promise<IndexedPost | null> => {\n const post = {\n uri: uri.toString(),\n cid: cid.toString(),\n creator: uri.host,\n text: obj.text,\n createdAt: normalizeDatetimeAlways(obj.createdAt),\n replyRoot: obj.reply?.root?.uri || null,\n replyRootCid: obj.reply?.root?.cid || null,\n replyParent: obj.reply?.parent?.uri || null,\n replyParentCid: obj.reply?.parent?.cid || null,\n langs: obj.langs?.length\n ? sql<string[]>`${JSON.stringify(obj.langs)}` // sidesteps kysely's array serialization, which is non-jsonb\n : null,\n tags: obj.tags?.length\n ? sql<string[]>`${JSON.stringify(obj.tags)}` // sidesteps kysely's array serialization, which is non-jsonb\n : null,\n indexedAt: timestamp,\n }\n const [insertedPost] = await Promise.all([\n db\n .insertInto('post')\n .values(post)\n .onConflict((oc) => oc.doNothing())\n .returningAll()\n .executeTakeFirst(),\n db\n .insertInto('feed_item')\n .values({\n type: 'post',\n uri: post.uri,\n cid: post.cid,\n postUri: post.uri,\n originatorDid: post.creator,\n sortAt:\n post.indexedAt < post.createdAt ? post.indexedAt : post.createdAt,\n })\n .onConflict((oc) => oc.doNothing())\n .executeTakeFirst(),\n ])\n if (!insertedPost) {\n return null // Post already indexed\n }\n\n if (obj.reply) {\n const { invalidReplyRoot, violatesThreadGate } = await validateReply(\n db,\n uri.host,\n obj.reply,\n )\n if (invalidReplyRoot || violatesThreadGate) {\n Object.assign(insertedPost, { invalidReplyRoot, violatesThreadGate })\n await db\n .updateTable('post')\n .where('uri', '=', post.uri)\n .set({ invalidReplyRoot, violatesThreadGate })\n .executeTakeFirst()\n }\n }\n\n const facets = (obj.facets || [])\n .flatMap((facet) => facet.features)\n .flatMap((feature) => {\n if (app.bsky.richtext.facet.mention.$matches(feature)) {\n return {\n type: 'mention' as const,\n value: feature.did,\n }\n }\n if (app.bsky.richtext.facet.link.$matches(feature)) {\n return {\n type: 'link' as const,\n value: feature.uri,\n }\n }\n return []\n })\n // Embed indices\n const embeds: (\n | PostEmbedImage[]\n | PostEmbedExternal\n | PostEmbedRecord\n | PostEmbedVideo\n )[] = []\n const postEmbeds = separateEmbeds(obj.embed)\n for (const postEmbed of postEmbeds) {\n if (app.bsky.embed.images.$matches(postEmbed)) {\n const { images } = postEmbed\n const imagesEmbed = images.map((img, i) => ({\n postUri: uri.toString(),\n position: i,\n imageCid: getBlobCidString(img.image),\n alt: img.alt,\n }))\n embeds.push(imagesEmbed)\n await db.insertInto('post_embed_image').values(imagesEmbed).execute()\n } else if (app.bsky.embed.external.$matches(postEmbed)) {\n const { external } = postEmbed\n const externalEmbed = {\n postUri: uri.toString(),\n uri: external.uri,\n title: external.title,\n description: external.description,\n thumbCid: getBlobCidString(external.thumb) || null,\n }\n embeds.push(externalEmbed)\n await db.insertInto('post_embed_external').values(externalEmbed).execute()\n } else if (app.bsky.embed.record.$matches(postEmbed)) {\n const { record } = postEmbed\n const embedUri = new AtUri(record.uri)\n const recordEmbed = {\n postUri: uri.toString(),\n embedUri: record.uri,\n embedCid: record.cid,\n }\n embeds.push(recordEmbed)\n await db.insertInto('post_embed_record').values(recordEmbed).execute()\n\n if (embedUri.collection === app.bsky.feed.post.$type) {\n const quote = {\n uri: uri.toString(),\n cid: cid.toString(),\n subject: record.uri,\n subjectCid: record.cid,\n createdAt: normalizeDatetimeAlways(obj.createdAt),\n indexedAt: timestamp,\n }\n await db\n .insertInto('quote')\n .values(quote)\n .onConflict((oc) => oc.doNothing())\n .returningAll()\n .executeTakeFirst()\n\n const quoteCountQb = db\n .insertInto('post_agg')\n .values({\n uri: record.uri.toString(),\n quoteCount: db\n .selectFrom('quote')\n .where('quote.subjectCid', '=', record.cid.toString())\n .select(countAll.as('count')),\n })\n .onConflict((oc) =>\n oc\n .column('uri')\n .doUpdateSet({ quoteCount: excluded(db, 'quoteCount') }),\n )\n await quoteCountQb.execute()\n\n const { violatesEmbeddingRules } = await validatePostEmbed(\n db,\n embedUri.toString(),\n uri.toString(),\n )\n Object.assign(insertedPost, {\n violatesEmbeddingRules: violatesEmbeddingRules,\n })\n if (violatesEmbeddingRules) {\n await db\n .updateTable('post')\n .where('uri', '=', insertedPost.uri)\n .set({ violatesEmbeddingRules: violatesEmbeddingRules })\n .executeTakeFirst()\n }\n }\n } else if (app.bsky.embed.video.$matches(postEmbed)) {\n const { video } = postEmbed\n const videoEmbed = {\n postUri: uri.toString(),\n videoCid: getBlobCidString(video),\n // @NOTE: alt is required for image but not for video on the lexicon.\n alt: postEmbed.alt ?? null,\n }\n embeds.push(videoEmbed)\n\n await db.insertInto('post_embed_video').values(videoEmbed).execute()\n }\n }\n\n const threadgate = await getThreadgateRecord(db, post.replyRoot || post.uri)\n const ancestors = await getAncestorsAndSelfQb(db, {\n uri: post.uri,\n parentHeight: REPLY_NOTIF_DEPTH,\n })\n .selectFrom('ancestor')\n .selectAll()\n .execute()\n const descendents = await getDescendentsQb(db, {\n uri: post.uri,\n depth: REPLY_NOTIF_DEPTH,\n })\n .selectFrom('descendent')\n .innerJoin('post', 'post.uri', 'descendent.uri')\n .selectAll('descendent')\n .select(['cid', 'creator', 'sortAt'])\n .execute()\n return {\n post: insertedPost,\n facets,\n embeds,\n ancestors,\n descendents,\n threadgate,\n }\n}\n\nconst findDuplicate = async (): Promise<AtUri | null> => {\n return null\n}\n\nconst notifsForInsert = (obj: IndexedPost) => {\n const notifs: Notif[] = []\n const notified = new Set([obj.post.creator])\n const maybeNotify = (notif: Notif) => {\n if (!notified.has(notif.did)) {\n notified.add(notif.did)\n notifs.push(notif)\n }\n }\n for (const facet of obj.facets ?? []) {\n if (facet.type === 'mention') {\n maybeNotify({\n did: facet.value,\n reason: 'mention',\n author: obj.post.creator,\n recordUri: obj.post.uri,\n recordCid: obj.post.cid,\n sortAt: obj.post.sortAt,\n })\n }\n }\n\n if (!obj.post.violatesEmbeddingRules) {\n for (const embed of obj.embeds ?? []) {\n if ('embedUri' in embed) {\n const embedUri = new AtUri(embed.embedUri)\n if (embedUri.collection === app.bsky.feed.post.$type) {\n maybeNotify({\n did: embedUri.host,\n reason: 'quote',\n reasonSubject: embedUri.toString(),\n author: obj.post.creator,\n recordUri: obj.post.uri,\n recordCid: obj.post.cid,\n sortAt: obj.post.sortAt,\n })\n }\n }\n }\n }\n\n if (obj.post.violatesThreadGate) {\n // don't generate reply notifications when post violates threadgate\n return notifs\n }\n\n const threadgateHiddenReplies = obj.threadgate?.hiddenReplies || []\n\n // reply notifications\n\n for (const ancestor of obj.ancestors ?? []) {\n if (ancestor.uri === obj.post.uri) continue // no need to notify for own post\n if (ancestor.height < REPLY_NOTIF_DEPTH) {\n const ancestorUri = new AtUri(ancestor.uri)\n maybeNotify({\n did: ancestorUri.host,\n reason: 'reply',\n reasonSubject: ancestorUri.toString(),\n author: obj.post.creator,\n recordUri: obj.post.uri,\n recordCid: obj.post.cid,\n sortAt: obj.post.sortAt,\n })\n // found hidden reply, don't notify any higher ancestors\n if (threadgateHiddenReplies.includes(ancestorUri.toString())) break\n }\n }\n\n // descendents indicate out-of-order indexing: need to notify\n // the current post and upwards.\n for (const descendent of obj.descendents ?? []) {\n for (const ancestor of obj.ancestors ?? []) {\n const totalHeight = descendent.depth + ancestor.height\n if (totalHeight < REPLY_NOTIF_DEPTH) {\n const ancestorUri = new AtUri(ancestor.uri)\n maybeNotify({\n did: ancestorUri.host,\n reason: 'reply',\n reasonSubject: ancestorUri.toString(),\n author: descendent.creator,\n recordUri: descendent.uri,\n recordCid: descendent.cid,\n sortAt: descendent.sortAt,\n })\n }\n }\n }\n\n return notifs\n}\n\nconst deleteFn = async (\n db: DatabaseSchema,\n uri: AtUri,\n): Promise<IndexedPost | null> => {\n const uriStr = uri.toString()\n const [deleted] = await Promise.all([\n db\n .deleteFrom('post')\n .where('uri', '=', uriStr)\n .returningAll()\n .executeTakeFirst(),\n db.deleteFrom('feed_item').where('postUri', '=', uriStr).executeTakeFirst(),\n ])\n await db.deleteFrom('quote').where('subject', '=', uriStr).execute()\n const deletedEmbeds: (\n | PostEmbedImage[]\n | PostEmbedExternal\n | PostEmbedRecord\n )[] = []\n const [deletedImgs, deletedExternals, deletedPosts] = await Promise.all([\n db\n .deleteFrom('post_embed_image')\n .where('postUri', '=', uriStr)\n .returningAll()\n .execute(),\n db\n .deleteFrom('post_embed_external')\n .where('postUri', '=', uriStr)\n .returningAll()\n .executeTakeFirst(),\n db\n .deleteFrom('post_embed_record')\n .where('postUri', '=', uriStr)\n .returningAll()\n .executeTakeFirst(),\n ])\n if (deletedImgs.length) {\n deletedEmbeds.push(deletedImgs)\n }\n if (deletedExternals) {\n deletedEmbeds.push(deletedExternals)\n }\n if (deletedPosts) {\n const embedUri = new AtUri(deletedPosts.embedUri)\n deletedEmbeds.push(deletedPosts)\n\n if (embedUri.collection === app.bsky.feed.post.$type) {\n await db.deleteFrom('quote').where('uri', '=', uriStr).execute()\n await db\n .insertInto('post_agg')\n .values({\n uri: deletedPosts.embedUri,\n quoteCount: db\n .selectFrom('quote')\n .where('quote.subjectCid', '=', deletedPosts.embedCid.toString())\n .select(countAll.as('count')),\n })\n .onConflict((oc) =>\n oc\n .column('uri')\n .doUpdateSet({ quoteCount: excluded(db, 'quoteCount') }),\n )\n .execute()\n }\n }\n return deleted\n ? {\n post: deleted,\n facets: [], // Not used\n embeds: deletedEmbeds,\n }\n : null\n}\n\nconst notifsForDelete = (\n deleted: IndexedPost,\n replacedBy: IndexedPost | null,\n) => {\n const notifs = replacedBy ? notifsForInsert(replacedBy) : []\n return {\n notifs,\n toDelete: [deleted.post.uri],\n }\n}\n\nconst updateAggregates = async (db: DatabaseSchema, postIdx: IndexedPost) => {\n const replyCountQb = postIdx.post.replyParent\n ? db\n .insertInto('post_agg')\n .values({\n uri: postIdx.post.replyParent,\n replyCount: db\n .selectFrom('post')\n .where('post.replyParent', '=', postIdx.post.replyParent)\n .where((qb) =>\n qb\n .where('post.violatesThreadGate', 'is', null)\n .orWhere('post.violatesThreadGate', '=', false),\n )\n .select(countAll.as('count')),\n })\n .onConflict((oc) =>\n oc\n .column('uri')\n .doUpdateSet({ replyCount: excluded(db, 'replyCount') }),\n )\n : null\n const postsCountQb = db\n .insertInto('profile_agg')\n .values({\n did: postIdx.post.creator,\n postsCount: db\n .selectFrom('post')\n .where('post.creator', '=', postIdx.post.creator)\n .select(countAll.as('count')),\n })\n .onConflict((oc) =>\n oc.column('did').doUpdateSet({ postsCount: excluded(db, 'postsCount') }),\n )\n await Promise.all([replyCountQb?.execute(), postsCountQb.execute()])\n}\n\nexport type PluginType = ReturnType<typeof makePlugin>\nexport const makePlugin = (db: Database, background: BackgroundQueue) => {\n return new RecordProcessor(db, background, {\n schema: app.bsky.feed.post.main,\n insertFn,\n findDuplicate,\n deleteFn,\n notifsForInsert,\n notifsForDelete,\n updateAggregates,\n })\n}\n\nexport default makePlugin\n\nfunction separateEmbeds(\n embed: app.bsky.feed.post.Main['embed'],\n): Array<\n | RecordWithMedia['media']\n | $Typed<RecordWithMedia['record']>\n | NonNullable<app.bsky.feed.post.Main['embed']>\n> {\n if (!embed) {\n return []\n }\n if (app.bsky.embed.recordWithMedia.$matches(embed)) {\n return [app.bsky.embed.record.$build(embed.record), embed.media]\n }\n return [embed]\n}\n\nasync function validateReply(\n db: DatabaseSchema,\n creator: string,\n reply: app.bsky.feed.post.ReplyRef,\n) {\n const replyRefs = await getReplyRefs(db, reply)\n // check reply\n const invalidReplyRoot =\n !replyRefs.parent || checkInvalidReplyRoot(reply, replyRefs.parent)\n // check interaction\n const violatesThreadGate = await checkViolatesThreadGate(\n db,\n creator,\n uriToDid(reply.root.uri),\n replyRefs.root?.record ?? null,\n replyRefs.gate?.record ?? null,\n )\n return {\n invalidReplyRoot,\n violatesThreadGate,\n }\n}\n\nasync function getThreadgateRecord(db: DatabaseSchema, postUri: string) {\n const threadgateRecordUri = postUriToThreadgateUri(postUri)\n const results = await db\n .selectFrom('record')\n .where('record.uri', '=', threadgateRecordUri)\n .selectAll()\n .execute()\n const threadgateRecord = results.find(\n (ref) => ref.uri === threadgateRecordUri,\n )\n if (threadgateRecord) {\n return lexParse<app.bsky.feed.threadgate.Main>(threadgateRecord.json)\n }\n}\n\nasync function validatePostEmbed(\n db: DatabaseSchema,\n embedUri: string,\n parentUri: string,\n) {\n const postgateRecordUri = postUriToPostgateUri(embedUri)\n const postgateRecord = await db\n .selectFrom('record')\n .where('record.uri', '=', postgateRecordUri)\n .selectAll()\n .executeTakeFirst()\n if (!postgateRecord) {\n return {\n violatesEmbeddingRules: false,\n }\n }\n const {\n embeddingRules: { canEmbed },\n } = parsePostgate({\n gate: lexParse<app.bsky.feed.postgate.Main>(postgateRecord.json),\n viewerDid: uriToDid(parentUri),\n authorDid: uriToDid(embedUri),\n })\n if (canEmbed) {\n return {\n violatesEmbeddingRules: false,\n }\n }\n return {\n violatesEmbeddingRules: true,\n }\n}\n\nasync function getReplyRefs(\n db: DatabaseSchema,\n reply: app.bsky.feed.post.ReplyRef,\n) {\n const replyRoot = reply.root.uri\n const replyParent = reply.parent.uri\n const replyGate = postUriToThreadgateUri(replyRoot)\n const results = await db\n .selectFrom('record')\n .where('record.uri', 'in', [replyRoot, replyGate, replyParent])\n .leftJoin('post', 'post.uri', 'record.uri')\n .selectAll('post')\n .select(['record.uri', 'json'])\n .execute()\n const root = results.find((ref) => ref.uri === replyRoot)\n const parent = results.find((ref) => ref.uri === replyParent)\n const gate = results.find((ref) => ref.uri === replyGate)\n return {\n root: root && {\n uri: root.uri,\n invalidReplyRoot: root.invalidReplyRoot,\n record: lexParse<app.bsky.feed.post.Main>(root.json),\n },\n parent: parent && {\n uri: parent.uri,\n invalidReplyRoot: parent.invalidReplyRoot,\n record: lexParse<app.bsky.feed.post.Main>(parent.json),\n },\n gate: gate && {\n uri: gate.uri,\n record: lexParse<app.bsky.feed.threadgate.Main>(gate.json),\n },\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"post.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/indexing/plugins/post.ts"],"names":[],"mappings":"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","sourcesContent":["import { Insertable, Selectable, sql } from 'kysely'\nimport { $Typed, Cid, getBlobCidString, lexParse } from '@atproto/lex'\nimport { AtUri, normalizeDatetimeAlways } from '@atproto/syntax'\nimport { app } from '../../../../lexicons/index.js'\nimport {\n postUriToPostgateUri,\n postUriToThreadgateUri,\n uriToDid,\n} from '../../../../util/uris.js'\nimport { RecordWithMedia } from '../../../../views/types.js'\nimport { parsePostgate } from '../../../../views/util.js'\nimport { BackgroundQueue } from '../../background.js'\nimport { DatabaseSchema, DatabaseSchemaType } from '../../db/database-schema.js'\nimport { Database } from '../../db/index.js'\nimport { Notification } from '../../db/tables/notification.js'\nimport { countAll, excluded } from '../../db/util.js'\nimport {\n getAncestorsAndSelfQb,\n getDescendentsQb,\n invalidReplyRoot as checkInvalidReplyRoot,\n violatesThreadGate as checkViolatesThreadGate,\n} from '../../util.js'\nimport { RecordProcessor } from '../processor.js'\n\ntype Notif = Insertable<Notification>\ntype Post = Selectable<DatabaseSchemaType['post']>\ntype PostEmbedImage = DatabaseSchemaType['post_embed_image']\ntype PostEmbedExternal = DatabaseSchemaType['post_embed_external']\ntype PostEmbedRecord = DatabaseSchemaType['post_embed_record']\ntype PostEmbedVideo = DatabaseSchemaType['post_embed_video']\ntype PostEmbedGalleryImage = DatabaseSchemaType['post_embed_gallery_image']\ntype PostAncestor = {\n uri: string\n height: number\n}\ntype PostDescendent = {\n uri: string\n depth: number\n cid: string\n creator: string\n sortAt: string\n}\ntype IndexedPost = {\n post: Post\n facets?: { type: 'mention' | 'link'; value: string }[]\n embeds?: (\n | PostEmbedImage[]\n | PostEmbedExternal\n | PostEmbedRecord\n | PostEmbedVideo\n | PostEmbedGalleryImage[]\n )[]\n ancestors?: PostAncestor[]\n descendents?: PostDescendent[]\n threadgate?: app.bsky.feed.threadgate.Main\n}\n\nconst REPLY_NOTIF_DEPTH = 5\n\nconst insertFn = async (\n db: DatabaseSchema,\n uri: AtUri,\n cid: Cid,\n obj: app.bsky.feed.post.Main,\n timestamp: string,\n): Promise<IndexedPost | null> => {\n const post = {\n uri: uri.toString(),\n cid: cid.toString(),\n creator: uri.host,\n text: obj.text,\n createdAt: normalizeDatetimeAlways(obj.createdAt),\n replyRoot: obj.reply?.root?.uri || null,\n replyRootCid: obj.reply?.root?.cid || null,\n replyParent: obj.reply?.parent?.uri || null,\n replyParentCid: obj.reply?.parent?.cid || null,\n langs: obj.langs?.length\n ? sql<string[]>`${JSON.stringify(obj.langs)}` // sidesteps kysely's array serialization, which is non-jsonb\n : null,\n tags: obj.tags?.length\n ? sql<string[]>`${JSON.stringify(obj.tags)}` // sidesteps kysely's array serialization, which is non-jsonb\n : null,\n indexedAt: timestamp,\n }\n const [insertedPost] = await Promise.all([\n db\n .insertInto('post')\n .values(post)\n .onConflict((oc) => oc.doNothing())\n .returningAll()\n .executeTakeFirst(),\n db\n .insertInto('feed_item')\n .values({\n type: 'post',\n uri: post.uri,\n cid: post.cid,\n postUri: post.uri,\n originatorDid: post.creator,\n sortAt:\n post.indexedAt < post.createdAt ? post.indexedAt : post.createdAt,\n })\n .onConflict((oc) => oc.doNothing())\n .executeTakeFirst(),\n ])\n if (!insertedPost) {\n return null // Post already indexed\n }\n\n if (obj.reply) {\n const { invalidReplyRoot, violatesThreadGate } = await validateReply(\n db,\n uri.host,\n obj.reply,\n )\n if (invalidReplyRoot || violatesThreadGate) {\n Object.assign(insertedPost, { invalidReplyRoot, violatesThreadGate })\n await db\n .updateTable('post')\n .where('uri', '=', post.uri)\n .set({ invalidReplyRoot, violatesThreadGate })\n .executeTakeFirst()\n }\n }\n\n const facets = (obj.facets || [])\n .flatMap((facet) => facet.features)\n .flatMap((feature) => {\n if (app.bsky.richtext.facet.mention.$matches(feature)) {\n return {\n type: 'mention' as const,\n value: feature.did,\n }\n }\n if (app.bsky.richtext.facet.link.$matches(feature)) {\n return {\n type: 'link' as const,\n value: feature.uri,\n }\n }\n return []\n })\n // Embed indices\n const embeds: (\n | PostEmbedImage[]\n | PostEmbedExternal\n | PostEmbedRecord\n | PostEmbedVideo\n | PostEmbedGalleryImage[]\n )[] = []\n const postEmbeds = separateEmbeds(obj.embed)\n for (const postEmbed of postEmbeds) {\n if (app.bsky.embed.images.$matches(postEmbed)) {\n const { images } = postEmbed\n const imagesEmbed = images.map((img, i) => ({\n postUri: uri.toString(),\n position: i,\n imageCid: getBlobCidString(img.image),\n alt: img.alt,\n }))\n embeds.push(imagesEmbed)\n await db.insertInto('post_embed_image').values(imagesEmbed).execute()\n } else if (app.bsky.embed.external.$matches(postEmbed)) {\n const { external } = postEmbed\n const externalEmbed = {\n postUri: uri.toString(),\n uri: external.uri,\n title: external.title,\n description: external.description,\n thumbCid: getBlobCidString(external.thumb) || null,\n }\n embeds.push(externalEmbed)\n await db.insertInto('post_embed_external').values(externalEmbed).execute()\n } else if (app.bsky.embed.record.$matches(postEmbed)) {\n const { record } = postEmbed\n const embedUri = new AtUri(record.uri)\n const recordEmbed = {\n postUri: uri.toString(),\n embedUri: record.uri,\n embedCid: record.cid,\n }\n embeds.push(recordEmbed)\n await db.insertInto('post_embed_record').values(recordEmbed).execute()\n\n if (embedUri.collection === app.bsky.feed.post.$type) {\n const quote = {\n uri: uri.toString(),\n cid: cid.toString(),\n subject: record.uri,\n subjectCid: record.cid,\n createdAt: normalizeDatetimeAlways(obj.createdAt),\n indexedAt: timestamp,\n }\n await db\n .insertInto('quote')\n .values(quote)\n .onConflict((oc) => oc.doNothing())\n .returningAll()\n .executeTakeFirst()\n\n const quoteCountQb = db\n .insertInto('post_agg')\n .values({\n uri: record.uri.toString(),\n quoteCount: db\n .selectFrom('quote')\n .where('quote.subjectCid', '=', record.cid.toString())\n .select(countAll.as('count')),\n })\n .onConflict((oc) =>\n oc\n .column('uri')\n .doUpdateSet({ quoteCount: excluded(db, 'quoteCount') }),\n )\n await quoteCountQb.execute()\n\n const { violatesEmbeddingRules } = await validatePostEmbed(\n db,\n embedUri.toString(),\n uri.toString(),\n )\n Object.assign(insertedPost, {\n violatesEmbeddingRules: violatesEmbeddingRules,\n })\n if (violatesEmbeddingRules) {\n await db\n .updateTable('post')\n .where('uri', '=', insertedPost.uri)\n .set({ violatesEmbeddingRules: violatesEmbeddingRules })\n .executeTakeFirst()\n }\n }\n } else if (app.bsky.embed.video.$matches(postEmbed)) {\n const { video } = postEmbed\n const videoEmbed = {\n postUri: uri.toString(),\n videoCid: getBlobCidString(video),\n // @NOTE: alt is required for image but not for video on the lexicon.\n alt: postEmbed.alt ?? null,\n }\n embeds.push(videoEmbed)\n\n await db.insertInto('post_embed_video').values(videoEmbed).execute()\n } else if (app.bsky.embed.gallery.$matches(postEmbed)) {\n // Gallery items are a union; today only `#image` exists, but we\n // defensively skip unknown variants for forward-compat.\n const galleryImages: PostEmbedGalleryImage[] = []\n postEmbed.items.forEach((item, i) => {\n if (app.bsky.embed.gallery.image.$matches(item)) {\n galleryImages.push({\n postUri: uri.toString(),\n position: i,\n imageCid: getBlobCidString(item.image),\n alt: item.alt,\n })\n }\n })\n if (galleryImages.length > 0) {\n embeds.push(galleryImages)\n await db\n .insertInto('post_embed_gallery_image')\n .values(galleryImages)\n .execute()\n }\n }\n }\n\n const threadgate = await getThreadgateRecord(db, post.replyRoot || post.uri)\n const ancestors = await getAncestorsAndSelfQb(db, {\n uri: post.uri,\n parentHeight: REPLY_NOTIF_DEPTH,\n })\n .selectFrom('ancestor')\n .selectAll()\n .execute()\n const descendents = await getDescendentsQb(db, {\n uri: post.uri,\n depth: REPLY_NOTIF_DEPTH,\n })\n .selectFrom('descendent')\n .innerJoin('post', 'post.uri', 'descendent.uri')\n .selectAll('descendent')\n .select(['cid', 'creator', 'sortAt'])\n .execute()\n return {\n post: insertedPost,\n facets,\n embeds,\n ancestors,\n descendents,\n threadgate,\n }\n}\n\nconst findDuplicate = async (): Promise<AtUri | null> => {\n return null\n}\n\nconst notifsForInsert = (obj: IndexedPost) => {\n const notifs: Notif[] = []\n const notified = new Set([obj.post.creator])\n const maybeNotify = (notif: Notif) => {\n if (!notified.has(notif.did)) {\n notified.add(notif.did)\n notifs.push(notif)\n }\n }\n for (const facet of obj.facets ?? []) {\n if (facet.type === 'mention') {\n maybeNotify({\n did: facet.value,\n reason: 'mention',\n author: obj.post.creator,\n recordUri: obj.post.uri,\n recordCid: obj.post.cid,\n sortAt: obj.post.sortAt,\n })\n }\n }\n\n if (!obj.post.violatesEmbeddingRules) {\n for (const embed of obj.embeds ?? []) {\n if ('embedUri' in embed) {\n const embedUri = new AtUri(embed.embedUri)\n if (embedUri.collection === app.bsky.feed.post.$type) {\n maybeNotify({\n did: embedUri.host,\n reason: 'quote',\n reasonSubject: embedUri.toString(),\n author: obj.post.creator,\n recordUri: obj.post.uri,\n recordCid: obj.post.cid,\n sortAt: obj.post.sortAt,\n })\n }\n }\n }\n }\n\n if (obj.post.violatesThreadGate) {\n // don't generate reply notifications when post violates threadgate\n return notifs\n }\n\n const threadgateHiddenReplies = obj.threadgate?.hiddenReplies || []\n\n // reply notifications\n\n for (const ancestor of obj.ancestors ?? []) {\n if (ancestor.uri === obj.post.uri) continue // no need to notify for own post\n if (ancestor.height < REPLY_NOTIF_DEPTH) {\n const ancestorUri = new AtUri(ancestor.uri)\n maybeNotify({\n did: ancestorUri.host,\n reason: 'reply',\n reasonSubject: ancestorUri.toString(),\n author: obj.post.creator,\n recordUri: obj.post.uri,\n recordCid: obj.post.cid,\n sortAt: obj.post.sortAt,\n })\n // found hidden reply, don't notify any higher ancestors\n if (threadgateHiddenReplies.includes(ancestorUri.toString())) break\n }\n }\n\n // descendents indicate out-of-order indexing: need to notify\n // the current post and upwards.\n for (const descendent of obj.descendents ?? []) {\n for (const ancestor of obj.ancestors ?? []) {\n const totalHeight = descendent.depth + ancestor.height\n if (totalHeight < REPLY_NOTIF_DEPTH) {\n const ancestorUri = new AtUri(ancestor.uri)\n maybeNotify({\n did: ancestorUri.host,\n reason: 'reply',\n reasonSubject: ancestorUri.toString(),\n author: descendent.creator,\n recordUri: descendent.uri,\n recordCid: descendent.cid,\n sortAt: descendent.sortAt,\n })\n }\n }\n }\n\n return notifs\n}\n\nconst deleteFn = async (\n db: DatabaseSchema,\n uri: AtUri,\n): Promise<IndexedPost | null> => {\n const uriStr = uri.toString()\n const [deleted] = await Promise.all([\n db\n .deleteFrom('post')\n .where('uri', '=', uriStr)\n .returningAll()\n .executeTakeFirst(),\n db.deleteFrom('feed_item').where('postUri', '=', uriStr).executeTakeFirst(),\n ])\n await db.deleteFrom('quote').where('subject', '=', uriStr).execute()\n const deletedEmbeds: (\n | PostEmbedImage[]\n | PostEmbedExternal\n | PostEmbedRecord\n | PostEmbedVideo\n | PostEmbedGalleryImage[]\n )[] = []\n const [\n deletedImgs,\n deletedExternals,\n deletedPosts,\n deletedVideo,\n deletedGalleryImgs,\n ] = await Promise.all([\n db\n .deleteFrom('post_embed_image')\n .where('postUri', '=', uriStr)\n .returningAll()\n .execute(),\n db\n .deleteFrom('post_embed_external')\n .where('postUri', '=', uriStr)\n .returningAll()\n .executeTakeFirst(),\n db\n .deleteFrom('post_embed_record')\n .where('postUri', '=', uriStr)\n .returningAll()\n .executeTakeFirst(),\n db\n .deleteFrom('post_embed_video')\n .where('postUri', '=', uriStr)\n .returningAll()\n .executeTakeFirst(),\n db\n .deleteFrom('post_embed_gallery_image')\n .where('postUri', '=', uriStr)\n .returningAll()\n .execute(),\n ])\n if (deletedImgs.length) {\n deletedEmbeds.push(deletedImgs)\n }\n if (deletedExternals) {\n deletedEmbeds.push(deletedExternals)\n }\n if (deletedVideo) {\n deletedEmbeds.push(deletedVideo)\n }\n if (deletedGalleryImgs.length) {\n deletedEmbeds.push(deletedGalleryImgs)\n }\n if (deletedPosts) {\n const embedUri = new AtUri(deletedPosts.embedUri)\n deletedEmbeds.push(deletedPosts)\n\n if (embedUri.collection === app.bsky.feed.post.$type) {\n await db.deleteFrom('quote').where('uri', '=', uriStr).execute()\n await db\n .insertInto('post_agg')\n .values({\n uri: deletedPosts.embedUri,\n quoteCount: db\n .selectFrom('quote')\n .where('quote.subjectCid', '=', deletedPosts.embedCid.toString())\n .select(countAll.as('count')),\n })\n .onConflict((oc) =>\n oc\n .column('uri')\n .doUpdateSet({ quoteCount: excluded(db, 'quoteCount') }),\n )\n .execute()\n }\n }\n return deleted\n ? {\n post: deleted,\n facets: [], // Not used\n embeds: deletedEmbeds,\n }\n : null\n}\n\nconst notifsForDelete = (\n deleted: IndexedPost,\n replacedBy: IndexedPost | null,\n) => {\n const notifs = replacedBy ? notifsForInsert(replacedBy) : []\n return {\n notifs,\n toDelete: [deleted.post.uri],\n }\n}\n\nconst updateAggregates = async (db: DatabaseSchema, postIdx: IndexedPost) => {\n const replyCountQb = postIdx.post.replyParent\n ? db\n .insertInto('post_agg')\n .values({\n uri: postIdx.post.replyParent,\n replyCount: db\n .selectFrom('post')\n .where('post.replyParent', '=', postIdx.post.replyParent)\n .where((qb) =>\n qb\n .where('post.violatesThreadGate', 'is', null)\n .orWhere('post.violatesThreadGate', '=', false),\n )\n .select(countAll.as('count')),\n })\n .onConflict((oc) =>\n oc\n .column('uri')\n .doUpdateSet({ replyCount: excluded(db, 'replyCount') }),\n )\n : null\n const postsCountQb = db\n .insertInto('profile_agg')\n .values({\n did: postIdx.post.creator,\n postsCount: db\n .selectFrom('post')\n .where('post.creator', '=', postIdx.post.creator)\n .select(countAll.as('count')),\n })\n .onConflict((oc) =>\n oc.column('did').doUpdateSet({ postsCount: excluded(db, 'postsCount') }),\n )\n await Promise.all([replyCountQb?.execute(), postsCountQb.execute()])\n}\n\nexport type PluginType = ReturnType<typeof makePlugin>\nexport const makePlugin = (db: Database, background: BackgroundQueue) => {\n return new RecordProcessor(db, background, {\n schema: app.bsky.feed.post.main,\n insertFn,\n findDuplicate,\n deleteFn,\n notifsForInsert,\n notifsForDelete,\n updateAggregates,\n })\n}\n\nexport default makePlugin\n\nfunction separateEmbeds(\n embed: app.bsky.feed.post.Main['embed'],\n): Array<\n | RecordWithMedia['media']\n | $Typed<RecordWithMedia['record']>\n | NonNullable<app.bsky.feed.post.Main['embed']>\n> {\n if (!embed) {\n return []\n }\n if (app.bsky.embed.recordWithMedia.$matches(embed)) {\n return [app.bsky.embed.record.$build(embed.record), embed.media]\n }\n return [embed]\n}\n\nasync function validateReply(\n db: DatabaseSchema,\n creator: string,\n reply: app.bsky.feed.post.ReplyRef,\n) {\n const replyRefs = await getReplyRefs(db, reply)\n // check reply\n const invalidReplyRoot =\n !replyRefs.parent || checkInvalidReplyRoot(reply, replyRefs.parent)\n // check interaction\n const violatesThreadGate = await checkViolatesThreadGate(\n db,\n creator,\n uriToDid(reply.root.uri),\n replyRefs.root?.record ?? null,\n replyRefs.gate?.record ?? null,\n )\n return {\n invalidReplyRoot,\n violatesThreadGate,\n }\n}\n\nasync function getThreadgateRecord(db: DatabaseSchema, postUri: string) {\n const threadgateRecordUri = postUriToThreadgateUri(postUri)\n const results = await db\n .selectFrom('record')\n .where('record.uri', '=', threadgateRecordUri)\n .selectAll()\n .execute()\n const threadgateRecord = results.find(\n (ref) => ref.uri === threadgateRecordUri,\n )\n if (threadgateRecord) {\n return lexParse<app.bsky.feed.threadgate.Main>(threadgateRecord.json)\n }\n}\n\nasync function validatePostEmbed(\n db: DatabaseSchema,\n embedUri: string,\n parentUri: string,\n) {\n const postgateRecordUri = postUriToPostgateUri(embedUri)\n const postgateRecord = await db\n .selectFrom('record')\n .where('record.uri', '=', postgateRecordUri)\n .selectAll()\n .executeTakeFirst()\n if (!postgateRecord) {\n return {\n violatesEmbeddingRules: false,\n }\n }\n const {\n embeddingRules: { canEmbed },\n } = parsePostgate({\n gate: lexParse<app.bsky.feed.postgate.Main>(postgateRecord.json),\n viewerDid: uriToDid(parentUri),\n authorDid: uriToDid(embedUri),\n })\n if (canEmbed) {\n return {\n violatesEmbeddingRules: false,\n }\n }\n return {\n violatesEmbeddingRules: true,\n }\n}\n\nasync function getReplyRefs(\n db: DatabaseSchema,\n reply: app.bsky.feed.post.ReplyRef,\n) {\n const replyRoot = reply.root.uri\n const replyParent = reply.parent.uri\n const replyGate = postUriToThreadgateUri(replyRoot)\n const results = await db\n .selectFrom('record')\n .where('record.uri', 'in', [replyRoot, replyGate, replyParent])\n .leftJoin('post', 'post.uri', 'record.uri')\n .selectAll('post')\n .select(['record.uri', 'json'])\n .execute()\n const root = results.find((ref) => ref.uri === replyRoot)\n const parent = results.find((ref) => ref.uri === replyParent)\n const gate = results.find((ref) => ref.uri === replyGate)\n return {\n root: root && {\n uri: root.uri,\n invalidReplyRoot: root.invalidReplyRoot,\n record: lexParse<app.bsky.feed.post.Main>(root.json),\n },\n parent: parent && {\n uri: parent.uri,\n invalidReplyRoot: parent.invalidReplyRoot,\n record: lexParse<app.bsky.feed.post.Main>(parent.json),\n },\n gate: gate && {\n uri: gate.uri,\n record: lexParse<app.bsky.feed.threadgate.Main>(gate.json),\n },\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feeds.d.ts","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/feeds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;yBAGzB,IAAI,QAAQ,KAAG,OAAO,CAAC,WAAW,CAAC,OAAO,OAAO,CAAC,CAAC;AAAnE,
|
|
1
|
+
{"version":3,"file":"feeds.d.ts","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/feeds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;yBAGzB,IAAI,QAAQ,KAAG,OAAO,CAAC,WAAW,CAAC,OAAO,OAAO,CAAC,CAAC;AAAnE,wBA4JE"}
|
|
@@ -15,10 +15,15 @@ export default (db) => ({
|
|
|
15
15
|
// only your own posts
|
|
16
16
|
.where('type', '=', 'post')
|
|
17
17
|
// only posts with media
|
|
18
|
-
.
|
|
18
|
+
.where((qb) => qb
|
|
19
|
+
.whereExists((iqb) => iqb
|
|
19
20
|
.selectFrom('post_embed_image')
|
|
20
21
|
.select('post_embed_image.postUri')
|
|
21
|
-
.whereRef('post_embed_image.postUri', '=', 'feed_item.postUri'))
|
|
22
|
+
.whereRef('post_embed_image.postUri', '=', 'feed_item.postUri'))
|
|
23
|
+
.orWhereExists((iqb) => iqb
|
|
24
|
+
.selectFrom('post_embed_gallery_image')
|
|
25
|
+
.select('post_embed_gallery_image.postUri')
|
|
26
|
+
.whereRef('post_embed_gallery_image.postUri', '=', 'feed_item.postUri')));
|
|
22
27
|
}
|
|
23
28
|
else if (feedType === FeedType.POSTS_WITH_VIDEO) {
|
|
24
29
|
builder = builder
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feeds.js","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/feeds.ts"],"names":[],"mappings":"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","sourcesContent":["import { ServiceImpl } from '@connectrpc/connect'\nimport { Service } from '../../../proto/bsky_connect.js'\nimport { FeedType } from '../../../proto/bsky_pb.js'\nimport { Database } from '../db/index.js'\nimport { TimeCidKeyset, paginate } from '../db/pagination.js'\n\nexport default (db: Database): Partial<ServiceImpl<typeof Service>> => ({\n async getAuthorFeed(req) {\n const { actorDid, limit, cursor, feedType } = req\n const { ref } = db.db.dynamic\n\n // defaults to posts, reposts, and replies\n let builder = db.db\n .selectFrom('feed_item')\n .innerJoin('post', 'post.uri', 'feed_item.postUri')\n .selectAll('feed_item')\n .where('originatorDid', '=', actorDid)\n\n if (feedType === FeedType.POSTS_WITH_MEDIA) {\n builder = builder\n // only your own posts\n .where('type', '=', 'post')\n // only posts with media\n .whereExists((qb) =>\n qb\n .selectFrom('post_embed_image')\n .select('post_embed_image.postUri')\n .whereRef('post_embed_image.postUri', '=', 'feed_item.postUri'),\n )\n } else if (feedType === FeedType.POSTS_WITH_VIDEO) {\n builder = builder\n // only your own posts\n .where('type', '=', 'post')\n // only posts with video\n .whereExists((qb) =>\n qb\n .selectFrom('post_embed_video')\n .select('post_embed_video.postUri')\n .whereRef('post_embed_video.postUri', '=', 'feed_item.postUri'),\n )\n } else if (feedType === FeedType.POSTS_NO_REPLIES) {\n builder = builder.where((qb) =>\n qb.where('post.replyParent', 'is', null).orWhere('type', '=', 'repost'),\n )\n } else if (feedType === FeedType.POSTS_AND_AUTHOR_THREADS) {\n builder = builder.where((qb) =>\n qb\n .where('type', '=', 'repost')\n .orWhere('post.replyParent', 'is', null)\n .orWhere('post.replyRoot', 'like', `at://${actorDid}/%`),\n )\n }\n\n const keyset = new TimeCidKeyset(\n ref('feed_item.sortAt'),\n ref('feed_item.cid'),\n )\n\n builder = paginate(builder, {\n limit,\n cursor,\n keyset,\n })\n\n const feedItems = await builder.execute()\n\n return {\n items: feedItems.map(feedItemFromRow),\n cursor: keyset.packFromResult(feedItems),\n }\n },\n\n async getTimeline(req) {\n const { actorDid, limit, cursor } = req\n const { ref } = db.db.dynamic\n\n const keyset = new TimeCidKeyset(\n ref('feed_item.sortAt'),\n ref('feed_item.cid'),\n )\n\n let followQb = db.db\n .selectFrom('feed_item')\n .innerJoin('follow', 'follow.subjectDid', 'feed_item.originatorDid')\n .where('follow.creator', '=', actorDid)\n .selectAll('feed_item')\n\n followQb = paginate(followQb, {\n limit,\n cursor,\n keyset,\n tryIndex: true,\n })\n\n let selfQb = db.db\n .selectFrom('feed_item')\n .where('feed_item.originatorDid', '=', actorDid)\n .selectAll('feed_item')\n\n selfQb = paginate(selfQb, {\n limit: Math.min(limit, 10),\n cursor,\n keyset,\n tryIndex: true,\n })\n\n const [followRes, selfRes] = await Promise.all([\n followQb.execute(),\n selfQb.execute(),\n ])\n\n const feedItems = [...followRes, ...selfRes]\n .sort((a, b) => {\n if (a.sortAt > b.sortAt) return -1\n if (a.sortAt < b.sortAt) return 1\n return a.cid > b.cid ? -1 : 1\n })\n .slice(0, limit)\n\n return {\n items: feedItems.map(feedItemFromRow),\n cursor: keyset.packFromResult(feedItems),\n }\n },\n\n async getListFeed(req) {\n const { listUri, cursor, limit } = req\n const { ref } = db.db.dynamic\n\n let builder = db.db\n .selectFrom('post')\n .selectAll('post')\n .innerJoin('list_item', 'list_item.subjectDid', 'post.creator')\n .where('list_item.listUri', '=', listUri)\n\n const keyset = new TimeCidKeyset(ref('post.sortAt'), ref('post.cid'))\n builder = paginate(builder, {\n limit,\n cursor,\n keyset,\n tryIndex: true,\n })\n const feedItems = await builder.execute()\n\n return {\n items: feedItems.map((item) => ({ uri: item.uri, cid: item.cid })),\n cursor: keyset.packFromResult(feedItems),\n }\n },\n})\n\n// @NOTE does not support additional fields in the protos specific to author feeds\n// and timelines. at the time of writing, hydration/view implementations do not rely on them.\nconst feedItemFromRow = (row: { postUri: string; uri: string }) => {\n return {\n uri: row.postUri,\n repost: row.uri === row.postUri ? undefined : row.uri,\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"feeds.js","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/feeds.ts"],"names":[],"mappings":"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","sourcesContent":["import { ServiceImpl } from '@connectrpc/connect'\nimport { Service } from '../../../proto/bsky_connect.js'\nimport { FeedType } from '../../../proto/bsky_pb.js'\nimport { Database } from '../db/index.js'\nimport { TimeCidKeyset, paginate } from '../db/pagination.js'\n\nexport default (db: Database): Partial<ServiceImpl<typeof Service>> => ({\n async getAuthorFeed(req) {\n const { actorDid, limit, cursor, feedType } = req\n const { ref } = db.db.dynamic\n\n // defaults to posts, reposts, and replies\n let builder = db.db\n .selectFrom('feed_item')\n .innerJoin('post', 'post.uri', 'feed_item.postUri')\n .selectAll('feed_item')\n .where('originatorDid', '=', actorDid)\n\n if (feedType === FeedType.POSTS_WITH_MEDIA) {\n builder = builder\n // only your own posts\n .where('type', '=', 'post')\n // only posts with media\n .where((qb) =>\n qb\n .whereExists((iqb) =>\n iqb\n .selectFrom('post_embed_image')\n .select('post_embed_image.postUri')\n .whereRef('post_embed_image.postUri', '=', 'feed_item.postUri'),\n )\n .orWhereExists((iqb) =>\n iqb\n .selectFrom('post_embed_gallery_image')\n .select('post_embed_gallery_image.postUri')\n .whereRef(\n 'post_embed_gallery_image.postUri',\n '=',\n 'feed_item.postUri',\n ),\n ),\n )\n } else if (feedType === FeedType.POSTS_WITH_VIDEO) {\n builder = builder\n // only your own posts\n .where('type', '=', 'post')\n // only posts with video\n .whereExists((qb) =>\n qb\n .selectFrom('post_embed_video')\n .select('post_embed_video.postUri')\n .whereRef('post_embed_video.postUri', '=', 'feed_item.postUri'),\n )\n } else if (feedType === FeedType.POSTS_NO_REPLIES) {\n builder = builder.where((qb) =>\n qb.where('post.replyParent', 'is', null).orWhere('type', '=', 'repost'),\n )\n } else if (feedType === FeedType.POSTS_AND_AUTHOR_THREADS) {\n builder = builder.where((qb) =>\n qb\n .where('type', '=', 'repost')\n .orWhere('post.replyParent', 'is', null)\n .orWhere('post.replyRoot', 'like', `at://${actorDid}/%`),\n )\n }\n\n const keyset = new TimeCidKeyset(\n ref('feed_item.sortAt'),\n ref('feed_item.cid'),\n )\n\n builder = paginate(builder, {\n limit,\n cursor,\n keyset,\n })\n\n const feedItems = await builder.execute()\n\n return {\n items: feedItems.map(feedItemFromRow),\n cursor: keyset.packFromResult(feedItems),\n }\n },\n\n async getTimeline(req) {\n const { actorDid, limit, cursor } = req\n const { ref } = db.db.dynamic\n\n const keyset = new TimeCidKeyset(\n ref('feed_item.sortAt'),\n ref('feed_item.cid'),\n )\n\n let followQb = db.db\n .selectFrom('feed_item')\n .innerJoin('follow', 'follow.subjectDid', 'feed_item.originatorDid')\n .where('follow.creator', '=', actorDid)\n .selectAll('feed_item')\n\n followQb = paginate(followQb, {\n limit,\n cursor,\n keyset,\n tryIndex: true,\n })\n\n let selfQb = db.db\n .selectFrom('feed_item')\n .where('feed_item.originatorDid', '=', actorDid)\n .selectAll('feed_item')\n\n selfQb = paginate(selfQb, {\n limit: Math.min(limit, 10),\n cursor,\n keyset,\n tryIndex: true,\n })\n\n const [followRes, selfRes] = await Promise.all([\n followQb.execute(),\n selfQb.execute(),\n ])\n\n const feedItems = [...followRes, ...selfRes]\n .sort((a, b) => {\n if (a.sortAt > b.sortAt) return -1\n if (a.sortAt < b.sortAt) return 1\n return a.cid > b.cid ? -1 : 1\n })\n .slice(0, limit)\n\n return {\n items: feedItems.map(feedItemFromRow),\n cursor: keyset.packFromResult(feedItems),\n }\n },\n\n async getListFeed(req) {\n const { listUri, cursor, limit } = req\n const { ref } = db.db.dynamic\n\n let builder = db.db\n .selectFrom('post')\n .selectAll('post')\n .innerJoin('list_item', 'list_item.subjectDid', 'post.creator')\n .where('list_item.listUri', '=', listUri)\n\n const keyset = new TimeCidKeyset(ref('post.sortAt'), ref('post.cid'))\n builder = paginate(builder, {\n limit,\n cursor,\n keyset,\n tryIndex: true,\n })\n const feedItems = await builder.execute()\n\n return {\n items: feedItems.map((item) => ({ uri: item.uri, cid: item.cid })),\n cursor: keyset.packFromResult(feedItems),\n }\n },\n})\n\n// @NOTE does not support additional fields in the protos specific to author feeds\n// and timelines. at the time of writing, hydration/view implementations do not rely on them.\nconst feedItemFromRow = (row: { postUri: string; uri: string }) => {\n return {\n uri: row.postUri,\n repost: row.uri === row.postUri ? undefined : row.uri,\n }\n}\n"]}
|
|
@@ -324,6 +324,10 @@ type GroupConvo = {
|
|
|
324
324
|
* The lock status of the conversation.
|
|
325
325
|
*/
|
|
326
326
|
lockStatus: ConvoLockStatus;
|
|
327
|
+
/**
|
|
328
|
+
* Whether the lock status is being forced by a moderation override (account inactivation or convo takedown) rather than the owner's own setting.
|
|
329
|
+
*/
|
|
330
|
+
lockStatusModerationOverride: boolean;
|
|
327
331
|
/**
|
|
328
332
|
* The total number of members in the group conversation.
|
|
329
333
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defs.defs.d.ts","sourceRoot":"","sources":["../../../../../src/lexicons/chat/bsky/convo/defs.defs.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAA;AAChC,OAAO,KAAK,aAAa,MAAM,0CAA0C,CAAA;AACzE,OAAO,KAAK,WAAW,MAAM,wCAAwC,CAAA;AACrE,OAAO,KAAK,aAAa,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAA;AAClD,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAA;AAElD,QAAA,MAAM,KAAK,yBAAyB,CAAA;AAEpC,OAAO,EAAE,KAAK,EAAE,CAAA;AAEhB,KAAK,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,CAAC,CAAC,aAAa,CAAA;AAErD,YAAY,EAAE,SAAS,EAAE,CAAA;AAEzB,QAAA,MAAM,SAAS;;EAAiE,CAAA;AAEhF,OAAO,EAAE,SAAS,EAAE,CAAA;AAEpB,KAAK,eAAe,GAChB,UAAU,GACV,QAAQ,GACR,oBAAoB,GACpB,CAAC,CAAC,aAAa,CAAA;AAEnB,YAAY,EAAE,eAAe,EAAE,CAAA;AAE/B,QAAA,MAAM,eAAe;;EAEjB,CAAA;AAEJ,OAAO,EAAE,eAAe,EAAE,CAAA;AAE1B,KAAK,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,CAAC,CAAC,aAAa,CAAA;AAE3D,YAAY,EAAE,WAAW,EAAE,CAAA;AAE3B,QAAA,MAAM,WAAW;;EAEb,CAAA;AAEJ,OAAO,EAAE,WAAW,EAAE,CAAA;AAEtB,KAAK,QAAQ,GAAG;IACd,KAAK,CAAC,EAAE,+BAA+B,CAAA;IACvC,GAAG,EAAE,CAAC,CAAC,SAAS,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,YAAY,EAAE,QAAQ,EAAE,CAAA;AAExB,QAAA,MAAM,QAAQ,uFAOb,CAAA;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA;AAEnB,KAAK,UAAU,GAAG;IAChB,KAAK,CAAC,EAAE,iCAAiC,CAAA;IACzC,GAAG,EAAE,CAAC,CAAC,SAAS,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,YAAY,EAAE,UAAU,EAAE,CAAA;AAE1B,QAAA,MAAM,UAAU,6FAQf,CAAA;AAED,OAAO,EAAE,UAAU,EAAE,CAAA;AAErB,KAAK,YAAY,GAAG;IAClB,KAAK,CAAC,EAAE,mCAAmC,CAAA;IAC3C,IAAI,EAAE,MAAM,CAAA;IAEZ;;OAEG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC,IAAI,EAAE,CAAA;IAC7B,KAAK,CAAC,EACF,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAC1B,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAC5B,CAAC,CAAC,mBAAmB,CAAA;CAC1B,CAAA;AAED,YAAY,EAAE,YAAY,EAAE,CAAA;AAE5B,QAAA,MAAM,YAAY,mGA0BjB,CAAA;AAED,OAAO,EAAE,YAAY,EAAE,CAAA;AAEvB,KAAK,WAAW,GAAG;IACjB,KAAK,CAAC,EAAE,kCAAkC,CAAA;IAC1C,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IAEZ;;OAEG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC,IAAI,EAAE,CAAA;IAC7B,KAAK,CAAC,EACF,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAC1B,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAC5B,CAAC,CAAC,mBAAmB,CAAA;IAEzB;;OAEG;IACH,SAAS,CAAC,EAAE,YAAY,EAAE,CAAA;IAC1B,MAAM,EAAE,iBAAiB,CAAA;IACzB,MAAM,EAAE,CAAC,CAAC,cAAc,CAAA;CACzB,CAAA;AAED,YAAY,EAAE,WAAW,EAAE,CAAA;AAE3B,QAAA,MAAM,WAAW,gGAqChB,CAAA;AAED,OAAO,EAAE,WAAW,EAAE,CAAA;AAEtB,KAAK,yBAAyB,GAAG;IAC/B,KAAK,CAAC,EAAE,gDAAgD,CAAA;IACxD,GAAG,EAAE,CAAC,CAAC,SAAS,CAAA;CACjB,CAAA;AAED,YAAY,EAAE,yBAAyB,EAAE,CAAA;AAEzC,QAAA,MAAM,yBAAyB,0IAK5B,CAAA;AAEH,OAAO,EAAE,yBAAyB,EAAE,CAAA;AAEpC,0GAA0G;AAC1G,KAAK,iBAAiB,GAAG;IACvB,KAAK,CAAC,EAAE,wCAAwC,CAAA;IAChD,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,CAAC,CAAC,cAAc,CAAA;IACxB,IAAI,EACA,CAAC,CAAC,MAAM,CAAC,0BAA0B,CAAC,GACpC,CAAC,CAAC,MAAM,CAAC,6BAA6B,CAAC,GACvC,CAAC,CAAC,MAAM,CAAC,2BAA2B,CAAC,GACrC,CAAC,CAAC,MAAM,CAAC,4BAA4B,CAAC,GACtC,CAAC,CAAC,MAAM,CAAC,0BAA0B,CAAC,GACpC,CAAC,CAAC,MAAM,CAAC,4BAA4B,CAAC,GACtC,CAAC,CAAC,MAAM,CAAC,qCAAqC,CAAC,GAC/C,CAAC,CAAC,MAAM,CAAC,0BAA0B,CAAC,GACpC,CAAC,CAAC,MAAM,CAAC,+BAA+B,CAAC,GACzC,CAAC,CAAC,MAAM,CAAC,6BAA6B,CAAC,GACvC,CAAC,CAAC,MAAM,CAAC,+BAA+B,CAAC,GACzC,CAAC,CAAC,MAAM,CAAC,gCAAgC,CAAC,GAC1C,CAAC,CAAC,mBAAmB,CAAA;CAC1B,CAAA;AAED,YAAY,EAAE,iBAAiB,EAAE,CAAA;AAEjC,0GAA0G;AAC1G,QAAA,MAAM,iBAAiB,kHAiDtB,CAAA;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAA;AAE5B,yKAAyK;AACzK,KAAK,0BAA0B,GAAG;IAChC,KAAK,CAAC,EAAE,iDAAiD,CAAA;IAEzD;;OAEG;IACH,MAAM,EAAE,yBAAyB,CAAA;IAEjC;;OAEG;IACH,IAAI,EAAE,SAAS,CAAC,UAAU,CAAA;IAC1B,OAAO,EAAE,yBAAyB,CAAA;CACnC,CAAA;AAED,YAAY,EAAE,0BAA0B,EAAE,CAAA;AAE1C,yKAAyK;AACzK,QAAA,MAAM,0BAA0B,6IAe7B,CAAA;AAEH,OAAO,EAAE,0BAA0B,EAAE,CAAA;AAErC,6KAA6K;AAC7K,KAAK,6BAA6B,GAAG;IACnC,KAAK,CAAC,EAAE,oDAAoD,CAAA;IAE5D;;OAEG;IACH,MAAM,EAAE,yBAAyB,CAAA;IACjC,SAAS,EAAE,yBAAyB,CAAA;CACrC,CAAA;AAED,YAAY,EAAE,6BAA6B,EAAE,CAAA;AAE7C,6KAA6K;AAC7K,QAAA,MAAM,6BAA6B,sJAYhC,CAAA;AAEH,OAAO,EAAE,6BAA6B,EAAE,CAAA;AAExC,iLAAiL;AACjL,KAAK,2BAA2B,GAAG;IACjC,KAAK,CAAC,EAAE,kDAAkD,CAAA;IAE1D;;OAEG;IACH,MAAM,EAAE,yBAAyB,CAAA;IAEjC;;OAEG;IACH,IAAI,EAAE,SAAS,CAAC,UAAU,CAAA;IAE1B;;OAEG;IACH,UAAU,CAAC,EAAE,yBAAyB,CAAA;CACvC,CAAA;AAED,YAAY,EAAE,2BAA2B,EAAE,CAAA;AAE3C,iLAAiL;AACjL,QAAA,MAAM,2BAA2B,gJAiB9B,CAAA;AAEH,OAAO,EAAE,2BAA2B,EAAE,CAAA;AAEtC,6KAA6K;AAC7K,KAAK,4BAA4B,GAAG;IAClC,KAAK,CAAC,EAAE,mDAAmD,CAAA;IAE3D;;OAEG;IACH,MAAM,EAAE,yBAAyB,CAAA;CAClC,CAAA;AAED,YAAY,EAAE,4BAA4B,EAAE,CAAA;AAE5C,6KAA6K;AAC7K,QAAA,MAAM,4BAA4B,mJAS/B,CAAA;AAEH,OAAO,EAAE,4BAA4B,EAAE,CAAA;AAEvC,gKAAgK;AAChK,KAAK,0BAA0B,GAAG;IAChC,KAAK,CAAC,EAAE,iDAAiD,CAAA;IAEzD;;OAEG;IACH,QAAQ,EAAE,yBAAyB,CAAA;CACpC,CAAA;AAED,YAAY,EAAE,0BAA0B,EAAE,CAAA;AAE1C,gKAAgK;AAChK,QAAA,MAAM,0BAA0B,6IAS7B,CAAA;AAEH,OAAO,EAAE,0BAA0B,EAAE,CAAA;AAErC,kKAAkK;AAClK,KAAK,4BAA4B,GAAG;IAClC,KAAK,CAAC,EAAE,mDAAmD,CAAA;IAE3D;;OAEG;IACH,UAAU,EAAE,yBAAyB,CAAA;CACtC,CAAA;AAED,YAAY,EAAE,4BAA4B,EAAE,CAAA;AAE5C,kKAAkK;AAClK,QAAA,MAAM,4BAA4B,mJAS/B,CAAA;AAEH,OAAO,EAAE,4BAA4B,EAAE,CAAA;AAEvC,4KAA4K;AAC5K,KAAK,qCAAqC,GAAG;IAC3C,KAAK,CAAC,EAAE,4DAA4D,CAAA;IAEpE;;OAEG;IACH,QAAQ,EAAE,yBAAyB,CAAA;CACpC,CAAA;AAED,YAAY,EAAE,qCAAqC,EAAE,CAAA;AAErD,4KAA4K;AAC5K,QAAA,MAAM,qCAAqC,8KASxC,CAAA;AAEH,OAAO,EAAE,qCAAqC,EAAE,CAAA;AAEhD,+JAA+J;AAC/J,KAAK,0BAA0B,GAAG;IAChC,KAAK,CAAC,EAAE,iDAAiD,CAAA;IAEzD;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,YAAY,EAAE,0BAA0B,EAAE,CAAA;AAE1C,+JAA+J;AAC/J,QAAA,MAAM,0BAA0B,6IAQ7B,CAAA;AAEH,OAAO,EAAE,0BAA0B,EAAE,CAAA;AAErC,qKAAqK;AACrK,KAAK,+BAA+B,GAAG;IACrC,KAAK,CAAC,EAAE,sDAAsD,CAAA;CAC/D,CAAA;AAED,YAAY,EAAE,+BAA+B,EAAE,CAAA;AAE/C,qKAAqK;AACrK,QAAA,MAAM,+BAA+B,4JAKlC,CAAA;AAEH,OAAO,EAAE,+BAA+B,EAAE,CAAA;AAE1C,oKAAoK;AACpK,KAAK,6BAA6B,GAAG;IACnC,KAAK,CAAC,EAAE,oDAAoD,CAAA;CAC7D,CAAA;AAED,YAAY,EAAE,6BAA6B,EAAE,CAAA;AAE7C,oKAAoK;AACpK,QAAA,MAAM,6BAA6B,sJAKhC,CAAA;AAEH,OAAO,EAAE,6BAA6B,EAAE,CAAA;AAExC,qKAAqK;AACrK,KAAK,+BAA+B,GAAG;IACrC,KAAK,CAAC,EAAE,sDAAsD,CAAA;CAC/D,CAAA;AAED,YAAY,EAAE,+BAA+B,EAAE,CAAA;AAE/C,qKAAqK;AACrK,QAAA,MAAM,+BAA+B,4JAKlC,CAAA;AAEH,OAAO,EAAE,+BAA+B,EAAE,CAAA;AAE1C,sKAAsK;AACtK,KAAK,gCAAgC,GAAG;IACtC,KAAK,CAAC,EAAE,uDAAuD,CAAA;CAChE,CAAA;AAED,YAAY,EAAE,gCAAgC,EAAE,CAAA;AAEhD,sKAAsK;AACtK,QAAA,MAAM,gCAAgC,+JAKnC,CAAA;AAEH,OAAO,EAAE,gCAAgC,EAAE,CAAA;AAE3C,KAAK,kBAAkB,GAAG;IACxB,KAAK,CAAC,EAAE,yCAAyC,CAAA;IACjD,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,iBAAiB,CAAA;IACzB,MAAM,EAAE,CAAC,CAAC,cAAc,CAAA;CACzB,CAAA;AAED,YAAY,EAAE,kBAAkB,EAAE,CAAA;AAElC,QAAA,MAAM,kBAAkB,qHAWvB,CAAA;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAE7B,KAAK,iBAAiB,GAAG;IACvB,KAAK,CAAC,EAAE,wCAAwC,CAAA;IAChD,GAAG,EAAE,CAAC,CAAC,SAAS,CAAA;CACjB,CAAA;AAED,YAAY,EAAE,iBAAiB,EAAE,CAAA;AAEjC,QAAA,MAAM,iBAAiB,kHAItB,CAAA;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAA;AAE5B,KAAK,YAAY,GAAG;IAClB,KAAK,CAAC,EAAE,mCAAmC,CAAA;IAC3C,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,kBAAkB,CAAA;IAC1B,SAAS,EAAE,CAAC,CAAC,cAAc,CAAA;CAC5B,CAAA;AAED,YAAY,EAAE,YAAY,EAAE,CAAA;AAE5B,QAAA,MAAM,YAAY,mGAUjB,CAAA;AAED,OAAO,EAAE,YAAY,EAAE,CAAA;AAEvB,KAAK,kBAAkB,GAAG;IACxB,KAAK,CAAC,EAAE,yCAAyC,CAAA;IACjD,GAAG,EAAE,CAAC,CAAC,SAAS,CAAA;CACjB,CAAA;AAED,YAAY,EAAE,kBAAkB,EAAE,CAAA;AAElC,QAAA,MAAM,kBAAkB,qHAIvB,CAAA;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAE7B,KAAK,sBAAsB,GAAG;IAC5B,KAAK,CAAC,EAAE,6CAA6C,CAAA;IACrD,OAAO,EAAE,WAAW,CAAA;IACpB,QAAQ,EAAE,YAAY,CAAA;CACvB,CAAA;AAED,YAAY,EAAE,sBAAsB,EAAE,CAAA;AAEtC,QAAA,MAAM,sBAAsB,iIAQzB,CAAA;AAEH,OAAO,EAAE,sBAAsB,EAAE,CAAA;AAEjC,KAAK,SAAS,GAAG;IACf,KAAK,CAAC,EAAE,gCAAgC,CAAA;IACxC,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IAEX;;OAEG;IACH,OAAO,EAAE,SAAS,CAAC,gBAAgB,EAAE,CAAA;IACrC,WAAW,CAAC,EACR,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,GACrB,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAC5B,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAC3B,CAAC,CAAC,mBAAmB,CAAA;IACzB,YAAY,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,mBAAmB,CAAA;IACvE,KAAK,EAAE,OAAO,CAAA;IAEd;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IAEnB;;OAEG;IACH,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,mBAAmB,CAAA;CAC5E,CAAA;AAED,YAAY,EAAE,SAAS,EAAE,CAAA;AAEzB,QAAA,MAAM,SAAS,0FAkDd,CAAA;AAED,OAAO,EAAE,SAAS,EAAE,CAAA;AAEpB,0GAA0G;AAC1G,KAAK,WAAW,GAAG;IAAE,KAAK,CAAC,EAAE,kCAAkC,CAAA;CAAE,CAAA;AAEjE,YAAY,EAAE,WAAW,EAAE,CAAA;AAE3B,0GAA0G;AAC1G,QAAA,MAAM,WAAW,gGAIhB,CAAA;AAED,OAAO,EAAE,WAAW,EAAE,CAAA;AAEtB,0GAA0G;AAC1G,KAAK,UAAU,GAAG;IAChB,KAAK,CAAC,EAAE,iCAAiC,CAAA;IACzC,SAAS,EAAE,CAAC,CAAC,cAAc,CAAA;IAC3B,QAAQ,CAAC,EAAE,SAAS,CAAC,YAAY,CAAA;IAEjC;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB;;OAEG;IACH,UAAU,EAAE,eAAe,CAAA;IAE3B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IAEnB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IAEnB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IAEZ;;OAEG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAA;CAChC,CAAA;AAED,YAAY,EAAE,UAAU,EAAE,CAAA;AAE1B,0GAA0G;AAC1G,QAAA,MAAM,UAAU,6FAmBf,CAAA;AAED,OAAO,EAAE,UAAU,EAAE,CAAA;AAErB,6JAA6J;AAC7J,KAAK,aAAa,GAAG;IACnB,KAAK,CAAC,EAAE,oCAAoC,CAAA;IAC5C,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,YAAY,EAAE,aAAa,EAAE,CAAA;AAE7B,6JAA6J;AAC7J,QAAA,MAAM,aAAa,sGAOlB,CAAA;AAED,OAAO,EAAE,aAAa,EAAE,CAAA;AAExB,0HAA0H;AAC1H,KAAK,cAAc,GAAG;IACpB,KAAK,CAAC,EAAE,qCAAqC,CAAA;IAC7C,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,YAAY,EAAE,cAAc,EAAE,CAAA;AAE9B,0HAA0H;AAC1H,QAAA,MAAM,cAAc,yGAOnB,CAAA;AAED,OAAO,EAAE,cAAc,EAAE,CAAA;AAEzB,wEAAwE;AACxE,KAAK,aAAa,GAAG;IACnB,KAAK,CAAC,EAAE,oCAAoC,CAAA;IAC5C,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,YAAY,EAAE,aAAa,EAAE,CAAA;AAE7B,wEAAwE;AACxE,QAAA,MAAM,aAAa,sGAOlB,CAAA;AAED,OAAO,EAAE,aAAa,EAAE,CAAA;AAExB,yEAAyE;AACzE,KAAK,YAAY,GAAG;IAClB,KAAK,CAAC,EAAE,mCAAmC,CAAA;IAC3C,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,YAAY,EAAE,YAAY,EAAE,CAAA;AAE5B,yEAAyE;AACzE,QAAA,MAAM,YAAY,mGAOjB,CAAA;AAED,OAAO,EAAE,YAAY,EAAE,CAAA;AAEvB,2EAA2E;AAC3E,KAAK,cAAc,GAAG;IACpB,KAAK,CAAC,EAAE,qCAAqC,CAAA;IAC7C,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,YAAY,EAAE,cAAc,EAAE,CAAA;AAE9B,2EAA2E;AAC3E,QAAA,MAAM,cAAc,yGAOnB,CAAA;AAED,OAAO,EAAE,cAAc,EAAE,CAAA;AAEzB,kGAAkG;AAClG,KAAK,gBAAgB,GAAG;IACtB,KAAK,CAAC,EAAE,uCAAuC,CAAA;IAC/C,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EACH,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,GACrB,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAC5B,CAAC,CAAC,mBAAmB,CAAA;IAEzB;;OAEG;IACH,eAAe,CAAC,EAAE,SAAS,CAAC,gBAAgB,EAAE,CAAA;CAC/C,CAAA;AAED,YAAY,EAAE,gBAAgB,EAAE,CAAA;AAEhC,kGAAkG;AAClG,QAAA,MAAM,gBAAgB,+GAuBrB,CAAA;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAA;AAE3B,kGAAkG;AAClG,KAAK,gBAAgB,GAAG;IACtB,KAAK,CAAC,EAAE,uCAAuC,CAAA;IAC/C,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EACH,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,GACrB,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAC5B,CAAC,CAAC,mBAAmB,CAAA;CAC1B,CAAA;AAED,YAAY,EAAE,gBAAgB,EAAE,CAAA;AAEhC,kGAAkG;AAClG,QAAA,MAAM,gBAAgB,+GAgBrB,CAAA;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAA;AAE3B,uGAAuG;AACvG,KAAK,cAAc,GAAG;IACpB,KAAK,CAAC,EAAE,qCAAqC,CAAA;IAC7C,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EACH,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,GACrB,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAC5B,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAC3B,CAAC,CAAC,mBAAmB,CAAA;CAC1B,CAAA;AAED,YAAY,EAAE,cAAc,EAAE,CAAA;AAE9B,uGAAuG;AACvG,QAAA,MAAM,cAAc,yGAmBnB,CAAA;AAED,OAAO,EAAE,cAAc,EAAE,CAAA;AAEzB,0DAA0D;AAC1D,KAAK,cAAc,GAAG;IACpB,KAAK,CAAC,EAAE,qCAAqC,CAAA;IAC7C,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EACH,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,GACrB,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAC5B,CAAC,CAAC,mBAAmB,CAAA;IACzB,QAAQ,EAAE,YAAY,CAAA;IAEtB;;OAEG;IACH,eAAe,CAAC,EAAE,SAAS,CAAC,gBAAgB,EAAE,CAAA;CAC/C,CAAA;AAED,YAAY,EAAE,cAAc,EAAE,CAAA;AAE9B,0DAA0D;AAC1D,QAAA,MAAM,cAAc,yGAwBnB,CAAA;AAED,OAAO,EAAE,cAAc,EAAE,CAAA;AAEzB,8DAA8D;AAC9D,KAAK,iBAAiB,GAAG;IACvB,KAAK,CAAC,EAAE,wCAAwC,CAAA;IAChD,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EACH,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,GACrB,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAC5B,CAAC,CAAC,mBAAmB,CAAA;IACzB,QAAQ,EAAE,YAAY,CAAA;IAEtB;;OAEG;IACH,eAAe,CAAC,EAAE,SAAS,CAAC,gBAAgB,EAAE,CAAA;CAC/C,CAAA;AAED,YAAY,EAAE,iBAAiB,EAAE,CAAA;AAEjC,8DAA8D;AAC9D,QAAA,MAAM,iBAAiB,kHAwBtB,CAAA;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAA;AAE5B,qKAAqK;AACrK,KAAK,YAAY,GAAG;IAClB,KAAK,CAAC,EAAE,mCAAmC,CAAA;IAC3C,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EACH,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,GACrB,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAC5B,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAC3B,CAAC,CAAC,mBAAmB,CAAA;CAC1B,CAAA;AAED,YAAY,EAAE,YAAY,EAAE,CAAA;AAE5B,qKAAqK;AACrK,QAAA,MAAM,YAAY,mGAmBjB,CAAA;AAED,OAAO,EAAE,YAAY,EAAE,CAAA;AAEvB,6TAA6T;AAC7T,KAAK,YAAY,GAAG;IAClB,KAAK,CAAC,EAAE,mCAAmC,CAAA;IAC3C,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,OAAO,EAAE,iBAAiB,CAAA;IAE1B;;OAEG;IACH,eAAe,EAAE,SAAS,CAAC,gBAAgB,EAAE,CAAA;CAC9C,CAAA;AAED,YAAY,EAAE,YAAY,EAAE,CAAA;AAE5B,6TAA6T;AAC7T,QAAA,MAAM,YAAY,mGAejB,CAAA;AAED,OAAO,EAAE,YAAY,EAAE,CAAA;AAEvB,iUAAiU;AACjU,KAAK,eAAe,GAAG;IACrB,KAAK,CAAC,EAAE,sCAAsC,CAAA;IAC9C,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,OAAO,EAAE,iBAAiB,CAAA;IAE1B;;OAEG;IACH,eAAe,EAAE,SAAS,CAAC,gBAAgB,EAAE,CAAA;CAC9C,CAAA;AAED,YAAY,EAAE,eAAe,EAAE,CAAA;AAE/B,iUAAiU;AACjU,QAAA,MAAM,eAAe,4GAepB,CAAA;AAED,OAAO,EAAE,eAAe,EAAE,CAAA;AAE1B,sUAAsU;AACtU,KAAK,aAAa,GAAG;IACnB,KAAK,CAAC,EAAE,oCAAoC,CAAA;IAC5C,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,OAAO,EAAE,iBAAiB,CAAA;IAE1B;;OAEG;IACH,eAAe,EAAE,SAAS,CAAC,gBAAgB,EAAE,CAAA;CAC9C,CAAA;AAED,YAAY,EAAE,aAAa,EAAE,CAAA;AAE7B,sUAAsU;AACtU,QAAA,MAAM,aAAa,sGAelB,CAAA;AAED,OAAO,EAAE,aAAa,EAAE,CAAA;AAExB,gUAAgU;AAChU,KAAK,cAAc,GAAG;IACpB,KAAK,CAAC,EAAE,qCAAqC,CAAA;IAC7C,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,OAAO,EAAE,iBAAiB,CAAA;IAE1B;;OAEG;IACH,eAAe,EAAE,SAAS,CAAC,gBAAgB,EAAE,CAAA;CAC9C,CAAA;AAED,YAAY,EAAE,cAAc,EAAE,CAAA;AAE9B,gUAAgU;AAChU,QAAA,MAAM,cAAc,yGAenB,CAAA;AAED,OAAO,EAAE,cAAc,EAAE,CAAA;AAEzB,qJAAqJ;AACrJ,KAAK,YAAY,GAAG;IAClB,KAAK,CAAC,EAAE,mCAAmC,CAAA;IAC3C,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,OAAO,EAAE,iBAAiB,CAAA;IAE1B;;OAEG;IACH,eAAe,EAAE,SAAS,CAAC,gBAAgB,EAAE,CAAA;CAC9C,CAAA;AAED,YAAY,EAAE,YAAY,EAAE,CAAA;AAE5B,qJAAqJ;AACrJ,QAAA,MAAM,YAAY,mGAejB,CAAA;AAED,OAAO,EAAE,YAAY,EAAE,CAAA;AAEvB,uJAAuJ;AACvJ,KAAK,cAAc,GAAG;IACpB,KAAK,CAAC,EAAE,qCAAqC,CAAA;IAC7C,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,OAAO,EAAE,iBAAiB,CAAA;IAE1B;;OAEG;IACH,eAAe,EAAE,SAAS,CAAC,gBAAgB,EAAE,CAAA;CAC9C,CAAA;AAED,YAAY,EAAE,cAAc,EAAE,CAAA;AAE9B,uJAAuJ;AACvJ,QAAA,MAAM,cAAc,yGAenB,CAAA;AAED,OAAO,EAAE,cAAc,EAAE,CAAA;AAEzB,iKAAiK;AACjK,KAAK,uBAAuB,GAAG;IAC7B,KAAK,CAAC,EAAE,8CAA8C,CAAA;IACtD,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,OAAO,EAAE,iBAAiB,CAAA;IAE1B;;OAEG;IACH,eAAe,EAAE,SAAS,CAAC,gBAAgB,EAAE,CAAA;CAC9C,CAAA;AAED,YAAY,EAAE,uBAAuB,EAAE,CAAA;AAEvC,iKAAiK;AACjK,QAAA,MAAM,uBAAuB,oIAgB1B,CAAA;AAEH,OAAO,EAAE,uBAAuB,EAAE,CAAA;AAElC,8JAA8J;AAC9J,KAAK,YAAY,GAAG;IAClB,KAAK,CAAC,EAAE,mCAAmC,CAAA;IAC3C,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,OAAO,EAAE,iBAAiB,CAAA;CAC3B,CAAA;AAED,YAAY,EAAE,YAAY,EAAE,CAAA;AAE5B,8JAA8J;AAC9J,QAAA,MAAM,YAAY,mGAUjB,CAAA;AAED,OAAO,EAAE,YAAY,EAAE,CAAA;AAEvB,sKAAsK;AACtK,KAAK,iBAAiB,GAAG;IACvB,KAAK,CAAC,EAAE,wCAAwC,CAAA;IAChD,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,OAAO,EAAE,iBAAiB,CAAA;CAC3B,CAAA;AAED,YAAY,EAAE,iBAAiB,EAAE,CAAA;AAEjC,sKAAsK;AACtK,QAAA,MAAM,iBAAiB,kHAUtB,CAAA;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAA;AAE5B,uLAAuL;AACvL,KAAK,eAAe,GAAG;IACrB,KAAK,CAAC,EAAE,sCAAsC,CAAA;IAC9C,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,OAAO,EAAE,iBAAiB,CAAA;CAC3B,CAAA;AAED,YAAY,EAAE,eAAe,EAAE,CAAA;AAE/B,uLAAuL;AACvL,QAAA,MAAM,eAAe,4GAUpB,CAAA;AAED,OAAO,EAAE,eAAe,EAAE,CAAA;AAE1B,sKAAsK;AACtK,KAAK,iBAAiB,GAAG;IACvB,KAAK,CAAC,EAAE,wCAAwC,CAAA;IAChD,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,OAAO,EAAE,iBAAiB,CAAA;CAC3B,CAAA;AAED,YAAY,EAAE,iBAAiB,EAAE,CAAA;AAEjC,sKAAsK;AACtK,QAAA,MAAM,iBAAiB,kHAUtB,CAAA;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAA;AAE5B,uKAAuK;AACvK,KAAK,kBAAkB,GAAG;IACxB,KAAK,CAAC,EAAE,yCAAyC,CAAA;IACjD,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,OAAO,EAAE,iBAAiB,CAAA;CAC3B,CAAA;AAED,YAAY,EAAE,kBAAkB,EAAE,CAAA;AAElC,uKAAuK;AACvK,QAAA,MAAM,kBAAkB,qHAUvB,CAAA;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAE7B,yMAAyM;AACzM,KAAK,sBAAsB,GAAG;IAC5B,KAAK,CAAC,EAAE,6CAA6C,CAAA;IACrD,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,MAAM,EAAE,SAAS,CAAC,gBAAgB,CAAA;CACnC,CAAA;AAED,YAAY,EAAE,sBAAsB,EAAE,CAAA;AAEtC,yMAAyM;AACzM,QAAA,MAAM,sBAAsB,iIAWzB,CAAA;AAEH,OAAO,EAAE,sBAAsB,EAAE,CAAA;AAEjC,0OAA0O;AAC1O,KAAK,qBAAqB,GAAG;IAC3B,KAAK,CAAC,EAAE,4CAA4C,CAAA;IACpD,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,MAAM,EAAE,SAAS,CAAC,gBAAgB,CAAA;CACnC,CAAA;AAED,YAAY,EAAE,qBAAqB,EAAE,CAAA;AAErC,0OAA0O;AAC1O,QAAA,MAAM,qBAAqB,8HAWxB,CAAA;AAEH,OAAO,EAAE,qBAAqB,EAAE,CAAA;AAEhC,gMAAgM;AAChM,KAAK,oBAAoB,GAAG;IAC1B,KAAK,CAAC,EAAE,2CAA2C,CAAA;IACnD,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,MAAM,EAAE,SAAS,CAAC,gBAAgB,CAAA;CACnC,CAAA;AAED,YAAY,EAAE,oBAAoB,EAAE,CAAA;AAEpC,gMAAgM;AAChM,QAAA,MAAM,oBAAoB,2HAUzB,CAAA;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAA;AAE/B,qMAAqM;AACrM,KAAK,sBAAsB,GAAG;IAC5B,KAAK,CAAC,EAAE,6CAA6C,CAAA;IACrD,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,YAAY,EAAE,sBAAsB,EAAE,CAAA;AAEtC,qMAAqM;AACrM,QAAA,MAAM,sBAAsB,iIAQzB,CAAA;AAEH,OAAO,EAAE,sBAAsB,EAAE,CAAA;AAEjC,uMAAuM;AACvM,KAAK,8BAA8B,GAAG;IACpC,KAAK,CAAC,EAAE,qDAAqD,CAAA;IAC7D,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,MAAM,EAAE,SAAS,CAAC,gBAAgB,CAAA;CACnC,CAAA;AAED,YAAY,EAAE,8BAA8B,EAAE,CAAA;AAE9C,uMAAuM;AACvM,QAAA,MAAM,8BAA8B,yJAWjC,CAAA;AAEH,OAAO,EAAE,8BAA8B,EAAE,CAAA;AAEzC,uMAAuM;AACvM,KAAK,8BAA8B,GAAG;IACpC,KAAK,CAAC,EAAE,qDAAqD,CAAA;IAC7D,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,YAAY,EAAE,8BAA8B,EAAE,CAAA;AAE9C,uMAAuM;AACvM,QAAA,MAAM,8BAA8B,yJAQjC,CAAA;AAEH,OAAO,EAAE,8BAA8B,EAAE,CAAA;AAEzC,mMAAmM;AACnM,KAAK,mBAAmB,GAAG;IACzB,KAAK,CAAC,EAAE,0CAA0C,CAAA;IAClD,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,YAAY,EAAE,mBAAmB,EAAE,CAAA;AAEnC,mMAAmM;AACnM,QAAA,MAAM,mBAAmB,wHAOxB,CAAA;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAA"}
|
|
1
|
+
{"version":3,"file":"defs.defs.d.ts","sourceRoot":"","sources":["../../../../../src/lexicons/chat/bsky/convo/defs.defs.ts"],"names":[],"mappings":"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"}
|
|
@@ -237,6 +237,7 @@ const groupConvo = /*#__PURE__*/ l.typedObject($nsid, 'groupConvo',
|
|
|
237
237
|
/*#__PURE__*/ l.ref((() => GroupDefs.joinLinkView))),
|
|
238
238
|
joinRequestCount: /*#__PURE__*/ l.optional(/*#__PURE__*/ l.integer()),
|
|
239
239
|
lockStatus: /*#__PURE__*/ l.ref((() => convoLockStatus)),
|
|
240
|
+
lockStatusModerationOverride: /*#__PURE__*/ l.boolean(),
|
|
240
241
|
memberCount: /*#__PURE__*/ l.integer(),
|
|
241
242
|
memberLimit: /*#__PURE__*/ l.integer(),
|
|
242
243
|
name: /*#__PURE__*/ l.string({ maxGraphemes: 128, maxLength: 1280 }),
|