codex-types
Version:
TypeScript type library for Codex Scripture Editor
322 lines (321 loc) • 8.74 kB
TypeScript
/**********************
* 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;
}>;
};
};