Skip to main content

Built and signed on GitHub Actions

Works with
This package works with Cloudflare Workers, Node.js, Deno, Bun
This package works with Cloudflare Workers
This package works with Node.js
This package works with Deno
This package works with Bun
•JSR Score70%•
License
MIT
•
Downloads21/wk
•
Publisheda week ago (2.4.5)

Interaction control helpers for Fedify

Functions

f
formatAuthorizationKey(key: InteractionAuthorizationKey): string
No documentation available
f
formatInteractionKey(key: InteractionKey): string
No documentation available

Interfaces

I
No documentation available
I
No documentation available
I
No documentation available
I
No documentation available
  • activity: Delete
    No documentation available
  • revoked: Temporal.Instant
    No documentation available
  • revoker: URL
    No documentation available
I
No documentation available
  • No documentation available
  • createAccept: (options: InteractionAcceptOptions<TRequest, TAuthorization, TInteracting, TTarget>) => Accept
    No documentation available
  • createAuthorization: (options: InteractionAuthorizationCreationOptions<TInteracting, TTarget>) => TAuthorization
    No documentation available
  • createReject: (options: InteractionRejectOptions<TRequest, TInteracting, TTarget>) => Reject
    No documentation available
  • createRequest: (options: InteractionRequestCreationOptions<TInteracting, TTarget>) => TRequest
    No documentation available
  • createRevocation: (options: InteractionRevocationCreationOptions<TAuthorization>) => Delete
    No documentation available
  • evaluatePolicy: <TContextData>(
    context: Context<TContextData>,
    options: InteractionPolicyEvaluationOptions<TContextData, TTarget>
    ) => Promise<InteractionPolicyDecision>
    No documentation available
  • getAuthorizationKey: (input: InteractionAuthorizationKeyInput<TAuthorization>) => InteractionAuthorizationKey
    No documentation available
  • getInteractionKey: (input: InteractionKeyInput<TInteracting, TTarget>) => InteractionKey
    No documentation available
  • name: InteractionName
    No documentation available
  • policyProperty: InteractionPolicyProperty
    No documentation available
  • recognizeImpolite: (source: TImpoliteSource) =>
    RecognizedImpoliteInteraction<TInteracting, TTarget, TImpoliteSource>
    | null
    No documentation available
  • No documentation available
  • verifyAuthorization: <TContextData>(
    context: Context<TContextData>,
    options: InteractionAuthorizationVerificationOptions<TContextData, TAuthorization, TInteracting, TTarget>
    ) => Promise<InteractionAuthorizationVerification<TAuthorization>>
    No documentation available
  • verifyRequest: <TContextData>(
    context: Context<TContextData>,
    options: InteractionRequestVerificationOptions<TRequest>
    ) => Promise<
    InteractionRequestVerification<TRequest, TInteracting, TTarget>
    >
    No documentation available
I
No documentation available
I
No documentation available
I
No documentation available
I
No documentation available
  • actor: URL
    No documentation available
  • cc: URL | readonly URL[]
    No documentation available
  • id: URL
    No documentation available
  • instrument: TInteracting | URL
    No documentation available
  • object: TTarget | URL
    No documentation available
  • to: URL | readonly URL[]
    No documentation available
I
No documentation available
  • documentLoader: DocumentLoader
    No documentation available
  • request: TRequest | URL
    No documentation available
I
No documentation available
  • actor: URL
    No documentation available
  • authorization: TAuthorization | URL
    No documentation available
  • cc: URL | readonly URL[]
    No documentation available
  • id: URL
    No documentation available
  • to: URL | readonly URL[]
    No documentation available
I
No documentation available

Type Aliases

