@atproto/bsky 0.1.5 → 0.1.7

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 (191) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/api/app/bsky/unspecced/getAtmosphereExploreTab.d.ts +4 -0
  3. package/dist/api/app/bsky/unspecced/getAtmosphereExploreTab.d.ts.map +1 -0
  4. package/dist/api/app/bsky/unspecced/getAtmosphereExploreTab.js +274 -0
  5. package/dist/api/app/bsky/unspecced/getAtmosphereExploreTab.js.map +1 -0
  6. package/dist/api/index.d.ts.map +1 -1
  7. package/dist/api/index.js +2 -0
  8. package/dist/api/index.js.map +1 -1
  9. package/dist/config.d.ts +2 -0
  10. package/dist/config.d.ts.map +1 -1
  11. package/dist/config.js +5 -0
  12. package/dist/config.js.map +1 -1
  13. package/dist/hydration/external.d.ts +8 -7
  14. package/dist/hydration/external.d.ts.map +1 -1
  15. package/dist/hydration/external.js.map +1 -1
  16. package/dist/hydration/hydrator.d.ts +5 -1
  17. package/dist/hydration/hydrator.d.ts.map +1 -1
  18. package/dist/hydration/hydrator.js +3 -0
  19. package/dist/hydration/hydrator.js.map +1 -1
  20. package/dist/lexicons/app/bsky/embed/external.defs.d.ts +130 -0
  21. package/dist/lexicons/app/bsky/embed/external.defs.d.ts.map +1 -1
  22. package/dist/lexicons/app/bsky/embed/external.defs.js +135 -0
  23. package/dist/lexicons/app/bsky/embed/external.defs.js.map +1 -1
  24. package/dist/lexicons/app/bsky/embed/getEmbedExternalView.defs.d.ts +2 -0
  25. package/dist/lexicons/app/bsky/embed/getEmbedExternalView.defs.d.ts.map +1 -1
  26. package/dist/lexicons/app/bsky/embed/getEmbedExternalView.defs.js +7 -0
  27. package/dist/lexicons/app/bsky/embed/getEmbedExternalView.defs.js.map +1 -1
  28. package/dist/lexicons/app/bsky/unspecced/getAtmosphereExploreTab.d.ts +3 -0
  29. package/dist/lexicons/app/bsky/unspecced/getAtmosphereExploreTab.d.ts.map +1 -0
  30. package/dist/lexicons/app/bsky/unspecced/getAtmosphereExploreTab.defs.d.ts +103 -0
  31. package/dist/lexicons/app/bsky/unspecced/getAtmosphereExploreTab.defs.d.ts.map +1 -0
  32. package/dist/lexicons/app/bsky/unspecced/getAtmosphereExploreTab.defs.js +95 -0
  33. package/dist/lexicons/app/bsky/unspecced/getAtmosphereExploreTab.defs.js.map +1 -0
  34. package/dist/lexicons/app/bsky/unspecced/getAtmosphereExploreTab.js +6 -0
  35. package/dist/lexicons/app/bsky/unspecced/getAtmosphereExploreTab.js.map +1 -0
  36. package/dist/lexicons/app/bsky/unspecced.d.ts +1 -0
  37. package/dist/lexicons/app/bsky/unspecced.d.ts.map +1 -1
  38. package/dist/lexicons/app/bsky/unspecced.js +1 -0
  39. package/dist/lexicons/app/bsky/unspecced.js.map +1 -1
  40. package/dist/lexicons/index.d.ts +2 -0
  41. package/dist/lexicons/index.d.ts.map +1 -1
  42. package/dist/lexicons/index.js +2 -0
  43. package/dist/lexicons/index.js.map +1 -1
  44. package/dist/lexicons/place/stream/badge/defs.d.ts +2 -0
  45. package/dist/lexicons/place/stream/badge/defs.d.ts.map +1 -0
  46. package/dist/lexicons/place/stream/badge/defs.defs.d.ts +131 -0
  47. package/dist/lexicons/place/stream/badge/defs.defs.d.ts.map +1 -0
  48. package/dist/lexicons/place/stream/badge/defs.defs.js +73 -0
  49. package/dist/lexicons/place/stream/badge/defs.defs.js.map +1 -0
  50. package/dist/lexicons/place/stream/badge/defs.js +5 -0
  51. package/dist/lexicons/place/stream/badge/defs.js.map +1 -0
  52. package/dist/lexicons/place/stream/badge.d.ts +2 -0
  53. package/dist/lexicons/place/stream/badge.d.ts.map +1 -0
  54. package/dist/lexicons/place/stream/badge.js +5 -0
  55. package/dist/lexicons/place/stream/badge.js.map +1 -0
  56. package/dist/lexicons/place/stream/chat/defs.d.ts +2 -0
  57. package/dist/lexicons/place/stream/chat/defs.d.ts.map +1 -0
  58. package/dist/lexicons/place/stream/chat/defs.defs.d.ts +44 -0
  59. package/dist/lexicons/place/stream/chat/defs.defs.d.ts.map +1 -0
  60. package/dist/lexicons/place/stream/chat/defs.defs.js +41 -0
  61. package/dist/lexicons/place/stream/chat/defs.defs.js.map +1 -0
  62. package/dist/lexicons/place/stream/chat/defs.js +5 -0
  63. package/dist/lexicons/place/stream/chat/defs.js.map +1 -0
  64. package/dist/lexicons/place/stream/chat/pinnedRecord.d.ts +3 -0
  65. package/dist/lexicons/place/stream/chat/pinnedRecord.d.ts.map +1 -0
  66. package/dist/lexicons/place/stream/chat/pinnedRecord.defs.d.ts +108 -0
  67. package/dist/lexicons/place/stream/chat/pinnedRecord.defs.d.ts.map +1 -0
  68. package/dist/lexicons/place/stream/chat/pinnedRecord.defs.js +31 -0
  69. package/dist/lexicons/place/stream/chat/pinnedRecord.defs.js.map +1 -0
  70. package/dist/lexicons/place/stream/chat/pinnedRecord.js +6 -0
  71. package/dist/lexicons/place/stream/chat/pinnedRecord.js.map +1 -0
  72. package/dist/lexicons/place/stream/chat/profile.d.ts +3 -0
  73. package/dist/lexicons/place/stream/chat/profile.d.ts.map +1 -0
  74. package/dist/lexicons/place/stream/chat/profile.defs.d.ts +143 -0
  75. package/dist/lexicons/place/stream/chat/profile.defs.d.ts.map +1 -0
  76. package/dist/lexicons/place/stream/chat/profile.defs.js +62 -0
  77. package/dist/lexicons/place/stream/chat/profile.defs.js.map +1 -0
  78. package/dist/lexicons/place/stream/chat/profile.js +6 -0
  79. package/dist/lexicons/place/stream/chat/profile.js.map +1 -0
  80. package/dist/lexicons/place/stream/chat.d.ts +4 -0
  81. package/dist/lexicons/place/stream/chat.d.ts.map +1 -0
  82. package/dist/lexicons/place/stream/chat.js +7 -0
  83. package/dist/lexicons/place/stream/chat.js.map +1 -0
  84. package/dist/lexicons/place/stream/defs.d.ts +2 -0
  85. package/dist/lexicons/place/stream/defs.d.ts.map +1 -0
  86. package/dist/lexicons/place/stream/defs.defs.d.ts +54 -0
  87. package/dist/lexicons/place/stream/defs.defs.d.ts.map +1 -0
  88. package/dist/lexicons/place/stream/defs.defs.js +40 -0
  89. package/dist/lexicons/place/stream/defs.defs.js.map +1 -0
  90. package/dist/lexicons/place/stream/defs.js +5 -0
  91. package/dist/lexicons/place/stream/defs.js.map +1 -0
  92. package/dist/lexicons/place/stream/livestream.d.ts +3 -0
  93. package/dist/lexicons/place/stream/livestream.d.ts.map +1 -0
  94. package/dist/lexicons/place/stream/livestream.defs.d.ts +312 -0
  95. package/dist/lexicons/place/stream/livestream.defs.d.ts.map +1 -0
  96. package/dist/lexicons/place/stream/livestream.defs.js +105 -0
  97. package/dist/lexicons/place/stream/livestream.defs.js.map +1 -0
  98. package/dist/lexicons/place/stream/livestream.js +6 -0
  99. package/dist/lexicons/place/stream/livestream.js.map +1 -0
  100. package/dist/lexicons/place/stream.d.ts +5 -0
  101. package/dist/lexicons/place/stream.d.ts.map +1 -0
  102. package/dist/lexicons/place/stream.js +8 -0
  103. package/dist/lexicons/place/stream.js.map +1 -0
  104. package/dist/lexicons/place.d.ts +2 -0
  105. package/dist/lexicons/place.d.ts.map +1 -0
  106. package/dist/lexicons/place.js +5 -0
  107. package/dist/lexicons/place.js.map +1 -0
  108. package/dist/lexicons/site/standard/document.defs.d.ts +127 -127
  109. package/dist/lexicons/site/standard/document.defs.d.ts.map +1 -1
  110. package/dist/lexicons/site/standard/document.defs.js +28 -28
  111. package/dist/lexicons/site/standard/document.defs.js.map +1 -1
  112. package/dist/lexicons/site/standard/graph/recommend.defs.d.ts +11 -11
  113. package/dist/lexicons/site/standard/graph/recommend.defs.d.ts.map +1 -1
  114. package/dist/lexicons/site/standard/graph/recommend.defs.js +1 -1
  115. package/dist/lexicons/site/standard/graph/recommend.defs.js.map +1 -1
  116. package/dist/lexicons/site/standard/publication.defs.d.ts +52 -52
  117. package/dist/lexicons/site/standard/publication.defs.d.ts.map +1 -1
  118. package/dist/lexicons/site/standard/publication.defs.js +6 -6
  119. package/dist/lexicons/site/standard/publication.defs.js.map +1 -1
  120. package/dist/lexicons/site/standard/theme/basic.defs.d.ts +14 -14
  121. package/dist/lexicons/site/standard/theme/basic.defs.d.ts.map +1 -1
  122. package/dist/lexicons/site/standard/theme/basic.defs.js +1 -1
  123. package/dist/lexicons/site/standard/theme/basic.defs.js.map +1 -1
  124. package/dist/lexicons/social/grain/defs.d.ts +2 -0
  125. package/dist/lexicons/social/grain/defs.d.ts.map +1 -0
  126. package/dist/lexicons/social/grain/defs.defs.d.ts +15 -0
  127. package/dist/lexicons/social/grain/defs.defs.d.ts.map +1 -0
  128. package/dist/lexicons/social/grain/defs.defs.js +14 -0
  129. package/dist/lexicons/social/grain/defs.defs.js.map +1 -0
  130. package/dist/lexicons/social/grain/defs.js +5 -0
  131. package/dist/lexicons/social/grain/defs.js.map +1 -0
  132. package/dist/lexicons/social/grain/favorite.d.ts +3 -0
  133. package/dist/lexicons/social/grain/favorite.d.ts.map +1 -0
  134. package/dist/lexicons/social/grain/favorite.defs.d.ts +72 -0
  135. package/dist/lexicons/social/grain/favorite.defs.d.ts.map +1 -0
  136. package/dist/lexicons/social/grain/favorite.defs.js +26 -0
  137. package/dist/lexicons/social/grain/favorite.defs.js.map +1 -0
  138. package/dist/lexicons/social/grain/favorite.js +6 -0
  139. package/dist/lexicons/social/grain/favorite.js.map +1 -0
  140. package/dist/lexicons/social/grain/gallery/item.d.ts +3 -0
  141. package/dist/lexicons/social/grain/gallery/item.d.ts.map +1 -0
  142. package/dist/lexicons/social/grain/gallery/item.defs.d.ts +94 -0
  143. package/dist/lexicons/social/grain/gallery/item.defs.d.ts.map +1 -0
  144. package/dist/lexicons/social/grain/gallery/item.defs.js +29 -0
  145. package/dist/lexicons/social/grain/gallery/item.defs.js.map +1 -0
  146. package/dist/lexicons/social/grain/gallery/item.js +6 -0
  147. package/dist/lexicons/social/grain/gallery/item.js.map +1 -0
  148. package/dist/lexicons/social/grain/gallery.d.ts +4 -0
  149. package/dist/lexicons/social/grain/gallery.d.ts.map +1 -0
  150. package/dist/lexicons/social/grain/gallery.defs.d.ts +98 -0
  151. package/dist/lexicons/social/grain/gallery.defs.d.ts.map +1 -0
  152. package/dist/lexicons/social/grain/gallery.defs.js +33 -0
  153. package/dist/lexicons/social/grain/gallery.defs.js.map +1 -0
  154. package/dist/lexicons/social/grain/gallery.js +7 -0
  155. package/dist/lexicons/social/grain/gallery.js.map +1 -0
  156. package/dist/lexicons/social/grain/photo.d.ts +3 -0
  157. package/dist/lexicons/social/grain/photo.d.ts.map +1 -0
  158. package/dist/lexicons/social/grain/photo.defs.d.ts +98 -0
  159. package/dist/lexicons/social/grain/photo.defs.d.ts.map +1 -0
  160. package/dist/lexicons/social/grain/photo.defs.js +31 -0
  161. package/dist/lexicons/social/grain/photo.defs.js.map +1 -0
  162. package/dist/lexicons/social/grain/photo.js +6 -0
  163. package/dist/lexicons/social/grain/photo.js.map +1 -0
  164. package/dist/lexicons/social/grain.d.ts +5 -0
  165. package/dist/lexicons/social/grain.d.ts.map +1 -0
  166. package/dist/lexicons/social/grain.js +8 -0
  167. package/dist/lexicons/social/grain.js.map +1 -0
  168. package/dist/lexicons/social.d.ts +2 -0
  169. package/dist/lexicons/social.d.ts.map +1 -0
  170. package/dist/lexicons/social.js +5 -0
  171. package/dist/lexicons/social.js.map +1 -0
  172. package/dist/lexicons/tools/ozone/queue/defs.defs.d.ts +17 -1
  173. package/dist/lexicons/tools/ozone/queue/defs.defs.d.ts.map +1 -1
  174. package/dist/lexicons/tools/ozone/queue/defs.defs.js +8 -0
  175. package/dist/lexicons/tools/ozone/queue/defs.defs.js.map +1 -1
  176. package/dist/lexicons/tools/ozone/report/defs.defs.d.ts +34 -2
  177. package/dist/lexicons/tools/ozone/report/defs.defs.d.ts.map +1 -1
  178. package/dist/lexicons/tools/ozone/report/defs.defs.js +16 -0
  179. package/dist/lexicons/tools/ozone/report/defs.defs.js.map +1 -1
  180. package/dist/views/external.d.ts +8 -0
  181. package/dist/views/external.d.ts.map +1 -0
  182. package/dist/views/external.js +260 -0
  183. package/dist/views/external.js.map +1 -0
  184. package/dist/views/index.d.ts +3 -1
  185. package/dist/views/index.d.ts.map +1 -1
  186. package/dist/views/index.js +5 -0
  187. package/dist/views/index.js.map +1 -1
  188. package/dist/views/types.d.ts +1 -0
  189. package/dist/views/types.d.ts.map +1 -1
  190. package/dist/views/types.js.map +1 -1
  191. package/package.json +8 -8
