@commonpub/server 0.4.4 → 0.7.0

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 (43) hide show
  1. package/dist/federation/delivery.d.ts.map +1 -1
  2. package/dist/federation/delivery.js +136 -20
  3. package/dist/federation/delivery.js.map +1 -1
  4. package/dist/federation/federation.d.ts +41 -0
  5. package/dist/federation/federation.d.ts.map +1 -1
  6. package/dist/federation/federation.js +248 -20
  7. package/dist/federation/federation.js.map +1 -1
  8. package/dist/federation/hubFederation.d.ts +38 -0
  9. package/dist/federation/hubFederation.d.ts.map +1 -0
  10. package/dist/federation/hubFederation.js +212 -0
  11. package/dist/federation/hubFederation.js.map +1 -0
  12. package/dist/federation/inboxHandlers.d.ts.map +1 -1
  13. package/dist/federation/inboxHandlers.js +260 -49
  14. package/dist/federation/inboxHandlers.js.map +1 -1
  15. package/dist/federation/index.d.ts +5 -1
  16. package/dist/federation/index.d.ts.map +1 -1
  17. package/dist/federation/index.js +5 -1
  18. package/dist/federation/index.js.map +1 -1
  19. package/dist/federation/mirroring.d.ts +65 -0
  20. package/dist/federation/mirroring.d.ts.map +1 -0
  21. package/dist/federation/mirroring.js +151 -0
  22. package/dist/federation/mirroring.js.map +1 -0
  23. package/dist/federation/oauth.d.ts +115 -0
  24. package/dist/federation/oauth.d.ts.map +1 -0
  25. package/dist/federation/oauth.js +277 -0
  26. package/dist/federation/oauth.js.map +1 -0
  27. package/dist/federation/timeline.d.ts +89 -0
  28. package/dist/federation/timeline.d.ts.map +1 -0
  29. package/dist/federation/timeline.js +344 -0
  30. package/dist/federation/timeline.js.map +1 -0
  31. package/dist/index.d.ts +2 -2
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +2 -2
  34. package/dist/index.js.map +1 -1
  35. package/dist/social/index.d.ts +1 -1
  36. package/dist/social/index.d.ts.map +1 -1
  37. package/dist/social/index.js +1 -1
  38. package/dist/social/index.js.map +1 -1
  39. package/dist/social/social.d.ts +1 -0
  40. package/dist/social/social.d.ts.map +1 -1
  41. package/dist/social/social.js +8 -1
  42. package/dist/social/social.js.map +1 -1
  43. package/package.json +8 -8
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hubFederation.js","sourceRoot":"","sources":["../../src/federation/hubFederation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"inboxHandlers.d.ts","sourceRoot":"","sources":["../../src/federation/inboxHandlers.ts"],"names":[],"mappings":"AAUA,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAGtC,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,EAAE,CAAC;IACP,MAAM,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,GAAG,cAAc,CA0S7E"}
1
+ {"version":3,"file":"inboxHandlers.d.ts","sourceRoot":"","sources":["../../src/federation/inboxHandlers.ts"],"names":[],"mappings":"AAYA,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAItC,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,EAAE,CAAC;IACP,MAAM,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,GAAG,cAAc,CAkhB7E"}
@@ -2,10 +2,11 @@
2
2
  * Inbox callback implementations — wires AP activities to database operations.
3
3
  * Used by both shared inbox and per-user inbox routes.
4
4
  */
5
- import { eq, and, sql } from 'drizzle-orm';
6
- import { activities, followRelationships, contentItems, } from '@commonpub/schema';
7
- import { buildAcceptActivity, } from '@commonpub/protocol';
5
+ import { eq, and, sql, isNull } from 'drizzle-orm';
6
+ import { activities, followRelationships, contentItems, federatedContent, remoteActors, } from '@commonpub/schema';
7
+ import { buildAcceptActivity, sanitizeHtml, } from '@commonpub/protocol';
8
8
  import { resolveRemoteActor } from './federation.js';
9
+ import { matchMirrorForContent } from './mirroring.js';
9
10
  /**
10
11
  * Create inbox callbacks wired to database operations.
11
12
  */
