UNPKG

codex-types

Version:

TypeScript type library for Codex Scripture Editor

322 lines (321 loc) 8.74 kB
/********************** * Conversation Types * **********************/ export type Message = { id: string; role: SenderRole; sender: Sender; content: string; links: Link[]; }; export declare enum SenderRole { USER = 0, AI = 1 } export type Sender = { name: string; id: string; }; export type Conversation = { id: string; messages: Message[]; links: Link[]; }; export type Link = { id: string; targetId?: string; }; /*************** * Codex Types * ***************/ export type Codex = { id: string; cells: Cell[]; }; export type Cell = { id: string; kind: CellKind; content: string; links: Link[]; metadata: CellMetadata; }; export declare enum CellKind { MARKDOWN = 0, CODE = 1 } export type CellMetadata = { vrefs: VRef[]; notes: Note[]; [key: string]: any; }; export type Note = { id: string; content: string; links: Link[]; createdAt: Date; updatedAt: Date; }; export type VRef = { book: string; chapter: number; verse: number; }; export type Dictionary = { id: string; label: string; entries: DictionaryEntry[]; metadata: DictionaryMetadata; }; export type DictionaryMetadata = { [key: string]: any; }; export type DictionaryEntry = { id: string; headForm: string; variantForms: string[] | DictionaryEntry[]; definition: string; translationEquivalents: LanguageTaggedString[]; links: Link[]; linkedEntries: string[]; metadata: DictionaryEntryMetadata; notes: Note[]; [key: string]: any; }; export type LanguageTaggedString = { languageCode?: string; languageName?: string; content: string; }; export type DictionaryEntryMetadata = { [key: string]: any; }; /*************** * Project Types * ***************/ export type RelativePath = string; /** This is going to be a URI relative to the project root */ export type HTMLString = string; /** This is going to be stringified HTML */ export type LanguageMetadata = { tag: string; name: { [key: string]: string; }; scriptDirection?: ScriptDirection; iso2b?: string; iso2t?: string; iso1?: string; scope?: string; type?: string; comment?: string; refName?: string; projectStatus?: LanguageProjectStatus; [key: string]: any; }; export declare enum LanguageProjectStatus { SOURCE = "source", TARGET = "target", SOURCE_AND_TARGET = "source_and_target", REFERENCE = "reference" } export declare enum ScriptDirection { LTR = "ltr", RTL = "rtl" } export type Project = { format: string; projectName: string; projectStatus?: string; meta: { version: string; category: string; generator: { softwareName: string; softwareVersion: string; userName: string; }; defaultLocale: string; dateCreated: string; normalization: string; comments: Array<string>; }; idAuthorities: any; identification: { title?: string; type?: string; description?: string; definitions?: { revisionString?: { type?: string; pattern?: string; }; }; properties?: { name?: string; description?: string; abbreviation?: string; primary?: { type?: string; additionalProperties?: { type?: string; additionalProperties?: { type?: string; revision?: string; timestamp?: string; required?: string[]; }; }; minProperties?: number; maxProperties?: number; description?: string; }; upstream?: { type?: string; additionalProperties?: { type?: string; items?: { type?: string; additionalProperties?: { type?: string; revision?: string; timestamp?: string; required?: string[]; }; }; }; description?: string; }; }; required?: string[]; additionalProperties?: boolean; }; languages: Array<LanguageMetadata>; type: { flavorType: { name: string; flavor: { name: string; usfmVersion: string; translationType: string; audience: string; projectType: string; }; currentScope: { GEN: Array<string>; EXO: Array<string>; LEV: Array<string>; NUM: Array<string>; DEU: Array<string>; JOS: Array<string>; JDG: Array<string>; RUT: Array<string>; "1SA": Array<string>; "2SA": Array<string>; "1KI": Array<string>; "2KI": Array<string>; "1CH": Array<string>; "2CH": Array<string>; EZR: Array<string>; NEH: Array<string>; EST: Array<string>; JOB: Array<string>; PSA: Array<string>; PRO: Array<string>; ECC: Array<string>; SNG: Array<string>; ISA: Array<string>; JER: Array<string>; LAM: Array<string>; EZK: Array<string>; DAN: Array<string>; HOS: Array<string>; JOL: Array<string>; AMO: Array<string>; OBA: Array<string>; JON: Array<string>; MIC: Array<string>; NAM: Array<string>; HAB: Array<string>; ZEP: Array<string>; HAG: Array<string>; ZEC: Array<string>; MAL: Array<string>; "1ES": Array<string>; "2ES": Array<string>; TOB: Array<string>; JDT: Array<string>; ESG: Array<string>; WIS: Array<string>; SIR: Array<string>; BAR: Array<string>; LJE: Array<string>; S3Y: Array<string>; SUS: Array<string>; BEL: Array<string>; MAN: Array<string>; "1MA": Array<string>; "2MA": Array<string>; MAT: Array<string>; MRK: Array<string>; LUK: Array<string>; JHN: Array<string>; ACT: Array<string>; ROM: Array<string>; "1CO": Array<string>; "2CO": Array<string>; GAL: Array<string>; EPH: Array<string>; PHP: Array<string>; COL: Array<string>; "1TH": Array<string>; "2TH": Array<string>; "1TI": Array<string>; "2TI": Array<string>; TIT: Array<string>; PHM: Array<string>; HEB: Array<string>; JAS: Array<string>; "1PE": Array<string>; "2PE": Array<string>; "1JN": Array<string>; "2JN": Array<string>; "3JN": Array<string>; JUD: Array<string>; REV: Array<string>; }; }; }; confidential: boolean; agencies: Array<any>; targetAreas: Array<any>; localizedNames: { [key: string]: { abbr: { [key: string]: string; }; short: { [key: string]: string; }; long: { [key: string]: string; }; }; }; ingredients?: { [key: RelativePath]: { checksum?: { [key: string]: string; }; mimeType?: string; size?: number; scope?: { [key: string]: Array<any>; }; }; }; copyright: { shortStatements: Array<{ statement: string | HTMLString; mimetype: string; lang: string; }>; }; };