T
GetInteractionAuthorizationRevocation<TContextData> = (
authorizationId: URL,
context: Context<TContextData>
) =>
InteractionAuthorizationRevocation
| null
| Promise<InteractionAuthorizationRevocation | null>
No documentation available
T
ImpoliteInteractionEvidence =
{ readonly type: "activity"; readonly activityType: URL; }
| { readonly type: "property"; readonly property: URL; }
| { readonly type: "linkRel"; readonly rel: URL; }
No documentation available
T
InteractionAcceptOptions<
TRequest extends Activity,
TAuthorization extends ASObject,
TInteracting extends ASObject,
TTarget extends ASObject
>
=
{ readonly mode: "polite"; readonly id: URL; readonly actor: URL; readonly request: TRequest | URL; readonly authorization: TAuthorization | URL; readonly to: URL | readonly URL[]; readonly cc?: URL | readonly URL[]; }
| { readonly mode: "impolite"; readonly id: URL; readonly actor: URL; readonly interactingObject: TInteracting | URL; readonly interactionTarget: TTarget | URL; readonly authorization: TAuthorization | URL; readonly to: URL | readonly URL[]; readonly cc?: URL | readonly URL[]; }
No documentation available
T
InteractionAuthorizationVerification<TAuthorization extends ASObject> =
{ readonly verified: true; readonly authorization: TAuthorization; readonly authorizationId: URL; }
| { readonly verified: false; readonly failure: InteractionAuthorizationVerificationFailure; readonly authorization?: TAuthorization; readonly authorizationId?: URL; }
No documentation available
T
InteractionAuthorizationVerificationFailure =
{ readonly category: "unverifiable"; readonly type: "notDereferenceable"; readonly url: URL; readonly cause?: unknown; }
| { readonly category: "unverifiable"; readonly type: "unauthorizedFetchRequired"; readonly url: URL; }
| { readonly category: "unverifiable"; readonly type: "invalidJsonLd"; readonly cause?: unknown; }
| { readonly category: "unauthorized"; readonly type: "wrongType"; readonly expectedType: URL; readonly actualTypes: readonly URL[]; }
| { readonly category: "unauthorized"; readonly type: "missingId" | "missingObjectId" | "missingTargetId"; }
| { readonly category: "unauthorized"; readonly type: "missingAttribution"; }
| { readonly category: "unauthorized"; readonly type: "idMismatch" | "objectMismatch" | "targetMismatch"; readonly expected: URL; readonly actual?: URL; }
| { readonly category: "unauthorized"; readonly type: "attributionMismatch"; readonly expected: URL; readonly actual?: URL; }
| { readonly category: "unauthorized"; readonly type: "originMismatch"; readonly expectedOrigin: string; readonly actualOrigin: string; }
| { readonly category: "unauthorized"; readonly type: "notAuthentic"; readonly detail?: string; readonly cause?: unknown; }
| { readonly category: "revoked"; readonly type: "deleted"; readonly revoker?: URL; readonly revoked?: Temporal.Instant; readonly activity?: Delete; }
No documentation available
T
InteractionName = "like" | "reply" | "announce" | "quote" | "feature"
No documentation available
T
InteractionPolicyDecision =
{ readonly result: "automatic"; readonly reason: InteractionPolicyMatchReason; }
| { readonly result: "manual"; readonly reason: InteractionPolicyMatchReason; }
| { readonly result: "denied"; readonly reason: InteractionPolicyDenialReason; }
No documentation available
T
InteractionPolicyDenialReason =
{ readonly type: "missingPolicy"; }
| { readonly type: "missingRule"; }
| { readonly type: "noMatch"; }
| { readonly type: "unverifiableCollection"; readonly collection: URL; }
No documentation available
T
InteractionPolicyMatchReason =
{ readonly type: "self"; }
| { readonly type: "default"; readonly default: "publicAutomatic"; }
| { readonly type: "public"; }
| { readonly type: "actor"; readonly actor: URL; }
| { readonly type: "collection"; readonly collection: URL; }
No documentation available
T
InteractionPolicyProperty =
"canLike"
| "canReply"
| "canAnnounce"
| "canQuote"
| "canFeature"
No documentation available
T
InteractionRejectOptions<
TRequest extends Activity,
TInteracting extends ASObject,
TTarget extends ASObject
>
=
{ readonly mode: "polite"; readonly id: URL; readonly actor: URL; readonly request: TRequest | URL; readonly to: URL | readonly URL[]; readonly cc?: URL | readonly URL[]; }
| { readonly mode: "impolite"; readonly id: URL; readonly actor: URL; readonly interactingObject: TInteracting | URL; readonly interactionTarget: TTarget | URL; readonly to: URL | readonly URL[]; readonly cc?: URL | readonly URL[]; }
No documentation available
T
InteractionRequestVerification<
TRequest extends Activity,
TInteracting extends ASObject,
TTarget extends ASObject
>
=
{ readonly verified: true; readonly request: TRequest; readonly requestId: URL; readonly requester: URL; readonly interactingObject: TInteracting; readonly interactingObjectId: URL; readonly interactionTarget: TTarget; readonly interactionTargetId: URL; }
| { readonly verified: false; readonly failure: InteractionRequestVerificationFailure; readonly request?: TRequest; readonly requestId?: URL; }
No documentation available
T
InteractionRequestVerificationFailure =
{ readonly category: "unverifiable"; readonly type: "notDereferenceable"; readonly url: URL; readonly cause?: unknown; }
| { readonly category: "unverifiable"; readonly type: "unauthorizedFetchRequired"; readonly url: URL; }
| { readonly category: "unverifiable"; readonly type: "invalidJsonLd"; readonly cause?: unknown; }
| { readonly category: "invalid"; readonly type: "wrongType"; readonly expectedType: URL; readonly actualTypes: readonly URL[]; }
| { readonly category: "invalid"; readonly type: "wrongInstrumentType"; readonly expectedTypes: readonly URL[]; readonly actualTypes: readonly URL[]; }
| { readonly category: "invalid"; readonly type: "wrongObjectType"; readonly expectedTypes: readonly URL[]; readonly actualTypes: readonly URL[]; }
| { readonly category: "invalid"; readonly type:
"missingId"
| "missingActor"
| "missingObject"
| "missingObjectId"
| "missingInstrument"
| "missingInstrumentId"
; }

