UNPKG

ctan

Version:

CTAN (Comprehensive TeX Archive Network) API client for Node.js

131 lines (130 loc) 3.96 kB
export const Author = { type: 'object', properties: { key: { type: 'string' }, givenname: { type: 'string', default: '' }, familyname: { type: 'string', default: '' }, pkgs: { type: 'array', items: { type: 'string' }, uniqueItems: true, nullable: true, }, }, required: ["key", "givenname", "familyname"], additionalProperties: true, }; export const Authors = { type: 'array', items: Author, }; export const PackageSummary = { type: 'object', properties: { key: { type: 'string' }, name: { type: 'string' }, caption: { type: 'string' }, }, required: ["key", "name", "caption"], additionalProperties: true, }; export const Packages = { type: 'array', items: PackageSummary, }; export const PackageAuthor = { type: 'object', properties: { id: { type: 'string' }, active: { type: 'boolean' } }, required: ["id", "active"], additionalProperties: true, }; export const Copyright = { type: 'object', properties: { owner: { type: 'string' }, year: { type: 'string', nullable: true }, }, required: ["owner", "year"], minProperties: 1, additionalProperties: true, }; export const PackageVersion = { type: 'object', properties: { number: { type: 'string', nullable: true }, date: { type: 'string', nullable: true }, }, minProperties: 1, required: [], additionalProperties: true, }; export const PackageDescription = { type: 'object', properties: { text: { type: 'string', nullable: true }, language: { type: 'string', nullable: true }, }, required: [], additionalProperties: true, }; export const PackageDocumentation = { type: 'object', properties: { language: { type: 'string', nullable: true }, details: { type: 'string', nullable: true }, href: { type: 'string', nullable: true }, }, required: [], additionalProperties: true, }; export const Package = { type: 'object', properties: { id: { type: 'string' }, name: { type: 'string' }, caption: { type: 'string' }, authors: { type: 'array', items: PackageAuthor }, copyright: { type: 'array', items: Copyright, nullable: true }, license: { type: ['string', 'array'], oneOf: [{ type: 'string' }, { type: 'array', items: { type: 'string' } }], nullable: true, }, version: { ...PackageVersion, nullable: true }, descriptions: { type: 'array', items: PackageDescription, nullable: true }, documentation: { type: 'array', items: PackageDocumentation }, ctan: { type: 'object', properties: { path: { type: 'string' }, file: { type: 'boolean', nullable: true }, }, required: ['path'], nullable: true, additionalProperties: true, }, install: { type: 'string', nullable: true }, miktex: { type: 'string', nullable: true }, texlive: { type: 'string', nullable: true }, index: { type: 'array', items: { type: 'string' }, nullable: true }, topics: { type: 'array', items: { type: 'string' }, nullable: true }, home: { type: 'string', nullable: true }, also: { type: 'array', items: { type: 'string' }, nullable: true }, }, required: ["id", "name", "caption", "authors", "documentation"], additionalProperties: true, }; export const Topic = { type: 'object', properties: { key: { type: 'string' }, details: { type: 'string' }, packages: { type: 'array', items: { type: 'string' }, nullable: true }, }, required: ["key", "details"], additionalProperties: true, }; export const Topics = { type: 'array', items: Topic, };