add Activity types

pull/1/head
SiRanWeb 2022-10-29 21:22:47 +03:00
rodzic f93f5deb2f
commit e7ad5082f2
5 zmienionych plików z 129 dodań i 56 usunięć

Wyświetl plik

@ -18,17 +18,23 @@ export type Mention = 'placeholder';
export type AnyASObject = ASObject | Article | Audio | Document | Event | Image | Note | Page | Place | Profile | Relationship | Tombstone | Video; export type AnyASObject = ASObject | Article | Audio | Document | Event | Image | Note | Page | Place | Profile | Relationship | Tombstone | Video;
export type DateTime = string; export type DateTime = string;
export type Duration = string; export type Duration = string;
export type UrlField = string | Link; export type UrlValue = string | Link;
export type IconField = string | Image | Link; export type IconValue = string | Image | Link;
export type ImageField = string | Image | Link; export type ImageValue = string | Image | Link;
export type AttachmentField = string | AnyASObject | Link; export type AttachmentValue = string | AnyASObject | Link;
export type AudienceField = string | AnyASObject | Link; export type AudienceValue = string | AnyASObject | Link;
export type InReplyToField = string | AnyASObject | Link; export type InReplyToValue = string | AnyASObject | Link;
export type LocationField = string | AnyASObject | Link; export type LocationValue = string | Place | Link;
export type PreviewField = string | AnyASObject | Link; export type PreviewValue = string | AnyASObject | Link;
export type ToField = string | AnyASObject | Link; export type ToValue = string | AnyASObject | Link;
export type BtoField = string | AnyASObject | Link; export type BtoValue = string | AnyASObject | Link;
export type CcField = string | AnyASObject | Link; export type CcValue = string | AnyASObject | Link;
export type BccField = string | AnyASObject | Link; export type BccValue = string | AnyASObject | Link;
export type AttributedToField = string | AnyASObject | Link | Mention; export type ObjectValue = string | AnyASObject | Link;
export type TagField = string | AnyASObject | Link | Mention; export type AttributedToValue = string | AnyASObject | Link | Mention;
export type TagValue = string | AnyASObject | Link | Mention;
export type ActorValue = string | ASObject | Link;
export type TargetValue = string | ASObject | Link;
export type ResultValue = string | ASObject | Link;
export type OriginValue = string | ASObject | Link;
export type InstrumentValue = string | ASObject | Link;

Wyświetl plik

@ -1,14 +0,0 @@
import {ASBase} from "./ASBase.model";
import {IntransitiveActivityFields} from "./IntransitiveActivity.model";
// TODO: types
// https://www.w3.org/TR/activitystreams-core/#activities
export interface ActivityFields extends IntransitiveActivityFields {
object?: any; // Object?
}
export class Activity extends ASBase<ActivityFields>{
constructor(fields: ActivityFields) {
super(fields);
}
}

Wyświetl plik

@ -0,0 +1,16 @@
import {ASBase} from "../ASBase.model";
import { ActivityFields } from "./Activity.types";
/**
* An Activity is a subtype of Object that describes some form of action that may happen,
* is currently happening, or has already happened. The Activity type itself serves as an
* abstract base type for all types of activities. It is important to note that the Activity
* type itself does not carry any specific semantics about the kind of action being taken.
*
* {@link https://www.w3.org/ns/activitystreams#Activity Docs}
*/
export class Activity extends ASBase<ActivityFields>{
constructor(fields: ActivityFields) {
super(fields);
}
}

Wyświetl plik

