@atproto/bsky 0.0.280 → 0.0.282

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.
Files changed (154) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/dist/api/app/bsky/bookmark/getBookmarks.js +1 -1
  3. package/dist/api/app/bsky/bookmark/getBookmarks.js.map +1 -1
  4. package/dist/api/app/bsky/contact/getMatches.js +1 -1
  5. package/dist/api/app/bsky/contact/getMatches.js.map +1 -1
  6. package/dist/api/app/bsky/feed/getQuotes.js +1 -0
  7. package/dist/api/app/bsky/feed/getQuotes.js.map +1 -1
  8. package/dist/api/app/bsky/graph/getBlocks.js +1 -1
  9. package/dist/api/app/bsky/graph/getBlocks.js.map +1 -1
  10. package/dist/api/app/bsky/graph/getFollowers.js +1 -1
  11. package/dist/api/app/bsky/graph/getFollowers.js.map +1 -1
  12. package/dist/api/app/bsky/graph/getFollows.js +1 -1
  13. package/dist/api/app/bsky/graph/getFollows.js.map +1 -1
  14. package/dist/api/app/bsky/graph/getKnownFollowers.d.ts.map +1 -1
  15. package/dist/api/app/bsky/graph/getKnownFollowers.js +12 -7
  16. package/dist/api/app/bsky/graph/getKnownFollowers.js.map +1 -1
  17. package/dist/api/app/bsky/graph/getList.js +1 -1
  18. package/dist/api/app/bsky/graph/getList.js.map +1 -1
  19. package/dist/api/app/bsky/graph/getListBlocks.js +1 -1
  20. package/dist/api/app/bsky/graph/getListBlocks.js.map +1 -1
  21. package/dist/api/app/bsky/graph/getListMutes.js +1 -1
  22. package/dist/api/app/bsky/graph/getListMutes.js.map +1 -1
  23. package/dist/api/app/bsky/graph/getMutes.js +1 -1
  24. package/dist/api/app/bsky/graph/getMutes.js.map +1 -1
  25. package/dist/api/app/bsky/graph/getStarterPacksWithMembership.js +1 -1
  26. package/dist/api/app/bsky/graph/getStarterPacksWithMembership.js.map +1 -1
  27. package/dist/api/app/bsky/notification/getPreferences.d.ts +1 -1
  28. package/dist/api/app/bsky/notification/getPreferences.d.ts.map +1 -1
  29. package/dist/api/app/bsky/notification/getPreferences.js +2 -18
  30. package/dist/api/app/bsky/notification/getPreferences.js.map +1 -1
  31. package/dist/api/app/bsky/notification/listActivitySubscriptions.js +1 -1
  32. package/dist/api/app/bsky/notification/listActivitySubscriptions.js.map +1 -1
  33. package/dist/api/app/bsky/notification/listNotifications.d.ts.map +1 -1
  34. package/dist/api/app/bsky/notification/listNotifications.js +3 -18
  35. package/dist/api/app/bsky/notification/listNotifications.js.map +1 -1
  36. package/dist/api/app/bsky/notification/putPreferences.d.ts.map +1 -1
  37. package/dist/api/app/bsky/notification/putPreferences.js +14 -2
  38. package/dist/api/app/bsky/notification/putPreferences.js.map +1 -1
  39. package/dist/api/app/bsky/notification/putPreferencesV2.d.ts +1 -1
  40. package/dist/api/app/bsky/notification/putPreferencesV2.d.ts.map +1 -1
  41. package/dist/api/app/bsky/notification/putPreferencesV2.js +3 -15
  42. package/dist/api/app/bsky/notification/putPreferencesV2.js.map +1 -1
  43. package/dist/api/app/bsky/notification/util.d.ts +5 -0
  44. package/dist/api/app/bsky/notification/util.d.ts.map +1 -1
  45. package/dist/api/app/bsky/notification/util.js +39 -0
  46. package/dist/api/app/bsky/notification/util.js.map +1 -1
  47. package/dist/api/util.js +2 -2
  48. package/dist/api/util.js.map +1 -1
  49. package/dist/data-plane/server/bsync-subscription.d.ts +0 -3
  50. package/dist/data-plane/server/bsync-subscription.d.ts.map +1 -1
  51. package/dist/data-plane/server/bsync-subscription.js +1 -27
  52. package/dist/data-plane/server/bsync-subscription.js.map +1 -1
  53. package/dist/data-plane/server/db/migrations/20260918T214110000Z-remove-priority-notifs.d.ts +4 -0
  54. package/dist/data-plane/server/db/migrations/20260918T214110000Z-remove-priority-notifs.d.ts.map +1 -0
  55. package/dist/data-plane/server/db/migrations/20260918T214110000Z-remove-priority-notifs.js +13 -0
  56. package/dist/data-plane/server/db/migrations/20260918T214110000Z-remove-priority-notifs.js.map +1 -0
  57. package/dist/data-plane/server/db/migrations/index.d.ts +1 -0
  58. package/dist/data-plane/server/db/migrations/index.d.ts.map +1 -1
  59. package/dist/data-plane/server/db/migrations/index.js +1 -0
  60. package/dist/data-plane/server/db/migrations/index.js.map +1 -1
  61. package/dist/data-plane/server/db/tables/actor-state.d.ts +0 -1
  62. package/dist/data-plane/server/db/tables/actor-state.d.ts.map +1 -1
  63. package/dist/data-plane/server/db/tables/actor-state.js.map +1 -1
  64. package/dist/data-plane/server/routes/follows.d.ts.map +1 -1
  65. package/dist/data-plane/server/routes/follows.js +57 -22
  66. package/dist/data-plane/server/routes/follows.js.map +1 -1
  67. package/dist/data-plane/server/routes/notifs.d.ts.map +1 -1
  68. package/dist/data-plane/server/routes/notifs.js +2 -12
  69. package/dist/data-plane/server/routes/notifs.js.map +1 -1
  70. package/dist/data-plane/server/routes/profile.js +0 -3
  71. package/dist/data-plane/server/routes/profile.js.map +1 -1
  72. package/dist/hydration/actor.d.ts +0 -1
  73. package/dist/hydration/actor.d.ts.map +1 -1
  74. package/dist/hydration/actor.js +8 -10
  75. package/dist/hydration/actor.js.map +1 -1
  76. package/dist/lexicons/app/bsky/authFullApp.defs.d.ts.map +1 -1
  77. package/dist/lexicons/app/bsky/authFullApp.defs.js +10 -0
  78. package/dist/lexicons/app/bsky/authFullApp.defs.js.map +1 -1
  79. package/dist/lexicons/app/bsky/feed/defs.defs.d.ts +8 -0
  80. package/dist/lexicons/app/bsky/feed/defs.defs.d.ts.map +1 -1
  81. package/dist/lexicons/app/bsky/feed/defs.defs.js +2 -0
  82. package/dist/lexicons/app/bsky/feed/defs.defs.js.map +1 -1
  83. package/dist/lexicons/app/bsky/feed/getQuotes.defs.d.ts +6 -0
  84. package/dist/lexicons/app/bsky/feed/getQuotes.defs.d.ts.map +1 -1
  85. package/dist/lexicons/app/bsky/feed/getQuotes.defs.js +2 -0
  86. package/dist/lexicons/app/bsky/feed/getQuotes.defs.js.map +1 -1
  87. package/dist/lexicons/tools/ozone/inbox/appealActionedSubject.d.ts +3 -0
  88. package/dist/lexicons/tools/ozone/inbox/appealActionedSubject.d.ts.map +1 -0
  89. package/dist/lexicons/tools/ozone/inbox/appealActionedSubject.defs.d.ts +65 -0
  90. package/dist/lexicons/tools/ozone/inbox/appealActionedSubject.defs.d.ts.map +1 -0
  91. package/dist/lexicons/tools/ozone/inbox/appealActionedSubject.defs.js +49 -0
  92. package/dist/lexicons/tools/ozone/inbox/appealActionedSubject.defs.js.map +1 -0
  93. package/dist/lexicons/tools/ozone/inbox/appealActionedSubject.js +6 -0
  94. package/dist/lexicons/tools/ozone/inbox/appealActionedSubject.js.map +1 -0
  95. package/dist/lexicons/tools/ozone/inbox/defs.d.ts +2 -0
  96. package/dist/lexicons/tools/ozone/inbox/defs.d.ts.map +1 -0
  97. package/dist/lexicons/tools/ozone/inbox/defs.defs.d.ts +89 -0
  98. package/dist/lexicons/tools/ozone/inbox/defs.defs.d.ts.map +1 -0
  99. package/dist/lexicons/tools/ozone/inbox/defs.defs.js +73 -0
  100. package/dist/lexicons/tools/ozone/inbox/defs.defs.js.map +1 -0
  101. package/dist/lexicons/tools/ozone/inbox/defs.js +5 -0
  102. package/dist/lexicons/tools/ozone/inbox/defs.js.map +1 -0
  103. package/dist/lexicons/tools/ozone/inbox.d.ts +3 -0
  104. package/dist/lexicons/tools/ozone/inbox.d.ts.map +1 -0
  105. package/dist/lexicons/tools/ozone/inbox.js +6 -0
  106. package/dist/lexicons/tools/ozone/inbox.js.map +1 -0
  107. package/dist/lexicons/tools/ozone/queue/createQueue.defs.d.ts +2 -0
  108. package/dist/lexicons/tools/ozone/queue/createQueue.defs.d.ts.map +1 -1
  109. package/dist/lexicons/tools/ozone/queue/createQueue.defs.js +2 -0
  110. package/dist/lexicons/tools/ozone/queue/createQueue.defs.js.map +1 -1
  111. package/dist/lexicons/tools/ozone/queue/defs.defs.d.ts +4 -0
  112. package/dist/lexicons/tools/ozone/queue/defs.defs.d.ts.map +1 -1
  113. package/dist/lexicons/tools/ozone/queue/defs.defs.js +2 -0
  114. package/dist/lexicons/tools/ozone/queue/defs.defs.js.map +1 -1
  115. package/dist/lexicons/tools/ozone/queue/updateQueue.defs.d.ts +3 -1
  116. package/dist/lexicons/tools/ozone/queue/updateQueue.defs.d.ts.map +1 -1
  117. package/dist/lexicons/tools/ozone/queue/updateQueue.defs.js +3 -0
  118. package/dist/lexicons/tools/ozone/queue/updateQueue.defs.js.map +1 -1
  119. package/dist/lexicons/tools/ozone/report/defs.defs.d.ts +89 -9
  120. package/dist/lexicons/tools/ozone/report/defs.defs.d.ts.map +1 -1
  121. package/dist/lexicons/tools/ozone/report/defs.defs.js +20 -0
  122. package/dist/lexicons/tools/ozone/report/defs.defs.js.map +1 -1
  123. package/dist/lexicons/tools/ozone/report/getLiveStats.defs.d.ts +1 -1
  124. package/dist/lexicons/tools/ozone/report/getLiveStats.defs.d.ts.map +1 -1
  125. package/dist/lexicons/tools/ozone/report/getLiveStats.defs.js +1 -1
  126. package/dist/lexicons/tools/ozone/report/getLiveStats.defs.js.map +1 -1
  127. package/dist/lexicons/tools/ozone/report/refreshStats.defs.d.ts +1 -1
  128. package/dist/lexicons/tools/ozone/report/refreshStats.defs.d.ts.map +1 -1
  129. package/dist/lexicons/tools/ozone/report/refreshStats.defs.js +1 -1
  130. package/dist/lexicons/tools/ozone/report/refreshStats.defs.js.map +1 -1
  131. package/dist/lexicons/tools/ozone.d.ts +1 -0
  132. package/dist/lexicons/tools/ozone.d.ts.map +1 -1
  133. package/dist/lexicons/tools/ozone.js +1 -0
  134. package/dist/lexicons/tools/ozone.js.map +1 -1
  135. package/dist/proto/bsky_connect.d.ts +10 -1
  136. package/dist/proto/bsky_connect.d.ts.map +1 -1
  137. package/dist/proto/bsky_connect.js +10 -1
  138. package/dist/proto/bsky_connect.js.map +1 -1
  139. package/dist/proto/bsky_pb.d.ts +83 -12
  140. package/dist/proto/bsky_pb.d.ts.map +1 -1
  141. package/dist/proto/bsky_pb.js +130 -15
  142. package/dist/proto/bsky_pb.js.map +1 -1
  143. package/dist/proto/bsync_connect.d.ts +1 -10
  144. package/dist/proto/bsync_connect.d.ts.map +1 -1
  145. package/dist/proto/bsync_connect.js +1 -10
  146. package/dist/proto/bsync_connect.js.map +1 -1
  147. package/dist/proto/bsync_pb.d.ts +0 -38
  148. package/dist/proto/bsync_pb.d.ts.map +1 -1
  149. package/dist/proto/bsync_pb.js +0 -57
  150. package/dist/proto/bsync_pb.js.map +1 -1
  151. package/dist/views/types.d.ts +1 -4
  152. package/dist/views/types.d.ts.map +1 -1
  153. package/dist/views/types.js.map +1 -1
  154. package/package.json +15 -16
