@openinspection/citera
v0.0.0
Published
Headless PDF citation primitives for locating cited text and deriving highlight geometry.
Readme
@openinspection/citera
Headless citation primitives for locating cited text and deriving highlight geometry.
import { citera, project } from "@openinspection/citera";
const cite = citera();
const result = await cite({
text: "Revenue increased by 12% compared with the prior year.",
pageIndex: 0,
from: sourceTextModel,
});
const projected = project(result);Citera is source-agnostic and viewer-agnostic. Consumers call a configured Citera engine with a citation request, then paint returned HighlightRegion geometry in their own viewer. A SourceTextModel works with core alone; raw PDF and image sources are handled by resolution packages.
Core normalizes supported from values before resolution stages run:
SourceTextModel- typed
Blob URL- explicit
{ kind, data }byte wrappers
Core loads and classifies sources, but parsing PDFs or recognizing images belongs to resolution packages.
Resolution stages
The core package includes text-model resolution. PDF parsing and OCR resolution live in separate packages and are exposed through the curated public seam.
import { citera, textResolution } from "@openinspection/citera";
import { pdfResolution } from "@openinspection/citera/resolutions/pdf";
import { ocrResolution } from "@openinspection/citera/resolutions/ocr";
const cite = citera({
resolution: [
pdfResolution(),
textResolution(),
ocrResolution({
renderPage: async (page) => renderPageToImage(page),
}),
],
});
const result = await cite({ text, pageIndex: 0, from: pdfFile });The curated @openinspection/citera/resolutions/* subpaths keep heavier PDF and OCR dependencies out of the root entry point unless those resolution stages are imported.
Fixtures
fixtures/pdfs contains Huawei SUN2000-50KTL-M3 datasheets copied from the adjacent docs-solar workspace. fixtures/models contains a PDF.js-derived SourceTextModel for the English datasheet, and fixtures/citations contains stable citation inputs used by the test suite.