@ -0,0 +1,65 @@
import {ASObjectFields} from "../asObject/ASObject.types";
import {
ActorValue,
InstrumentValue,
ObjectValue,
OriginValue,
ResultValue,
TargetValue
} from "../../common/common.types";
export interface ActivityFields extends ASObjectFields {
/**
* Describes one or more entities that either performed or are expected to perform the activity.
* Any single activity can have multiple actors. The actor MAY be specified using an indirect Link.
*
* {@link https://www.w3.org/ns/activitystreams#actor Docs}
*/
actor?: ActorValue | ActorValue[];
/**
* When used within an Activity, describes the direct object of the activity.
* For instance, in the activity "John added a movie to his wishlist",
* the object of the activity is the movie added.
*
* {@link https://www.w3.org/ns/activitystreams#object Docs}
*/
object?: ObjectValue | ObjectValue[];
/**
* Describes the indirect object, or target, of the activity. The precise meaning of the target is largely dependent
* on the type of action being described but will often be the object of the English preposition "to".
* For instance, in the activity "John added a movie to his wishlist", the target of the activity
* is John's wishlist. An activity can have more than one target.
*
* {@link https://www.w3.org/ns/activitystreams#target Docs}
*/
target?: TargetValue | TargetValue[];
/**
* Describes the result of the activity. For instance, if a particular action results
* in the creation of a new resource, the result property can be used to describe that new resource.
*
* {@link https://www.w3.org/ns/activitystreams#result Docs}
*/
result?: ResultValue | ResultValue[];
/**
* Describes an indirect object of the activity from which the activity is directed.
* The precise meaning of the origin is the object of the English preposition "from".
* For instance, in the activity "John moved an item to List B from List A",
* the origin of the activity is "List A".
*
* {@link https://www.w3.org/ns/activitystreams#origin Docs}
*/
origin?: OriginValue | OriginValue[];
/**
* Identifies one or more objects used (or to be used)
* in the completion of an Activity.
*
* {@link https://www.w3.org/ns/activitystreams#instrument Docs}
*/
instrument?: InstrumentValue | InstrumentValue[];
}

Wyświetl plik

