TypeScript typings for ActivityPub
npm i activitypub-types
# or
yarn add activitypub-types
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;
// ...
}
- Update activities and documents types (#3, by @Saiv46)
- Add
APRoot
type and removed@context
fromAPObject
(#5) - Improve AP documentation (#3, by @Saiv46)
- Update README docs
- Refactor (#3, by @Saiv46)
- Use
orderedItems
instead ofitems
inOrderedCollection
(#1, by @RangerMauve)