activitypub-types
TypeScript icon, indicating that this package has built-in type declarations

1.1.0 • Public • Published

ActivityPub Types

TypeScript typings for ActivityPub

Installation

npm i activitypub-types
# or
yarn add activitypub-types

How to use

Implemented and documented every structure from specification. You can use interfaces and extend them by yourself, or you can use specified fields types.

To specify object use correct type:

import { APAdd } from 'activitypub-types';
const addActivity: APAdd = {
    type: 'Add',
    actor: 'https://actor.example.org',
    // ...
}

Fields in types are pretty flexible, so you can pass different variations:

import { APAdd, APActor } from 'activitypub-types';

const actor1 = 'https://actor.example.org';

const actor2: APActor = {
    type: 'Person',
    id: 'https://actor2.example.org',
    summary: 'Another actor',
    inbox: 'https://actor2.example.org/inbox',
    outbox: 'https://actor2.example.org/outbox',
};

const addActivity: APAdd = {
    type: 'Add',
    actor: [actor1, actor2],
    // ...
};

To provide @context field use APRoot:

import { APAdd, APRoot } from 'activitypub-types';

const addActivity: APRoot<APAdd> = {
    '@context': 'https://www.w3.org/ns/activitystreams',
    type: 'Add',
    // ...
}

If you need field types themselves, you can import as well:

import { TypeField, NameField } from 'activitypub-types';

interface APExample {
    type: TypeField;
    name?: NameField;
    // ...
}

Changelog

v1.1.0

  • Update activities and documents types (#3, by @Saiv46)
  • Add APRoot type and removed @context from APObject (#5)
  • Improve AP documentation (#3, by @Saiv46)
  • Update README docs
  • Refactor (#3, by @Saiv46)

v1.0.3

  • Use orderedItems instead of items in OrderedCollection (#1, by @RangerMauve)

License

MIT

Dependencies (0)

    Dev Dependencies (4)

    Package Sidebar

    Install

    npm i activitypub-types

    Weekly Downloads

    176

    Version

    1.1.0

    License

    MIT

    Unpacked Size

    73.8 kB

    Total Files

    121

    Last publish

    Collaborators

    • siranweb