UNPKG

@ems-press/content-api-types

Version:

Typescript types for the EMS Press Content API

72 lines (71 loc) 2.68 kB
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; };