1.1.0 • Published 2 years ago
activitypub-types v1.1.0
ActivityPub Types
TypeScript typings for ActivityPub
Installation
npm i activitypub-types
# or
yarn add activitypub-typesHow 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
APRoottype and removed@contextfromAPObject(#5) - Improve AP documentation (#3, by @Saiv46)
- Update README docs
- Refactor (#3, by @Saiv46)
v1.0.3
- Use
orderedItemsinstead ofitemsinOrderedCollection(#1, by @RangerMauve)