@commonpub/server 0.5.0 → 0.7.1

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 +160 -21
  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 +261 -52
  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 +172 -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 +6 -6
@@ -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,CA+gB7E"}
@@ -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
  */
@@ -25,12 +26,15 @@ export function createInboxHandlers(opts) {
25
26
  .from(followRelationships)
26
27
  .where(and(eq(followRelationships.followerActorUri, actorUri), eq(followRelationships.followingActorUri, targetActorUri)))
27
28
  .limit(1);
28
- let relationshipId;
29
29
  if (existing.length > 0) {
30
- relationshipId = existing[0].id;
30
+ const relationshipId = existing[0].id;
31
31
  await db
32
32
  .update(followRelationships)
33
- .set({ status: autoAcceptFollows ? 'accepted' : 'pending', updatedAt: new Date() })
33
+ .set({
34
+ status: autoAcceptFollows ? 'accepted' : 'pending',
35
+ activityUri: activityId,
36
+ updatedAt: new Date(),
37
+ })
34
38
  .where(eq(followRelationships.id, relationshipId));
35
39
  }
36
40
  else {
@@ -39,10 +43,10 @@ export function createInboxHandlers(opts) {
39
43
  .values({
40
44
  followerActorUri: actorUri,
41
45
  followingActorUri: targetActorUri,
46
+ activityUri: activityId,
42
47
  status: autoAcceptFollows ? 'accepted' : 'pending',
43
48
  })
44
49
  .returning();
45
- relationshipId = row.id;
46
50
  }
47
51
  // Log inbound activity
48
52
  await db.insert(activities).values({
@@ -117,26 +121,71 @@ export function createInboxHandlers(opts) {
117
121
  });
118
122
  },
119
123
  /**
120
- * Remote undid an action (unfollow, unlike).
124
+ * Remote undid an action (unfollow, unlike, unboost).
121
125
  */
122
126
  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));
127
+ if (objectType === 'Like' && objectId) {
128
+ // Undo(Like): decrement like count on local or federated content
129
+ try {
130
+ const url = new URL(objectId).pathname;
131
+ const segments = url.split('/').filter(Boolean);
132
+ if (segments.length >= 2) {
133
+ const idOrSlug = segments[segments.length - 1];
134
+ // Try local content by slug
135
+ const bySlug = await db
136
+ .select({ id: contentItems.id, likeCount: contentItems.likeCount })
137
+ .from(contentItems)
138
+ .where(eq(contentItems.slug, idOrSlug))
139
+ .limit(1);
140
+ if (bySlug.length > 0 && bySlug[0].likeCount > 0) {
141
+ await db
142
+ .update(contentItems)
143
+ .set({ likeCount: sql `GREATEST(${contentItems.likeCount} - 1, 0)` })
144
+ .where(eq(contentItems.id, bySlug[0].id));
145
+ }
146
+ else {
147
+ // Try federated content by objectUri
148
+ await db
149
+ .update(federatedContent)
150
+ .set({ localLikeCount: sql `GREATEST(${federatedContent.localLikeCount} - 1, 0)` })
151
+ .where(eq(federatedContent.objectUri, objectId));
152
+ }
153
+ }
154
+ }
155
+ catch {
156
+ // Invalid URL — skip decrement
157
+ }
158
+ }
159
+ else if (objectType === 'Follow') {
160
+ // Try exact match on activityUri first (most accurate)
161
+ let deleted = false;
162
+ if (objectId) {
163
+ const byActivity = await db
164
+ .select({ id: followRelationships.id })
165
+ .from(followRelationships)
166
+ .where(and(eq(followRelationships.followerActorUri, actorUri), eq(followRelationships.activityUri, objectId)))
167
+ .limit(1);
168
+ if (byActivity.length > 0) {
169
+ await db
170
+ .delete(followRelationships)
171
+ .where(eq(followRelationships.id, byActivity[0].id));
172
+ deleted = true;
173
+ }
174
+ }
175
+ // Fallback: delete most recent follow from this actor (for AP implementations
176
+ // that don't include the original activity URI in Undo)
177
+ if (!deleted) {
178
+ const existing = await db
179
+ .select({ id: followRelationships.id })
180
+ .from(followRelationships)
181
+ .where(eq(followRelationships.followerActorUri, actorUri))
182
+ .orderBy(sql `${followRelationships.updatedAt} DESC`)
183
+ .limit(1);
184
+ if (existing.length > 0) {
185
+ await db
186
+ .delete(followRelationships)
187
+ .where(eq(followRelationships.id, existing[0].id));
188
+ }
140
189
  }
141
190
  }