@ -4,20 +4,20 @@ import { ASObject } from "./ASObject.model";
import { import {
DateTime, DateTime,
Duration, Duration,
UrlField, UrlValue,
IconField, IconValue,
ImageField, ImageValue,
AttachmentField, AttachmentValue,
AudienceField, AudienceValue,
InReplyToField, InReplyToValue,
LocationField, LocationValue,
PreviewField, PreviewValue,
ToField, ToValue,
BtoField, BtoValue,
CcField, CcValue,
BccField, BccValue,
AttributedToField, AttributedToValue,
TagField, TagValue,
} from "../../common/common.types"; } from "../../common/common.types";
// TODO: types // TODO: types
@ -45,7 +45,7 @@ export interface ASObjectFields {
* *
* {@link https://www.w3.org/ns/activitystreams#attachment Docs} * {@link https://www.w3.org/ns/activitystreams#attachment Docs}
*/ */
attachment?: AttachmentField | AttachmentField[]; attachment?: AttachmentValue | AttachmentValue[];
/** /**
@ -55,7 +55,7 @@ export interface ASObjectFields {
* *
* {@link https://www.w3.org/ns/activitystreams#attributedTo Docs} * {@link https://www.w3.org/ns/activitystreams#attributedTo Docs}
*/ */
attributedTo?: AttributedToField | AttributedToField[]; attributedTo?: AttributedToValue | AttributedToValue[];
/** /**
* Identifies one or more entities that represent the total population of entities * Identifies one or more entities that represent the total population of entities
@ -63,7 +63,7 @@ export interface ASObjectFields {
* *
* {@link https://www.w3.org/ns/activitystreams#audience Docs} * {@link https://www.w3.org/ns/activitystreams#audience Docs}
*/ */
audience?: AudienceField | AudienceField[]; audience?: AudienceValue | AudienceValue[];
// TODO: only content or contentMap at one time // TODO: only content or contentMap at one time
@ -167,7 +167,7 @@ export interface ASObjectFields {
* *
* {@link https://www.w3.org/ns/activitystreams#icon Docs} * {@link https://www.w3.org/ns/activitystreams#icon Docs}
*/ */
icon?: IconField | IconField[]; icon?: IconValue | IconValue[];
/** /**
* Indicates an entity that describes an image for this object. * Indicates an entity that describes an image for this object.
@ -175,28 +175,28 @@ export interface ASObjectFields {
* *
* {@link https://www.w3.org/ns/activitystreams#image Docs} * {@link https://www.w3.org/ns/activitystreams#image Docs}
*/ */
image?: ImageField | ImageField[]; image?: ImageValue | ImageValue[];
/** /**
* Indicates one or more entities for which this object is considered a response. * Indicates one or more entities for which this object is considered a response.
* *
* {@link https://www.w3.org/ns/activitystreams#inReplyTo Docs} * {@link https://www.w3.org/ns/activitystreams#inReplyTo Docs}
*/ */
inReplyTo?: InReplyToField | InReplyToField[]; inReplyTo?: InReplyToValue | InReplyToValue[];
/** /**
* Indicates one or more physical or logical locations associated with the object. * Indicates one or more physical or logical locations associated with the object.
* *
* {@link https://www.w3.org/ns/activitystreams#location Docs} * {@link https://www.w3.org/ns/activitystreams#location Docs}
*/ */
location?: LocationField | LocationField[]; location?: LocationValue | LocationValue[];
/** /**
* Identifies an entity that provides a preview of this object. * Identifies an entity that provides a preview of this object.
* *
* {@link https://www.w3.org/ns/activitystreams#preview Docs} * {@link https://www.w3.org/ns/activitystreams#preview Docs}
*/ */
preview?: PreviewField; preview?: PreviewValue;
/** /**
* The date and time at which the object was published. * The date and time at which the object was published.
@ -248,7 +248,7 @@ export interface ASObjectFields {
* *
* {@link https://www.w3.org/ns/activitystreams#tag Docs} * {@link https://www.w3.org/ns/activitystreams#tag Docs}
*/ */
tag?: TagField | TagField[]; tag?: TagValue | TagValue[];
/** /**
* The date and time at which the object was updated. * The date and time at which the object was updated.
@ -271,35 +271,35 @@ export interface ASObjectFields {
* *
* {@link https://www.w3.org/ns/activitystreams#url Docs} * {@link https://www.w3.org/ns/activitystreams#url Docs}
*/ */
url?: UrlField | UrlField[]; url?: UrlValue | UrlValue[];
/** /**
* Identifies an entity or entities considered to be part of the public primary audience of an Object. * Identifies an entity or entities considered to be part of the public primary audience of an Object.
* *
* {@link https://www.w3.org/ns/activitystreams#to Docs} * {@link https://www.w3.org/ns/activitystreams#to Docs}
*/ */
to?: ToField | ToField[]; to?: ToValue | ToValue[];
/** /**
* Identifies an Object that is part of the private primary audience of this Object. * Identifies an Object that is part of the private primary audience of this Object.
* *
* {@link https://www.w3.org/ns/activitystreams#bto Docs} * {@link https://www.w3.org/ns/activitystreams#bto Docs}
*/ */
bto?: BtoField | BtoField[]; bto?: BtoValue | BtoValue[];
/** /**
* Identifies an Object that is part of the public secondary audience of this Object. * Identifies an Object that is part of the public secondary audience of this Object.
* *
* {@link https://www.w3.org/ns/activitystreams#cc Docs} * {@link https://www.w3.org/ns/activitystreams#cc Docs}
*/ */
cc?: CcField | CcField[]; cc?: CcValue | CcValue[];
/** /**
* Identifies one or more Objects that are part of the private secondary audience of this Object. * Identifies one or more Objects that are part of the private secondary audience of this Object.
* *
* {@link https://www.w3.org/ns/activitystreams#bcc Docs} * {@link https://www.w3.org/ns/activitystreams#bcc Docs}
*/ */
bcc?: BccField | BccField[]; bcc?: BccValue | BccValue[];
/** /**
* When the object describes a time-bound resource, such as an audio or video, a meeting, etc., * When the object describes a time-bound resource, such as an audio or video, a meeting, etc.,