@ems-press/content-api-types
Version:
Typescript types for the EMS Press Content API
72 lines (71 loc) • 2.68 kB
TypeScript
import { PersonGroups, Serials, SerialIssues, SerialArticleFiles, SerialArticleImages } from './index';
import { DateFilter, IsInFilter } from '../filter';
import { DatePrecision } from '../date';
export declare type Type = 'serial-articles';
export declare type SerialArticleType = 'addendum' | 'announcement' | 'book-review' | 'discussion' | 'editorial' | 'editorial-board' | 'erratum' | 'feature-article' | 'interview' | 'letter-to-the-editor' | 'miscellaneous' | 'obituary' | 'report' | 'research-article' | 'retraction';
export declare const serialArticleTypes: SerialArticleType[];
export declare type SerialArticleOnlineAccessType = 'open' | 'free' | 'subscription';
export declare const serialArticleOnlineAccessType: import("./books").BookOnlineAccessType[];
export declare type Attributes = {
createdAt: Date;
updatedAt: Date;
articleType: SerialArticleType;
submittedAt?: Date;
submittedAtPrecision?: DatePrecision;
acceptedAt?: Date;
acceptedAtPrecision?: DatePrecision;
publishedAt: Date;
publishedAtPrecision: DatePrecision;
retractedAt?: Date;
retractedAtPrecision?: DatePrecision;
title: string;
titleTex: string;
subtitle?: string;
subtitleTex?: string;
abstractMarkdown?: string;
abstractMarkdownTex?: string;
doi?: string;
mscs?: string[];
keywords?: string[];
pages?: number;
pageStart?: number;
pageEnd?: number;
copyright?: string;
copyrightUrl?: string;
license?: string;
licenseCode?: string;
licenseUrl?: string;
onlineAccessType: SerialArticleOnlineAccessType;
readDescriptionMarkdown?: string;
languageCode?: string;
};
export declare type Relationships = {
serial: {
type: Serials.Type;
cardinality: '1';
};
serialIssue: {
type: SerialIssues.Type;
cardinality: null | '1';
};
personGroups: {
type: PersonGroups.Type;
cardinality: 'N';
};
serialArticleFiles: {
type: SerialArticleFiles.Type;
cardinality: 'N';
};
serialArticleImages: {
type: SerialArticleImages.Type;
cardinality: 'N';
};
};
export declare type SortField = 'createdAt' | 'updatedAt' | 'submittedAt' | 'acceptedAt' | 'publishedAt' | 'retractedAt' | 'title' | 'pages' | 'pageStart' | 'pageEnd';
export declare type Filter = DateFilter<'created' | 'updated' | 'submitted' | 'accepted' | 'published' | 'retracted'> & IsInFilter<Attributes, 'articleType' | 'doi' | 'licenseCode' | 'onlineAccessType' | 'languageCode'> & {
mscs?: string[];
keywords?: string[];
serial?: number[];
serialIssue?: number[];
serialIssueEmpty?: true;
};