From 59ee7adc897d3e0778916595561c58b35d88a122 Mon Sep 17 00:00:00 2001 From: Hazelnoot <acomputerdog@gmail.com> Date: Mon, 27 Jan 2025 18:13:16 -0500 Subject: [PATCH 1/2] Correct type definition of `Actor.discoverable` property --- packages/backend/src/core/activitypub/type.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/backend/src/core/activitypub/type.ts b/packages/backend/src/core/activitypub/type.ts index d67f8cf62e..119a9d8ccb 100644 --- a/packages/backend/src/core/activitypub/type.ts +++ b/packages/backend/src/core/activitypub/type.ts @@ -202,7 +202,7 @@ export interface IActor extends IObject { manuallyApprovesFollowers?: boolean; movedTo?: string; alsoKnownAs?: string[]; - discoverable?: boolean; + discoverable?: boolean | null; inbox: string; sharedInbox?: string; // 後方互æ›æ€§ã®ãŸã‚ publicKey?: { -- GitLab From 4ec2ef29216981bc120a25722fb31d2311d5d1e0 Mon Sep 17 00:00:00 2001 From: Hazelnoot <acomputerdog@gmail.com> Date: Mon, 27 Jan 2025 18:13:49 -0500 Subject: [PATCH 2/2] handle null values for `discoverable` property --- .../backend/src/core/activitypub/models/ApPersonService.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/backend/src/core/activitypub/models/ApPersonService.ts b/packages/backend/src/core/activitypub/models/ApPersonService.ts index 5c71dbc626..9d326e2737 100644 --- a/packages/backend/src/core/activitypub/models/ApPersonService.ts +++ b/packages/backend/src/core/activitypub/models/ApPersonService.ts @@ -398,7 +398,7 @@ export class ApPersonService implements OnModuleInit { alsoKnownAs: person.alsoKnownAs, // We use "!== false" to handle incorrect types, missing / null values, and "default to true" logic. hideOnlineStatus: person.hideOnlineStatus !== false, - isExplorable: person.discoverable, + isExplorable: person.discoverable !== false, username: person.preferredUsername, approved: true, usernameLower: person.preferredUsername?.toLowerCase(), @@ -602,7 +602,7 @@ export class ApPersonService implements OnModuleInit { alsoKnownAs: person.alsoKnownAs ?? null, // We use "!== false" to handle incorrect types, missing / null values, and "default to true" logic. hideOnlineStatus: person.hideOnlineStatus !== false, - isExplorable: person.discoverable, + isExplorable: person.discoverable !== false, ...(await this.resolveAvatarAndBanner(exist, person.icon, person.image, person.backgroundUrl).catch(() => ({}))), } as Partial<MiRemoteUser> & Pick<MiRemoteUser, 'isBot' | 'isCat' | 'speakAsCat' | 'isLocked' | 'movedToUri' | 'alsoKnownAs' | 'isExplorable'>; -- GitLab