142
191
  await db.insert(activities).values({
@@ -150,14 +199,139 @@ export function createInboxHandlers(opts) {
150
199
  },
151
200
  /**
152
201
  * Remote instance sent new content (Article/Note).
153
- * For v1: log the activity. Full content mirroring is a future feature.
202
+ * Stores in federatedContent table with loop prevention.
154
203
  */
155
204
  async onCreate(actorUri, object) {
156
- await resolveRemoteActor(db, actorUri);
205
+ const resolvedActor = await resolveRemoteActor(db, actorUri);
206
+ const objectUri = object.id;
207
+ const objectType = object.type ?? 'Article';
208
+ // Loop prevention: reject content originating from our own domain
209
+ if (objectUri) {
210
+ try {
211
+ const originHost = new URL(objectUri).hostname;
212
+ if (originHost === domain) {
213
+ // This is our own content echoed back — skip storage
214
+ await db.insert(activities).values({
215
+ type: 'Create',
216
+ actorUri,
217
+ objectUri,
218
+ payload: { type: 'Create', actor: actorUri, object },
219
+ direction: 'inbound',
220
+ status: 'processed',
221
+ });
222
+ return;
223
+ }
224
+ }
225
+ catch {
226
+ // Invalid URL — continue with storage attempt
227
+ }
228
+ }
229
+ // Extract origin domain from the object URI or actor URI
230
+ let originDomain;
231
+ try {
232
+ originDomain = new URL(objectUri ?? actorUri).hostname;
233
+ }
234
+ catch {
235
+ originDomain = 'unknown';
236
+ }
237
+ // Look up the remote actor's DB row for the FK
238
+ let remoteActorId = null;
239
+ if (resolvedActor) {
240
+ const rows = await db
241
+ .select({ id: remoteActors.id })
242
+ .from(remoteActors)
243
+ .where(eq(remoteActors.actorUri, actorUri))
244
+ .limit(1);
245
+ remoteActorId = rows[0]?.id ?? null;
246
+ }
247
+ // Parse and sanitize content
248
+ const rawContent = typeof object.content === 'string' ? object.content : '';
249
+ const sanitizedContent = sanitizeHtml(rawContent);
250
+ // Extract tags
251
+ const rawTags = Array.isArray(object.tag) ? object.tag : [];
252
+ const tags = rawTags
253
+ .filter((t) => typeof t === 'object' && t !== null)
254
+ .map((t) => ({ type: String(t.type ?? 'Hashtag'), name: String(t.name ?? '') }));
255
+ // Extract attachments
256
+ const rawAttachments = Array.isArray(object.attachment) ? object.attachment : [];
257
+ const attachments = rawAttachments
258
+ .filter((a) => typeof a === 'object' && a !== null)
259
+ .map((a) => ({ type: String(a.type ?? 'Document'), url: String(a.url ?? ''), name: a.name ? String(a.name) : undefined }));
260
+ // Extract cover image from attachments or icon
261
+ const coverImage = attachments.find((a) => a.type === 'Image')?.url
262
+ ?? (typeof object.image === 'object' && object.image !== null ? object.image.url : undefined);
263
+ // Check for CommonPub extension
264
+ const cpubType = typeof object['cpub:type'] === 'string' ? object['cpub:type'] : null;
265
+ const cpubMetadata = object['cpub:metadata'] ?? null;
266
+ // Check if this content matches an active mirror config
267
+ const mirrorId = await matchMirrorForContent(db, originDomain, objectType, cpubType, tags);
268
+ // Upsert federated content (objectUri is unique — prevents duplicates)
269
+ if (objectUri) {
270
+ await db
271
+ .insert(federatedContent)
272
+ .values({
273
+ objectUri,
274
+ actorUri,
275
+ remoteActorId,
276
+ originDomain,
277
+ apType: objectType,
278
+ title: typeof object.name === 'string' ? object.name : null,
279
+ content: sanitizedContent || null,
280
+ summary: typeof object.summary === 'string' ? sanitizeHtml(object.summary) : null,
281
+ url: typeof object.url === 'string' ? object.url : null,
282
+ coverImageUrl: coverImage ?? null,
283
+ tags,
284
+ attachments,
285
+ inReplyTo: typeof object.inReplyTo === 'string' ? object.inReplyTo : null,
286
+ cpubType,
287
+ cpubMetadata,
288
+ mirrorId,
289
+ publishedAt: typeof object.published === 'string' ? new Date(object.published) : null,
290
+ })
291
+ .onConflictDoUpdate({
292
+ target: federatedContent.objectUri,
293
+ set: {
294
+ content: sanitizedContent || null,
295
+ title: typeof object.name === 'string' ? object.name : null,
296
+ summary: typeof object.summary === 'string' ? sanitizeHtml(object.summary) : null,
297
+ updatedAt: new Date(),
298
+ },
299
+ });
300
+ }
301
+ // If this is a reply (Note with inReplyTo), increment comment count on the parent
302
+ const inReplyTo = typeof object.inReplyTo === 'string' ? object.inReplyTo : null;
303
+ if (inReplyTo) {
304
+ // Check if parent is local content (by slug match)
305
+ try {
306
+ const parentUrl = new URL(inReplyTo);
307
+ const parentHost = parentUrl.hostname;
308
+ if (parentHost === domain) {
309
+ // Reply to local content — increment commentCount
310
+ const parentSlug = parentUrl.pathname.split('/').filter(Boolean).pop();
311
+ if (parentSlug) {
312
+ await db
313
+ .update(contentItems)
314
+ .set({ commentCount: sql `${contentItems.commentCount} + 1` })
315
+ .where(eq(contentItems.slug, parentSlug));
316
+ }
317
+ }
318
+ else {
319
+ // Reply to federated content — increment localCommentCount
320
+ await db
321
+ .update(federatedContent)
322
+ .set({ localCommentCount: sql `${federatedContent.localCommentCount} + 1` })
323
+ .where(eq(federatedContent.objectUri, inReplyTo));
324
+ }
325
+ }
326
+ catch {
327
+ // Invalid URL — skip comment counting
328
+ }
329
+ }
330
+ // Log inbound activity
157
331
  await db.insert(activities).values({
158
332
  type: 'Create',
159
333
  actorUri,
160
- objectUri: object.id ?? null,
334
+ objectUri: objectUri ?? null,
161
335
  payload: { type: 'Create', actor: actorUri, object },
162
336
  direction: 'inbound',
163
337
  status: 'processed',
@@ -165,13 +339,31 @@ export function createInboxHandlers(opts) {
165
339
  },
166
340
  /**
167
341
  * Remote instance updated content.
168
- * For v1: log the activity.
342
+ * Updates the corresponding federatedContent row if it exists.
169
343
  */
170
344
  async onUpdate(actorUri, object) {
345
+ const objectUri = object.id;
346
+ // Update stored federated content if we have it.
347
+ // Only update fields that are explicitly provided — omitted fields are preserved.
348
+ if (objectUri) {
349
+ const updates = { updatedAt: new Date() };
350
+ if (typeof object.name === 'string')
351
+ updates.title = object.name;
352
+ if (typeof object.content === 'string')
353
+ updates.content = sanitizeHtml(object.content);
354
+ if (typeof object.summary === 'string')
355
+ updates.summary = sanitizeHtml(object.summary);
356
+ if (typeof object.url === 'string')
357
+ updates.url = object.url;
358
+ await db
359
+ .update(federatedContent)
360
+ .set(updates)
361
+ .where(eq(federatedContent.objectUri, objectUri));
362
+ }
171
363
  await db.insert(activities).values({
172
364
  type: 'Update',
173
365
  actorUri,
174
- objectUri: object.id ?? null,
366
+ objectUri: objectUri ?? null,
175
367
  payload: { type: 'Update', actor: actorUri, object },
176
368
  direction: 'inbound',
177
369
  status: 'processed',
@@ -179,9 +371,14 @@ export function createInboxHandlers(opts) {
179
371
  },
180
372
  /**
181
373
  * Remote instance deleted content.
182
- * For v1: log the activity.
374
+ * Soft-deletes the corresponding federatedContent row.
183
375
  */
184
376
  async onDelete(actorUri, objectId) {
377
+ // Soft-delete federated content
378
+ await db
379
+ .update(federatedContent)
380
+ .set({ deletedAt: new Date() })
381
+ .where(and(eq(federatedContent.objectUri, objectId), isNull(federatedContent.deletedAt)));
185
382
  await db.insert(activities).values({
186
383
  type: 'Delete',
187
384
  actorUri,
@@ -192,18 +389,17 @@ export function createInboxHandlers(opts) {
192
389
  });
193
390
  },
194
391
  /**
195
- * Remote user liked local content.
196
- * Increment like count on the local content item.
392
+ * Remote user liked content (local or federated).
393
+ * Increment like count on the matching content item.
197
394
  */
198
395
  async onLike(actorUri, objectUri) {
199
396
  await resolveRemoteActor(db, actorUri);
200
- // Try to find local content by its AP URI (https://domain/content/ID or https://domain/project/slug)
397
+ // Try to find local content by its AP URI
201
398
  let url;
202
399
  try {
203
400
  url = new URL(objectUri).pathname;
204
401
  }
205
402
  catch {
206
- // Not a valid URL (e.g., URN, bare ID) — log and skip content matching
207
403
  await db.insert(activities).values({
208
404
  type: 'Like',
209
405
  actorUri,
@@ -215,36 +411,49 @@ export function createInboxHandlers(opts) {
215
411
  return;
216
412
  }
217
413
  const segments = url.split('/').filter(Boolean);
218
- // Try matching /content/UUID or /type/slug patterns
414
+ let matched = false;
415
+ // Try matching local content by slug or UUID
219
416
  if (segments.length >= 2) {
220
417
  const idOrSlug = segments[segments.length - 1];
221
- // Try UUID match first
222
- const byId = await db
418
+ // Slug match first (canonical URI format)
419
+ const bySlug = await db
223
420
  .select({ id: contentItems.id })
224
421
  .from(contentItems)
225
- .where(eq(contentItems.id, idOrSlug))
422
+ .where(eq(contentItems.slug, idOrSlug))
226
423
  .limit(1);
227
- if (byId.length > 0) {
424
+ if (bySlug.length > 0) {
228
425
  await db
229
426
  .update(contentItems)
230
427
  .set({ likeCount: sql `${contentItems.likeCount} + 1` })
231
- .where(eq(contentItems.id, byId[0].id));
428
+ .where(eq(contentItems.id, bySlug[0].id));
429
+ matched = true;
232
430
  }
233
431
  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));
432
+ // UUID fallback
433
+ const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
434
+ if (UUID_RE.test(idOrSlug)) {
435
+ const byId = await db
436
+ .select({ id: contentItems.id })
437
+ .from(contentItems)
438
+ .where(eq(contentItems.id, idOrSlug))
439
+ .limit(1);
440
+ if (byId.length > 0) {
441
+ await db
442
+ .update(contentItems)
443
+ .set({ likeCount: sql `${contentItems.likeCount} + 1` })
444
+ .where(eq(contentItems.id, byId[0].id));
445
+ matched = true;
446
+ }
245
447
  }
246
448
  }
247
449
  }
450
+ // If not local content, try federated content
451
+ if (!matched) {
452
+ await db
453
+ .update(federatedContent)
454
+ .set({ localLikeCount: sql `${federatedContent.localLikeCount} + 1` })
455
+ .where(eq(federatedContent.objectUri, objectUri));
456
+ }
248
457
  await db.insert(activities).values({
249
458
  type: 'Like',
250
459
  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', localDomain: string, 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":"AAaA,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,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GACrD,OAAO,CAAC,YAAY,CAAC,CAqCvB;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"}