package/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # @atproto/bsky
2
2
 
3
+ ## 0.1.7
4
+
5
+ ### Patch Changes
6
+
7
+ - [#5617](https://github.com/bluesky-social/atproto/pull/5617) [`94e3838`](https://github.com/bluesky-social/atproto/commit/94e3838ea3bb1785a1989931a815b62b2057e5db) Thanks [@estrattonbailey](https://github.com/estrattonbailey)! - Add app.bsky.unspecced.getAtmosphereExploreTab with curated CMS content, canonical external modality views, and BSKY_ATMOSPHERE_EXPLORE_TAB_SERVICE configuration. Accept optional langs, countryCode, and regionCode parameters, forwarding countryCode and regionCode to the CMS.
8
+
9
+ - [#5599](https://github.com/bluesky-social/atproto/pull/5599) [`648f7c9`](https://github.com/bluesky-social/atproto/commit/648f7c9ebff13a51341977abd7fe2f5b603a2783) Thanks [@estrattonbailey](https://github.com/estrattonbailey)! - Add canonical Atmosphere modality view schemas.
10
+
11
+ - [#5607](https://github.com/bluesky-social/atproto/pull/5607) [`6831a2b`](https://github.com/bluesky-social/atproto/commit/6831a2bc6041039bef670b37da624ccb164b6231) Thanks [@estrattonbailey](https://github.com/estrattonbailey)! - Determine livestream view activity from a two-minute `lastSeenAt` heartbeat window.
12
+
13
+ - [#5607](https://github.com/bluesky-social/atproto/pull/5607) [`6831a2b`](https://github.com/bluesky-social/atproto/commit/6831a2bc6041039bef670b37da624ccb164b6231) Thanks [@estrattonbailey](https://github.com/estrattonbailey)! - Add article, publication, gallery, and livestream record modality view builders.
14
+ - Updated dependencies [[`94e3838`](https://github.com/bluesky-social/atproto/commit/94e3838ea3bb1785a1989931a815b62b2057e5db), [`648f7c9`](https://github.com/bluesky-social/atproto/commit/648f7c9ebff13a51341977abd7fe2f5b603a2783)]:
15
+ - @atproto/api@0.24.3
16
+
17
+ ## 0.1.6
18
+
19
+ ### Patch Changes
20
+
21
+ - Updated dependencies [[`f069327`](https://github.com/bluesky-social/atproto/commit/f0693271583923f38d827b4d4387d065e2cb8be7)]:
22
+ - @atproto/api@0.24.2
23
+
3
24
  ## 0.1.5
4
25
 
5
26
  ### Patch Changes
@@ -0,0 +1,4 @@
1
+ import { type Server } from '@atproto/xrpc-server';
2
+ import type { AppContext } from '../../../../context.js';
3
+ export default function (server: Server, ctx: AppContext): void;
4
+ //# sourceMappingURL=getAtmosphereExploreTab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAtmosphereExploreTab.d.ts","sourceRoot":"","sources":["../../../../../src/api/app/bsky/unspecced/getAtmosphereExploreTab.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,MAAM,EAGZ,MAAM,sBAAsB,CAAA;AAE7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAwCxD,MAAM,CAAC,OAAO,WAAW,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,QA8IvD"}
@@ -0,0 +1,274 @@
1
+ import { chunkArray, mapDefined } from '@atproto/common';
2
+ import { l } from '@atproto/lex';
3
+ import { AtUri } from '@atproto/syntax';
4
+ import { MethodNotImplementedError, UpstreamFailureError, UpstreamTimeoutError, } from '@atproto/xrpc-server';
5
+ import { safeFetchWrap } from '@atproto-labs/fetch-node';
6
+ import { mergeManyStates, } from '../../../../hydration/hydrator.js';
7
+ import { HydrationMap } from '../../../../hydration/util.js';
8
+ import { app, site, social } from '../../../../lexicons/index.js';
9
+ import { uriToDid } from '../../../../util/uris.js';
10
+ const MAX_CONFIG_BYTES = 512 * 1024;
11
+ const MAX_ATMOSPHERE_RECORDS = 500;
12
+ const MAX_GALLERY_ITEMS = 10;
13
+ const MAX_PREVIEW_ACTORS = 3;
14
+ const groupSchema = l.object({
15
+ featured: l.boolean(),
16
+ uris: l.array(l.unknown(), { maxLength: 100 }),
17
+ });
18
+ const configSchema = l.object({
19
+ announcementBanner: l.optional(app.bsky.unspecced.getAtmosphereExploreTab.announcementBanner),
20
+ articles: l.optional(l.array(groupSchema, { maxLength: 100 })),
21
+ publications: l.optional(l.array(groupSchema, { maxLength: 100 })),
22
+ photos: l.optional(l.array(groupSchema, { maxLength: 100 })),
23
+ livestreams: l.optional(l.array(groupSchema, { maxLength: 100 })),
24
+ apps: l.optional(l.array(app.bsky.unspecced.getAtmosphereExploreTab.appCard, {
25
+ maxLength: 100,
26
+ })),
27
+ });
28
+ export default function (server, ctx) {
29
+ // @NOTE The wrapper caps decoded response bytes, including compressed bodies.
30
+ const fetchConfig = safeFetchWrap({
31
+ timeout: 5000,
32
+ responseMaxSize: MAX_CONFIG_BYTES,
33
+ });
34
+ server.add(app.bsky.unspecced.getAtmosphereExploreTab, {
35
+ auth: ctx.authVerifier.standardOptional,
36
+ handler: async ({ auth, params, req, signal }) => {
37
+ const service = ctx.cfg.atmosphereExploreTabService;
38
+ if (!service)
39
+ throw new MethodNotImplementedError('Atmosphere Explore service not configured');
40
+ let body;
41
+ try {
42
+ const url = new URL(service);
43
+ if (params.countryCode !== undefined) {
44
+ url.searchParams.set('countryCode', params.countryCode);
45
+ }
46
+ if (params.regionCode !== undefined) {
47
+ url.searchParams.set('regionCode', params.regionCode);
48
+ }
49
+ const response = await fetchConfig(url, {
50
+ headers: { accept: 'application/json' },
51
+ redirect: 'error',
52
+ signal,
53
+ });
54
+ if (!response.ok) {
55
+ await response.body?.cancel();
56
+ throw new UpstreamFailureError(`Atmosphere Explore service returned HTTP ${response.status}`);
57
+ }
58
+ body = await response.json();
59
+ }
60
+ catch (err) {
61
+ if (err instanceof UpstreamFailureError)
62
+ throw err;
63
+ if (err instanceof Error &&
64
+ (err.name === 'TimeoutError' || err.name === 'AbortError')) {
65
+ throw new UpstreamTimeoutError('Atmosphere Explore request timed out');
66
+ }
67
+ throw new UpstreamFailureError('Unable to fetch Atmosphere Explore configuration');
68
+ }
69
+ const parsed = configSchema.safeParse(body);
70
+ if (!parsed.success)
71
+ throw new UpstreamFailureError('Invalid Atmosphere Explore configuration');
72
+ const config = parsed.value;
73
+ const groups = [
74
+ ...(config.articles ?? []),
75
+ ...(config.publications ?? []),
76
+ ...(config.photos ?? []),
77
+ ...(config.livestreams ?? []),
78
+ ];
79
+ if (groups.reduce((count, group) => count + group.uris.length, 0) >
80
+ MAX_ATMOSPHERE_RECORDS) {
81
+ throw new UpstreamFailureError('Atmosphere Explore configuration exceeds its record limit');
82
+ }
83
+ const articles = completeGroups(config.articles);
84
+ const publications = completeGroups(config.publications);
85
+ const photos = completeGroups(config.photos?.map((group) => ({
86
+ ...group,
87
+ // @NOTE Gallery membership comes from backlinks, not loose CMS photo URIs.
88
+ uris: mapDefined(group.uris, (input) => {
89
+ const uri = recordUri(input);
90
+ return uri &&
91
+ new AtUri(uri).collection === social.grain.gallery.$type
92
+ ? uri
93
+ : undefined;
94
+ }),
95
+ })));
96
+ const livestreams = completeGroups(config.livestreams);
97
+ const uris = [
98
+ ...new Set([...articles, ...publications, ...photos, ...livestreams].flatMap(({ uris }) => uris)),
99
+ ];
100
+ const hydrateCtx = await ctx.hydrator.createContext({
101
+ viewer: auth.credentials.iss,
102
+ labelers: ctx.reqLabelers(req),
103
+ });
104
+ const state = await hydrateAtmosphere(uris, hydrateCtx, ctx.hydrator);
105
+ const now = Date.now();
106
+ const result = {
107
+ announcementBanner: config.announcementBanner,
108
+ articles: mapDefined(articles, ({ featured, uris }) => {
109
+ const uri = articleUri(uris, state);
110
+ const view = uri
111
+ ? ctx.views.externalRecordView(uri, state, now)
112
+ : undefined;
113
+ return view && app.bsky.embed.external.viewArticle.$isTypeOf(view)
114
+ ? { featured, view }
115
+ : undefined;
116
+ }),
117
+ publications: mapDefined(publications, ({ featured, uris }) => {
118
+ const view = uris.length === 1
119
+ ? ctx.views.externalRecordView(uris[0], state, now)
120
+ : undefined;
121
+ return view &&
122
+ app.bsky.embed.external.viewArticlePublication.$isTypeOf(view)
123
+ ? { featured, view }
124
+ : undefined;
125
+ }),
126
+ photos: mapDefined(photos, ({ featured, uris }) => {
127
+ const view = uris.length === 1
128
+ ? ctx.views.externalRecordView(uris[0], state, now)
129
+ : undefined;
130
+ return view &&
131
+ app.bsky.embed.external.viewGallery.$isTypeOf(view) &&
132
+ view.items.length
133
+ ? { featured, view }
134
+ : undefined;
135
+ }),
136
+ livestreams: mapDefined(livestreams, ({ featured, uris }) => {
137
+ const view = uris.length === 1
138
+ ? ctx.views.externalRecordView(uris[0], state, now)
139
+ : undefined;
140
+ return view && app.bsky.embed.external.viewLivestream.$isTypeOf(view)
141
+ ? { featured, view }
142
+ : undefined;
143
+ }),
144
+ apps: config.apps ?? [],
145
+ };
146
+ return { encoding: 'application/json', body: result };
147
+ },
148
+ });
149
+ }
150
+ function completeGroups(groups = []) {
151
+ return mapDefined(groups, ({ featured, uris }) => {
152
+ const valid = mapDefined(uris, recordUri);
153
+ if (!valid.length || valid.length !== uris.length)
154
+ return;
155
+ return { featured, uris: valid };
156
+ });
157
+ }
158
+ async function hydrateAtmosphere(uris, ctx, hydrator) {
159
+ const records = await hydrateRecords(uris, hydrator);
160
+ const available = uris.filter((uri) => records.get(uri));
161
+ const counts = await hydrator.external.getAtmosphereBacklinkCounts(available);
162
+ const backlinks = new HydrationMap();
163
+ // @NOTE Bound fan-out as well as each backlink page; never scan a whole collection.
164
+ for (const batch of chunkArray(available, 8)) {
165
+ await Promise.all(batch.map(async (uri) => {
166
+ const collection = new AtUri(uri).collection;
167
+ const sources = [];
168
+ if (collection === site.standard.document.$type) {
169
+ sources.push({
170
+ collection: site.standard.graph.recommend.$type,
171
+ limit: MAX_PREVIEW_ACTORS,
172
+ });
173
+ }
174
+ else if (collection === site.standard.publication.$type) {
175
+ sources.push({
176
+ collection: site.standard.graph.subscription.$type,
177
+ limit: MAX_PREVIEW_ACTORS,
178
+ });
179
+ }
180
+ else if (collection === social.grain.gallery.$type) {
181
+ sources.push({
182
+ collection: social.grain.favorite.$type,
183
+ limit: MAX_PREVIEW_ACTORS,
184
+ }, {
185
+ collection: social.grain.gallery.item.$type,
186
+ limit: MAX_GALLERY_ITEMS,
187
+ });
188
+ }
189
+ const links = [];
190
+ for (const { collection, limit } of sources) {
191
+ const page = await hydrator.external.getAtmosphereBacklinks(uri, collection, { limit });
192
+ links.push(...mapDefined(page.backlinks.slice(0, limit), ({ uri: input }) => {
193
+ const uri = recordUri(input);
194
+ return uri && new AtUri(uri).collection === collection
195
+ ? uri
196
+ : undefined;
197
+ }));
198
+ }
199
+ backlinks.set(uri, [...new Set(links)]);
200
+ }));
201
+ }
202
+ records.merge(await hydrateRecords([...backlinks.values()].flatMap((uris) => uris ?? []), hydrator));
203
+ const photoUris = [];
204
+ for (const [galleryUri, links] of backlinks) {
205
+ if (new AtUri(galleryUri).collection !== social.grain.gallery.$type)
206
+ continue;
207
+ for (const uri of links ?? []) {
208
+ const item = social.grain.gallery.item.$ifMatches(records.get(uri)?.record);
209
+ if (!item ||
210
+ item.gallery !== galleryUri ||
211
+ uriToDid(uri) !== uriToDid(galleryUri))
212
+ continue;
213
+ const photoUri = recordUri(item.item);
214
+ if (photoUri &&
215
+ new AtUri(photoUri).collection === social.grain.photo.$type)
216
+ photoUris.push(photoUri);
217
+ }
218
+ }
219
+ records.merge(await hydrateRecords(photoUris, hydrator));
220
+ const allUris = [...records.keys()];
221
+ const dids = [...new Set(allUris.map(uriToDid))];
222
+ const states = [];
223
+ for (const batch of chunkArray(dids, 200)) {
224
+ states.push(await hydrator.hydrateProfilesBasic(batch, ctx));
225
+ }
226
+ for (const batch of chunkArray(allUris, MAX_ATMOSPHERE_RECORDS)) {
227
+ states.push({
228
+ labels: await hydrator.label.getLabelsForSubjects(batch, ctx.labelers),
229
+ });
230
+ }
231
+ return {
232
+ ...mergeManyStates(...states),
233
+ ctx,
234
+ externalRecords: records,
235
+ externalRecordBacklinks: backlinks,
236
+ externalRecordBacklinkCounts: counts,
237
+ };
238
+ }
239
+ async function hydrateRecords(uris, hydrator) {
240
+ const records = new HydrationMap();
241
+ for (const batch of chunkArray([...new Set(uris)], MAX_ATMOSPHERE_RECORDS)) {
242
+ records.merge(await hydrator.external.getRecordsByURI(batch));
243
+ }
244
+ return records;
245
+ }
246
+ // @NOTE A publication hydrated for another CMS group must not complete this article.
247
+ function articleUri(uris, state) {
248
+ const documents = uris.filter((uri) => new AtUri(uri).collection === site.standard.document.$type);
249
+ const publications = uris.filter((uri) => new AtUri(uri).collection === site.standard.publication.$type);
250
+ if (documents.length !== 1 ||
251
+ publications.length > 1 ||
252
+ documents.length + publications.length !== uris.length)
253
+ return;
254
+ const uri = documents[0];
255
+ const document = site.standard.document.$ifMatches(state.externalRecords?.get(uri)?.record);
256
+ if (!document)
257
+ return;
258
+ if (document.site.startsWith('at://')) {
259
+ if (document.site !== publications[0])
260
+ return;
261
+ }
262
+ else if (publications.length)
263
+ return;
264
+ return uri;
265
+ }
266
+ function recordUri(value) {
267
+ if (!l.isAtUriString(value))
268
+ return;
269
+ const uri = new AtUri(value);
270
+ return uri.collection && uri.rkey && l.isDidString(uri.hostname)
271
+ ? value
272
+ : undefined;
273
+ }
274
+ //# sourceMappingURL=getAtmosphereExploreTab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAtmosphereExploreTab.js","sourceRoot":"","sources":["../../../../../src/api/app/bsky/unspecced/getAtmosphereExploreTab.ts"],"names":[],"mappings":"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","sourcesContent":["import { chunkArray, mapDefined } from '@atproto/common'\nimport { type AtUriString, type NsidString, l } from '@atproto/lex'\nimport { AtUri } from '@atproto/syntax'\nimport {\n MethodNotImplementedError,\n type Server,\n UpstreamFailureError,\n UpstreamTimeoutError,\n} from '@atproto/xrpc-server'\nimport { safeFetchWrap } from '@atproto-labs/fetch-node'\nimport type { AppContext } from '../../../../context.js'\nimport type {\n ExternalRecordBacklinks,\n ExternalRecords,\n} from '../../../../hydration/external.js'\nimport {\n type HydrateCtx,\n type HydrationState,\n type Hydrator,\n mergeManyStates,\n} from '../../../../hydration/hydrator.js'\nimport { HydrationMap } from '../../../../hydration/util.js'\nimport { app, site, social } from '../../../../lexicons/index.js'\nimport { uriToDid } from '../../../../util/uris.js'\n\nconst MAX_CONFIG_BYTES = 512 * 1024\nconst MAX_ATMOSPHERE_RECORDS = 500\nconst MAX_GALLERY_ITEMS = 10\nconst MAX_PREVIEW_ACTORS = 3\n\nconst groupSchema = l.object({\n featured: l.boolean(),\n uris: l.array(l.unknown(), { maxLength: 100 }),\n})\nconst configSchema = l.object({\n announcementBanner: l.optional(\n app.bsky.unspecced.getAtmosphereExploreTab.announcementBanner,\n ),\n articles: l.optional(l.array(groupSchema, { maxLength: 100 })),\n publications: l.optional(l.array(groupSchema, { maxLength: 100 })),\n photos: l.optional(l.array(groupSchema, { maxLength: 100 })),\n livestreams: l.optional(l.array(groupSchema, { maxLength: 100 })),\n apps: l.optional(\n l.array(app.bsky.unspecced.getAtmosphereExploreTab.appCard, {\n maxLength: 100,\n }),\n ),\n})\ntype RecordGroup = { featured: boolean; uris: AtUriString[] }\n\nexport default function (server: Server, ctx: AppContext) {\n // @NOTE The wrapper caps decoded response bytes, including compressed bodies.\n const fetchConfig = safeFetchWrap({\n timeout: 5000,\n responseMaxSize: MAX_CONFIG_BYTES,\n })\n server.add(app.bsky.unspecced.getAtmosphereExploreTab, {\n auth: ctx.authVerifier.standardOptional,\n handler: async ({ auth, params, req, signal }) => {\n const service = ctx.cfg.atmosphereExploreTabService\n if (!service)\n throw new MethodNotImplementedError(\n 'Atmosphere Explore service not configured',\n )\n let body: unknown\n try {\n const url = new URL(service)\n if (params.countryCode !== undefined) {\n url.searchParams.set('countryCode', params.countryCode)\n }\n if (params.regionCode !== undefined) {\n url.searchParams.set('regionCode', params.regionCode)\n }\n const response = await fetchConfig(url, {\n headers: { accept: 'application/json' },\n redirect: 'error',\n signal,\n })\n if (!response.ok) {\n await response.body?.cancel()\n throw new UpstreamFailureError(\n `Atmosphere Explore service returned HTTP ${response.status}`,\n )\n }\n body = await response.json()\n } catch (err) {\n if (err instanceof UpstreamFailureError) throw err\n if (\n err instanceof Error &&\n (err.name === 'TimeoutError' || err.name === 'AbortError')\n ) {\n throw new UpstreamTimeoutError('Atmosphere Explore request timed out')\n }\n throw new UpstreamFailureError(\n 'Unable to fetch Atmosphere Explore configuration',\n )\n }\n const parsed = configSchema.safeParse(body)\n if (!parsed.success)\n throw new UpstreamFailureError(\n 'Invalid Atmosphere Explore configuration',\n )\n const config = parsed.value\n const groups = [\n ...(config.articles ?? []),\n ...(config.publications ?? []),\n ...(config.photos ?? []),\n ...(config.livestreams ?? []),\n ]\n if (\n groups.reduce((count, group) => count + group.uris.length, 0) >\n MAX_ATMOSPHERE_RECORDS\n ) {\n throw new UpstreamFailureError(\n 'Atmosphere Explore configuration exceeds its record limit',\n )\n }\n const articles = completeGroups(config.articles)\n const publications = completeGroups(config.publications)\n const photos = completeGroups(\n config.photos?.map((group) => ({\n ...group,\n // @NOTE Gallery membership comes from backlinks, not loose CMS photo URIs.\n uris: mapDefined(group.uris, (input) => {\n const uri = recordUri(input)\n return uri &&\n new AtUri(uri).collection === social.grain.gallery.$type\n ? uri\n : undefined\n }),\n })),\n )\n const livestreams = completeGroups(config.livestreams)\n const uris = [\n ...new Set(\n [...articles, ...publications, ...photos, ...livestreams].flatMap(\n ({ uris }) => uris,\n ),\n ),\n ]\n const hydrateCtx = await ctx.hydrator.createContext({\n viewer: auth.credentials.iss,\n labelers: ctx.reqLabelers(req),\n })\n const state = await hydrateAtmosphere(uris, hydrateCtx, ctx.hydrator)\n const now = Date.now()\n const result: app.bsky.unspecced.getAtmosphereExploreTab.$OutputBody = {\n announcementBanner: config.announcementBanner,\n articles: mapDefined(articles, ({ featured, uris }) => {\n const uri = articleUri(uris, state)\n const view = uri\n ? ctx.views.externalRecordView(uri, state, now)\n : undefined\n return view && app.bsky.embed.external.viewArticle.$isTypeOf(view)\n ? { featured, view }\n : undefined\n }),\n publications: mapDefined(publications, ({ featured, uris }) => {\n const view =\n uris.length === 1\n ? ctx.views.externalRecordView(uris[0], state, now)\n : undefined\n return view &&\n app.bsky.embed.external.viewArticlePublication.$isTypeOf(view)\n ? { featured, view }\n : undefined\n }),\n photos: mapDefined(photos, ({ featured, uris }) => {\n const view =\n uris.length === 1\n ? ctx.views.externalRecordView(uris[0], state, now)\n : undefined\n return view &&\n app.bsky.embed.external.viewGallery.$isTypeOf(view) &&\n view.items.length\n ? { featured, view }\n : undefined\n }),\n livestreams: mapDefined(livestreams, ({ featured, uris }) => {\n const view =\n uris.length === 1\n ? ctx.views.externalRecordView(uris[0], state, now)\n : undefined\n return view && app.bsky.embed.external.viewLivestream.$isTypeOf(view)\n ? { featured, view }\n : undefined\n }),\n apps: config.apps ?? [],\n }\n return { encoding: 'application/json', body: result }\n },\n })\n}\n\nfunction completeGroups(\n groups: l.Infer<typeof groupSchema>[] = [],\n): RecordGroup[] {\n return mapDefined(groups, ({ featured, uris }) => {\n const valid = mapDefined(uris, recordUri)\n if (!valid.length || valid.length !== uris.length) return\n return { featured, uris: valid }\n })\n}\n\nasync function hydrateAtmosphere(\n uris: AtUriString[],\n ctx: HydrateCtx,\n hydrator: Hydrator,\n): Promise<HydrationState> {\n const records = await hydrateRecords(uris, hydrator)\n const available = uris.filter((uri) => records.get(uri))\n const counts = await hydrator.external.getAtmosphereBacklinkCounts(available)\n const backlinks: ExternalRecordBacklinks = new HydrationMap()\n\n // @NOTE Bound fan-out as well as each backlink page; never scan a whole collection.\n for (const batch of chunkArray(available, 8)) {\n await Promise.all(\n batch.map(async (uri) => {\n const collection = new AtUri(uri).collection\n const sources: { collection: NsidString; limit: number }[] = []\n if (collection === site.standard.document.$type) {\n sources.push({\n collection: site.standard.graph.recommend.$type,\n limit: MAX_PREVIEW_ACTORS,\n })\n } else if (collection === site.standard.publication.$type) {\n sources.push({\n collection: site.standard.graph.subscription.$type,\n limit: MAX_PREVIEW_ACTORS,\n })\n } else if (collection === social.grain.gallery.$type) {\n sources.push(\n {\n collection: social.grain.favorite.$type,\n limit: MAX_PREVIEW_ACTORS,\n },\n {\n collection: social.grain.gallery.item.$type,\n limit: MAX_GALLERY_ITEMS,\n },\n )\n }\n const links: AtUriString[] = []\n for (const { collection, limit } of sources) {\n const page = await hydrator.external.getAtmosphereBacklinks(\n uri,\n collection,\n { limit },\n )\n links.push(\n ...mapDefined(page.backlinks.slice(0, limit), ({ uri: input }) => {\n const uri = recordUri(input)\n return uri && new AtUri(uri).collection === collection\n ? uri\n : undefined\n }),\n )\n }\n backlinks.set(uri, [...new Set(links)])\n }),\n )\n }\n records.merge(\n await hydrateRecords(\n [...backlinks.values()].flatMap((uris) => uris ?? []),\n hydrator,\n ),\n )\n\n const photoUris: AtUriString[] = []\n for (const [galleryUri, links] of backlinks) {\n if (new AtUri(galleryUri).collection !== social.grain.gallery.$type)\n continue\n for (const uri of links ?? []) {\n const item = social.grain.gallery.item.$ifMatches(\n records.get(uri)?.record,\n )\n if (\n !item ||\n item.gallery !== galleryUri ||\n uriToDid(uri) !== uriToDid(galleryUri)\n )\n continue\n const photoUri = recordUri(item.item)\n if (\n photoUri &&\n new AtUri(photoUri).collection === social.grain.photo.$type\n )\n photoUris.push(photoUri)\n }\n }\n records.merge(await hydrateRecords(photoUris, hydrator))\n\n const allUris = [...records.keys()]\n const dids = [...new Set(allUris.map(uriToDid))]\n const states: HydrationState[] = []\n for (const batch of chunkArray(dids, 200)) {\n states.push(await hydrator.hydrateProfilesBasic(batch, ctx))\n }\n for (const batch of chunkArray(allUris, MAX_ATMOSPHERE_RECORDS)) {\n states.push({\n labels: await hydrator.label.getLabelsForSubjects(batch, ctx.labelers),\n })\n }\n return {\n ...mergeManyStates(...states),\n ctx,\n externalRecords: records,\n externalRecordBacklinks: backlinks,\n externalRecordBacklinkCounts: counts,\n }\n}\n\nasync function hydrateRecords(\n uris: AtUriString[],\n hydrator: Hydrator,\n): Promise<ExternalRecords> {\n const records: ExternalRecords = new HydrationMap()\n for (const batch of chunkArray([...new Set(uris)], MAX_ATMOSPHERE_RECORDS)) {\n records.merge(await hydrator.external.getRecordsByURI(batch))\n }\n return records\n}\n\n// @NOTE A publication hydrated for another CMS group must not complete this article.\nfunction articleUri(\n uris: AtUriString[],\n state: HydrationState,\n): AtUriString | undefined {\n const documents = uris.filter(\n (uri) => new AtUri(uri).collection === site.standard.document.$type,\n )\n const publications = uris.filter(\n (uri) => new AtUri(uri).collection === site.standard.publication.$type,\n )\n if (\n documents.length !== 1 ||\n publications.length > 1 ||\n documents.length + publications.length !== uris.length\n )\n return\n const uri = documents[0]\n const document = site.standard.document.$ifMatches(\n state.externalRecords?.get(uri)?.record,\n )\n if (!document) return\n if (document.site.startsWith('at://')) {\n if (document.site !== publications[0]) return\n } else if (publications.length) return\n return uri\n}\n\nfunction recordUri(value: unknown): AtUriString | undefined {\n if (!l.isAtUriString(value)) return\n const uri = new AtUri(value)\n return uri.collection && uri.rkey && l.isDidString(uri.hostname)\n ? value\n : undefined\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAuG/C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAA;AAE5C,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAA;AAElD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC,MAAM,CAAC,OAAO,WAAW,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,QAyGvD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAwG/C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAA;AAE5C,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAA;AAElD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC,MAAM,CAAC,OAAO,WAAW,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,QA0GvD"}
package/dist/api/index.js CHANGED
@@ -75,6 +75,7 @@ import registerPush from './app/bsky/notification/registerPush.js';
75
75
  import unregisterPush from './app/bsky/notification/unregisterPush.js';
76
76
  import updateSeen from './app/bsky/notification/updateSeen.js';
77
77
  import getAgeAssuranceState from './app/bsky/unspecced/getAgeAssuranceState.js';
78
+ import getAtmosphereExploreTab from './app/bsky/unspecced/getAtmosphereExploreTab.js';
78
79
  import getConfig from './app/bsky/unspecced/getConfig.js';
79
80
  import getOnboardingSuggestedStarterPacks from './app/bsky/unspecced/getOnboardingSuggestedStarterPacks.js';
80
81
  import getPopularFeedGenerators from './app/bsky/unspecced/getPopularFeedGenerators.js';
@@ -191,6 +192,7 @@ export default function (server, ctx) {
191
192
  putPreferencesV2(server, ctx);
192
193
  registerPush(server, ctx);
193
194
  unregisterPush(server, ctx);
195
+ getAtmosphereExploreTab(server, ctx);
194
196
  getConfig(server, ctx);
195
197
  getPopularFeedGenerators(server, ctx);
196
198
  getTaggedSuggestions(server, ctx);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Server } from '@atproto/xrpc-server'\nimport type { AppContext } from '../context.js'\nimport getProfile from './app/bsky/actor/getProfile.js'\nimport getProfiles from './app/bsky/actor/getProfiles.js'\nimport getSuggestions from './app/bsky/actor/getSuggestions.js'\nimport searchActors from './app/bsky/actor/searchActors.js'\nimport searchActorsTypeahead from './app/bsky/actor/searchActorsTypeahead.js'\nimport aaBegin from './app/bsky/ageassurance/begin.js'\nimport aaGetConfig from './app/bsky/ageassurance/getConfig.js'\nimport aaGetState from './app/bsky/ageassurance/getState.js'\nimport createBookmark from './app/bsky/bookmark/createBookmark.js'\nimport deleteBookmark from './app/bsky/bookmark/deleteBookmark.js'\nimport getBookmarks from './app/bsky/bookmark/getBookmarks.js'\nimport dismissMatch from './app/bsky/contact/dismissMatch.js'\nimport getMatches from './app/bsky/contact/getMatches.js'\nimport getSyncStatus from './app/bsky/contact/getSyncStatus.js'\nimport importContacts from './app/bsky/contact/importContacts.js'\nimport removeData from './app/bsky/contact/removeData.js'\nimport sendNotification from './app/bsky/contact/sendNotification.js'\nimport startPhoneVerification from './app/bsky/contact/startPhoneVerification.js'\nimport verifyPhone from './app/bsky/contact/verifyPhone.js'\nimport createDraft from './app/bsky/draft/createDraft.js'\nimport deleteDraft from './app/bsky/draft/deleteDraft.js'\nimport getDrafts from './app/bsky/draft/getDrafts.js'\nimport updateDraft from './app/bsky/draft/updateDraft.js'\nimport getEmbedExternalView from './app/bsky/embed/getEmbedExternalView.js'\nimport getActorFeeds from './app/bsky/feed/getActorFeeds.js'\nimport getActorLikes from './app/bsky/feed/getActorLikes.js'\nimport getAuthorFeed from './app/bsky/feed/getAuthorFeed.js'\nimport getFeed from './app/bsky/feed/getFeed.js'\nimport getFeedGenerator from './app/bsky/feed/getFeedGenerator.js'\nimport getFeedGenerators from './app/bsky/feed/getFeedGenerators.js'\nimport getLikes from './app/bsky/feed/getLikes.js'\nimport getListFeed from './app/bsky/feed/getListFeed.js'\nimport getPostThread from './app/bsky/feed/getPostThread.js'\nimport getPosts from './app/bsky/feed/getPosts.js'\nimport getQuotes from './app/bsky/feed/getQuotes.js'\nimport getRepostedBy from './app/bsky/feed/getRepostedBy.js'\nimport getSuggestedFeeds from './app/bsky/feed/getSuggestedFeeds.js'\nimport getTimeline from './app/bsky/feed/getTimeline.js'\nimport searchPosts from './app/bsky/feed/searchPosts.js'\nimport searchPostsV2 from './app/bsky/feed/searchPostsV2.js'\nimport getActorStarterPacks from './app/bsky/graph/getActorStarterPacks.js'\nimport getBlocks from './app/bsky/graph/getBlocks.js'\nimport getFollowers from './app/bsky/graph/getFollowers.js'\nimport getFollows from './app/bsky/graph/getFollows.js'\nimport getKnownFollowers from './app/bsky/graph/getKnownFollowers.js'\nimport getList from './app/bsky/graph/getList.js'\nimport getListBlocks from './app/bsky/graph/getListBlocks.js'\nimport getListMutes from './app/bsky/graph/getListMutes.js'\nimport getLists from './app/bsky/graph/getLists.js'\nimport getListsWithMembership from './app/bsky/graph/getListsWithMembership.js'\nimport getMutes from './app/bsky/graph/getMutes.js'\nimport getRelationships from './app/bsky/graph/getRelationships.js'\nimport getStarterPack from './app/bsky/graph/getStarterPack.js'\nimport getStarterPacks from './app/bsky/graph/getStarterPacks.js'\nimport getStarterPacksWithMembership from './app/bsky/graph/getStarterPacksWithMembership.js'\nimport getSuggestedFollowsByActor from './app/bsky/graph/getSuggestedFollowsByActor.js'\nimport muteActor from './app/bsky/graph/muteActor.js'\nimport muteActorList from './app/bsky/graph/muteActorList.js'\nimport muteThread from './app/bsky/graph/muteThread.js'\nimport searchStarterPacks from './app/bsky/graph/searchStarterPacks.js'\nimport searchStarterPacksV2 from './app/bsky/graph/searchStarterPacksV2.js'\nimport unmuteActor from './app/bsky/graph/unmuteActor.js'\nimport unmuteActorList from './app/bsky/graph/unmuteActorList.js'\nimport unmuteThread from './app/bsky/graph/unmuteThread.js'\nimport getLabelerServices from './app/bsky/labeler/getServices.js'\nimport getGroupedNotifications from './app/bsky/notification/getGroupedNotifications.js'\nimport getPreferences from './app/bsky/notification/getPreferences.js'\nimport getUnreadCount from './app/bsky/notification/getUnreadCount.js'\nimport listActivitySubscriptions from './app/bsky/notification/listActivitySubscriptions.js'\nimport listNotifications from './app/bsky/notification/listNotifications.js'\nimport putActivitySubscription from './app/bsky/notification/putActivitySubscription.js'\nimport putPreferences from './app/bsky/notification/putPreferences.js'\nimport putPreferencesV2 from './app/bsky/notification/putPreferencesV2.js'\nimport registerPush from './app/bsky/notification/registerPush.js'\nimport unregisterPush from './app/bsky/notification/unregisterPush.js'\nimport updateSeen from './app/bsky/notification/updateSeen.js'\nimport getAgeAssuranceState from './app/bsky/unspecced/getAgeAssuranceState.js'\nimport getConfig from './app/bsky/unspecced/getConfig.js'\nimport getOnboardingSuggestedStarterPacks from './app/bsky/unspecced/getOnboardingSuggestedStarterPacks.js'\nimport getPopularFeedGenerators from './app/bsky/unspecced/getPopularFeedGenerators.js'\nimport getPostThreadOtherV2 from './app/bsky/unspecced/getPostThreadOtherV2.js'\nimport getPostThreadV2 from './app/bsky/unspecced/getPostThreadV2.js'\nimport getUnspeccedSuggestedFeeds from './app/bsky/unspecced/getSuggestedFeeds.js'\nimport getSuggestedOnboardingUsers from './app/bsky/unspecced/getSuggestedOnboardingUsers.js'\nimport getSuggestedStarterPacks from './app/bsky/unspecced/getSuggestedStarterPacks.js'\nimport getSuggestedUsers from './app/bsky/unspecced/getSuggestedUsers.js'\nimport getSuggestedUsersForDiscover from './app/bsky/unspecced/getSuggestedUsersForDiscover.js'\nimport getSuggestedUsersForExplore from './app/bsky/unspecced/getSuggestedUsersForExplore.js'\nimport getSuggestedUsersForSeeMore from './app/bsky/unspecced/getSuggestedUsersForSeeMore.js'\nimport getTaggedSuggestions from './app/bsky/unspecced/getTaggedSuggestions.js'\nimport getTrendingTopics from './app/bsky/unspecced/getTrendingTopics.js'\nimport getTrends from './app/bsky/unspecced/getTrends.js'\nimport initAgeAssurance from './app/bsky/unspecced/initAgeAssurance.js'\nimport getAccountInfos from './com/atproto/admin/getAccountInfos.js'\nimport getSubjectStatus from './com/atproto/admin/getSubjectStatus.js'\nimport updateSubjectStatus from './com/atproto/admin/updateSubjectStatus.js'\nimport resolveHandle from './com/atproto/identity/resolveHandle.js'\nimport queryLabels from './com/atproto/label/queryLabels.js'\nimport getRecord from './com/atproto/repo/getRecord.js'\nimport fetchLabels from './com/atproto/temp/fetchLabels.js'\nimport internalGetProfiles from './internal/bsky/actor/getProfiles.js'\n\nexport * as health from './health.js'\n\nexport * as wellKnown from './well-known.js'\n\nexport * as blobResolver from './blob-resolver.js'\n\nexport * as external from './external.js'\n\nexport * as sitemap from './sitemap.js'\n\nexport default function (server: Server, ctx: AppContext) {\n // app.bsky\n getTimeline(server, ctx)\n createBookmark(server, ctx)\n deleteBookmark(server, ctx)\n getBookmarks(server, ctx)\n createDraft(server, ctx)\n deleteDraft(server, ctx)\n getDrafts(server, ctx)\n updateDraft(server, ctx)\n getEmbedExternalView(server, ctx)\n dismissMatch(server, ctx)\n getMatches(server, ctx)\n getSyncStatus(server, ctx)\n importContacts(server, ctx)\n removeData(server, ctx)\n sendNotification(server, ctx)\n startPhoneVerification(server, ctx)\n verifyPhone(server, ctx)\n getActorFeeds(server, ctx)\n getSuggestedFeeds(server, ctx)\n getAuthorFeed(server, ctx)\n getFeed(server, ctx)\n getFeedGenerator(server, ctx)\n getFeedGenerators(server, ctx)\n getLikes(server, ctx)\n getListFeed(server, ctx)\n getQuotes(server, ctx)\n getPostThread(server, ctx)\n getPostThreadOtherV2(server, ctx)\n getPostThreadV2(server, ctx)\n getPosts(server, ctx)\n searchPosts(server, ctx)\n searchPostsV2(server, ctx)\n getActorLikes(server, ctx)\n getProfile(server, ctx)\n getProfiles(server, ctx)\n getRepostedBy(server, ctx)\n getActorStarterPacks(server, ctx)\n getBlocks(server, ctx)\n getListBlocks(server, ctx)\n getFollowers(server, ctx)\n getKnownFollowers(server, ctx)\n getFollows(server, ctx)\n getList(server, ctx)\n getLists(server, ctx)\n getListsWithMembership(server, ctx)\n getListMutes(server, ctx)\n getMutes(server, ctx)\n getRelationships(server, ctx)\n getStarterPack(server, ctx)\n getStarterPacks(server, ctx)\n getStarterPacksWithMembership(server, ctx)\n searchStarterPacks(server, ctx)\n searchStarterPacksV2(server, ctx)\n muteActor(server, ctx)\n unmuteActor(server, ctx)\n muteActorList(server, ctx)\n unmuteActorList(server, ctx)\n muteThread(server, ctx)\n unmuteThread(server, ctx)\n getSuggestedFollowsByActor(server, ctx)\n getTrendingTopics(server, ctx)\n getTrends(server, ctx)\n getOnboardingSuggestedStarterPacks(server, ctx)\n getSuggestedOnboardingUsers(server, ctx)\n getSuggestedStarterPacks(server, ctx)\n getSuggestedUsers(server, ctx)\n getSuggestedUsersForDiscover(server, ctx)\n getSuggestedUsersForExplore(server, ctx)\n getSuggestedUsersForSeeMore(server, ctx)\n getUnspeccedSuggestedFeeds(server, ctx)\n getLabelerServices(server, ctx)\n searchActors(server, ctx)\n searchActorsTypeahead(server, ctx)\n getSuggestions(server, ctx)\n getPreferences(server, ctx)\n getUnreadCount(server, ctx)\n listActivitySubscriptions(server, ctx)\n listNotifications(server, ctx)\n getGroupedNotifications(server, ctx)\n putActivitySubscription(server, ctx)\n updateSeen(server, ctx)\n putPreferences(server, ctx)\n putPreferencesV2(server, ctx)\n registerPush(server, ctx)\n unregisterPush(server, ctx)\n getConfig(server, ctx)\n getPopularFeedGenerators(server, ctx)\n getTaggedSuggestions(server, ctx)\n getAgeAssuranceState(server, ctx)\n initAgeAssurance(server, ctx)\n aaGetConfig(server, ctx)\n aaGetState(server, ctx)\n aaBegin(server, ctx)\n // com.atproto\n getSubjectStatus(server, ctx)\n updateSubjectStatus(server, ctx)\n getAccountInfos(server, ctx)\n resolveHandle(server, ctx)\n getRecord(server, ctx)\n fetchLabels(server, ctx)\n queryLabels(server, ctx)\n // internal.bsky\n internalGetProfiles(server, ctx)\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Server } from '@atproto/xrpc-server'\nimport type { AppContext } from '../context.js'\nimport getProfile from './app/bsky/actor/getProfile.js'\nimport getProfiles from './app/bsky/actor/getProfiles.js'\nimport getSuggestions from './app/bsky/actor/getSuggestions.js'\nimport searchActors from './app/bsky/actor/searchActors.js'\nimport searchActorsTypeahead from './app/bsky/actor/searchActorsTypeahead.js'\nimport aaBegin from './app/bsky/ageassurance/begin.js'\nimport aaGetConfig from './app/bsky/ageassurance/getConfig.js'\nimport aaGetState from './app/bsky/ageassurance/getState.js'\nimport createBookmark from './app/bsky/bookmark/createBookmark.js'\nimport deleteBookmark from './app/bsky/bookmark/deleteBookmark.js'\nimport getBookmarks from './app/bsky/bookmark/getBookmarks.js'\nimport dismissMatch from './app/bsky/contact/dismissMatch.js'\nimport getMatches from './app/bsky/contact/getMatches.js'\nimport getSyncStatus from './app/bsky/contact/getSyncStatus.js'\nimport importContacts from './app/bsky/contact/importContacts.js'\nimport removeData from './app/bsky/contact/removeData.js'\nimport sendNotification from './app/bsky/contact/sendNotification.js'\nimport startPhoneVerification from './app/bsky/contact/startPhoneVerification.js'\nimport verifyPhone from './app/bsky/contact/verifyPhone.js'\nimport createDraft from './app/bsky/draft/createDraft.js'\nimport deleteDraft from './app/bsky/draft/deleteDraft.js'\nimport getDrafts from './app/bsky/draft/getDrafts.js'\nimport updateDraft from './app/bsky/draft/updateDraft.js'\nimport getEmbedExternalView from './app/bsky/embed/getEmbedExternalView.js'\nimport getActorFeeds from './app/bsky/feed/getActorFeeds.js'\nimport getActorLikes from './app/bsky/feed/getActorLikes.js'\nimport getAuthorFeed from './app/bsky/feed/getAuthorFeed.js'\nimport getFeed from './app/bsky/feed/getFeed.js'\nimport getFeedGenerator from './app/bsky/feed/getFeedGenerator.js'\nimport getFeedGenerators from './app/bsky/feed/getFeedGenerators.js'\nimport getLikes from './app/bsky/feed/getLikes.js'\nimport getListFeed from './app/bsky/feed/getListFeed.js'\nimport getPostThread from './app/bsky/feed/getPostThread.js'\nimport getPosts from './app/bsky/feed/getPosts.js'\nimport getQuotes from './app/bsky/feed/getQuotes.js'\nimport getRepostedBy from './app/bsky/feed/getRepostedBy.js'\nimport getSuggestedFeeds from './app/bsky/feed/getSuggestedFeeds.js'\nimport getTimeline from './app/bsky/feed/getTimeline.js'\nimport searchPosts from './app/bsky/feed/searchPosts.js'\nimport searchPostsV2 from './app/bsky/feed/searchPostsV2.js'\nimport getActorStarterPacks from './app/bsky/graph/getActorStarterPacks.js'\nimport getBlocks from './app/bsky/graph/getBlocks.js'\nimport getFollowers from './app/bsky/graph/getFollowers.js'\nimport getFollows from './app/bsky/graph/getFollows.js'\nimport getKnownFollowers from './app/bsky/graph/getKnownFollowers.js'\nimport getList from './app/bsky/graph/getList.js'\nimport getListBlocks from './app/bsky/graph/getListBlocks.js'\nimport getListMutes from './app/bsky/graph/getListMutes.js'\nimport getLists from './app/bsky/graph/getLists.js'\nimport getListsWithMembership from './app/bsky/graph/getListsWithMembership.js'\nimport getMutes from './app/bsky/graph/getMutes.js'\nimport getRelationships from './app/bsky/graph/getRelationships.js'\nimport getStarterPack from './app/bsky/graph/getStarterPack.js'\nimport getStarterPacks from './app/bsky/graph/getStarterPacks.js'\nimport getStarterPacksWithMembership from './app/bsky/graph/getStarterPacksWithMembership.js'\nimport getSuggestedFollowsByActor from './app/bsky/graph/getSuggestedFollowsByActor.js'\nimport muteActor from './app/bsky/graph/muteActor.js'\nimport muteActorList from './app/bsky/graph/muteActorList.js'\nimport muteThread from './app/bsky/graph/muteThread.js'\nimport searchStarterPacks from './app/bsky/graph/searchStarterPacks.js'\nimport searchStarterPacksV2 from './app/bsky/graph/searchStarterPacksV2.js'\nimport unmuteActor from './app/bsky/graph/unmuteActor.js'\nimport unmuteActorList from './app/bsky/graph/unmuteActorList.js'\nimport unmuteThread from './app/bsky/graph/unmuteThread.js'\nimport getLabelerServices from './app/bsky/labeler/getServices.js'\nimport getGroupedNotifications from './app/bsky/notification/getGroupedNotifications.js'\nimport getPreferences from './app/bsky/notification/getPreferences.js'\nimport getUnreadCount from './app/bsky/notification/getUnreadCount.js'\nimport listActivitySubscriptions from './app/bsky/notification/listActivitySubscriptions.js'\nimport listNotifications from './app/bsky/notification/listNotifications.js'\nimport putActivitySubscription from './app/bsky/notification/putActivitySubscription.js'\nimport putPreferences from './app/bsky/notification/putPreferences.js'\nimport putPreferencesV2 from './app/bsky/notification/putPreferencesV2.js'\nimport registerPush from './app/bsky/notification/registerPush.js'\nimport unregisterPush from './app/bsky/notification/unregisterPush.js'\nimport updateSeen from './app/bsky/notification/updateSeen.js'\nimport getAgeAssuranceState from './app/bsky/unspecced/getAgeAssuranceState.js'\nimport getAtmosphereExploreTab from './app/bsky/unspecced/getAtmosphereExploreTab.js'\nimport getConfig from './app/bsky/unspecced/getConfig.js'\nimport getOnboardingSuggestedStarterPacks from './app/bsky/unspecced/getOnboardingSuggestedStarterPacks.js'\nimport getPopularFeedGenerators from './app/bsky/unspecced/getPopularFeedGenerators.js'\nimport getPostThreadOtherV2 from './app/bsky/unspecced/getPostThreadOtherV2.js'\nimport getPostThreadV2 from './app/bsky/unspecced/getPostThreadV2.js'\nimport getUnspeccedSuggestedFeeds from './app/bsky/unspecced/getSuggestedFeeds.js'\nimport getSuggestedOnboardingUsers from './app/bsky/unspecced/getSuggestedOnboardingUsers.js'\nimport getSuggestedStarterPacks from './app/bsky/unspecced/getSuggestedStarterPacks.js'\nimport getSuggestedUsers from './app/bsky/unspecced/getSuggestedUsers.js'\nimport getSuggestedUsersForDiscover from './app/bsky/unspecced/getSuggestedUsersForDiscover.js'\nimport getSuggestedUsersForExplore from './app/bsky/unspecced/getSuggestedUsersForExplore.js'\nimport getSuggestedUsersForSeeMore from './app/bsky/unspecced/getSuggestedUsersForSeeMore.js'\nimport getTaggedSuggestions from './app/bsky/unspecced/getTaggedSuggestions.js'\nimport getTrendingTopics from './app/bsky/unspecced/getTrendingTopics.js'\nimport getTrends from './app/bsky/unspecced/getTrends.js'\nimport initAgeAssurance from './app/bsky/unspecced/initAgeAssurance.js'\nimport getAccountInfos from './com/atproto/admin/getAccountInfos.js'\nimport getSubjectStatus from './com/atproto/admin/getSubjectStatus.js'\nimport updateSubjectStatus from './com/atproto/admin/updateSubjectStatus.js'\nimport resolveHandle from './com/atproto/identity/resolveHandle.js'\nimport queryLabels from './com/atproto/label/queryLabels.js'\nimport getRecord from './com/atproto/repo/getRecord.js'\nimport fetchLabels from './com/atproto/temp/fetchLabels.js'\nimport internalGetProfiles from './internal/bsky/actor/getProfiles.js'\n\nexport * as health from './health.js'\n\nexport * as wellKnown from './well-known.js'\n\nexport * as blobResolver from './blob-resolver.js'\n\nexport * as external from './external.js'\n\nexport * as sitemap from './sitemap.js'\n\nexport default function (server: Server, ctx: AppContext) {\n // app.bsky\n getTimeline(server, ctx)\n createBookmark(server, ctx)\n deleteBookmark(server, ctx)\n getBookmarks(server, ctx)\n createDraft(server, ctx)\n deleteDraft(server, ctx)\n getDrafts(server, ctx)\n updateDraft(server, ctx)\n getEmbedExternalView(server, ctx)\n dismissMatch(server, ctx)\n getMatches(server, ctx)\n getSyncStatus(server, ctx)\n importContacts(server, ctx)\n removeData(server, ctx)\n sendNotification(server, ctx)\n startPhoneVerification(server, ctx)\n verifyPhone(server, ctx)\n getActorFeeds(server, ctx)\n getSuggestedFeeds(server, ctx)\n getAuthorFeed(server, ctx)\n getFeed(server, ctx)\n getFeedGenerator(server, ctx)\n getFeedGenerators(server, ctx)\n getLikes(server, ctx)\n getListFeed(server, ctx)\n getQuotes(server, ctx)\n getPostThread(server, ctx)\n getPostThreadOtherV2(server, ctx)\n getPostThreadV2(server, ctx)\n getPosts(server, ctx)\n searchPosts(server, ctx)\n searchPostsV2(server, ctx)\n getActorLikes(server, ctx)\n getProfile(server, ctx)\n getProfiles(server, ctx)\n getRepostedBy(server, ctx)\n getActorStarterPacks(server, ctx)\n getBlocks(server, ctx)\n getListBlocks(server, ctx)\n getFollowers(server, ctx)\n getKnownFollowers(server, ctx)\n getFollows(server, ctx)\n getList(server, ctx)\n getLists(server, ctx)\n getListsWithMembership(server, ctx)\n getListMutes(server, ctx)\n getMutes(server, ctx)\n getRelationships(server, ctx)\n getStarterPack(server, ctx)\n getStarterPacks(server, ctx)\n getStarterPacksWithMembership(server, ctx)\n searchStarterPacks(server, ctx)\n searchStarterPacksV2(server, ctx)\n muteActor(server, ctx)\n unmuteActor(server, ctx)\n muteActorList(server, ctx)\n unmuteActorList(server, ctx)\n muteThread(server, ctx)\n unmuteThread(server, ctx)\n getSuggestedFollowsByActor(server, ctx)\n getTrendingTopics(server, ctx)\n getTrends(server, ctx)\n getOnboardingSuggestedStarterPacks(server, ctx)\n getSuggestedOnboardingUsers(server, ctx)\n getSuggestedStarterPacks(server, ctx)\n getSuggestedUsers(server, ctx)\n getSuggestedUsersForDiscover(server, ctx)\n getSuggestedUsersForExplore(server, ctx)\n getSuggestedUsersForSeeMore(server, ctx)\n getUnspeccedSuggestedFeeds(server, ctx)\n getLabelerServices(server, ctx)\n searchActors(server, ctx)\n searchActorsTypeahead(server, ctx)\n getSuggestions(server, ctx)\n getPreferences(server, ctx)\n getUnreadCount(server, ctx)\n listActivitySubscriptions(server, ctx)\n listNotifications(server, ctx)\n getGroupedNotifications(server, ctx)\n putActivitySubscription(server, ctx)\n updateSeen(server, ctx)\n putPreferences(server, ctx)\n putPreferencesV2(server, ctx)\n registerPush(server, ctx)\n unregisterPush(server, ctx)\n getAtmosphereExploreTab(server, ctx)\n getConfig(server, ctx)\n getPopularFeedGenerators(server, ctx)\n getTaggedSuggestions(server, ctx)\n getAgeAssuranceState(server, ctx)\n initAgeAssurance(server, ctx)\n aaGetConfig(server, ctx)\n aaGetState(server, ctx)\n aaBegin(server, ctx)\n // com.atproto\n getSubjectStatus(server, ctx)\n updateSubjectStatus(server, ctx)\n getAccountInfos(server, ctx)\n resolveHandle(server, ctx)\n getRecord(server, ctx)\n fetchLabels(server, ctx)\n queryLabels(server, ctx)\n // internal.bsky\n internalGetProfiles(server, ctx)\n}\n"]}
package/dist/config.d.ts CHANGED
@@ -59,6 +59,7 @@ export interface ServerConfigValues {
59
59
  searchTagsHideAll: Set<string>;
60
60
  suggestionsUrl?: string;
61
61
  suggestionsApiKey?: string;
62
+ atmosphereExploreTabService?: string;
62
63
  topicsUrl?: string;
63
64
  topicsApiKey?: string;
64
65
  irisUrl?: string;
@@ -148,6 +149,7 @@ export declare class ServerConfig {
148
149
  get searchTagsHideAll(): Set<string>;
149
150
  get suggestionsUrl(): string | undefined;
150
151
  get suggestionsApiKey(): string | undefined;
152
+ get atmosphereExploreTabService(): string | undefined;
151
153
  get topicsUrl(): string | undefined;
152
154
  get topicsApiKey(): string | undefined;
153
155
  get irisUrl(): string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -51,6 +51,7 @@ export class ServerConfig {
51
51
  const searchTagsHideAll = new Set(envList(process.env.BSKY_SEARCH_TAGS_HIDE_ALL));
52
52
  const suggestionsUrl = process.env.BSKY_SUGGESTIONS_URL || undefined;
53
53
  const suggestionsApiKey = process.env.BSKY_SUGGESTIONS_API_KEY || undefined;
54
+ const atmosphereExploreTabService = process.env.BSKY_ATMOSPHERE_EXPLORE_TAB_SERVICE || undefined;
54
55
  const topicsUrl = process.env.BSKY_TOPICS_URL || undefined;
55
56
  const topicsApiKey = process.env.BSKY_TOPICS_API_KEY;
56
57
  const irisUrl = process.env.BSKY_IRIS_URL || undefined;
@@ -211,6 +212,7 @@ export class ServerConfig {
211
212
  searchTagsHideAll,
212
213
  suggestionsUrl,
213
214
  suggestionsApiKey,
215
+ atmosphereExploreTabService,
214
216
  topicsUrl,
215
217
  topicsApiKey,
216
218
  irisUrl,
@@ -372,6 +374,9 @@ export class ServerConfig {
372
374
  get suggestionsApiKey() {
373
375
  return this.cfg.suggestionsApiKey;
374
376
  }
377
+ get atmosphereExploreTabService() {
378
+ return this.cfg.atmosphereExploreTabService;
379
+ }
375
380
  get topicsUrl() {
376
381
  return this.cfg.topicsUrl;
377
382
  }