@@ -1 +1 @@
1
- {"version":3,"file":"notifs.js","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/notifs.ts"],"names":[],"mappings":"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","sourcesContent":["import { Timestamp } from '@bufbuild/protobuf'\nimport type { ServiceImpl } from '@connectrpc/connect'\nimport { sql } from 'kysely'\nimport { keyBy } from '@atproto/common'\nimport { lexParse } from '@atproto/lex'\nimport type { app } from '../../../lexicons/index.js'\nimport type { Service } from '../../../proto/bsky_connect.js'\nimport {\n FilterableNotificationPreference,\n NotificationInclude,\n NotificationPreference,\n NotificationPreferences,\n} from '../../../proto/bsky_pb.js'\nimport { Namespaces } from '../../../stash.js'\nimport type { Database } from '../db/index.js'\nimport { IsoSortAtKey } from '../db/pagination.js'\nimport { countAll, notSoftDeletedClause } from '../db/util.js'\n\nexport default (db: Database): Partial<ServiceImpl<typeof Service>> => ({\n async getNotifications(req) {\n const { actorDid, limit, cursor, priority } = req\n const { ref } = db.db.dynamic\n const priorityFollowQb = db.db\n .selectFrom('follow')\n .select(sql<boolean>`${true}`.as('val'))\n .where('creator', '=', actorDid)\n .whereRef('subjectDid', '=', ref('notif.author'))\n .limit(1)\n\n let builder = db.db\n .selectFrom('notification as notif')\n .where('notif.did', '=', actorDid)\n .where((eb) =>\n eb.or([\n eb('reasonSubject', 'is', null),\n eb.exists(\n db.db\n .selectFrom('record as subject')\n .selectAll()\n .whereRef('subject.uri', '=', ref('notif.reasonSubject')),\n ),\n ]),\n )\n .$if(priority, (qb) => qb.where(({ exists }) => exists(priorityFollowQb)))\n .select([\n 'notif.author as authorDid',\n 'notif.recordUri as uri',\n 'notif.recordCid as cid',\n 'notif.reason as reason',\n 'notif.reasonSubject as reasonSubject',\n 'notif.sortAt as sortAt',\n ])\n .select(priorityFollowQb.as('priority'))\n\n const key = new IsoSortAtKey(ref('notif.sortAt'))\n builder = key.paginate(builder, {\n cursor,\n limit,\n })\n\n const page = key.page(await builder.execute(), limit)\n const notifications = page.items.map((notif) => ({\n recipientDid: actorDid,\n uri: notif.uri,\n reason: notif.reason,\n reasonSubject: notif.reasonSubject ?? undefined,\n timestamp: Timestamp.fromDate(new Date(notif.sortAt)),\n priority: notif.priority ?? false,\n }))\n return {\n notifications,\n cursor: page.cursor,\n }\n },\n\n async getNotificationSeen(req) {\n const { actorDid } = req\n const res = await db.db\n .selectFrom('actor_state')\n .where('did', '=', actorDid)\n .selectAll()\n .executeTakeFirst()\n if (!res) {\n return {}\n }\n return {\n timestamp: Timestamp.fromDate(new Date(res.lastSeenNotifs)),\n }\n },\n\n async getUnreadNotificationCount(req) {\n const { actorDid } = req\n const { ref } = db.db.dynamic\n const lastSeenRes = await db.db\n .selectFrom('actor_state')\n .where('did', '=', actorDid)\n .selectAll()\n .executeTakeFirst()\n const lastSeen = lastSeenRes?.lastSeenNotifs\n\n const result = await db.db\n .selectFrom('notification')\n .select(countAll.as('count'))\n .innerJoin('actor', 'actor.did', 'notification.did')\n .leftJoin('actor_state', 'actor_state.did', 'actor.did')\n .innerJoin('record', 'record.uri', 'notification.recordUri')\n .where(notSoftDeletedClause(ref('record')))\n .where(notSoftDeletedClause(ref('actor')))\n // Ensure to hit notification_did_sortat_idx, handling case where lastSeenNotifs is null.\n .where('notification.did', '=', actorDid)\n .where('notification.sortAt', '>', lastSeen ?? '')\n .executeTakeFirst()\n\n return {\n count: result?.count,\n }\n },\n\n async updateNotificationSeen(req) {\n const { actorDid, timestamp } = req\n if (!timestamp) {\n return\n }\n const timestampIso = timestamp.toDate().toISOString()\n const { ref } = db.db.dynamic\n await db.db\n .insertInto('actor_state')\n .values({\n did: actorDid,\n lastSeenNotifs: timestampIso,\n priorityNotifs: false,\n })\n .onConflict((oc) =>\n oc.column('did').doUpdateSet({\n lastSeenNotifs: sql`greatest(${ref('actor_state.lastSeenNotifs')}, ${timestampIso})`,\n }),\n )\n .executeTakeFirst()\n },\n\n async getNotificationPreferences(req) {\n const { dids } = req\n if (dids.length === 0) {\n return { preferences: [] }\n }\n\n const res = await db.db\n .selectFrom('private_data')\n .selectAll()\n .where('actorDid', 'in', dids)\n .where(\n 'namespace',\n '=',\n Namespaces.AppBskyNotificationDefsPreferences.$type,\n )\n .where('key', '=', 'self')\n .execute()\n\n const byDid = keyBy(res, 'actorDid')\n const preferences = dids.map((did) => {\n const row = byDid.get(did)\n if (!row) {\n return {}\n }\n const p = lexParse<app.bsky.notification.defs.Preferences>(row.payload)\n return notificationPreferencesLexToProtobuf(p, row.payload)\n })\n\n return { preferences }\n },\n})\n\nexport const notificationPreferencesLexToProtobuf = (\n p: app.bsky.notification.defs.Preferences,\n json: string,\n): NotificationPreferences => {\n const lexFilterablePreferenceToProtobuf = (\n p: app.bsky.notification.defs.FilterablePreference,\n ): FilterableNotificationPreference =>\n new FilterableNotificationPreference({\n include:\n p.include === 'follows'\n ? NotificationInclude.FOLLOWS\n : NotificationInclude.ALL,\n list: { enabled: p.list ?? true },\n push: { enabled: p.push ?? true },\n })\n\n const lexPreferenceToProtobuf = (\n p: app.bsky.notification.defs.Preference,\n ): NotificationPreference =>\n new NotificationPreference({\n list: { enabled: p.list ?? true },\n push: { enabled: p.push ?? true },\n })\n\n return new NotificationPreferences({\n entry: Buffer.from(json),\n follow: lexFilterablePreferenceToProtobuf(p.follow),\n like: lexFilterablePreferenceToProtobuf(p.like),\n likeViaRepost: lexFilterablePreferenceToProtobuf(p.likeViaRepost),\n mention: lexFilterablePreferenceToProtobuf(p.mention),\n quote: lexFilterablePreferenceToProtobuf(p.quote),\n reply: lexFilterablePreferenceToProtobuf(p.reply),\n repost: lexFilterablePreferenceToProtobuf(p.repost),\n repostViaRepost: lexFilterablePreferenceToProtobuf(p.repostViaRepost),\n starterpackJoined: lexPreferenceToProtobuf(p.starterpackJoined),\n subscribedPost: lexPreferenceToProtobuf(p.subscribedPost),\n unverified: lexPreferenceToProtobuf(p.unverified),\n verified: lexPreferenceToProtobuf(p.verified),\n })\n}\n"]}
1
+ {"version":3,"file":"notifs.js","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/notifs.ts"],"names":[],"mappings":"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","sourcesContent":["import { Timestamp } from '@bufbuild/protobuf'\nimport type { ServiceImpl } from '@connectrpc/connect'\nimport { sql } from 'kysely'\nimport { keyBy } from '@atproto/common'\nimport { lexParse } from '@atproto/lex'\nimport type { app } from '../../../lexicons/index.js'\nimport type { Service } from '../../../proto/bsky_connect.js'\nimport {\n FilterableNotificationPreference,\n NotificationInclude,\n NotificationPreference,\n NotificationPreferences,\n} from '../../../proto/bsky_pb.js'\nimport { Namespaces } from '../../../stash.js'\nimport type { Database } from '../db/index.js'\nimport { IsoSortAtKey } from '../db/pagination.js'\nimport { countAll, notSoftDeletedClause } from '../db/util.js'\n\nexport default (db: Database): Partial<ServiceImpl<typeof Service>> => ({\n async getNotifications(req) {\n const { actorDid, limit, cursor } = req\n const { ref } = db.db.dynamic\n\n let builder = db.db\n .selectFrom('notification as notif')\n .where('notif.did', '=', actorDid)\n .where((eb) =>\n eb.or([\n eb('reasonSubject', 'is', null),\n eb.exists(\n db.db\n .selectFrom('record as subject')\n .selectAll()\n .whereRef('subject.uri', '=', ref('notif.reasonSubject')),\n ),\n ]),\n )\n .select([\n 'notif.author as authorDid',\n 'notif.recordUri as uri',\n 'notif.recordCid as cid',\n 'notif.reason as reason',\n 'notif.reasonSubject as reasonSubject',\n 'notif.sortAt as sortAt',\n ])\n\n const key = new IsoSortAtKey(ref('notif.sortAt'))\n builder = key.paginate(builder, {\n cursor,\n limit,\n })\n\n const page = key.page(await builder.execute(), limit)\n const notifications = page.items.map((notif) => ({\n recipientDid: actorDid,\n uri: notif.uri,\n reason: notif.reason,\n reasonSubject: notif.reasonSubject ?? undefined,\n timestamp: Timestamp.fromDate(new Date(notif.sortAt)),\n }))\n return {\n notifications,\n cursor: page.cursor,\n }\n },\n\n async getNotificationSeen(req) {\n const { actorDid } = req\n const res = await db.db\n .selectFrom('actor_state')\n .where('did', '=', actorDid)\n .selectAll()\n .executeTakeFirst()\n if (!res) {\n return {}\n }\n return {\n timestamp: Timestamp.fromDate(new Date(res.lastSeenNotifs)),\n }\n },\n\n async getUnreadNotificationCount(req) {\n const { actorDid } = req\n const { ref } = db.db.dynamic\n const lastSeenRes = await db.db\n .selectFrom('actor_state')\n .where('did', '=', actorDid)\n .selectAll()\n .executeTakeFirst()\n const lastSeen = lastSeenRes?.lastSeenNotifs\n\n const result = await db.db\n .selectFrom('notification')\n .select(countAll.as('count'))\n .innerJoin('actor', 'actor.did', 'notification.did')\n .leftJoin('actor_state', 'actor_state.did', 'actor.did')\n .innerJoin('record', 'record.uri', 'notification.recordUri')\n .where(notSoftDeletedClause(ref('record')))\n .where(notSoftDeletedClause(ref('actor')))\n // Ensure to hit notification_did_sortat_idx, handling case where lastSeenNotifs is null.\n .where('notification.did', '=', actorDid)\n .where('notification.sortAt', '>', lastSeen ?? '')\n .executeTakeFirst()\n\n return {\n count: result?.count,\n }\n },\n\n async updateNotificationSeen(req) {\n const { actorDid, timestamp } = req\n if (!timestamp) {\n return\n }\n const timestampIso = timestamp.toDate().toISOString()\n const { ref } = db.db.dynamic\n await db.db\n .insertInto('actor_state')\n .values({\n did: actorDid,\n lastSeenNotifs: timestampIso,\n })\n .onConflict((oc) =>\n oc.column('did').doUpdateSet({\n lastSeenNotifs: sql`greatest(${ref('actor_state.lastSeenNotifs')}, ${timestampIso})`,\n }),\n )\n .executeTakeFirst()\n },\n\n async getNotificationPreferences(req) {\n const { dids } = req\n if (dids.length === 0) {\n return { preferences: [] }\n }\n\n const res = await db.db\n .selectFrom('private_data')\n .selectAll()\n .where('actorDid', 'in', dids)\n .where(\n 'namespace',\n '=',\n Namespaces.AppBskyNotificationDefsPreferences.$type,\n )\n .where('key', '=', 'self')\n .execute()\n\n const byDid = keyBy(res, 'actorDid')\n const preferences = dids.map((did) => {\n const row = byDid.get(did)\n if (!row) {\n return {}\n }\n const p = lexParse<app.bsky.notification.defs.Preferences>(row.payload)\n return notificationPreferencesLexToProtobuf(p, row.payload)\n })\n\n return { preferences }\n },\n})\n\nexport const notificationPreferencesLexToProtobuf = (\n p: app.bsky.notification.defs.Preferences,\n json: string,\n): NotificationPreferences => {\n const lexFilterablePreferenceToProtobuf = (\n p: app.bsky.notification.defs.FilterablePreference,\n ): FilterableNotificationPreference =>\n new FilterableNotificationPreference({\n include:\n p.include === 'follows'\n ? NotificationInclude.FOLLOWS\n : NotificationInclude.ALL,\n list: { enabled: p.list ?? true },\n push: { enabled: p.push ?? true },\n })\n\n const lexPreferenceToProtobuf = (\n p: app.bsky.notification.defs.Preference,\n ): NotificationPreference =>\n new NotificationPreference({\n list: { enabled: p.list ?? true },\n push: { enabled: p.push ?? true },\n })\n\n return new NotificationPreferences({\n entry: Buffer.from(json),\n follow: lexFilterablePreferenceToProtobuf(p.follow),\n like: lexFilterablePreferenceToProtobuf(p.like),\n likeViaRepost: lexFilterablePreferenceToProtobuf(p.likeViaRepost),\n mention: lexFilterablePreferenceToProtobuf(p.mention),\n quote: lexFilterablePreferenceToProtobuf(p.quote),\n reply: lexFilterablePreferenceToProtobuf(p.reply),\n repost: lexFilterablePreferenceToProtobuf(p.repost),\n repostViaRepost: lexFilterablePreferenceToProtobuf(p.repostViaRepost),\n starterpackJoined: lexPreferenceToProtobuf(p.starterpackJoined),\n subscribedPost: lexPreferenceToProtobuf(p.subscribedPost),\n unverified: lexPreferenceToProtobuf(p.unverified),\n verified: lexPreferenceToProtobuf(p.verified),\n })\n}\n"]}
@@ -19,10 +19,8 @@ export default (db) => ({
19
19
  const [handlesRes, verificationsReceived, profiles, statuses, chatDeclarations, notifDeclarations, germDeclarations,] = await Promise.all([
20
20
  db.db
21
21
  .selectFrom('actor')
22
- .leftJoin('actor_state', 'actor_state.did', 'actor.did')
23
22
  .where('actor.did', 'in', dids)
24
23
  .selectAll('actor')
25
- .select('actor_state.priorityNotifs')
26
24
  .select([
27
25
  db.db
28
26
  .selectFrom('labeler')
@@ -125,7 +123,6 @@ export default (db) => ({
125
123
  : undefined,
126
124
  upstreamStatus: row?.upstreamStatus ?? '',
127
125
  createdAt: profiles.records[i].createdAt, // @NOTE profile creation date not trusted in production
128
- priorityNotifications: row?.priorityNotifs ?? false,
129
126
  trustedVerifier: row?.trustedVerifier ?? false,
130
127
  verifiedBy,
131
128
  statusRecord: status,
@@ -1 +1 @@
1
- {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAE9C,OAAO,EAAmB,GAAG,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAA;AAKtD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AASzC,eAAe,CAAC,EAAY,EAAwC,EAAE,CAAC,CAAC;IACtE,KAAK,CAAC,SAAS,CAAC,GAAG;QACjB,MAAM,EAAE,IAAI,EAAE,yBAAyB,EAAE,GAAG,GAAG,CAAA;QAC/C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;QACvB,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAC1B,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,GAAG,8BAA8B,CACnD,CAAA;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CACzB,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,GAAG,6BAA6B,CAClD,CAAA;QACD,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAClC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,GAAG,mCAAmC,CACxD,CAAA;QACD,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CACnC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,GAAG,yCAAyC,CAC9D,CAAA;QACD,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAClC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,GAAG,mCAAmC,CACxD,CAAA;QACD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,CAAA;QAC7B,MAAM,CACJ,UAAU,EACV,qBAAqB,EACrB,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EACjB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACpB,EAAE,CAAC,EAAE;iBACF,UAAU,CAAC,OAAO,CAAC;iBACnB,QAAQ,CAAC,aAAa,EAAE,iBAAiB,EAAE,WAAW,CAAC;iBACvD,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;iBAC9B,SAAS,CAAC,OAAO,CAAC;iBAClB,MAAM,CAAC,4BAA4B,CAAC;iBACpC,MAAM,CAAC;gBACN,EAAE,CAAC,EAAE;qBACF,UAAU,CAAC,SAAS,CAAC;qBACrB,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;qBAC1C,MAAM,CAAC,GAAG,CAAM,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;qBACpC,EAAE,CAAC,WAAW,CAAC;aACnB,CAAC;iBACD,OAAO,EAAE;YACZ,EAAE,CAAC,EAAE;iBACF,UAAU,CAAC,cAAc,CAAC;iBAC1B,SAAS,CAAC,cAAc,CAAC;iBACzB,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,sBAAsB,CAAC;iBACvD,KAAK,CAAC,sBAAsB,EAAE,IAAI,EAAE,IAAI,CAAC;iBACzC,KAAK,CAAC,uBAAuB,EAAE,GAAG,EAAE,IAAI,CAAC;iBACzC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC;iBAC1B,OAAO,EAAE;YACZ,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;YACrC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;YACpC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;YAC7C,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC;YAC9C,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;SAC9C,CAAC,CAAA;QAEF,MAAM,yBAAyB,GAAG,qBAAqB,CAAC,MAAM,CAC5D,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACX,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;YACvC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACd,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YAC1B,OAAO,GAAG,CAAA;QACZ,CAAC,EACD,IAAI,GAAG,EAAsC,CAC9C,CAAA;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YACjC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAE1B,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;YAElC,MAAM,eAAe,GAAG,cAAc,CACpC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAChC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CACnC,CAAA;YAED,MAAM,eAAe,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;YAEnD,MAAM,aAAa,GAAG,yBAAyB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;YAC9D,MAAM,UAAU,GAAe,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBAC/D,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG;oBACjB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,WAAW,EAAE,GAAG,CAAC,WAAW;oBAC5B,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;iBACrD,CAAA;gBACD,OAAO,GAAG,CAAA;YACZ,CAAC,EAAE,EAAgB,CAAC,CAAA;YACpB,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,yBAAyB,CAAC,CAAA;YAE9D,MAAM,oBAAoB,GAAG,GAAG,EAAE;gBAChC,MAAM,MAAM,GAAG,cAAc,CAC3B,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,EACtC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CACpC,CAAA;gBAED,0GAA0G;gBAC1G,MAAM,UAAU,GAAG,WAAW,CAAA;gBAE9B,IAAI,OAAO,MAAM,EAAE,kBAAkB,KAAK,QAAQ,EAAE,CAAC;oBACnD,OAAO,UAAU,CAAA;gBACnB,CAAC;gBAED,QAAQ,MAAM,CAAC,kBAAkB,EAAE,CAAC;oBAClC,KAAK,WAAW,CAAC;oBACjB,KAAK,SAAS,CAAC;oBACf,KAAK,MAAM;wBACT,OAAO,MAAM,CAAC,kBAAkB,CAAA;oBAClC;wBACE,OAAO,UAAU,CAAA;gBACrB,CAAC;YACH,CAAC,CAAA;YAED,MAAM,kBAAkB,GAAG,GAAG,EAAE;gBAC9B,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBAClC,OAAO,SAAS,CAAA;gBAClB,CAAC;gBAED,MAAM,MAAM,GAAG,GAAG,EAAE,kBAAkB,IAAI,SAAS,CAAA;gBACnD,IAAI,MAAM,GAAG,GAAG,EAAE,kBAAkB,CAAA;gBACpC,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACpC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;wBACzB,MAAM,GAAG,MAAM,CAAA;oBACjB,CAAC;yBAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;wBAChC,MAAM,GAAG,MAAM,CAAA;oBACjB,CAAC;yBAAM,CAAC;wBACN,MAAM,GAAG,SAAS,CAAA;oBACpB,CAAC;gBACH,CAAC;gBAED,OAAO;oBACL,eAAe,EAAE,GAAG,EAAE,2BAA2B;wBAC/C,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAC;wBAChE,CAAC,CAAC,SAAS;oBACb,MAAM;oBACN,MAAM;iBACP,CAAA;YACH,CAAC,CAAA;YAED,OAAO;gBACL,MAAM,EAAE,CAAC,CAAC,GAAG;gBACb,MAAM,EAAE,GAAG,EAAE,MAAM,IAAI,SAAS;gBAChC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC5B,SAAS,EAAE,CAAC,CAAC,GAAG,EAAE,WAAW;gBAC7B,WAAW,EAAE,GAAG,EAAE,WAAW,IAAI,SAAS;gBAC1C,YAAY,EAAE,SAAS,EAAE,2DAA2D;gBACpF,OAAO,EAAE,GAAG,EAAE,SAAS,IAAI,KAAK;gBAChC,sBAAsB,EACpB,OAAO,eAAe,EAAE,CAAC,eAAe,CAAC,KAAK,QAAQ;oBACpD,CAAC,CAAC,eAAe,CAAC,eAAe,CAAC;oBAClC,CAAC,CAAC,SAAS;gBACf,yBAAyB,EACvB,OAAO,eAAe,EAAE,CAAC,mBAAmB,CAAC,KAAK,QAAQ;oBACxD,CAAC,CAAC,eAAe,CAAC,mBAAmB,CAAC;oBACtC,CAAC,CAAC,SAAS;gBACf,cAAc,EAAE,GAAG,EAAE,cAAc,IAAI,EAAE;gBACzC,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,wDAAwD;gBAClG,qBAAqB,EAAE,GAAG,EAAE,cAAc,IAAI,KAAK;gBACnD,eAAe,EAAE,GAAG,EAAE,eAAe,IAAI,KAAK;gBAC9C,UAAU;gBACV,YAAY,EAAE,MAAM;gBACpB,UAAU,EAAE,eAAe;gBAC3B,IAAI,EAAE,EAAE;gBACR,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;gBACrC,8BAA8B,EAAE,oBAAoB,EAAE;gBACtD,kBAAkB,EAAE,kBAAkB,EAAE;aACzC,CAAA;QACH,CAAC,CAAC,CAAA;QACF,OAAO,EAAE,MAAM,EAAE,CAAA;IACnB,CAAC;IAED,uEAAuE;IACvE,KAAK,CAAC,gBAAgB,CAAC,GAAG;QACxB,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAA;QACvB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;QACrB,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,EAAE;aACpB,UAAU,CAAC,OAAO,CAAC;aACnB,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC;aAC9B,SAAS,EAAE;aACX,OAAO,EAAE,CAAA;QACZ,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;QACrC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;QACrE,OAAO,EAAE,IAAI,EAAE,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,GAAG;QACjC,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,GAAG,CAAA;QACxC,MAAM,EAAE,CAAC,EAAE;aACR,WAAW,CAAC,OAAO,CAAC;aACpB,GAAG,CAAC,EAAE,cAAc,EAAE,CAAC;aACvB,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC;aAC3B,OAAO,EAAE,CAAA;IACd,CAAC;CACF,CAAC,CAAA","sourcesContent":["import { Timestamp } from '@bufbuild/protobuf'\nimport type { ServiceImpl } from '@connectrpc/connect'\nimport { type Selectable, sql } from 'kysely'\nimport { keyBy } from '@atproto/common'\nimport { parseJsonBytes } from '../../../hydration/util.js'\nimport { app, chat } from '../../../lexicons/index.js'\nimport type { Service } from '../../../proto/bsky_connect.js'\nimport type { VerificationMeta } from '../../../proto/bsky_pb.js'\nimport type { Database } from '../db/index.js'\nimport type { Verification } from '../db/tables/verification.js'\nimport { getRecords } from './records.js'\n\ntype VerifiedBy = {\n [handle: string]: Pick<\n VerificationMeta,\n 'rkey' | 'handle' | 'displayName' | 'sortedAt'\n >\n}\n\nexport default (db: Database): Partial<ServiceImpl<typeof Service>> => ({\n async getActors(req) {\n const { dids, returnAgeAssuranceForDids } = req\n if (dids.length === 0) {\n return { actors: [] }\n }\n const profileUris = dids.map(\n (did) => `at://${did}/app.bsky.actor.profile/self`,\n )\n const statusUris = dids.map(\n (did) => `at://${did}/app.bsky.actor.status/self`,\n )\n const chatDeclarationUris = dids.map(\n (did) => `at://${did}/chat.bsky.actor.declaration/self`,\n )\n const notifDeclarationUris = dids.map(\n (did) => `at://${did}/app.bsky.notification.declaration/self`,\n )\n const germDeclarationUris = dids.map(\n (did) => `at://${did}/com.germnetwork.declaration/self`,\n )\n const { ref } = db.db.dynamic\n const [\n handlesRes,\n verificationsReceived,\n profiles,\n statuses,\n chatDeclarations,\n notifDeclarations,\n germDeclarations,\n ] = await Promise.all([\n db.db\n .selectFrom('actor')\n .leftJoin('actor_state', 'actor_state.did', 'actor.did')\n .where('actor.did', 'in', dids)\n .selectAll('actor')\n .select('actor_state.priorityNotifs')\n .select([\n db.db\n .selectFrom('labeler')\n .whereRef('creator', '=', ref('actor.did'))\n .select(sql<true>`${true}`.as('val'))\n .as('isLabeler'),\n ])\n .execute(),\n db.db\n .selectFrom('verification')\n .selectAll('verification')\n .innerJoin('actor', 'actor.did', 'verification.creator')\n .where('verification.subject', 'in', dids)\n .where('actor.trustedVerifier', '=', true)\n .orderBy('sortedAt', 'asc')\n .execute(),\n getRecords(db)({ uris: profileUris }),\n getRecords(db)({ uris: statusUris }),\n getRecords(db)({ uris: chatDeclarationUris }),\n getRecords(db)({ uris: notifDeclarationUris }),\n getRecords(db)({ uris: germDeclarationUris }),\n ])\n\n const verificationsBySubjectDid = verificationsReceived.reduce(\n (acc, cur) => {\n const list = acc.get(cur.subject) ?? []\n list.push(cur)\n acc.set(cur.subject, list)\n return acc\n },\n new Map<string, Selectable<Verification>[]>(),\n )\n\n const byDid = keyBy(handlesRes, 'did')\n const actors = dids.map((did, i) => {\n const row = byDid.get(did)\n\n const status = statuses.records[i]\n\n const chatDeclaration = parseJsonBytes(\n chat.bsky.actor.declaration.main,\n chatDeclarations.records[i].record,\n )\n\n const germDeclaration = germDeclarations.records[i]\n\n const verifications = verificationsBySubjectDid.get(did) ?? []\n const verifiedBy: VerifiedBy = verifications.reduce((acc, cur) => {\n acc[cur.creator] = {\n rkey: cur.rkey,\n handle: cur.handle,\n displayName: cur.displayName,\n sortedAt: Timestamp.fromDate(new Date(cur.sortedAt)),\n }\n return acc\n }, {} as VerifiedBy)\n const ageAssuranceForDids = new Set(returnAgeAssuranceForDids)\n\n const activitySubscription = () => {\n const record = parseJsonBytes(\n app.bsky.notification.declaration.main,\n notifDeclarations.records[i].record,\n )\n\n // The dataplane is responsible for setting the default of \"followers\" (default according to the lexicon).\n const defaultVal = 'followers'\n\n if (typeof record?.allowSubscriptions !== 'string') {\n return defaultVal\n }\n\n switch (record.allowSubscriptions) {\n case 'followers':\n case 'mutuals':\n case 'none':\n return record.allowSubscriptions\n default:\n return defaultVal\n }\n }\n\n const ageAssuranceStatus = () => {\n if (!ageAssuranceForDids.has(did)) {\n return undefined\n }\n\n const status = row?.ageAssuranceStatus ?? 'unknown'\n let access = row?.ageAssuranceAccess\n if (!access || access === 'unknown') {\n if (status === 'assured') {\n access = 'full'\n } else if (status === 'blocked') {\n access = 'none'\n } else {\n access = 'unknown'\n }\n }\n\n return {\n lastInitiatedAt: row?.ageAssuranceLastInitiatedAt\n ? Timestamp.fromDate(new Date(row?.ageAssuranceLastInitiatedAt))\n : undefined,\n status,\n access,\n }\n }\n\n return {\n exists: !!row,\n handle: row?.handle ?? undefined,\n profile: profiles.records[i],\n takenDown: !!row?.takedownRef,\n takedownRef: row?.takedownRef || undefined,\n tombstonedAt: undefined, // in current implementation, tombstoned actors are deleted\n labeler: row?.isLabeler ?? false,\n allowIncomingChatsFrom:\n typeof chatDeclaration?.['allowIncoming'] === 'string'\n ? chatDeclaration['allowIncoming']\n : undefined,\n allowGroupChatInvitesFrom:\n typeof chatDeclaration?.['allowGroupInvites'] === 'string'\n ? chatDeclaration['allowGroupInvites']\n : undefined,\n upstreamStatus: row?.upstreamStatus ?? '',\n createdAt: profiles.records[i].createdAt, // @NOTE profile creation date not trusted in production\n priorityNotifications: row?.priorityNotifs ?? false,\n trustedVerifier: row?.trustedVerifier ?? false,\n verifiedBy,\n statusRecord: status,\n germRecord: germDeclaration,\n tags: [],\n profileTags: profiles.records[i].tags,\n allowActivitySubscriptionsFrom: activitySubscription(),\n ageAssuranceStatus: ageAssuranceStatus(),\n }\n })\n return { actors }\n },\n\n // @TODO handle req.lookupUnidirectional w/ networked handle resolution\n async getDidsByHandles(req) {\n const { handles } = req\n if (handles.length === 0) {\n return { dids: [] }\n }\n const res = await db.db\n .selectFrom('actor')\n .where('handle', 'in', handles)\n .selectAll()\n .execute()\n const byHandle = keyBy(res, 'handle')\n const dids = handles.map((handle) => byHandle.get(handle)?.did ?? '')\n return { dids }\n },\n\n async updateActorUpstreamStatus(req) {\n const { actorDid, upstreamStatus } = req\n await db.db\n .updateTable('actor')\n .set({ upstreamStatus })\n .where('did', '=', actorDid)\n .execute()\n },\n})\n"]}
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAE9C,OAAO,EAAmB,GAAG,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAA;AAKtD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AASzC,eAAe,CAAC,EAAY,EAAwC,EAAE,CAAC,CAAC;IACtE,KAAK,CAAC,SAAS,CAAC,GAAG;QACjB,MAAM,EAAE,IAAI,EAAE,yBAAyB,EAAE,GAAG,GAAG,CAAA;QAC/C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;QACvB,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAC1B,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,GAAG,8BAA8B,CACnD,CAAA;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CACzB,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,GAAG,6BAA6B,CAClD,CAAA;QACD,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAClC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,GAAG,mCAAmC,CACxD,CAAA;QACD,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CACnC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,GAAG,yCAAyC,CAC9D,CAAA;QACD,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAClC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,GAAG,mCAAmC,CACxD,CAAA;QACD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,CAAA;QAC7B,MAAM,CACJ,UAAU,EACV,qBAAqB,EACrB,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EACjB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACpB,EAAE,CAAC,EAAE;iBACF,UAAU,CAAC,OAAO,CAAC;iBACnB,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;iBAC9B,SAAS,CAAC,OAAO,CAAC;iBAClB,MAAM,CAAC;gBACN,EAAE,CAAC,EAAE;qBACF,UAAU,CAAC,SAAS,CAAC;qBACrB,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;qBAC1C,MAAM,CAAC,GAAG,CAAM,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;qBACpC,EAAE,CAAC,WAAW,CAAC;aACnB,CAAC;iBACD,OAAO,EAAE;YACZ,EAAE,CAAC,EAAE;iBACF,UAAU,CAAC,cAAc,CAAC;iBAC1B,SAAS,CAAC,cAAc,CAAC;iBACzB,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,sBAAsB,CAAC;iBACvD,KAAK,CAAC,sBAAsB,EAAE,IAAI,EAAE,IAAI,CAAC;iBACzC,KAAK,CAAC,uBAAuB,EAAE,GAAG,EAAE,IAAI,CAAC;iBACzC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC;iBAC1B,OAAO,EAAE;YACZ,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;YACrC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;YACpC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;YAC7C,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC;YAC9C,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;SAC9C,CAAC,CAAA;QAEF,MAAM,yBAAyB,GAAG,qBAAqB,CAAC,MAAM,CAC5D,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACX,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;YACvC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACd,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YAC1B,OAAO,GAAG,CAAA;QACZ,CAAC,EACD,IAAI,GAAG,EAAsC,CAC9C,CAAA;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YACjC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAE1B,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;YAElC,MAAM,eAAe,GAAG,cAAc,CACpC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAChC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CACnC,CAAA;YAED,MAAM,eAAe,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;YAEnD,MAAM,aAAa,GAAG,yBAAyB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;YAC9D,MAAM,UAAU,GAAe,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBAC/D,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG;oBACjB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,WAAW,EAAE,GAAG,CAAC,WAAW;oBAC5B,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;iBACrD,CAAA;gBACD,OAAO,GAAG,CAAA;YACZ,CAAC,EAAE,EAAgB,CAAC,CAAA;YACpB,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,yBAAyB,CAAC,CAAA;YAE9D,MAAM,oBAAoB,GAAG,GAAG,EAAE;gBAChC,MAAM,MAAM,GAAG,cAAc,CAC3B,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,EACtC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CACpC,CAAA;gBAED,0GAA0G;gBAC1G,MAAM,UAAU,GAAG,WAAW,CAAA;gBAE9B,IAAI,OAAO,MAAM,EAAE,kBAAkB,KAAK,QAAQ,EAAE,CAAC;oBACnD,OAAO,UAAU,CAAA;gBACnB,CAAC;gBAED,QAAQ,MAAM,CAAC,kBAAkB,EAAE,CAAC;oBAClC,KAAK,WAAW,CAAC;oBACjB,KAAK,SAAS,CAAC;oBACf,KAAK,MAAM;wBACT,OAAO,MAAM,CAAC,kBAAkB,CAAA;oBAClC;wBACE,OAAO,UAAU,CAAA;gBACrB,CAAC;YACH,CAAC,CAAA;YAED,MAAM,kBAAkB,GAAG,GAAG,EAAE;gBAC9B,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBAClC,OAAO,SAAS,CAAA;gBAClB,CAAC;gBAED,MAAM,MAAM,GAAG,GAAG,EAAE,kBAAkB,IAAI,SAAS,CAAA;gBACnD,IAAI,MAAM,GAAG,GAAG,EAAE,kBAAkB,CAAA;gBACpC,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACpC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;wBACzB,MAAM,GAAG,MAAM,CAAA;oBACjB,CAAC;yBAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;wBAChC,MAAM,GAAG,MAAM,CAAA;oBACjB,CAAC;yBAAM,CAAC;wBACN,MAAM,GAAG,SAAS,CAAA;oBACpB,CAAC;gBACH,CAAC;gBAED,OAAO;oBACL,eAAe,EAAE,GAAG,EAAE,2BAA2B;wBAC/C,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAC;wBAChE,CAAC,CAAC,SAAS;oBACb,MAAM;oBACN,MAAM;iBACP,CAAA;YACH,CAAC,CAAA;YAED,OAAO;gBACL,MAAM,EAAE,CAAC,CAAC,GAAG;gBACb,MAAM,EAAE,GAAG,EAAE,MAAM,IAAI,SAAS;gBAChC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC5B,SAAS,EAAE,CAAC,CAAC,GAAG,EAAE,WAAW;gBAC7B,WAAW,EAAE,GAAG,EAAE,WAAW,IAAI,SAAS;gBAC1C,YAAY,EAAE,SAAS,EAAE,2DAA2D;gBACpF,OAAO,EAAE,GAAG,EAAE,SAAS,IAAI,KAAK;gBAChC,sBAAsB,EACpB,OAAO,eAAe,EAAE,CAAC,eAAe,CAAC,KAAK,QAAQ;oBACpD,CAAC,CAAC,eAAe,CAAC,eAAe,CAAC;oBAClC,CAAC,CAAC,SAAS;gBACf,yBAAyB,EACvB,OAAO,eAAe,EAAE,CAAC,mBAAmB,CAAC,KAAK,QAAQ;oBACxD,CAAC,CAAC,eAAe,CAAC,mBAAmB,CAAC;oBACtC,CAAC,CAAC,SAAS;gBACf,cAAc,EAAE,GAAG,EAAE,cAAc,IAAI,EAAE;gBACzC,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,wDAAwD;gBAClG,eAAe,EAAE,GAAG,EAAE,eAAe,IAAI,KAAK;gBAC9C,UAAU;gBACV,YAAY,EAAE,MAAM;gBACpB,UAAU,EAAE,eAAe;gBAC3B,IAAI,EAAE,EAAE;gBACR,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;gBACrC,8BAA8B,EAAE,oBAAoB,EAAE;gBACtD,kBAAkB,EAAE,kBAAkB,EAAE;aACzC,CAAA;QACH,CAAC,CAAC,CAAA;QACF,OAAO,EAAE,MAAM,EAAE,CAAA;IACnB,CAAC;IAED,uEAAuE;IACvE,KAAK,CAAC,gBAAgB,CAAC,GAAG;QACxB,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAA;QACvB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;QACrB,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,EAAE;aACpB,UAAU,CAAC,OAAO,CAAC;aACnB,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC;aAC9B,SAAS,EAAE;aACX,OAAO,EAAE,CAAA;QACZ,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;QACrC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;QACrE,OAAO,EAAE,IAAI,EAAE,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,GAAG;QACjC,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,GAAG,CAAA;QACxC,MAAM,EAAE,CAAC,EAAE;aACR,WAAW,CAAC,OAAO,CAAC;aACpB,GAAG,CAAC,EAAE,cAAc,EAAE,CAAC;aACvB,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC;aAC3B,OAAO,EAAE,CAAA;IACd,CAAC;CACF,CAAC,CAAA","sourcesContent":["import { Timestamp } from '@bufbuild/protobuf'\nimport type { ServiceImpl } from '@connectrpc/connect'\nimport { type Selectable, sql } from 'kysely'\nimport { keyBy } from '@atproto/common'\nimport { parseJsonBytes } from '../../../hydration/util.js'\nimport { app, chat } from '../../../lexicons/index.js'\nimport type { Service } from '../../../proto/bsky_connect.js'\nimport type { VerificationMeta } from '../../../proto/bsky_pb.js'\nimport type { Database } from '../db/index.js'\nimport type { Verification } from '../db/tables/verification.js'\nimport { getRecords } from './records.js'\n\ntype VerifiedBy = {\n [handle: string]: Pick<\n VerificationMeta,\n 'rkey' | 'handle' | 'displayName' | 'sortedAt'\n >\n}\n\nexport default (db: Database): Partial<ServiceImpl<typeof Service>> => ({\n async getActors(req) {\n const { dids, returnAgeAssuranceForDids } = req\n if (dids.length === 0) {\n return { actors: [] }\n }\n const profileUris = dids.map(\n (did) => `at://${did}/app.bsky.actor.profile/self`,\n )\n const statusUris = dids.map(\n (did) => `at://${did}/app.bsky.actor.status/self`,\n )\n const chatDeclarationUris = dids.map(\n (did) => `at://${did}/chat.bsky.actor.declaration/self`,\n )\n const notifDeclarationUris = dids.map(\n (did) => `at://${did}/app.bsky.notification.declaration/self`,\n )\n const germDeclarationUris = dids.map(\n (did) => `at://${did}/com.germnetwork.declaration/self`,\n )\n const { ref } = db.db.dynamic\n const [\n handlesRes,\n verificationsReceived,\n profiles,\n statuses,\n chatDeclarations,\n notifDeclarations,\n germDeclarations,\n ] = await Promise.all([\n db.db\n .selectFrom('actor')\n .where('actor.did', 'in', dids)\n .selectAll('actor')\n .select([\n db.db\n .selectFrom('labeler')\n .whereRef('creator', '=', ref('actor.did'))\n .select(sql<true>`${true}`.as('val'))\n .as('isLabeler'),\n ])\n .execute(),\n db.db\n .selectFrom('verification')\n .selectAll('verification')\n .innerJoin('actor', 'actor.did', 'verification.creator')\n .where('verification.subject', 'in', dids)\n .where('actor.trustedVerifier', '=', true)\n .orderBy('sortedAt', 'asc')\n .execute(),\n getRecords(db)({ uris: profileUris }),\n getRecords(db)({ uris: statusUris }),\n getRecords(db)({ uris: chatDeclarationUris }),\n getRecords(db)({ uris: notifDeclarationUris }),\n getRecords(db)({ uris: germDeclarationUris }),\n ])\n\n const verificationsBySubjectDid = verificationsReceived.reduce(\n (acc, cur) => {\n const list = acc.get(cur.subject) ?? []\n list.push(cur)\n acc.set(cur.subject, list)\n return acc\n },\n new Map<string, Selectable<Verification>[]>(),\n )\n\n const byDid = keyBy(handlesRes, 'did')\n const actors = dids.map((did, i) => {\n const row = byDid.get(did)\n\n const status = statuses.records[i]\n\n const chatDeclaration = parseJsonBytes(\n chat.bsky.actor.declaration.main,\n chatDeclarations.records[i].record,\n )\n\n const germDeclaration = germDeclarations.records[i]\n\n const verifications = verificationsBySubjectDid.get(did) ?? []\n const verifiedBy: VerifiedBy = verifications.reduce((acc, cur) => {\n acc[cur.creator] = {\n rkey: cur.rkey,\n handle: cur.handle,\n displayName: cur.displayName,\n sortedAt: Timestamp.fromDate(new Date(cur.sortedAt)),\n }\n return acc\n }, {} as VerifiedBy)\n const ageAssuranceForDids = new Set(returnAgeAssuranceForDids)\n\n const activitySubscription = () => {\n const record = parseJsonBytes(\n app.bsky.notification.declaration.main,\n notifDeclarations.records[i].record,\n )\n\n // The dataplane is responsible for setting the default of \"followers\" (default according to the lexicon).\n const defaultVal = 'followers'\n\n if (typeof record?.allowSubscriptions !== 'string') {\n return defaultVal\n }\n\n switch (record.allowSubscriptions) {\n case 'followers':\n case 'mutuals':\n case 'none':\n return record.allowSubscriptions\n default:\n return defaultVal\n }\n }\n\n const ageAssuranceStatus = () => {\n if (!ageAssuranceForDids.has(did)) {\n return undefined\n }\n\n const status = row?.ageAssuranceStatus ?? 'unknown'\n let access = row?.ageAssuranceAccess\n if (!access || access === 'unknown') {\n if (status === 'assured') {\n access = 'full'\n } else if (status === 'blocked') {\n access = 'none'\n } else {\n access = 'unknown'\n }\n }\n\n return {\n lastInitiatedAt: row?.ageAssuranceLastInitiatedAt\n ? Timestamp.fromDate(new Date(row?.ageAssuranceLastInitiatedAt))\n : undefined,\n status,\n access,\n }\n }\n\n return {\n exists: !!row,\n handle: row?.handle ?? undefined,\n profile: profiles.records[i],\n takenDown: !!row?.takedownRef,\n takedownRef: row?.takedownRef || undefined,\n tombstonedAt: undefined, // in current implementation, tombstoned actors are deleted\n labeler: row?.isLabeler ?? false,\n allowIncomingChatsFrom:\n typeof chatDeclaration?.['allowIncoming'] === 'string'\n ? chatDeclaration['allowIncoming']\n : undefined,\n allowGroupChatInvitesFrom:\n typeof chatDeclaration?.['allowGroupInvites'] === 'string'\n ? chatDeclaration['allowGroupInvites']\n : undefined,\n upstreamStatus: row?.upstreamStatus ?? '',\n createdAt: profiles.records[i].createdAt, // @NOTE profile creation date not trusted in production\n trustedVerifier: row?.trustedVerifier ?? false,\n verifiedBy,\n statusRecord: status,\n germRecord: germDeclaration,\n tags: [],\n profileTags: profiles.records[i].tags,\n allowActivitySubscriptionsFrom: activitySubscription(),\n ageAssuranceStatus: ageAssuranceStatus(),\n }\n })\n return { actors }\n },\n\n // @TODO handle req.lookupUnidirectional w/ networked handle resolution\n async getDidsByHandles(req) {\n const { handles } = req\n if (handles.length === 0) {\n return { dids: [] }\n }\n const res = await db.db\n .selectFrom('actor')\n .where('handle', 'in', handles)\n .selectAll()\n .execute()\n const byHandle = keyBy(res, 'handle')\n const dids = handles.map((handle) => byHandle.get(handle)?.did ?? '')\n return { dids }\n },\n\n async updateActorUpstreamStatus(req) {\n const { actorDid, upstreamStatus } = req\n await db.db\n .updateTable('actor')\n .set({ upstreamStatus })\n .where('did', '=', actorDid)\n .execute()\n },\n})\n"]}
@@ -19,7 +19,6 @@ export type Actor = {
19
19
  allowGroupChatInvitesFrom?: string;
20
20
  upstreamStatus?: string;
21
21
  createdAt?: Date;
22
- priorityNotifications: boolean;
23
22
  trustedVerifier?: boolean;
24
23
  verifications: VerificationHydrationState[];
25
24
  status?: RecordInfo<StatusRecord>;
@@ -1 +1 @@
1
- {"version":3,"file":"actor.d.ts","sourceRoot":"","sources":["../../src/hydration/actor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actor.d.ts","sourceRoot":"","sources":["../../src/hydration/actor.ts"],"names":[],"mappings":"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"}
@@ -117,7 +117,6 @@ export class ActorHydrator {
117
117
  allowGroupChatInvitesFrom: actor.allowGroupChatInvitesFrom || undefined,
118
118
  upstreamStatus: actor.upstreamStatus || undefined,
119
119
  createdAt: parseDate(actor.createdAt),
120
- priorityNotifications: actor.priorityNotifications,
121
120
  trustedVerifier: actor.trustedVerifier,
122
121
  verifications,
123
122
  status: status,
@@ -241,19 +240,18 @@ export class ActorHydrator {
241
240
  if (!dids.length)
242
241
  return map;
243
242
  try {
244
- const { results: knownFollowersResults } = await this.dataplane.getFollowsFollowing({
243
+ const { results } = await this.dataplane.sampleFollowsFollowing({
245
244
  actorDid: viewer,
246
245
  targetDids: dids,
247
- }, {
248
- signal: AbortSignal.timeout(100),
249
- });
246
+ limit: 5,
247
+ }, { signal: AbortSignal.timeout(100) });
250
248
  for (let i = 0; i < dids.length; i++) {
251
- const did = dids[i];
252
- const result = knownFollowersResults[i]?.dids;
253
- map.set(did, result && result.length > 0
249
+ const result = results[i];
250
+ const followerDids = result?.dids;
251
+ map.set(dids[i], followerDids && followerDids.length > 0
254
252
  ? {
255
- count: result.length,
256
- followers: result.slice(0, 5),
253
+ count: result.totalKnown || followerDids.length,
254
+ followers: followerDids,
257
255
  }
258
256
  : undefined);
259
257
  }
@@ -1 +1 @@
1
- {"version":3,"file":"actor.js","sourceRoot":"","sources":["../../src/hydration/actor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAML,eAAe,EACf,kBAAkB,EAClB,eAAe,GAChB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAKrD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAQ/C,OAAO,EACL,YAAY,EAEZ,6BAA6B,EAC7B,SAAS,EACT,WAAW,EACX,WAAW,EACX,eAAe,GAChB,MAAM,WAAW,CAAA;AA8HlB,MAAM,OAAO,aAAa;IACxB,YAAmB,SAA0B;yBAA1B,SAAS;IAAoB,CAAC;IAEjD,KAAK,CAAC,cAAc,CAAC,GAAkB;QACrC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAA;QACrB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAA;YAChE,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAA;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CACX,YAAkC,EAClC,IAAyC;QAEzC,MAAM,WAAW,GAAG,IAAI,GAAG,EAA2B,CAAA;QAEtD,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;QACvD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;gBACrD,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;gBACrC,oBAAoB,EAAE,IAAI,EAAE,oBAAoB;aACjD,CAAC,CAAA;YAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,MAAM,GAAG,GAAG,WAAW,CAAY,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC3C,IAAI,GAAG;oBAAE,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;YAC3C,CAAC;QACH,CAAC;QAED,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAC7B,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAC/C,CAAA;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,YAAkC;QAElC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;QAC5C,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAA;IACrC,CAAC;IAED,KAAK,CAAC,SAAS,CACb,IAAiB,EACjB,IAAI,GAGA,EAAE;QAEN,MAAM,GAAG,GAAW,IAAI,YAAY,EAAE,CAAA;QACtC,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,GAAG,CAAA;QAE5B,MAAM,EAAE,gBAAgB,GAAG,KAAK,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAA;QAE3D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAA;QACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YAEnB,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YAC3B,MAAM,UAAU,GACd,KAAK,CAAC,SAAS;gBACf,CAAC,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAA;YAC7D,IACE,CAAC,KAAK,CAAC,MAAM;gBACb,CAAC,UAAU,IAAI,CAAC,gBAAgB,CAAC;gBACjC,CAAC,CAAC,KAAK,CAAC,YAAY,EACpB,CAAC;gBACD,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;gBAClB,SAAQ;YACV,CAAC;YAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,MAAM;gBACnC,CAAC,CAAC,WAAW,CACT,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAC3B,KAAK,CAAC,OAAO,EACb,gBAAgB,CACjB;gBACH,CAAC,CAAC,SAAS,CAAA;YAEb,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY;gBAC/B,CAAC,CAAC,WAAW,CACT,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAC1B,KAAK,CAAC,YAAY;gBAClB;;;mBAGG;gBACH,IAAI,CACL;gBACH,CAAC,CAAC,SAAS,CAAA;YAEb,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU;gBAC3B,CAAC,CAAC,WAAW,CACT,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,EAChC,KAAK,CAAC,UAAU,EAChB,gBAAgB,CACjB;gBACH,CAAC,CAAC,SAAS,CAAA;YAEb,MAAM,aAAa,GAAG,UAAU,CAC9B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAoC,EACnE,CAAC,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EACY,EAAE;gBACzC,IACE,gBAAgB,CAAC,MAAM;oBACvB,gBAAgB,CAAC,IAAI;oBACrB,gBAAgB,CAAC,QAAQ,EACzB,CAAC;oBACD,OAAO;wBACL,MAAM,EAAE,QAAQ;wBAChB,GAAG,EAAE,QAAQ,QAAQ,gCAAgC,gBAAgB,CAAC,IAAI,EAAE;wBAC5E,MAAM,EAAE,gBAAgB,CAAC,MAAsB;wBAC/C,WAAW,EAAE,gBAAgB,CAAC,WAAW;wBACzC,SAAS,EAAE,CACT,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CACpD,CAAC,WAAW,EAAoB;qBAClC,CAAA;gBACH,CAAC;gBACD,kEAAkE;gBAClE,OAAO,SAAS,CAAA;YAClB,CAAC,CACF,CAAA;YAED,MAAM,8BAA8B,GAAG,CACrC,GAAW,EACiB,EAAE;gBAC9B,QAAQ,GAAG,EAAE,CAAC;oBACZ,KAAK,WAAW,CAAC;oBACjB,KAAK,SAAS,CAAC;oBACf,KAAK,MAAM;wBACT,OAAO,GAAG,CAAA;oBACZ;wBACE,qEAAqE;wBACrE,OAAO,WAAW,CAAA;gBACtB,CAAC;YACH,CAAC,CAAA;YAED,MAAM,KAAK,GAAG;gBACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;gBAChE,WAAW,EAAE,KAAK,CAAC,IAAI;gBACvB,WAAW,EAAE,KAAK,CAAC,WAAW;aAC/B,CAAA;YAED,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE;gBACX,GAAG;gBACH,MAAM,EAAE,WAAW,CAAe,KAAK,CAAC,MAAM,CAAC;gBAC/C,OAAO,EAAE,OAAO,EAAE,MAAM;gBACxB,UAAU,EAAE,OAAO,EAAE,GAAG;gBACxB,kBAAkB,EAAE,OAAO,EAAE,WAAW;gBACxC,QAAQ,EAAE,OAAO,EAAE,QAAQ;gBAC3B,SAAS,EAAE,OAAO,EAAE,SAAS;gBAC7B,WAAW,EAAE,eAAe,CAAC,KAAK,CAAC;gBACnC,SAAS,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK;gBACjC,sBAAsB,EAAE,KAAK,CAAC,sBAAsB,IAAI,SAAS;gBACjE,yBAAyB,EAAE,KAAK,CAAC,yBAAyB,IAAI,SAAS;gBACvE,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,SAAS;gBACjD,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC;gBACrC,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;gBAClD,eAAe,EAAE,KAAK,CAAC,eAAe;gBACtC,aAAa;gBACb,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI;gBACV,8BAA8B,EAAE,8BAA8B,CAC5D,KAAK,CAAC,8BAA8B,CACrC;gBACD,qBAAqB,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC1C,qBAAqB,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC;gBACjD,KAAK;aACN,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,IAAmB,EACnB,gBAAgB,GAAG,KAAK;QAExB,MAAM,GAAG,GAAqB,IAAI,YAAY,EAAE,CAAA;QAChD,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,GAAG,CAAA;QAE5B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;QACzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YACnB,MAAM,MAAM,GAAG,WAAW,CACxB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAChC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EACd,gBAAgB,CACjB,CAAA;YACD,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,IAAI,IAAI,CAAC,CAAA;QAC9B,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,IAAmB,EACnB,gBAAgB,GAAG,KAAK;QAExB,MAAM,GAAG,GAAqB,IAAI,YAAY,EAAE,CAAA;QAChD,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,GAAG,CAAA;QAE5B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;QACpE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,WAAW,CACxB,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,EAChC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EACd,gBAAgB,CACjB,CAAA;YACD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC,CAAA;QAClC,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,KAAK,CAAC,2BAA2B,CAC/B,IAAmB,EACnB,gBAAgB,GAAG,KAAK;QAExB,MAAM,GAAG,GAA6B,IAAI,YAAY,EAAE,CAAA;QACxD,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,GAAG,CAAA;QAE5B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,iCAAiC,CAAC;YACjE,IAAI;SACL,CAAC,CAAA;QACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YACnB,MAAM,MAAM,GAAG,WAAW,CACxB,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,EACtC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EACd,gBAAgB,CACjB,CAAA;YACD,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,IAAI,IAAI,CAAC,CAAA;QAC9B,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,KAAK,CAAC,SAAS,CACb,IAAmB,EACnB,gBAAgB,GAAG,KAAK;QAExB,MAAM,GAAG,GAAa,IAAI,YAAY,EAAE,CAAA;QACxC,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,GAAG,CAAA;QAE5B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YACnB,MAAM,MAAM,GAAG,WAAW,CACxB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAC1B,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EACd,gBAAgB,CACjB,CAAA;YACD,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,IAAI,IAAI,CAAC,CAAA;QAC9B,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,+EAA+E;IAC/E,qFAAqF;IACrF,+BAA+B;IAC/B,KAAK,CAAC,2BAA2B,CAC/B,MAA4B,EAC5B,MAAiB;QAEjB,MAAM,GAAG,GAAwB,IAAI,YAAY,EAAE,CAAA;QACnD,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO,GAAG,CAAA;QAE9B,sEAAsE;QACtE,wEAAwE;QACxE,iEAAiE;QACjE,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;QAEzE,2EAA2E;QAC3E,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CACjC,IAAI,GAAG,CACL,SAAS;aACN,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC;YAC7B,sEAAsE;YACtE,iEAAiE;YACjE,SAAS;aACR,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,CAAC,CACnC,CACF,CAAA;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;YAChD,QAAQ,EAAE,MAAM;YAChB,UAAU,EAAE,gBAAgB;SAC7B,CAAC,CAAA;QAEF,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAChD,CAAA;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;YAEvB,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACjC,4BAA4B;YAC5B,IAAI,CAAC,GAAG;gBAAE,SAAQ;YAElB,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACnB,4EAA4E;gBAC5E,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;gBACvB,SAAQ;YACV,CAAC;YAED,wEAAwE;YACxE,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YAC3C,IAAI,KAAK,KAAK,CAAC,CAAC;gBAAE,SAAQ;YAE1B,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;YACrC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE;gBACb,GAAG;gBACH,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK;gBAC1B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,IAAI,KAAK;gBAChD,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,IAAI,KAAK;gBACtD,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;gBAC1C,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;gBACtC,QAAQ,EAAE,WAAW,CAAc,IAAI,CAAC,QAAQ,CAAC;gBACjD,aAAa,EAAE,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC;gBAC9C,cAAc,EAAE,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC;gBAChD,SAAS,EAAE,WAAW,CAAc,IAAI,CAAC,SAAS,CAAC;gBACnD,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;aACzC,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,IAAiB,EACjB,MAAwB;QAExB,MAAM,GAAG,GAAyB,IAAI,YAAY,EAAE,CAAA;QACpD,IAAI,CAAC,MAAM;YAAE,OAAO,GAAG,CAAA;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,GAAG,CAAA;QAE5B,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,qBAAqB,EAAE,GACtC,MAAM,IAAI,CAAC,SAAS,CAAC,mBAAmB,CACtC;gBACE,QAAQ,EAAE,MAAM;gBAChB,UAAU,EAAE,IAAI;aACjB,EACD;gBACE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC;aACjC,CACF,CAAA;YAEH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;gBAEnB,MAAM,MAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAA;gBAE7C,GAAG,CAAC,GAAG,CACL,GAAG,EACH,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;oBACzB,CAAC,CAAC;wBACE,KAAK,EAAE,MAAM,CAAC,MAAM;wBACpB,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAgB;qBAC7C;oBACH,CAAC,CAAC,SAAS,CACd,CAAA;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,aAAa;YACb,MAAM,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAA;QAC5D,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,KAAK,CAAC,wBAAwB,CAC5B,IAAiB,EACjB,MAAwB;QAExB,MAAM,GAAG,GAA+B,IAAI,YAAY,EAAE,CAAA;QAC1D,IAAI,CAAC,MAAM;YAAE,OAAO,GAAG,CAAA;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,GAAG,CAAA;QAE5B,IAAI,CAAC;YACH,MAAM,EAAE,aAAa,EAAE,GACrB,MAAM,IAAI,CAAC,SAAS,CAAC,0CAA0C,CAC7D,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,EACvC,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CACrC,CAAA;YAEH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,qEAAqE;gBACrE,uEAAuE;gBACvE,iCAAiC;gBACjC,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CACF,CAAA;gBAElC,MAAM,KAAK,GAAG;oBACZ,IAAI,EAAE,YAAY,EAAE,IAAI,IAAI,IAAI;oBAChC,KAAK,EAAE,YAAY,EAAE,KAAK,IAAI,IAAI;iBACnC,CAAA;gBAED,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAA;gBACpB,IAAI,6BAA6B,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;gBACrB,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;gBACzB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,aAAa;YACb,MAAM,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,wBAAwB,EAAE,GAAG,EAAE,CAAC,CAAA;QACnE,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,IAAiB;QAC1C,MAAM,GAAG,GAAgB,IAAI,YAAY,EAAE,CAAA;QAC3C,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,GAAG,CAAA;QAE5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;QAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YACnB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE;gBACX,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;gBACnC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;gBACjC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC3B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC3B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC3B,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;aAC1C,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;CACF","sourcesContent":["import { mapDefined } from '@atproto/common'\nimport {\n type AtIdentifierString,\n type AtUriString,\n type DatetimeString,\n type DidString,\n type HandleString,\n isDidIdentifier,\n isHandleIdentifier,\n normalizeHandle,\n} from '@atproto/syntax'\nimport type { DataPlaneClient } from '../data-plane/client/index.js'\nimport { app, chat, com } from '../lexicons/index.js'\nimport type {\n ActivitySubscription,\n VerificationMeta,\n} from '../proto/bsky_pb.js'\nimport { events } from '../telemetry/events.js'\nimport type {\n ChatDeclarationRecord,\n GermDeclarationRecord,\n NotificationDeclarationRecord,\n ProfileRecord,\n StatusRecord,\n} from '../views/types.js'\nimport {\n HydrationMap,\n type RecordInfo,\n isActivitySubscriptionEnabled,\n parseDate,\n parseRecord,\n parseString,\n safeTakedownRef,\n} from './util.js'\n\ntype AllowActivitySubscriptions = Extract<\n app.bsky.notification.declaration.Main['allowSubscriptions'],\n 'followers' | 'mutuals' | 'none'\n>\n\nexport type Actor = {\n did: DidString\n handle?: HandleString\n profile?: ProfileRecord\n profileCid?: string\n profileTakedownRef?: string\n sortedAt?: Date\n indexedAt?: Date\n takedownRef?: string\n isLabeler: boolean\n allowIncomingChatsFrom?: string\n allowGroupChatInvitesFrom?: string\n upstreamStatus?: string\n createdAt?: Date\n priorityNotifications: boolean\n trustedVerifier?: boolean\n verifications: VerificationHydrationState[]\n status?: RecordInfo<StatusRecord>\n germ?: RecordInfo<GermDeclarationRecord>\n allowActivitySubscriptionsFrom: AllowActivitySubscriptions\n accountModerationTags: Set<string>\n profileModerationTags: Set<string>\n /**\n * Debug information for internal development\n */\n debug?: {\n pagerank?: string\n accountTags?: string[]\n profileTags?: string[]\n }\n}\n\nexport type VerificationHydrationState = {\n issuer: DidString\n uri: AtUriString\n handle: HandleString\n displayName: string\n createdAt: DatetimeString\n}\n\nexport type VerificationMetaRequired = Required<VerificationMeta>\n\nexport type Actors = HydrationMap<DidString, Actor>\n\nexport type ChatDeclaration = RecordInfo<ChatDeclarationRecord>\nexport type ChatDeclarations = HydrationMap<AtUriString, ChatDeclaration>\n\nexport type GermDeclaration = RecordInfo<GermDeclarationRecord>\nexport type GermDeclarations = HydrationMap<AtUriString, GermDeclaration>\n\nexport type NotificationDeclaration = RecordInfo<NotificationDeclarationRecord>\nexport type NotificationDeclarations = HydrationMap<\n AtUriString,\n NotificationDeclaration\n>\n\nexport type Status = RecordInfo<StatusRecord>\nexport type Statuses = HydrationMap<AtUriString, Status>\n\nexport type ProfileViewerState = {\n did: DidString\n muted?: boolean\n mutedOnlyReposts?: boolean\n mutedOnlyQuoteposts?: boolean\n mutedByList?: AtUriString\n blockedBy?: AtUriString\n blocking?: AtUriString\n blockedByList?: AtUriString\n blockingByList?: AtUriString\n following?: AtUriString\n followedBy?: AtUriString\n}\n\nexport type ProfileViewerStates = HydrationMap<\n AtIdentifierString,\n ProfileViewerState\n>\n\ntype ActivitySubscriptionState = {\n post: boolean\n reply: boolean\n}\n\nexport type ActivitySubscriptionStates = HydrationMap<\n DidString,\n ActivitySubscriptionState | undefined\n>\n\ntype KnownFollowersState = {\n count: number\n followers: DidString[]\n}\n\nexport type KnownFollowersStates = HydrationMap<\n DidString,\n KnownFollowersState | undefined\n>\n\ntype KnownLikersState = {\n count: number\n actors: DidString[]\n}\n\nexport type KnownLikersStates = HydrationMap<\n AtUriString,\n KnownLikersState | undefined\n>\n\nexport type ProfileAgg = {\n followers: number\n follows: number\n posts: number\n lists: number\n feeds: number\n starterPacks: number\n}\n\nexport type ProfileAggs = HydrationMap<DidString, ProfileAgg>\n\nexport class ActorHydrator {\n constructor(public dataplane: DataPlaneClient) {}\n\n async getRepoRevSafe(did: string | null): Promise<string | null> {\n if (!did) return null\n try {\n const res = await this.dataplane.getLatestRev({ actorDid: did })\n return parseString(res.rev) ?? null\n } catch {\n return null\n }\n }\n\n /**\n * @note handles do not need to be normalized\n */\n async getDids(\n handleOrDids: AtIdentifierString[],\n opts?: { lookupUnidirectional?: boolean },\n ): Promise<(DidString | undefined)[]> {\n const didByHandle = new Map<HandleString, DidString>()\n\n const handles = handleOrDids.filter(isHandleIdentifier)\n if (handles.length) {\n const { dids } = await this.dataplane.getDidsByHandles({\n handles: handles.map(normalizeHandle),\n lookupUnidirectional: opts?.lookupUnidirectional,\n })\n\n for (let i = 0; i < handles.length; i++) {\n const did = parseString<DidString>(dids[i])\n if (did) didByHandle.set(handles[i], did)\n }\n }\n\n return handleOrDids.map((id) =>\n isDidIdentifier(id) ? id : didByHandle.get(id),\n )\n }\n\n async getDidsDefined(\n handleOrDids: AtIdentifierString[],\n ): Promise<DidString[]> {\n const res = await this.getDids(handleOrDids)\n return res.filter((v) => v != null)\n }\n\n async getActors(\n dids: DidString[],\n opts: {\n includeTakedowns?: boolean\n skipCacheForDids?: DidString[]\n } = {},\n ): Promise<Actors> {\n const map: Actors = new HydrationMap()\n if (!dids.length) return map\n\n const { includeTakedowns = false, skipCacheForDids } = opts\n\n const res = await this.dataplane.getActors({ dids, skipCacheForDids })\n for (let i = 0; i < dids.length; i++) {\n const did = dids[i]\n\n const actor = res.actors[i]\n const isNoHosted =\n actor.takenDown ||\n (actor.upstreamStatus && actor.upstreamStatus !== 'active')\n if (\n !actor.exists ||\n (isNoHosted && !includeTakedowns) ||\n !!actor.tombstonedAt\n ) {\n map.set(did, null)\n continue\n }\n\n const profile = actor.profile?.record\n ? parseRecord(\n app.bsky.actor.profile.main,\n actor.profile,\n includeTakedowns,\n )\n : undefined\n\n const status = actor.statusRecord\n ? parseRecord(\n app.bsky.actor.status.main,\n actor.statusRecord,\n /*\n * Always true, we filter this out in the `Views.status()`. If we\n * ever remove that filter, we'll want to reinstate this here.\n */\n true,\n )\n : undefined\n\n const germ = actor.germRecord\n ? parseRecord(\n com.germnetwork.declaration.main,\n actor.germRecord,\n includeTakedowns,\n )\n : undefined\n\n const verifications = mapDefined(\n Object.entries(actor.verifiedBy) as [DidString, VerificationMeta][],\n ([actorDid, verificationMeta]):\n VerificationHydrationState | undefined => {\n if (\n verificationMeta.handle &&\n verificationMeta.rkey &&\n verificationMeta.sortedAt\n ) {\n return {\n issuer: actorDid,\n uri: `at://${actorDid}/app.bsky.graph.verification/${verificationMeta.rkey}`,\n handle: verificationMeta.handle as HandleString,\n displayName: verificationMeta.displayName,\n createdAt: (\n parseDate(verificationMeta.sortedAt) ?? new Date(0)\n ).toISOString() as DatetimeString,\n }\n }\n // Filter out the verification meta that doesn't contain all info.\n return undefined\n },\n )\n\n const allowActivitySubscriptionsFrom = (\n val: string,\n ): AllowActivitySubscriptions => {\n switch (val) {\n case 'followers':\n case 'mutuals':\n case 'none':\n return val\n default:\n // The dataplane should set the default of \"FOLLOWERS\". Just in case.\n return 'followers'\n }\n }\n\n const debug = {\n pagerank: actor.pagerank ? actor.pagerank.toString() : undefined,\n accountTags: actor.tags,\n profileTags: actor.profileTags,\n }\n\n map.set(did, {\n did,\n handle: parseString<HandleString>(actor.handle),\n profile: profile?.record,\n profileCid: profile?.cid,\n profileTakedownRef: profile?.takedownRef,\n sortedAt: profile?.sortedAt,\n indexedAt: profile?.indexedAt,\n takedownRef: safeTakedownRef(actor),\n isLabeler: actor.labeler ?? false,\n allowIncomingChatsFrom: actor.allowIncomingChatsFrom || undefined,\n allowGroupChatInvitesFrom: actor.allowGroupChatInvitesFrom || undefined,\n upstreamStatus: actor.upstreamStatus || undefined,\n createdAt: parseDate(actor.createdAt),\n priorityNotifications: actor.priorityNotifications,\n trustedVerifier: actor.trustedVerifier,\n verifications,\n status: status,\n germ: germ,\n allowActivitySubscriptionsFrom: allowActivitySubscriptionsFrom(\n actor.allowActivitySubscriptionsFrom,\n ),\n accountModerationTags: new Set(actor.tags),\n profileModerationTags: new Set(actor.profileTags),\n debug,\n })\n }\n\n return map\n }\n\n async getChatDeclarations(\n uris: AtUriString[],\n includeTakedowns = false,\n ): Promise<ChatDeclarations> {\n const map: ChatDeclarations = new HydrationMap()\n if (!uris.length) return map\n\n const res = await this.dataplane.getActorChatDeclarationRecords({ uris })\n for (let i = 0; i < uris.length; i++) {\n const uri = uris[i]\n const record = parseRecord(\n chat.bsky.actor.declaration.main,\n res.records[i],\n includeTakedowns,\n )\n map.set(uri, record ?? null)\n }\n\n return map\n }\n\n async getGermDeclarations(\n uris: AtUriString[],\n includeTakedowns = false,\n ): Promise<GermDeclarations> {\n const map: GermDeclarations = new HydrationMap()\n if (!uris.length) return map\n\n const res = await this.dataplane.getGermDeclarationRecords({ uris })\n for (let i = 0; i < uris.length; i++) {\n const record = parseRecord(\n com.germnetwork.declaration.main,\n res.records[i],\n includeTakedowns,\n )\n map.set(uris[i], record ?? null)\n }\n\n return map\n }\n\n async getNotificationDeclarations(\n uris: AtUriString[],\n includeTakedowns = false,\n ): Promise<NotificationDeclarations> {\n const map: NotificationDeclarations = new HydrationMap()\n if (!uris.length) return map\n\n const res = await this.dataplane.getNotificationDeclarationRecords({\n uris,\n })\n for (let i = 0; i < uris.length; i++) {\n const uri = uris[i]\n const record = parseRecord(\n app.bsky.notification.declaration.main,\n res.records[i],\n includeTakedowns,\n )\n map.set(uri, record ?? null)\n }\n\n return map\n }\n\n async getStatus(\n uris: AtUriString[],\n includeTakedowns = false,\n ): Promise<Statuses> {\n const map: Statuses = new HydrationMap()\n if (!uris.length) return map\n\n const res = await this.dataplane.getStatusRecords({ uris })\n for (let i = 0; i < uris.length; i++) {\n const uri = uris[i]\n const record = parseRecord(\n app.bsky.actor.status.main,\n res.records[i],\n includeTakedowns,\n )\n map.set(uri, record ?? null)\n }\n\n return map\n }\n\n // \"naive\" because this method does not verify the existence of the list itself\n // a later check in the main hydrator will remove list uris that have been deleted or\n // repurposed to \"curate lists\"\n async getProfileViewerStatesNaive(\n actors: AtIdentifierString[],\n viewer: DidString,\n ): Promise<ProfileViewerStates> {\n const map: ProfileViewerStates = new HydrationMap()\n if (!actors.length) return map\n\n // @TODO we could use \"await this.getDids(actors)\" here to resolve the\n // handles (no other code change should be needed). This was not done as\n // part of this PR to avoid changing the behavior of this method.\n const actorDids = actors.map((a) => (isDidIdentifier(a) ? a : undefined))\n\n // getRelationships requires DidString so we remove anything that isn't one\n const actorDidsDefined = Array.from(\n new Set(\n actorDids\n .filter((did) => did != null)\n // Since we special case self-relationship below, we can skip querying\n // the dataplane for the viewer's own DID if it's included in the\n // input.\n .filter((did) => did !== viewer),\n ),\n )\n\n const res = await this.dataplane.getRelationships({\n actorDid: viewer,\n targetDids: actorDidsDefined,\n })\n\n const actorToDid = new Map<AtIdentifierString, DidString | undefined>(\n actors.map((actor, i) => [actor, actorDids[i]]),\n )\n\n for (let i = 0; i < actors.length; i++) {\n const actor = actors[i]\n\n const did = actorToDid.get(actor)\n // ignore unresolved handles\n if (!did) continue\n\n if (did === viewer) {\n // ignore self-follows, self-mutes, self-blocks, self-activity-subscriptions\n map.set(actor, { did })\n continue\n }\n\n // Get the index that was used to query the relationships for this actor\n const index = actorDidsDefined.indexOf(did)\n if (index === -1) continue\n\n const rels = res.relationships[index]\n map.set(actor, {\n did,\n muted: rels.muted ?? false,\n mutedOnlyReposts: rels.mutedOnlyReposts ?? false,\n mutedOnlyQuoteposts: rels.mutedOnlyQuoteposts ?? false,\n mutedByList: parseString(rels.mutedByList),\n blockedBy: parseString(rels.blockedBy),\n blocking: parseString<AtUriString>(rels.blocking),\n blockedByList: parseString(rels.blockedByList),\n blockingByList: parseString(rels.blockingByList),\n following: parseString<AtUriString>(rels.following),\n followedBy: parseString(rels.followedBy),\n })\n }\n\n return map\n }\n\n async getKnownFollowers(\n dids: DidString[],\n viewer: DidString | null,\n ): Promise<KnownFollowersStates> {\n const map: KnownFollowersStates = new HydrationMap()\n if (!viewer) return map\n if (!dids.length) return map\n\n try {\n const { results: knownFollowersResults } =\n await this.dataplane.getFollowsFollowing(\n {\n actorDid: viewer,\n targetDids: dids,\n },\n {\n signal: AbortSignal.timeout(100),\n },\n )\n\n for (let i = 0; i < dids.length; i++) {\n const did = dids[i]\n\n const result = knownFollowersResults[i]?.dids\n\n map.set(\n did,\n result && result.length > 0\n ? {\n count: result.length,\n followers: result.slice(0, 5) as DidString[],\n }\n : undefined,\n )\n }\n } catch (err) {\n // Fail open.\n events.hydrationFailed({ source: 'known_followers', err })\n }\n\n return map\n }\n\n async getActivitySubscriptions(\n dids: DidString[],\n viewer: DidString | null,\n ): Promise<ActivitySubscriptionStates> {\n const map: ActivitySubscriptionStates = new HydrationMap()\n if (!viewer) return map\n if (!dids.length) return map\n\n try {\n const { subscriptions } =\n await this.dataplane.getActivitySubscriptionsByActorAndSubjects(\n { actorDid: viewer, subjectDids: dids },\n { signal: AbortSignal.timeout(100) },\n )\n\n for (let i = 0; i < dids.length; i++) {\n // @NOTE Although not typed as nullable, the code here used to defend\n // against potentially missing subscription objects in the response, so\n // we keep that defense in place.\n const subscription = subscriptions[i] as\n ActivitySubscription | undefined\n\n const state = {\n post: subscription?.post != null,\n reply: subscription?.reply != null,\n }\n\n const did = dids[i]!\n if (isActivitySubscriptionEnabled(state)) {\n map.set(did, state)\n } else {\n map.set(did, undefined)\n }\n }\n } catch (err) {\n // Fail open.\n events.hydrationFailed({ source: 'activity_subscriptions', err })\n }\n\n return map\n }\n\n async getProfileAggregates(dids: DidString[]): Promise<ProfileAggs> {\n const map: ProfileAggs = new HydrationMap()\n if (!dids.length) return map\n\n const counts = await this.dataplane.getCountsForUsers({ dids })\n for (let i = 0; i < dids.length; i++) {\n const did = dids[i]\n map.set(did, {\n followers: counts.followers[i] ?? 0,\n follows: counts.following[i] ?? 0,\n posts: counts.posts[i] ?? 0,\n lists: counts.lists[i] ?? 0,\n feeds: counts.feeds[i] ?? 0,\n starterPacks: counts.starterPacks[i] ?? 0,\n })\n }\n\n return map\n }\n}\n"]}
1
+ {"version":3,"file":"actor.js","sourceRoot":"","sources":["../../src/hydration/actor.ts"],"names":[],"mappings":"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","sourcesContent":["import { mapDefined } from '@atproto/common'\nimport {\n type AtIdentifierString,\n type AtUriString,\n type DatetimeString,\n type DidString,\n type HandleString,\n isDidIdentifier,\n isHandleIdentifier,\n normalizeHandle,\n} from '@atproto/syntax'\nimport type { DataPlaneClient } from '../data-plane/client/index.js'\nimport { app, chat, com } from '../lexicons/index.js'\nimport type {\n ActivitySubscription,\n VerificationMeta,\n} from '../proto/bsky_pb.js'\nimport { events } from '../telemetry/events.js'\nimport type {\n ChatDeclarationRecord,\n GermDeclarationRecord,\n NotificationDeclarationRecord,\n ProfileRecord,\n StatusRecord,\n} from '../views/types.js'\nimport {\n HydrationMap,\n type RecordInfo,\n isActivitySubscriptionEnabled,\n parseDate,\n parseRecord,\n parseString,\n safeTakedownRef,\n} from './util.js'\n\ntype AllowActivitySubscriptions = Extract<\n app.bsky.notification.declaration.Main['allowSubscriptions'],\n 'followers' | 'mutuals' | 'none'\n>\n\nexport type Actor = {\n did: DidString\n handle?: HandleString\n profile?: ProfileRecord\n profileCid?: string\n profileTakedownRef?: string\n sortedAt?: Date\n indexedAt?: Date\n takedownRef?: string\n isLabeler: boolean\n allowIncomingChatsFrom?: string\n allowGroupChatInvitesFrom?: string\n upstreamStatus?: string\n createdAt?: Date\n trustedVerifier?: boolean\n verifications: VerificationHydrationState[]\n status?: RecordInfo<StatusRecord>\n germ?: RecordInfo<GermDeclarationRecord>\n allowActivitySubscriptionsFrom: AllowActivitySubscriptions\n accountModerationTags: Set<string>\n profileModerationTags: Set<string>\n /**\n * Debug information for internal development\n */\n debug?: {\n pagerank?: string\n accountTags?: string[]\n profileTags?: string[]\n }\n}\n\nexport type VerificationHydrationState = {\n issuer: DidString\n uri: AtUriString\n handle: HandleString\n displayName: string\n createdAt: DatetimeString\n}\n\nexport type VerificationMetaRequired = Required<VerificationMeta>\n\nexport type Actors = HydrationMap<DidString, Actor>\n\nexport type ChatDeclaration = RecordInfo<ChatDeclarationRecord>\nexport type ChatDeclarations = HydrationMap<AtUriString, ChatDeclaration>\n\nexport type GermDeclaration = RecordInfo<GermDeclarationRecord>\nexport type GermDeclarations = HydrationMap<AtUriString, GermDeclaration>\n\nexport type NotificationDeclaration = RecordInfo<NotificationDeclarationRecord>\nexport type NotificationDeclarations = HydrationMap<\n AtUriString,\n NotificationDeclaration\n>\n\nexport type Status = RecordInfo<StatusRecord>\nexport type Statuses = HydrationMap<AtUriString, Status>\n\nexport type ProfileViewerState = {\n did: DidString\n muted?: boolean\n mutedOnlyReposts?: boolean\n mutedOnlyQuoteposts?: boolean\n mutedByList?: AtUriString\n blockedBy?: AtUriString\n blocking?: AtUriString\n blockedByList?: AtUriString\n blockingByList?: AtUriString\n following?: AtUriString\n followedBy?: AtUriString\n}\n\nexport type ProfileViewerStates = HydrationMap<\n AtIdentifierString,\n ProfileViewerState\n>\n\ntype ActivitySubscriptionState = {\n post: boolean\n reply: boolean\n}\n\nexport type ActivitySubscriptionStates = HydrationMap<\n DidString,\n ActivitySubscriptionState | undefined\n>\n\ntype KnownFollowersState = {\n count: number\n followers: DidString[]\n}\n\nexport type KnownFollowersStates = HydrationMap<\n DidString,\n KnownFollowersState | undefined\n>\n\ntype KnownLikersState = {\n count: number\n actors: DidString[]\n}\n\nexport type KnownLikersStates = HydrationMap<\n AtUriString,\n KnownLikersState | undefined\n>\n\nexport type ProfileAgg = {\n followers: number\n follows: number\n posts: number\n lists: number\n feeds: number\n starterPacks: number\n}\n\nexport type ProfileAggs = HydrationMap<DidString, ProfileAgg>\n\nexport class ActorHydrator {\n constructor(public dataplane: DataPlaneClient) {}\n\n async getRepoRevSafe(did: string | null): Promise<string | null> {\n if (!did) return null\n try {\n const res = await this.dataplane.getLatestRev({ actorDid: did })\n return parseString(res.rev) ?? null\n } catch {\n return null\n }\n }\n\n /**\n * @note handles do not need to be normalized\n */\n async getDids(\n handleOrDids: AtIdentifierString[],\n opts?: { lookupUnidirectional?: boolean },\n ): Promise<(DidString | undefined)[]> {\n const didByHandle = new Map<HandleString, DidString>()\n\n const handles = handleOrDids.filter(isHandleIdentifier)\n if (handles.length) {\n const { dids } = await this.dataplane.getDidsByHandles({\n handles: handles.map(normalizeHandle),\n lookupUnidirectional: opts?.lookupUnidirectional,\n })\n\n for (let i = 0; i < handles.length; i++) {\n const did = parseString<DidString>(dids[i])\n if (did) didByHandle.set(handles[i], did)\n }\n }\n\n return handleOrDids.map((id) =>\n isDidIdentifier(id) ? id : didByHandle.get(id),\n )\n }\n\n async getDidsDefined(\n handleOrDids: AtIdentifierString[],\n ): Promise<DidString[]> {\n const res = await this.getDids(handleOrDids)\n return res.filter((v) => v != null)\n }\n\n async getActors(\n dids: DidString[],\n opts: {\n includeTakedowns?: boolean\n skipCacheForDids?: DidString[]\n } = {},\n ): Promise<Actors> {\n const map: Actors = new HydrationMap()\n if (!dids.length) return map\n\n const { includeTakedowns = false, skipCacheForDids } = opts\n\n const res = await this.dataplane.getActors({ dids, skipCacheForDids })\n for (let i = 0; i < dids.length; i++) {\n const did = dids[i]\n\n const actor = res.actors[i]\n const isNoHosted =\n actor.takenDown ||\n (actor.upstreamStatus && actor.upstreamStatus !== 'active')\n if (\n !actor.exists ||\n (isNoHosted && !includeTakedowns) ||\n !!actor.tombstonedAt\n ) {\n map.set(did, null)\n continue\n }\n\n const profile = actor.profile?.record\n ? parseRecord(\n app.bsky.actor.profile.main,\n actor.profile,\n includeTakedowns,\n )\n : undefined\n\n const status = actor.statusRecord\n ? parseRecord(\n app.bsky.actor.status.main,\n actor.statusRecord,\n /*\n * Always true, we filter this out in the `Views.status()`. If we\n * ever remove that filter, we'll want to reinstate this here.\n */\n true,\n )\n : undefined\n\n const germ = actor.germRecord\n ? parseRecord(\n com.germnetwork.declaration.main,\n actor.germRecord,\n includeTakedowns,\n )\n : undefined\n\n const verifications = mapDefined(\n Object.entries(actor.verifiedBy) as [DidString, VerificationMeta][],\n ([actorDid, verificationMeta]):\n VerificationHydrationState | undefined => {\n if (\n verificationMeta.handle &&\n verificationMeta.rkey &&\n verificationMeta.sortedAt\n ) {\n return {\n issuer: actorDid,\n uri: `at://${actorDid}/app.bsky.graph.verification/${verificationMeta.rkey}`,\n handle: verificationMeta.handle as HandleString,\n displayName: verificationMeta.displayName,\n createdAt: (\n parseDate(verificationMeta.sortedAt) ?? new Date(0)\n ).toISOString() as DatetimeString,\n }\n }\n // Filter out the verification meta that doesn't contain all info.\n return undefined\n },\n )\n\n const allowActivitySubscriptionsFrom = (\n val: string,\n ): AllowActivitySubscriptions => {\n switch (val) {\n case 'followers':\n case 'mutuals':\n case 'none':\n return val\n default:\n // The dataplane should set the default of \"FOLLOWERS\". Just in case.\n return 'followers'\n }\n }\n\n const debug = {\n pagerank: actor.pagerank ? actor.pagerank.toString() : undefined,\n accountTags: actor.tags,\n profileTags: actor.profileTags,\n }\n\n map.set(did, {\n did,\n handle: parseString<HandleString>(actor.handle),\n profile: profile?.record,\n profileCid: profile?.cid,\n profileTakedownRef: profile?.takedownRef,\n sortedAt: profile?.sortedAt,\n indexedAt: profile?.indexedAt,\n takedownRef: safeTakedownRef(actor),\n isLabeler: actor.labeler ?? false,\n allowIncomingChatsFrom: actor.allowIncomingChatsFrom || undefined,\n allowGroupChatInvitesFrom: actor.allowGroupChatInvitesFrom || undefined,\n upstreamStatus: actor.upstreamStatus || undefined,\n createdAt: parseDate(actor.createdAt),\n trustedVerifier: actor.trustedVerifier,\n verifications,\n status: status,\n germ: germ,\n allowActivitySubscriptionsFrom: allowActivitySubscriptionsFrom(\n actor.allowActivitySubscriptionsFrom,\n ),\n accountModerationTags: new Set(actor.tags),\n profileModerationTags: new Set(actor.profileTags),\n debug,\n })\n }\n\n return map\n }\n\n async getChatDeclarations(\n uris: AtUriString[],\n includeTakedowns = false,\n ): Promise<ChatDeclarations> {\n const map: ChatDeclarations = new HydrationMap()\n if (!uris.length) return map\n\n const res = await this.dataplane.getActorChatDeclarationRecords({ uris })\n for (let i = 0; i < uris.length; i++) {\n const uri = uris[i]\n const record = parseRecord(\n chat.bsky.actor.declaration.main,\n res.records[i],\n includeTakedowns,\n )\n map.set(uri, record ?? null)\n }\n\n return map\n }\n\n async getGermDeclarations(\n uris: AtUriString[],\n includeTakedowns = false,\n ): Promise<GermDeclarations> {\n const map: GermDeclarations = new HydrationMap()\n if (!uris.length) return map\n\n const res = await this.dataplane.getGermDeclarationRecords({ uris })\n for (let i = 0; i < uris.length; i++) {\n const record = parseRecord(\n com.germnetwork.declaration.main,\n res.records[i],\n includeTakedowns,\n )\n map.set(uris[i], record ?? null)\n }\n\n return map\n }\n\n async getNotificationDeclarations(\n uris: AtUriString[],\n includeTakedowns = false,\n ): Promise<NotificationDeclarations> {\n const map: NotificationDeclarations = new HydrationMap()\n if (!uris.length) return map\n\n const res = await this.dataplane.getNotificationDeclarationRecords({\n uris,\n })\n for (let i = 0; i < uris.length; i++) {\n const uri = uris[i]\n const record = parseRecord(\n app.bsky.notification.declaration.main,\n res.records[i],\n includeTakedowns,\n )\n map.set(uri, record ?? null)\n }\n\n return map\n }\n\n async getStatus(\n uris: AtUriString[],\n includeTakedowns = false,\n ): Promise<Statuses> {\n const map: Statuses = new HydrationMap()\n if (!uris.length) return map\n\n const res = await this.dataplane.getStatusRecords({ uris })\n for (let i = 0; i < uris.length; i++) {\n const uri = uris[i]\n const record = parseRecord(\n app.bsky.actor.status.main,\n res.records[i],\n includeTakedowns,\n )\n map.set(uri, record ?? null)\n }\n\n return map\n }\n\n // \"naive\" because this method does not verify the existence of the list itself\n // a later check in the main hydrator will remove list uris that have been deleted or\n // repurposed to \"curate lists\"\n async getProfileViewerStatesNaive(\n actors: AtIdentifierString[],\n viewer: DidString,\n ): Promise<ProfileViewerStates> {\n const map: ProfileViewerStates = new HydrationMap()\n if (!actors.length) return map\n\n // @TODO we could use \"await this.getDids(actors)\" here to resolve the\n // handles (no other code change should be needed). This was not done as\n // part of this PR to avoid changing the behavior of this method.\n const actorDids = actors.map((a) => (isDidIdentifier(a) ? a : undefined))\n\n // getRelationships requires DidString so we remove anything that isn't one\n const actorDidsDefined = Array.from(\n new Set(\n actorDids\n .filter((did) => did != null)\n // Since we special case self-relationship below, we can skip querying\n // the dataplane for the viewer's own DID if it's included in the\n // input.\n .filter((did) => did !== viewer),\n ),\n )\n\n const res = await this.dataplane.getRelationships({\n actorDid: viewer,\n targetDids: actorDidsDefined,\n })\n\n const actorToDid = new Map<AtIdentifierString, DidString | undefined>(\n actors.map((actor, i) => [actor, actorDids[i]]),\n )\n\n for (let i = 0; i < actors.length; i++) {\n const actor = actors[i]\n\n const did = actorToDid.get(actor)\n // ignore unresolved handles\n if (!did) continue\n\n if (did === viewer) {\n // ignore self-follows, self-mutes, self-blocks, self-activity-subscriptions\n map.set(actor, { did })\n continue\n }\n\n // Get the index that was used to query the relationships for this actor\n const index = actorDidsDefined.indexOf(did)\n if (index === -1) continue\n\n const rels = res.relationships[index]\n map.set(actor, {\n did,\n muted: rels.muted ?? false,\n mutedOnlyReposts: rels.mutedOnlyReposts ?? false,\n mutedOnlyQuoteposts: rels.mutedOnlyQuoteposts ?? false,\n mutedByList: parseString(rels.mutedByList),\n blockedBy: parseString(rels.blockedBy),\n blocking: parseString<AtUriString>(rels.blocking),\n blockedByList: parseString(rels.blockedByList),\n blockingByList: parseString(rels.blockingByList),\n following: parseString<AtUriString>(rels.following),\n followedBy: parseString(rels.followedBy),\n })\n }\n\n return map\n }\n\n async getKnownFollowers(\n dids: DidString[],\n viewer: DidString | null,\n ): Promise<KnownFollowersStates> {\n const map: KnownFollowersStates = new HydrationMap()\n if (!viewer) return map\n if (!dids.length) return map\n\n try {\n const { results } = await this.dataplane.sampleFollowsFollowing(\n {\n actorDid: viewer,\n targetDids: dids,\n limit: 5,\n },\n { signal: AbortSignal.timeout(100) },\n )\n for (let i = 0; i < dids.length; i++) {\n const result = results[i]\n const followerDids = result?.dids\n map.set(\n dids[i],\n followerDids && followerDids.length > 0\n ? {\n count: result.totalKnown || followerDids.length,\n followers: followerDids as DidString[],\n }\n : undefined,\n )\n }\n } catch (err) {\n // Fail open.\n events.hydrationFailed({ source: 'known_followers', err })\n }\n\n return map\n }\n\n async getActivitySubscriptions(\n dids: DidString[],\n viewer: DidString | null,\n ): Promise<ActivitySubscriptionStates> {\n const map: ActivitySubscriptionStates = new HydrationMap()\n if (!viewer) return map\n if (!dids.length) return map\n\n try {\n const { subscriptions } =\n await this.dataplane.getActivitySubscriptionsByActorAndSubjects(\n { actorDid: viewer, subjectDids: dids },\n { signal: AbortSignal.timeout(100) },\n )\n\n for (let i = 0; i < dids.length; i++) {\n // @NOTE Although not typed as nullable, the code here used to defend\n // against potentially missing subscription objects in the response, so\n // we keep that defense in place.\n const subscription = subscriptions[i] as\n ActivitySubscription | undefined\n\n const state = {\n post: subscription?.post != null,\n reply: subscription?.reply != null,\n }\n\n const did = dids[i]!\n if (isActivitySubscriptionEnabled(state)) {\n map.set(did, state)\n } else {\n map.set(did, undefined)\n }\n }\n } catch (err) {\n // Fail open.\n events.hydrationFailed({ source: 'activity_subscriptions', err })\n }\n\n return map\n }\n\n async getProfileAggregates(dids: DidString[]): Promise<ProfileAggs> {\n const map: ProfileAggs = new HydrationMap()\n if (!dids.length) return map\n\n const counts = await this.dataplane.getCountsForUsers({ dids })\n for (let i = 0; i < dids.length; i++) {\n const did = dids[i]\n map.set(did, {\n followers: counts.followers[i] ?? 0,\n follows: counts.following[i] ?? 0,\n posts: counts.posts[i] ?? 0,\n lists: counts.lists[i] ?? 0,\n feeds: counts.feeds[i] ?? 0,\n starterPacks: counts.starterPacks[i] ?? 0,\n })\n }\n\n return map\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"authFullApp.defs.d.ts","sourceRoot":"","sources":["../../../../src/lexicons/app/bsky/authFullApp.defs.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAA;AAEhC,QAAA,MAAM,KAAK,yBAAyB,CAAA;AAEpC,KAAK,KAAK,GAAG,OAAO,KAAK,CAAA;AAEzB,OAAO,EAAE,KAAK,EAAE,CAAA;AAEhB,QAAA,MAAM,IAAI,mHAwIT,CAAA;AAED,OAAO,EAAE,IAAI,EAAE,CAAA"}
1
+ {"version":3,"file":"authFullApp.defs.d.ts","sourceRoot":"","sources":["../../../../src/lexicons/app/bsky/authFullApp.defs.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAA;AAEhC,QAAA,MAAM,KAAK,yBAAyB,CAAA;AAEpC,KAAK,KAAK,GAAG,OAAO,KAAK,CAAA;AAEzB,OAAO,EAAE,KAAK,EAAE,CAAA;AAEhB,QAAA,MAAM,IAAI,mHAkJT,CAAA;AAED,OAAO,EAAE,IAAI,EAAE,CAAA"}
@@ -25,6 +25,10 @@ const main = /*#__PURE__*/ l.permissionSet($nsid, [
25
25
  'app.bsky.contact.removeData',
26
26
  'app.bsky.contact.startPhoneVerification',
27
27
  'app.bsky.contact.verifyPhone',
28
+ 'app.bsky.draft.createDraft',
29
+ 'app.bsky.draft.deleteDraft',
30
+ 'app.bsky.draft.getDrafts',
31
+ 'app.bsky.draft.updateDraft',
28
32
  'app.bsky.feed.describeFeedGenerator',
29
33
  'app.bsky.feed.getActorFeeds',
30
34
  'app.bsky.feed.getActorLikes',
@@ -87,9 +91,13 @@ const main = /*#__PURE__*/ l.permissionSet($nsid, [
87
91
  'app.bsky.unspecced.getPostThreadV2',
88
92
  'app.bsky.unspecced.getSuggestedFeeds',
89
93
  'app.bsky.unspecced.getSuggestedFeedsSkeleton',
94
+ 'app.bsky.unspecced.getSuggestedOnboardingUsers',
90
95
  'app.bsky.unspecced.getSuggestedStarterPacks',
91
96
  'app.bsky.unspecced.getSuggestedStarterPacksSkeleton',
92
97
  'app.bsky.unspecced.getSuggestedUsers',
98
+ 'app.bsky.unspecced.getSuggestedUsersForDiscover',
99
+ 'app.bsky.unspecced.getSuggestedUsersForExplore',
100
+ 'app.bsky.unspecced.getSuggestedUsersForSeeMore',
93
101
  'app.bsky.unspecced.getSuggestedUsersSkeleton',
94
102
  'app.bsky.unspecced.getSuggestionsSkeleton',
95
103
  'app.bsky.unspecced.getTaggedSuggestions',
@@ -113,6 +121,7 @@ const main = /*#__PURE__*/ l.permissionSet($nsid, [
113
121
  /*#__PURE__*/ l.permission('repo', {
114
122
  action: ['create', 'update', 'delete'],
115
123
  collection: [
124
+ 'app.bsky.actor.contentVisibilityDeclaration',
116
125
  'app.bsky.actor.profile',
117
126
  'app.bsky.actor.status',
118
127
  'app.bsky.feed.like',
@@ -127,6 +136,7 @@ const main = /*#__PURE__*/ l.permissionSet($nsid, [
127
136
  'app.bsky.graph.listitem',
128
137
  'app.bsky.graph.referencelistoptout',
129
138
  'app.bsky.graph.starterpack',
139
+ 'app.bsky.graph.verification',
130
140
  'app.bsky.notification.declaration',
131
141
  ],
132
142
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"authFullApp.defs.js","sourceRoot":"","sources":["../../../../src/lexicons/app/bsky/authFullApp.defs.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * THIS FILE WAS GENERATED BY \"@atproto/lex\". DO NOT EDIT.\n */\n\nimport { l } from '@atproto/lex'\n\nconst $nsid = 'app.bsky.authFullApp'\n\ntype $nsid = typeof $nsid\n\nexport { $nsid }\n\nconst main = /*#__PURE__*/ l.permissionSet(\n $nsid,\n [\n /*#__PURE__*/ l.permission('rpc', {\n inheritAud: true,\n lxm: [\n 'app.bsky.actor.getPreferences',\n 'app.bsky.actor.getProfile',\n 'app.bsky.actor.getProfiles',\n 'app.bsky.actor.getSuggestions',\n 'app.bsky.actor.putPreferences',\n 'app.bsky.actor.searchActors',\n 'app.bsky.actor.searchActorsTypeahead',\n 'app.bsky.bookmark.createBookmark',\n 'app.bsky.bookmark.deleteBookmark',\n 'app.bsky.bookmark.getBookmarks',\n 'app.bsky.contact.dismissMatch',\n 'app.bsky.contact.getMatches',\n 'app.bsky.contact.getSyncStatus',\n 'app.bsky.contact.importContacts',\n 'app.bsky.contact.removeData',\n 'app.bsky.contact.startPhoneVerification',\n 'app.bsky.contact.verifyPhone',\n 'app.bsky.feed.describeFeedGenerator',\n 'app.bsky.feed.getActorFeeds',\n 'app.bsky.feed.getActorLikes',\n 'app.bsky.feed.getAuthorFeed',\n 'app.bsky.feed.getFeed',\n 'app.bsky.feed.getFeedGenerator',\n 'app.bsky.feed.getFeedGenerators',\n 'app.bsky.feed.getFeedSkeleton',\n 'app.bsky.feed.getLikes',\n 'app.bsky.feed.getListFeed',\n 'app.bsky.feed.getPostThread',\n 'app.bsky.feed.getPosts',\n 'app.bsky.feed.getQuotes',\n 'app.bsky.feed.getRepostedBy',\n 'app.bsky.feed.getSuggestedFeeds',\n 'app.bsky.feed.getTimeline',\n 'app.bsky.feed.searchPosts',\n 'app.bsky.feed.searchPostsV2',\n 'app.bsky.feed.sendInteractions',\n 'app.bsky.graph.getActorStarterPacks',\n 'app.bsky.graph.getBlocks',\n 'app.bsky.graph.getFollowers',\n 'app.bsky.graph.getFollows',\n 'app.bsky.graph.getKnownFollowers',\n 'app.bsky.graph.getList',\n 'app.bsky.graph.getListBlocks',\n 'app.bsky.graph.getListMutes',\n 'app.bsky.graph.getLists',\n 'app.bsky.graph.getListsWithMembership',\n 'app.bsky.graph.getMutes',\n 'app.bsky.graph.getRelationships',\n 'app.bsky.graph.getStarterPack',\n 'app.bsky.graph.getStarterPacks',\n 'app.bsky.graph.getStarterPacksWithMembership',\n 'app.bsky.graph.getSuggestedFollowsByActor',\n 'app.bsky.graph.muteActor',\n 'app.bsky.graph.muteActorList',\n 'app.bsky.graph.muteThread',\n 'app.bsky.graph.searchStarterPacks',\n 'app.bsky.graph.searchStarterPacksV2',\n 'app.bsky.graph.unmuteActor',\n 'app.bsky.graph.unmuteActorList',\n 'app.bsky.graph.unmuteThread',\n 'app.bsky.labeler.getServices',\n 'app.bsky.notification.getPreferences',\n 'app.bsky.notification.getUnreadCount',\n 'app.bsky.notification.listActivitySubscriptions',\n 'app.bsky.notification.listNotifications',\n 'app.bsky.notification.putActivitySubscription',\n 'app.bsky.notification.putPreferences',\n 'app.bsky.notification.putPreferencesV2',\n 'app.bsky.notification.registerPush',\n 'app.bsky.notification.unregisterPush',\n 'app.bsky.notification.updateSeen',\n 'app.bsky.unspecced.getAgeAssuranceState',\n 'app.bsky.unspecced.getConfig',\n 'app.bsky.unspecced.getOnboardingSuggestedStarterPacks',\n 'app.bsky.unspecced.getPopularFeedGenerators',\n 'app.bsky.unspecced.getPostThreadOtherV2',\n 'app.bsky.unspecced.getPostThreadV2',\n 'app.bsky.unspecced.getSuggestedFeeds',\n 'app.bsky.unspecced.getSuggestedFeedsSkeleton',\n 'app.bsky.unspecced.getSuggestedStarterPacks',\n 'app.bsky.unspecced.getSuggestedStarterPacksSkeleton',\n 'app.bsky.unspecced.getSuggestedUsers',\n 'app.bsky.unspecced.getSuggestedUsersSkeleton',\n 'app.bsky.unspecced.getSuggestionsSkeleton',\n 'app.bsky.unspecced.getTaggedSuggestions',\n 'app.bsky.unspecced.getTrendingTopics',\n 'app.bsky.unspecced.getTrends',\n 'app.bsky.unspecced.getTrendsSkeleton',\n 'app.bsky.unspecced.initAgeAssurance',\n 'app.bsky.unspecced.searchActorsSkeleton',\n 'app.bsky.unspecced.searchPostsSkeleton',\n 'app.bsky.unspecced.searchStarterPacksSkeleton',\n 'app.bsky.video.getJobStatus',\n 'app.bsky.video.getUploadLimits',\n 'app.bsky.video.uploadVideo',\n 'app.bsky.video.startUpload',\n 'app.bsky.video.uploadPart',\n 'app.bsky.video.finishUpload',\n 'app.bsky.video.abortUpload',\n 'app.bsky.video.getUploadStatus',\n ],\n }),\n /*#__PURE__*/ l.permission('repo', {\n action: ['create', 'update', 'delete'],\n collection: [\n 'app.bsky.actor.profile',\n 'app.bsky.actor.status',\n 'app.bsky.feed.like',\n 'app.bsky.feed.post',\n 'app.bsky.feed.postgate',\n 'app.bsky.feed.repost',\n 'app.bsky.feed.threadgate',\n 'app.bsky.graph.block',\n 'app.bsky.graph.follow',\n 'app.bsky.graph.list',\n 'app.bsky.graph.listblock',\n 'app.bsky.graph.listitem',\n 'app.bsky.graph.referencelistoptout',\n 'app.bsky.graph.starterpack',\n 'app.bsky.notification.declaration',\n ],\n }),\n ],\n {\n title: 'Full Bluesky Social App Permissions',\n 'title:lang': {},\n detail:\n 'Manage all public content and interactions, private preferences and subscriptions, and other Bluesky-specific app features and data.',\n 'detail:lang': {},\n },\n)\n\nexport { main }\n"]}
1
+ {"version":3,"file":"authFullApp.defs.js","sourceRoot":"","sources":["../../../../src/lexicons/app/bsky/authFullApp.defs.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * THIS FILE WAS GENERATED BY \"@atproto/lex\". DO NOT EDIT.\n */\n\nimport { l } from '@atproto/lex'\n\nconst $nsid = 'app.bsky.authFullApp'\n\ntype $nsid = typeof $nsid\n\nexport { $nsid }\n\nconst main = /*#__PURE__*/ l.permissionSet(\n $nsid,\n [\n /*#__PURE__*/ l.permission('rpc', {\n inheritAud: true,\n lxm: [\n 'app.bsky.actor.getPreferences',\n 'app.bsky.actor.getProfile',\n 'app.bsky.actor.getProfiles',\n 'app.bsky.actor.getSuggestions',\n 'app.bsky.actor.putPreferences',\n 'app.bsky.actor.searchActors',\n 'app.bsky.actor.searchActorsTypeahead',\n 'app.bsky.bookmark.createBookmark',\n 'app.bsky.bookmark.deleteBookmark',\n 'app.bsky.bookmark.getBookmarks',\n 'app.bsky.contact.dismissMatch',\n 'app.bsky.contact.getMatches',\n 'app.bsky.contact.getSyncStatus',\n 'app.bsky.contact.importContacts',\n 'app.bsky.contact.removeData',\n 'app.bsky.contact.startPhoneVerification',\n 'app.bsky.contact.verifyPhone',\n 'app.bsky.draft.createDraft',\n 'app.bsky.draft.deleteDraft',\n 'app.bsky.draft.getDrafts',\n 'app.bsky.draft.updateDraft',\n 'app.bsky.feed.describeFeedGenerator',\n 'app.bsky.feed.getActorFeeds',\n 'app.bsky.feed.getActorLikes',\n 'app.bsky.feed.getAuthorFeed',\n 'app.bsky.feed.getFeed',\n 'app.bsky.feed.getFeedGenerator',\n 'app.bsky.feed.getFeedGenerators',\n 'app.bsky.feed.getFeedSkeleton',\n 'app.bsky.feed.getLikes',\n 'app.bsky.feed.getListFeed',\n 'app.bsky.feed.getPostThread',\n 'app.bsky.feed.getPosts',\n 'app.bsky.feed.getQuotes',\n 'app.bsky.feed.getRepostedBy',\n 'app.bsky.feed.getSuggestedFeeds',\n 'app.bsky.feed.getTimeline',\n 'app.bsky.feed.searchPosts',\n 'app.bsky.feed.searchPostsV2',\n 'app.bsky.feed.sendInteractions',\n 'app.bsky.graph.getActorStarterPacks',\n 'app.bsky.graph.getBlocks',\n 'app.bsky.graph.getFollowers',\n 'app.bsky.graph.getFollows',\n 'app.bsky.graph.getKnownFollowers',\n 'app.bsky.graph.getList',\n 'app.bsky.graph.getListBlocks',\n 'app.bsky.graph.getListMutes',\n 'app.bsky.graph.getLists',\n 'app.bsky.graph.getListsWithMembership',\n 'app.bsky.graph.getMutes',\n 'app.bsky.graph.getRelationships',\n 'app.bsky.graph.getStarterPack',\n 'app.bsky.graph.getStarterPacks',\n 'app.bsky.graph.getStarterPacksWithMembership',\n 'app.bsky.graph.getSuggestedFollowsByActor',\n 'app.bsky.graph.muteActor',\n 'app.bsky.graph.muteActorList',\n 'app.bsky.graph.muteThread',\n 'app.bsky.graph.searchStarterPacks',\n 'app.bsky.graph.searchStarterPacksV2',\n 'app.bsky.graph.unmuteActor',\n 'app.bsky.graph.unmuteActorList',\n 'app.bsky.graph.unmuteThread',\n 'app.bsky.labeler.getServices',\n 'app.bsky.notification.getPreferences',\n 'app.bsky.notification.getUnreadCount',\n 'app.bsky.notification.listActivitySubscriptions',\n 'app.bsky.notification.listNotifications',\n 'app.bsky.notification.putActivitySubscription',\n 'app.bsky.notification.putPreferences',\n 'app.bsky.notification.putPreferencesV2',\n 'app.bsky.notification.registerPush',\n 'app.bsky.notification.unregisterPush',\n 'app.bsky.notification.updateSeen',\n 'app.bsky.unspecced.getAgeAssuranceState',\n 'app.bsky.unspecced.getConfig',\n 'app.bsky.unspecced.getOnboardingSuggestedStarterPacks',\n 'app.bsky.unspecced.getPopularFeedGenerators',\n 'app.bsky.unspecced.getPostThreadOtherV2',\n 'app.bsky.unspecced.getPostThreadV2',\n 'app.bsky.unspecced.getSuggestedFeeds',\n 'app.bsky.unspecced.getSuggestedFeedsSkeleton',\n 'app.bsky.unspecced.getSuggestedOnboardingUsers',\n 'app.bsky.unspecced.getSuggestedStarterPacks',\n 'app.bsky.unspecced.getSuggestedStarterPacksSkeleton',\n 'app.bsky.unspecced.getSuggestedUsers',\n 'app.bsky.unspecced.getSuggestedUsersForDiscover',\n 'app.bsky.unspecced.getSuggestedUsersForExplore',\n 'app.bsky.unspecced.getSuggestedUsersForSeeMore',\n 'app.bsky.unspecced.getSuggestedUsersSkeleton',\n 'app.bsky.unspecced.getSuggestionsSkeleton',\n 'app.bsky.unspecced.getTaggedSuggestions',\n 'app.bsky.unspecced.getTrendingTopics',\n 'app.bsky.unspecced.getTrends',\n 'app.bsky.unspecced.getTrendsSkeleton',\n 'app.bsky.unspecced.initAgeAssurance',\n 'app.bsky.unspecced.searchActorsSkeleton',\n 'app.bsky.unspecced.searchPostsSkeleton',\n 'app.bsky.unspecced.searchStarterPacksSkeleton',\n 'app.bsky.video.getJobStatus',\n 'app.bsky.video.getUploadLimits',\n 'app.bsky.video.uploadVideo',\n 'app.bsky.video.startUpload',\n 'app.bsky.video.uploadPart',\n 'app.bsky.video.finishUpload',\n 'app.bsky.video.abortUpload',\n 'app.bsky.video.getUploadStatus',\n ],\n }),\n /*#__PURE__*/ l.permission('repo', {\n action: ['create', 'update', 'delete'],\n collection: [\n 'app.bsky.actor.contentVisibilityDeclaration',\n 'app.bsky.actor.profile',\n 'app.bsky.actor.status',\n 'app.bsky.feed.like',\n 'app.bsky.feed.post',\n 'app.bsky.feed.postgate',\n 'app.bsky.feed.repost',\n 'app.bsky.feed.threadgate',\n 'app.bsky.graph.block',\n 'app.bsky.graph.follow',\n 'app.bsky.graph.list',\n 'app.bsky.graph.listblock',\n 'app.bsky.graph.listitem',\n 'app.bsky.graph.referencelistoptout',\n 'app.bsky.graph.starterpack',\n 'app.bsky.graph.verification',\n 'app.bsky.notification.declaration',\n ],\n }),\n ],\n {\n title: 'Full Bluesky Social App Permissions',\n 'title:lang': {},\n detail:\n 'Manage all public content and interactions, private preferences and subscriptions, and other Bluesky-specific app features and data.',\n 'detail:lang': {},\n },\n)\n\nexport { main }\n"]}
@@ -78,6 +78,14 @@ type FeedViewPost = {
78
78
  $type?: 'app.bsky.feed.defs#feedViewPost';
79
79
  post: PostView;
80
80
  reply?: ReplyRef;
81
+ /**
82
+ * The 1-indexed position of this post within the contiguous OP thread. Only present when this post is part of the OP thread.
83
+ */
84
+ opThreadPostIndex?: number;
85
+ /**
86
+ * The total number of posts in the contiguous OP thread that this post belongs to. Only present when this post is part of the OP thread.
87
+ */
88
+ opThreadPostCount?: number;
81
89
  reason?: l.$Typed<ReasonRepost> | l.$Typed<ReasonPin> | l.Unknown$TypedObject;
82
90
  /**
83
91
  * Context provided by feed generator that may be passed back alongside interactions.
@@ -1 +1 @@
1
- {"version":3,"file":"defs.defs.d.ts","sourceRoot":"","sources":["../../../../../src/lexicons/app/bsky/feed/defs.defs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"defs.defs.d.ts","sourceRoot":"","sources":["../../../../../src/lexicons/app/bsky/feed/defs.defs.ts"],"names":[],"mappings":"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"}
@@ -81,6 +81,8 @@ const feedViewPost = /*#__PURE__*/ l.typedObject($nsid, 'feedViewPost',
81
81
  post: /*#__PURE__*/ l.ref((() => postView)),
82
82
  reply: /*#__PURE__*/ l.optional(
83
83
  /*#__PURE__*/ l.ref((() => replyRef))),
84
+ opThreadPostIndex: /*#__PURE__*/ l.optional(/*#__PURE__*/ l.integer()),
85
+ opThreadPostCount: /*#__PURE__*/ l.optional(/*#__PURE__*/ l.integer()),
84
86
  reason: /*#__PURE__*/ l.optional(
85
87
  /*#__PURE__*/ l.typedUnion([
86
88
  /*#__PURE__*/ l.typedRef((() => reasonRepost)),