@@ -30,7 +31,11 @@ export function createInboxHandlers(opts) {
30
31
  relationshipId = existing[0].id;
31
32
  await db
32
33
  .update(followRelationships)
33
- .set({ status: autoAcceptFollows ? 'accepted' : 'pending', updatedAt: new Date() })
34
+ .set({
35
+ status: autoAcceptFollows ? 'accepted' : 'pending',
36
+ activityUri: activityId,
37
+ updatedAt: new Date(),
38
+ })
34
39
  .where(eq(followRelationships.id, relationshipId));
35
40
  }
36
41
  else {
@@ -39,6 +44,7 @@ export function createInboxHandlers(opts) {
39
44
  .values({
40
45
  followerActorUri: actorUri,
41
46
  followingActorUri: targetActorUri,
47
+ activityUri: activityId,
42
48
  status: autoAcceptFollows ? 'accepted' : 'pending',
43
49
  })
44
50
  .returning();
@@ -117,26 +123,71 @@ export function createInboxHandlers(opts) {
117
123
  });
118
124
  },
119
125
  /**
120
- * Remote undid an action (unfollow, unlike).
126
+ * Remote undid an action (unfollow, unlike, unboost).
121
127
  */
122
128
  async onUndo(actorUri, objectType, objectId) {
123
- if (objectType === 'Follow' || objectType === 'unknown') {
124
- // objectId is the Follow activity URI. We look up the follow relationship
125
- // that was created when this actor followed a local user.
126
- // In AP, one actor can follow multiple local users, so we should ideally
127
- // scope to the specific target. Since objectId is the Follow activity URI
128
- // (not the target), we delete only the most recent accepted/pending follow
129
- // from this actor to minimize blast radius.
130
- const existing = await db
131
- .select({ id: followRelationships.id })
132
- .from(followRelationships)
133
- .where(eq(followRelationships.followerActorUri, actorUri))
134
- .orderBy(followRelationships.updatedAt)
135
- .limit(1);
136
- if (existing.length > 0) {
137
- await db
138
- .delete(followRelationships)
139
- .where(eq(followRelationships.id, existing[0].id));
129
+ if (objectType === 'Like' && objectId) {
130
+ // Undo(Like): decrement like count on local or federated content
131
+ try {
132
+ const url = new URL(objectId).pathname;
133
+ const segments = url.split('/').filter(Boolean);
134
+ if (segments.length >= 2) {
135
+ const idOrSlug = segments[segments.length - 1];
136
+ // Try local content by slug
137
+ const bySlug = await db
138
+ .select({ id: contentItems.id, likeCount: contentItems.likeCount })
139
+ .from(contentItems)
140
+ .where(eq(contentItems.slug, idOrSlug))
141
+ .limit(1);
142
+ if (bySlug.length > 0 && bySlug[0].likeCount > 0) {
143
+ await db
144
+ .update(contentItems)
145
+ .set({ likeCount: sql `GREATEST(${contentItems.likeCount} - 1, 0)` })
146
+ .where(eq(contentItems.id, bySlug[0].id));
147
+ }
148
+ else {
149
+ // Try federated content by objectUri
150
+ await db
151
+ .update(federatedContent)
152
+ .set({ localLikeCount: sql `GREATEST(${federatedContent.localLikeCount} - 1, 0)` })
153
+ .where(eq(federatedContent.objectUri, objectId));
154
+ }
155
+ }
156
+ }
157
+ catch {
158
+ // Invalid URL — skip decrement
159
+ }
160
+ }
161
+ else if (objectType === 'Follow') {
162
+ // Try exact match on activityUri first (most accurate)
163
+ let deleted = false;
164
+ if (objectId) {
165
+ const byActivity = await db
166
+ .select({ id: followRelationships.id })
167
+ .from(followRelationships)
168
+ .where(and(eq(followRelationships.followerActorUri, actorUri), eq(followRelationships.activityUri, objectId)))
169
+ .limit(1);
170
+ if (byActivity.length > 0) {
171
+ await db
172
+ .delete(followRelationships)
173
+ .where(eq(followRelationships.id, byActivity[0].id));
174
+ deleted = true;
175
+ }
176
+ }
177
+ // Fallback: delete most recent follow from this actor (for AP implementations
178
+ // that don't include the original activity URI in Undo)
179
+ if (!deleted) {
180
+ const existing = await db
181
+ .select({ id: followRelationships.id })
182
+ .from(followRelationships)
183
+ .where(eq(followRelationships.followerActorUri, actorUri))
184
+ .orderBy(sql `${followRelationships.updatedAt} DESC`)
185
+ .limit(1);
186
+ if (existing.length > 0) {
187
+ await db
188
+ .delete(followRelationships)
189
+ .where(eq(followRelationships.id, existing[0].id));
190
+ }
140
191
  }
141
192
  }
142
193
  await db.insert(activities).values({
@@ -150,14 +201,139 @@ export function createInboxHandlers(opts) {
150
201
  },
151
202
  /**
152
203
  * Remote instance sent new content (Article/Note).
153
- * For v1: log the activity. Full content mirroring is a future feature.
204
+ * Stores in federatedContent table with loop prevention.
154
205
  */
155
206
  async onCreate(actorUri, object) {
156
- await resolveRemoteActor(db, actorUri);
207
+ const resolvedActor = await resolveRemoteActor(db, actorUri);
208
+ const objectUri = object.id;
209
+ const objectType = object.type ?? 'Article';
210
+ // Loop prevention: reject content originating from our own domain
211
+ if (objectUri) {
212
+ try {
213
+ const originHost = new URL(objectUri).hostname;
214
+ if (originHost === domain) {
215
+ // This is our own content echoed back — skip storage
216
+ await db.insert(activities).values({
217
+ type: 'Create',
218
+ actorUri,
219
+ objectUri,
220
+ payload: { type: 'Create', actor: actorUri, object },
221
+ direction: 'inbound',
222
+ status: 'processed',
223
+ });
224
+ return;
225
+ }
226
+ }
227
+ catch {
228
+ // Invalid URL — continue with storage attempt
229
+ }
230
+ }
231
+ // Extract origin domain from the object URI or actor URI
232
+ let originDomain = '';
233
+ try {
234
+ originDomain = new URL(objectUri ?? actorUri).hostname;
235
+ }
236
+ catch {
237
+ originDomain = 'unknown';
238
+ }
239
+ // Look up the remote actor's DB row for the FK
240
+ let remoteActorId = null;
241
+ if (resolvedActor) {
242
+ const rows = await db
243
+ .select({ id: remoteActors.id })
244
+ .from(remoteActors)
245
+ .where(eq(remoteActors.actorUri, actorUri))
246
+ .limit(1);
247
+ remoteActorId = rows[0]?.id ?? null;
248
+ }
249
+ // Parse and sanitize content
250
+ const rawContent = typeof object.content === 'string' ? object.content : '';
251
+ const sanitizedContent = sanitizeHtml(rawContent);
252
+ // Extract tags
253
+ const rawTags = Array.isArray(object.tag) ? object.tag : [];
254
+ const tags = rawTags
255
+ .filter((t) => typeof t === 'object' && t !== null)
256
+ .map((t) => ({ type: String(t.type ?? 'Hashtag'), name: String(t.name ?? '') }));
257
+ // Extract attachments
258
+ const rawAttachments = Array.isArray(object.attachment) ? object.attachment : [];
259
+ const attachments = rawAttachments
260
+ .filter((a) => typeof a === 'object' && a !== null)
261
+ .map((a) => ({ type: String(a.type ?? 'Document'), url: String(a.url ?? ''), name: a.name ? String(a.name) : undefined }));
262
+ // Extract cover image from attachments or icon
263
+ const coverImage = attachments.find((a) => a.type === 'Image')?.url
264
+ ?? (typeof object.image === 'object' && object.image !== null ? object.image.url : undefined);
265
+ // Check for CommonPub extension
266
+ const cpubType = typeof object['cpub:type'] === 'string' ? object['cpub:type'] : null;
267
+ const cpubMetadata = object['cpub:metadata'] ?? null;
268
+ // Check if this content matches an active mirror config
269
+ const mirrorId = await matchMirrorForContent(db, originDomain, objectType, cpubType, tags);
270
+ // Upsert federated content (objectUri is unique — prevents duplicates)
271
+ if (objectUri) {
272
+ await db
273
+ .insert(federatedContent)
274
+ .values({
275
+ objectUri,
276
+ actorUri,
277
+ remoteActorId,
278
+ originDomain,
279
+ apType: objectType,
280
+ title: typeof object.name === 'string' ? object.name : null,
281
+ content: sanitizedContent || null,
282
+ summary: typeof object.summary === 'string' ? sanitizeHtml(object.summary) : null,
283
+ url: typeof object.url === 'string' ? object.url : null,
284
+ coverImageUrl: coverImage ?? null,
285
+ tags,
286
+ attachments,
287
+ inReplyTo: typeof object.inReplyTo === 'string' ? object.inReplyTo : null,
288
+ cpubType,
289
+ cpubMetadata,
290
+ mirrorId,
291
+ publishedAt: typeof object.published === 'string' ? new Date(object.published) : null,
292
+ })
293
+ .onConflictDoUpdate({
294
+ target: federatedContent.objectUri,
295
+ set: {
296
+ content: sanitizedContent || null,
297
+ title: typeof object.name === 'string' ? object.name : null,
298
+ summary: typeof object.summary === 'string' ? sanitizeHtml(object.summary) : null,
299
+ updatedAt: new Date(),
300
+ },
301
+ });
302
+ }
303
+ // If this is a reply (Note with inReplyTo), increment comment count on the parent
304
+ const inReplyTo = typeof object.inReplyTo === 'string' ? object.inReplyTo : null;
305
+ if (inReplyTo) {
306
+ // Check if parent is local content (by slug match)
307
+ try {
308
+ const parentUrl = new URL(inReplyTo);
309
+ const parentHost = parentUrl.hostname;
310
+ if (parentHost === domain) {
311
+ // Reply to local content — increment commentCount
312
+ const parentSlug = parentUrl.pathname.split('/').filter(Boolean).pop();
313
+ if (parentSlug) {
314
+ await db
315
+ .update(contentItems)
316
+ .set({ commentCount: sql `${contentItems.commentCount} + 1` })
317
+ .where(eq(contentItems.slug, parentSlug));
318
+ }
319
+ }
320
+ else {
321
+ // Reply to federated content — increment localCommentCount
322
+ await db
323
+ .update(federatedContent)
324
+ .set({ localCommentCount: sql `${federatedContent.localCommentCount} + 1` })
325
+ .where(eq(federatedContent.objectUri, inReplyTo));
326
+ }
327
+ }
328
+ catch {
329
+ // Invalid URL — skip comment counting
330
+ }
331
+ }
332
+ // Log inbound activity
157
333
  await db.insert(activities).values({
158
334
  type: 'Create',
159
335
  actorUri,
160
- objectUri: object.id ?? null,
336
+ objectUri: objectUri ?? null,
161
337
  payload: { type: 'Create', actor: actorUri, object },
162
338
  direction: 'inbound',
163
339
  status: 'processed',
@@ -165,13 +341,31 @@ export function createInboxHandlers(opts) {
165
341
  },
166
342
  /**
167
343
  * Remote instance updated content.
168
- * For v1: log the activity.
344
+ * Updates the corresponding federatedContent row if it exists.
169
345
  */
170
346
  async onUpdate(actorUri, object) {
347
+ const objectUri = object.id;
348
+ // Update stored federated content if we have it.
349
+ // Only update fields that are explicitly provided — omitted fields are preserved.
350
+ if (objectUri) {
351
+ const updates = { updatedAt: new Date() };
352
+ if (typeof object.name === 'string')
353
+ updates.title = object.name;
354
+ if (typeof object.content === 'string')
355
+ updates.content = sanitizeHtml(object.content);
356
+ if (typeof object.summary === 'string')
357
+ updates.summary = sanitizeHtml(object.summary);
358
+ if (typeof object.url === 'string')
359
+ updates.url = object.url;
360
+ await db
361
+ .update(federatedContent)
362
+ .set(updates)
363
+ .where(eq(federatedContent.objectUri, objectUri));
364
+ }
171
365
  await db.insert(activities).values({
172
366
  type: 'Update',
173
367
  actorUri,
174
- objectUri: object.id ?? null,
368
+ objectUri: objectUri ?? null,
175
369
  payload: { type: 'Update', actor: actorUri, object },
176
370
  direction: 'inbound',
177
371
  status: 'processed',
@@ -179,9 +373,14 @@ export function createInboxHandlers(opts) {
179
373
  },
180
374
  /**
181
375
  * Remote instance deleted content.
182
- * For v1: log the activity.
376
+ * Soft-deletes the corresponding federatedContent row.
183
377
  */
184
378
  async onDelete(actorUri, objectId) {
379
+ // Soft-delete federated content
380
+ await db
381
+ .update(federatedContent)
382
+ .set({ deletedAt: new Date() })
383
+ .where(and(eq(federatedContent.objectUri, objectId), isNull(federatedContent.deletedAt)));
185
384
  await db.insert(activities).values({
186
385
  type: 'Delete',
187
386
  actorUri,
@@ -192,18 +391,17 @@ export function createInboxHandlers(opts) {
192
391
  });
193
392
  },
194
393
  /**
195
- * Remote user liked local content.
196
- * Increment like count on the local content item.
394
+ * Remote user liked content (local or federated).
395
+ * Increment like count on the matching content item.
197
396
  */
198
397
  async onLike(actorUri, objectUri) {
199
398
  await resolveRemoteActor(db, actorUri);
200
- // Try to find local content by its AP URI (https://domain/content/ID or https://domain/project/slug)
399
+ // Try to find local content by its AP URI
201
400
  let url;
202
401
  try {
203
402
  url = new URL(objectUri).pathname;
204
403
  }
205
404
  catch {
206
- // Not a valid URL (e.g., URN, bare ID) — log and skip content matching
207
405
  await db.insert(activities).values({
208
406
  type: 'Like',
209
407
  actorUri,
@@ -215,36 +413,49 @@ export function createInboxHandlers(opts) {
215
413
  return;
216
414
  }
217
415
  const segments = url.split('/').filter(Boolean);
218
- // Try matching /content/UUID or /type/slug patterns
416
+ let matched = false;
417
+ // Try matching local content by slug or UUID
219
418
  if (segments.length >= 2) {
220
419
  const idOrSlug = segments[segments.length - 1];
221
- // Try UUID match first
222
- const byId = await db
420
+ // Slug match first (canonical URI format)
421
+ const bySlug = await db
223
422
  .select({ id: contentItems.id })
224
423
  .from(contentItems)
225
- .where(eq(contentItems.id, idOrSlug))
424
+ .where(eq(contentItems.slug, idOrSlug))
226
425
  .limit(1);
227
- if (byId.length > 0) {
426
+ if (bySlug.length > 0) {
228
427
  await db
229
428
  .update(contentItems)
230
429
  .set({ likeCount: sql `${contentItems.likeCount} + 1` })
231
- .where(eq(contentItems.id, byId[0].id));
430
+ .where(eq(contentItems.id, bySlug[0].id));
431
+ matched = true;
232
432
  }
233
433
  else {
234
- // Try slug match
235
- const bySlug = await db
236
- .select({ id: contentItems.id })
237
- .from(contentItems)
238
- .where(eq(contentItems.slug, idOrSlug))
239
- .limit(1);
240
- if (bySlug.length > 0) {
241
- await db
242
- .update(contentItems)
243
- .set({ likeCount: sql `${contentItems.likeCount} + 1` })
244
- .where(eq(contentItems.id, bySlug[0].id));
434
+ // UUID fallback
435
+ const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
436
+ if (UUID_RE.test(idOrSlug)) {
437
+ const byId = await db
438
+ .select({ id: contentItems.id })
439
+ .from(contentItems)
440
+ .where(eq(contentItems.id, idOrSlug))
441
+ .limit(1);
442
+ if (byId.length > 0) {
443
+ await db
444
+ .update(contentItems)
445
+ .set({ likeCount: sql `${contentItems.likeCount} + 1` })
446
+ .where(eq(contentItems.id, byId[0].id));
447
+ matched = true;
448
+ }
245
449
  }
246
450
  }
247
451
  }
452
+ // If not local content, try federated content
453
+ if (!matched) {
454
+ await db
455
+ .update(federatedContent)
456
+ .set({ localLikeCount: sql `${federatedContent.localLikeCount} + 1` })
457
+ .where(eq(federatedContent.objectUri, objectUri));
458
+ }
248
459
  await db.insert(activities).values({
249
460
  type: 'Like',
250
461
  actorUri,
@@ -1 +1 @@
1
- {"version":3,"file":"inboxHandlers.js","sourceRoot":"","sources":["../../src/federation/inboxHandlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inboxHandlers.js","sourceRoot":"","sources":["../../src/federation/inboxHandlers.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,8 @@
1
- export { getOrCreateActorKeypair, resolveRemoteActor, sendFollow, acceptFollow, rejectFollow, unfollowRemote, federateContent, federateUpdate, federateDelete, federateLike, getFollowers, getFollowing, listFederationActivity, } from './federation.js';
1
+ export { getOrCreateActorKeypair, getOrCreateInstanceKeypair, buildInstanceActor, resolveRemoteActor, searchRemoteActor, getRemoteActorProfile, sendFollow, acceptFollow, rejectFollow, unfollowRemote, federateContent, federateUpdate, federateDelete, federateLike, federateUnlike, buildContentUri, getContentSlugById, getFollowers, getFollowing, listFederationActivity, type RemoteActorProfile, } from './federation.js';
2
2
  export { createInboxHandlers, type InboxHandlerOptions } from './inboxHandlers.js';
3
3
  export { deliverPendingActivities, type DeliveryResult } from './delivery.js';
4
+ export { listFederatedTimeline, getFederatedContent, likeRemoteContent, boostRemoteContent, federateReply, listRemoteReplies, searchFederatedContent, type FederatedContentItem, type FederatedTimelineOptions, } from './timeline.js';
5
+ export { createMirror, activateMirror, pauseMirror, resumeMirror, cancelMirror, listMirrors, getMirror, matchMirrorForContent, type MirrorConfig, } from './mirroring.js';
6
+ export { getHubActorUri, getOrCreateHubKeypair, buildHubGroupActor, handleHubFollow, handleHubUnfollow, getHubFederatedFollowers, federateHubPost, federateHubShare, } from './hubFederation.js';
7
+ export { processAuthorize, processTokenExchange, registerOAuthClient, linkFederatedAccount, findUserByFederatedAccount, listOAuthClients, processDynamicRegistration, storeOAuthState, consumeOAuthState, exchangeCodeForToken, type AuthorizeResult, type TokenResult, type RegisteredClient, type OAuthLoginState, } from './oauth.js';
4
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/federation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,eAAe,EACf,cAAc,EACd,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,wBAAwB,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/federation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,eAAe,EACf,cAAc,EACd,cAAc,EACd,YAAY,EACZ,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,sBAAsB,EACtB,KAAK,kBAAkB,GACxB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,wBAAwB,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,GAC9B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,SAAS,EACT,qBAAqB,EACrB,KAAK,YAAY,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,eAAe,EACf,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,gBAAgB,EAChB,0BAA0B,EAC1B,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,YAAY,CAAC"}
@@ -1,4 +1,8 @@
1
- export { getOrCreateActorKeypair, resolveRemoteActor, sendFollow, acceptFollow, rejectFollow, unfollowRemote, federateContent, federateUpdate, federateDelete, federateLike, getFollowers, getFollowing, listFederationActivity, } from './federation.js';
1
+ export { getOrCreateActorKeypair, getOrCreateInstanceKeypair, buildInstanceActor, resolveRemoteActor, searchRemoteActor, getRemoteActorProfile, sendFollow, acceptFollow, rejectFollow, unfollowRemote, federateContent, federateUpdate, federateDelete, federateLike, federateUnlike, buildContentUri, getContentSlugById, getFollowers, getFollowing, listFederationActivity, } from './federation.js';
2
2
  export { createInboxHandlers } from './inboxHandlers.js';
3
3
  export { deliverPendingActivities } from './delivery.js';
4
+ export { listFederatedTimeline, getFederatedContent, likeRemoteContent, boostRemoteContent, federateReply, listRemoteReplies, searchFederatedContent, } from './timeline.js';
5
+ export { createMirror, activateMirror, pauseMirror, resumeMirror, cancelMirror, listMirrors, getMirror, matchMirrorForContent, } from './mirroring.js';
6
+ export { getHubActorUri, getOrCreateHubKeypair, buildHubGroupActor, handleHubFollow, handleHubUnfollow, getHubFederatedFollowers, federateHubPost, federateHubShare, } from './hubFederation.js';
7
+ export { processAuthorize, processTokenExchange, registerOAuthClient, linkFederatedAccount, findUserByFederatedAccount, listOAuthClients, processDynamicRegistration, storeOAuthState, consumeOAuthState, exchangeCodeForToken, } from './oauth.js';
4
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/federation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,eAAe,EACf,cAAc,EACd,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,mBAAmB,EAA4B,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,wBAAwB,EAAuB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/federation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,eAAe,EACf,cAAc,EACd,cAAc,EACd,YAAY,EACZ,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,sBAAsB,GAEvB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,mBAAmB,EAA4B,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,wBAAwB,EAAuB,MAAM,eAAe,CAAC;AAC9E,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,sBAAsB,GAGvB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,SAAS,EACT,qBAAqB,GAEtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,eAAe,EACf,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,gBAAgB,EAChB,0BAA0B,EAC1B,eAAe,EACf,iBAAiB,EACjB,oBAAoB,GAKrB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,65 @@
1
+ import type { DB } from '../types.js';
2
+ export interface MirrorConfig {
3
+ id: string;
4
+ remoteDomain: string;
5
+ remoteActorUri: string;
6
+ status: string;
7
+ direction: string;
8
+ filterContentTypes: string[] | null;
9
+ filterTags: string[] | null;
10
+ contentCount: number;
11
+ errorCount: number;
12
+ lastError: string | null;
13
+ lastSyncAt: string | null;
14
+ createdAt: string;
15
+ }
16
+ /**
17
+ * Create a new instance mirror subscription.
18
+ * The instance actor will follow the remote instance actor to receive content.
19
+ */
20
+ export declare function createMirror(db: DB, remoteDomain: string, remoteActorUri: string, direction: 'pull' | 'push', filters?: {
21
+ contentTypes?: string[];
22
+ tags?: string[];
23
+ }): Promise<MirrorConfig>;
24
+ /**
25
+ * Activate a pending mirror (called after the Follow is accepted).
26
+ */
27
+ export declare function activateMirror(db: DB, mirrorId: string): Promise<void>;
28
+ /**
29
+ * Pause a mirror — stops content ingestion but keeps the follow active.
30
+ */
31
+ export declare function pauseMirror(db: DB, mirrorId: string): Promise<void>;
32
+ /**
33
+ * Resume a paused mirror.
34
+ */
35
+ export declare function resumeMirror(db: DB, mirrorId: string): Promise<void>;
36
+ /**
37
+ * Cancel a mirror — removes the subscription entirely.
38
+ * Content already received is NOT deleted (can be cleaned up separately).
39
+ */
40
+ export declare function cancelMirror(db: DB, mirrorId: string): Promise<void>;
41
+ /**
42
+ * List all instance mirrors with stats.
43
+ */
44
+ export declare function listMirrors(db: DB): Promise<MirrorConfig[]>;
45
+ /**
46
+ * Get a single mirror by ID.
47
+ */
48
+ export declare function getMirror(db: DB, mirrorId: string): Promise<MirrorConfig | null>;
49
+ /**
50
+ * Check if inbound content should be accepted by a mirror.
51
+ * Applies content type and tag filters.
52
+ * Returns the mirror ID if accepted, null if rejected.
53
+ *
54
+ * CRITICAL FOR LOOP PREVENTION:
55
+ * - Only accepts content from the mirror's remoteDomain
56
+ * - Rejects content that originated from our own domain (checked upstream in onCreate)
57
+ */
58
+ export declare function matchMirrorForContent(db: DB, originDomain: string, apType: string, cpubType: string | null, tags: Array<{
59
+ name: string;
60
+ }>): Promise<string | null>;
61
+ /**
62
+ * Record a mirror error (for admin visibility).
63
+ */
64
+ export declare function recordMirrorError(db: DB, mirrorId: string, error: string): Promise<void>;
65
+ //# sourceMappingURL=mirroring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mirroring.d.ts","sourceRoot":"","sources":["../../src/federation/mirroring.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEtC,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACpC,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,EAAE,EAAE,EAAE,EACN,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,GAAG,MAAM,EAC1B,OAAO,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GACrD,OAAO,CAAC,YAAY,CAAC,CAcvB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK5E;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKzE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK1E;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1E;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAGjE;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAOtF;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CACzC,EAAE,EAAE,EAAE,EACN,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,IAAI,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAC5B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA4CxB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CASf"}