| { readonly category: "invalid"; readonly type: "idMismatch" | "objectMismatch" | "instrumentMismatch"; readonly expected: URL; readonly actual?: URL; }
| { readonly category: "unauthorized"; readonly type: "requesterMismatch"; readonly expected: URL; readonly actual?: URL; }
No documentation available
T
MatchesApprovalCollection<TContextData> = (
collection: URL,
actor: URL,
context: Context<TContextData>
) => boolean | Promise<boolean>
No documentation available
T
QuoteImpoliteSource = Create | QuotePost
No documentation available
T
QuotePost = Note | Article | Question | ChatMessage
No documentation available
T
ReplyImpoliteSource = Create | ReplyPost
No documentation available
T
ReplyPost = Note | Article | Question | ChatMessage
No documentation available

Variables

v
announceInteraction: InteractionControl<
AnnounceRequest,
AnnounceAuthorization,
Announce,
ASObject,
Announce
>
No documentation available
v
featureInteraction: InteractionControl<
FeatureRequest,
FeatureAuthorization,
FeaturedCollection,
Actor,
ASObject
>
No documentation available
v
likeInteraction: InteractionControl<LikeRequest, LikeAuthorization, Like, ASObject, Like>
No documentation available
v
quoteInteraction: InteractionControl<
QuoteRequest,
QuoteAuthorization,
QuotePost,
ASObject,
QuoteImpoliteSource
>
No documentation available
v
replyInteraction: InteractionControl<
ReplyRequest,
ReplyAuthorization,
ReplyPost,
ASObject,
ReplyImpoliteSource
>
No documentation available

Report package

Please provide a reason for reporting this package. We will review your report and take appropriate action.

Please review the JSR usage policy before submitting a report.