Something went wrong. Try again.
This repository has no description
Something went wrong. Try again.
TypeScript
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108export { VERSION } from "./version"
// Branded primitives — constructors (Brand.nominal) and the schemas// (Schema.fromBrand) that decode the same branded types at boundaries.// Each name exports both its value (constructor/schema) and type meaning.export { LayerId, LayerIdSchema, LutId, LutIdSchema, FieldKey, FieldKeySchema } from "./brands"
// Layer data modelexport { createLayer, nextLayerId, makeRegistry, LAYER_TYPES, Layer, LayerPatch, LutLayer, UnknownLayerTypeError,} from "./layers"export type { FieldMeta, LayerEntry, LayerRegistry, RegistryInput, LayerType,} from "./layers"
// Chain operationsexport { addLayer, removeLayer, reorderLayer, updateLayerParam, toggleLayerVisibility, replaceChain,} from "./chain"
// Render pipeline// The engine builds a render request (shader + uniforms + source + frame);// execution and canvas presentation live in the frontend's GPU backend.export { createRenderRequest, GpuError } from "./render"export type { RenderRequest } from "./render"
// LUT parsing// Pure `.cube` text → `LutCube`; fetching bytes and GPU upload are the// frontend's concern.export { parseCube, LutParseError } from "./luts/cube"export type { LutCube } from "./luts/cube"
// CPU LUT application// The pure-JS mirror of the WGSL LUT pass body (docs/adr/0013): per-photo// filmstrip previews render through this in the thumb worker, where the GPU// pipeline is not available. Exact match for a LUT-only chain (sRGB in,// sRGB out — no colorspace boundary).export { applyLutCpu } from "./luts/apply"
// Shader generationexport { generateChainSource, SRGB_TO_LINEAR, WORKGROUP_SIZE, MissingLutReferenceError,} from "./shaders"export type { ChainLayerInfo, ChainPass, ChainShader, UniformSlot, BodyRenderer } from "./shaders"
// Shader body renderers — one per layer type. Consumers build a registry// (`makeRegistry`) from these to drive both `createLayer` and `render`.export { renderExposure, renderContrast, renderShadows, renderHighlights, renderWhiteBalance, renderSaturation, renderGrain, renderVignette, renderChromaticAberration, renderClarity, renderLut,} from "./shaders"
// Export encoding// The engine owns the encoder contract (`ImageEncoder` service) and the// jSquash implementation; the frontend provides a worker-backed layer for// the app (docs/adr/0006).export { EXPORT_FORMATS, ExportFormat, EXPORT_SCALES, ExportQuality, ExportScale, ExportSettings, defaultExportSettings, isLossy, fileExtension, mimeFor, EncodeError, ImageEncoder, ImageEncoderLive, encodeImage,} from "./encode"export type { ExportFormat as ExportFormatType, ExportQuality as ExportQualityType, ExportScale as ExportScaleType, ExportSettings as ExportSettingsType, ImageEncoderShape,} from "./encode"