# Classes
Epitelete

PERF Middleware for Editors in the Proskomma Ecosystem

# Typedefs
contentElementPerf : object
blockOrGraftPerf : object
perfSequence : object
perfDocument : object
bookCode : string
bookHistory : Object
history : Object.<string, bookHistory>
Proskomma

Proskomma instance

PipelineHandler

PipelineHandlers instance

# Epitelete PERF Middleware for Editors in the Proskomma Ecosystem **Kind**: global class * [Epitelete](#Epitelete) * [new Epitelete(args)](#new_Epitelete_new) * [.history](#Epitelete+history) : [history](#history) * [.clearPerf()](#Epitelete+clearPerf) ⇒ void * [.sideloadPerf(bookCode, perfDocument)](#Epitelete+sideloadPerf) ⇒ [Promise.<perfDocument>](#perfDocument) * [.fetchPerf(bookCode)](#Epitelete+fetchPerf) ⇒ [Promise.<perfDocument>](#perfDocument) * [.readPerf(bookCode, [options])](#Epitelete+readPerf) ⇒ [Promise.<perfDocument>](#perfDocument) * [.writePerf(bookCode, sequenceId, perfSequence)](#Epitelete+writePerf) ⇒ [Promise.<perfDocument>](#perfDocument) * [.checkPerfSequence(perfSequence)](#Epitelete+checkPerfSequence) ⇒ Array.<string> * [.localBookCodes()](#Epitelete+localBookCodes) ⇒ Array.<string> * [.bookHeaders()](#Epitelete+bookHeaders) ⇒ Object * [.canUndo(bookCode)](#Epitelete+canUndo) ⇒ boolean * [.canRedo(bookCode)](#Epitelete+canRedo) ⇒ boolean * [.undoPerf(bookCode)](#Epitelete+undoPerf) ⇒ Promise.<?perfDocument> * [.redoPerf(bookCode)](#Epitelete+redoPerf) ⇒ Promise.<?perfDocument> * [.readUsfm(bookCode)](#Epitelete+readUsfm) ⇒ Promise.<string> * [.makeDocumentReport(bookCode, reportName, data)](#Epitelete+makeDocumentReport) ⇒ Promise.<array> * [.makeDocumentsReport(reportName, data)](#Epitelete+makeDocumentsReport) ⇒ Promise.<object> * * * ## new Epitelete(args) **Returns**: [Epitelete](#Epitelete) - Epitelete instance | Param | Type | Default | Description | | --- | --- | --- | --- | | args | Object | | constructor args | | [args.proskomma] | [Proskomma](#Proskomma) | | a proskomma instance | | args.docSetId | number | | a docSetId | | [args.options] | object | {} | setting params | | [args.options.historySize] | number | 10 | size of history buffer | * * * ## epitelete.history : [history](#history) **Kind**: instance property of [Epitelete](#Epitelete) * * * ## epitelete.clearPerf() ⇒ void Clears docs history **Kind**: instance method of [Epitelete](#Epitelete) **Returns**: void - void * * * ## epitelete.sideloadPerf(bookCode, perfDocument) ⇒ [Promise.<perfDocument>](#perfDocument) Loads given perf into memory **Kind**: instance method of [Epitelete](#Epitelete) **Returns**: [Promise.<perfDocument>](#perfDocument) - same sideloaded PERF document | Param | Type | Description | | --- | --- | --- | | bookCode | string | | | perfDocument | [perfDocument](#perfDocument) | PERF document | * * * ## epitelete.fetchPerf(bookCode) ⇒ [Promise.<perfDocument>](#perfDocument) Fetches document from proskomma instance **Kind**: instance method of [Epitelete](#Epitelete) **Returns**: [Promise.<perfDocument>](#perfDocument) - fetched PERF document | Param | Type | | --- | --- | | bookCode | string | * * * ## epitelete.readPerf(bookCode, [options]) ⇒ [Promise.<perfDocument>](#perfDocument) Gets document from memory or fetches it if proskomma is set **Kind**: instance method of [Epitelete](#Epitelete) **Returns**: [Promise.<perfDocument>](#perfDocument) - found or fetched PERF document | Param | Type | Description | | --- | --- | --- | | bookCode | string | | | [options] | object | | | [options.readPipeline] | string | pipeline name | * * * ## epitelete.writePerf(bookCode, sequenceId, perfSequence) ⇒ [Promise.<perfDocument>](#perfDocument) Merges a sequence with the document and saves the new modified document. **Kind**: instance method of [Epitelete](#Epitelete) **Returns**: [Promise.<perfDocument>](#perfDocument) - modified PERF document | Param | Type | Description | | --- | --- | --- | | bookCode | string | | | sequenceId | number | id of modified sequence | | perfSequence | [perfSequence](#perfSequence) | modified sequence | * * * ## epitelete.checkPerfSequence(perfSequence) ⇒ Array.<string> ?Checks Perf Sequence **Kind**: instance method of [Epitelete](#Epitelete) **Returns**: Array.<string> - array of warnings | Param | Type | | --- | --- | | perfSequence | [perfSequence](#perfSequence) | * * * ## epitelete.localBookCodes() ⇒ Array.<string> Get array of book codes from history **Kind**: instance method of [Epitelete](#Epitelete) **Returns**: Array.<string> - array of bookCodes * * * ## epitelete.bookHeaders() ⇒ Object Gets the available books for current docSet. **Kind**: instance method of [Epitelete](#Epitelete) **Returns**: Object - an object with book codes as keys, and values contain book header data * * * ## epitelete.canUndo(bookCode) ⇒ boolean Checks if able to undo from specific book history **Kind**: instance method of [Epitelete](#Epitelete) | Param | Type | | --- | --- | | bookCode | string | * * * ## epitelete.canRedo(bookCode) ⇒ boolean Checks if able to redo from specific book history **Kind**: instance method of [Epitelete](#Epitelete) | Param | Type | | --- | --- | | bookCode | string | * * * ## epitelete.undoPerf(bookCode) ⇒ Promise.<?perfDocument> Gets previous document from history **Kind**: instance method of [Epitelete](#Epitelete) **Returns**: Promise.<?perfDocument> - PERF document or null if can not undo | Param | Type | | --- | --- | | bookCode | string | * * * ## epitelete.redoPerf(bookCode) ⇒ Promise.<?perfDocument> Gets next document from history **Kind**: instance method of [Epitelete](#Epitelete) **Returns**: Promise.<?perfDocument> - PERF document or null if can not redo | Param | Type | | --- | --- | | bookCode | string | * * * ## epitelete.readUsfm(bookCode) ⇒ Promise.<string> Gets document from memory and converts it to usfm **Kind**: instance method of [Epitelete](#Epitelete) **Returns**: Promise.<string> - converted usfm | Param | Type | | --- | --- | | bookCode | string | * * * ## epitelete.makeDocumentReport(bookCode, reportName, data) ⇒ Promise.<array> Generates and returns a report via a transform pipeline **Kind**: instance method of [Epitelete](#Epitelete) **Returns**: Promise.<array> - A report | Param | Type | | --- | --- | | bookCode | string | | reportName | string | | data | object | * * * ## epitelete.makeDocumentsReport(reportName, data) ⇒ Promise.<object> Generates and returns a report for each document via a transform pipeline **Kind**: instance method of [Epitelete](#Epitelete) **Returns**: Promise.<object> - reports for each documents with bookCode as the key | Param | Type | | --- | --- | | reportName | string | | data | object | * * * # contentElementPerf : object **Kind**: global typedef **Properties** | Name | Type | | --- | --- | | type | string | | [number] | string | | [subtype] | "verses" \| "xref" \| "footnote" \| "noteCaller" | | [target] | string | | [nBlocks] | number | | [previewText] | string | * * * # blockOrGraftPerf : object **Kind**: global typedef **Properties** | Name | Type | | --- | --- | | type | "block" \| "graft" | | subtype | string | | [target] | string | | [nBlocks] | number | | [previewText] | string | | [firstBlockScope] | string | | [content] | Array.<(string\|contentElementPerf)> | * * * # perfSequence : object **Kind**: global typedef **Properties** | Name | Type | | --- | --- | | type | "main" \| "introduction" \| "introTitle" \| "IntroEndTitle" \| "title" \| "endTitle" \| "heading" \| "remark" \| "sidebar" \| "table" \| "tree" \| "kv" \| "footnote" \| "noteCaller" \| "xref" \| "pubNumber" \| "altNumber" \| "esbCat" \| "fig" \| "temp" | | [nBlocks] | number | | [firstBlockScope] | string | | [previewText] | string | | selected | boolean | | [blocks] | [Array.<blockOrGraftPerf>](#blockOrGraftPerf) | * * * # perfDocument : object **Kind**: global typedef **Properties** | Name | Type | | --- | --- | | headers | object | | tags | array | | sequences | Object.<string, perfSequence> | | mainSequence | string | * * * # bookCode : string **Kind**: global typedef * * * # bookHistory : Object **Kind**: global typedef **Properties** | Name | Type | | --- | --- | | bookHistory.cursor | number | | bookHistory.stack | Array.<Object> | | bookHistory.stack[].perfDocument | [perfDocument](#perfDocument) | | bookHistory.stack[].pipelineData | Object.<string, any> | * * * # history : Object.<string, bookHistory> **Kind**: global typedef * * * # Proskomma Proskomma instance **Kind**: global typedef **See**: [https://github.com/mvahowe/proskomma-js](https://github.com/mvahowe/proskomma-js) * * * # PipelineHandler PipelineHandlers instance **Kind**: global typedef **See**: [https://github.com/DanielC-N/pipelineHandler](https://github.com/DanielC-N/pipelineHandler) * * *