Skip to content
5 min read · 919 words

Class: MediaChain ​

Defined in: src/batteries/media/builder.ts:56

The chainable builder. Immutable — every verb returns a new instance sharing the executor. Thenable — await runs the chain and resolves to the terminal step's natural type.

Implements ​

  • PromiseLike<unknown>

Constructors ​

Constructor ​

ts
new MediaChain(exec: ChainExecutor, ops?: MediaOp[]): MediaChain;

Defined in: src/batteries/media/builder.ts:60

Parameters ​

ParameterTypeDefault value
execChainExecutorundefined
opsMediaOp[][]

Returns ​

MediaChain

Accessors ​

audio ​

Get Signature ​

ts
get audio(): AudioNamespace;

Defined in: src/batteries/media/builder.ts:198

Audio operations.

Returns ​

AudioNamespace


image ​

Get Signature ​

ts
get image(): ImageNamespace;

Defined in: src/batteries/media/builder.ts:193

Image transforms.

Returns ​

ImageNamespace


sheet ​

Get Signature ​

ts
get sheet(): SheetNamespace;

Defined in: src/batteries/media/builder.ts:183

Spreadsheet mutations.

Returns ​

SheetNamespace


slides ​

Get Signature ​

ts
get slides(): SlidesNamespace;

Defined in: src/batteries/media/builder.ts:188

Presentation mutations.

Returns ​

SlidesNamespace

Methods ​

applyPatch() ​

ts
applyPatch(patch: string, options?: {
  with?: MediaChainRef[];
}): MediaChain;

Defined in: src/batteries/media/builder.ts:134

Apply a unified-diff patch.

Parameters ​

ParameterType
patchstring
options{ with?: MediaChainRef[]; }
options.with?MediaChainRef[]

Returns ​

MediaChain


chunk() ​

ts
chunk(options?: {
  overlap?: number;
  size?: number;
  strategy?: "sentence" | "paragraph" | "fixed";
}): MediaChain;

Defined in: src/batteries/media/builder.ts:170

Chunk extracted text. Terminal: resolves to a chunk array.

Parameters ​

ParameterType
options{ overlap?: number; size?: number; strategy?: "sentence" | "paragraph" | "fixed"; }
options.overlap?number
options.size?number
options.strategy?"sentence" | "paragraph" | "fixed"

Returns ​

MediaChain


convert() ​

ts
convert(to: string): MediaChain;

Defined in: src/batteries/media/builder.ts:72

Convert to another format (requires a convert engine).

Parameters ​

ParameterType
tostring

Returns ​

MediaChain


diff() ​

ts
diff(other: MediaChainRef): MediaChain;

Defined in: src/batteries/media/builder.ts:129

Compare against another media. Terminal: resolves to a structured diff.

Parameters ​

ParameterType
otherMediaChainRef

Returns ​

MediaChain


extractAssets() ​

ts
extractAssets(options?: {
  types?: ("all" | "image" | "font" | "attachment")[];
}): MediaChain;

Defined in: src/batteries/media/builder.ts:161

Extract embedded assets. Terminal: resolves to a media list.

Parameters ​

ParameterType
options{ types?: ("all" | "image" | "font" | "attachment")[]; }
options.types?("all" | "image" | "font" | "attachment")[]

Returns ​

MediaChain


extractMetadata() ​

ts
extractMetadata(): MediaChain;

Defined in: src/batteries/media/builder.ts:156

Extract metadata. Terminal: resolves to a metadata object.

Returns ​

MediaChain


extractText() ​

ts
extractText(options?: {
  lang?: string[];
  ocr?: "off" | "auto" | "force";
  ocrOut?: "json" | "txt" | "hocr";
}): MediaChain;

Defined in: src/batteries/media/builder.ts:141

Extract text (routes by format; OCR engine used when needed). Terminal: resolves to text.

Parameters ​

ParameterType
options{ lang?: string[]; ocr?: "off" | "auto" | "force"; ocrOut?: "json" | "txt" | "hocr"; }
options.lang?string[]
options.ocr?"off" | "auto" | "force"
options.ocrOut?"json" | "txt" | "hocr"

Returns ​

MediaChain


merge() ​

ts
merge(...others: MediaChainRef[]): MediaChain;

Defined in: src/batteries/media/builder.ts:90

Merge other media into this one, in order.

Parameters ​

ParameterType
...othersMediaChainRef[]

Returns ​

MediaChain


normalize() ​

ts
normalize(): MediaChain;

Defined in: src/batteries/media/builder.ts:119

Normalize structure/encoding.

Returns ​

MediaChain


redact() ​

ts
redact(options: {
  match: string | RegExp | (string | RegExp)[];
  replace?: string;
}): MediaChain;

Defined in: src/batteries/media/builder.ts:100

Redact matching text (literals or RegExp).

Parameters ​

ParameterType
options{ match: string | RegExp | (string | RegExp)[]; replace?: string; }
options.matchstring | RegExp | (string | RegExp)[]
options.replace?string

Returns ​

MediaChain


reorder() ​

ts
reorder(order: number[]): MediaChain;

Defined in: src/batteries/media/builder.ts:95

Reorder pages by 1-based index.

Parameters ​

ParameterType
ordernumber[]

Returns ​

MediaChain


run() ​

ts
run(): Promise<StepResult>;

Defined in: src/batteries/media/builder.ts:229

Execute and return the raw PlanResult (no unwrapping).

Returns ​

Promise<StepResult>


sanitize() ​

ts
sanitize(): MediaChain;

Defined in: src/batteries/media/builder.ts:114

Remove potentially unsafe embedded content.

Returns ​

MediaChain


select() ​

ts
select(options: {
  pages: number[];
}): MediaChain;

Defined in: src/batteries/media/builder.ts:77

Keep only the listed 1-based pages.

Parameters ​

ParameterType
options{ pages: number[]; }
options.pagesnumber[]

Returns ​

MediaChain


split() ​

ts
split(options?: {
  by?: "page" | "section";
  ranges?: number[][];
}): MediaChain;

Defined in: src/batteries/media/builder.ts:82

Split by page (optionally grouped [[start,end], …]). Terminal: resolves to media list.

Parameters ​

ParameterType
options{ by?: "page" | "section"; ranges?: number[][]; }
options.by?"page" | "section"
options.ranges?number[][]

Returns ​

MediaChain


then() ​

ts
then<TResult1, TResult2>(onfulfilled?:
  | ((value: unknown) => TResult1 | PromiseLike<TResult1>)
  | null, onrejected?:
  | ((reason: unknown) => TResult2 | PromiseLike<TResult2>)
| null): PromiseLike<TResult1 | TResult2>;

Defined in: src/batteries/media/builder.ts:221

Thenable: awaiting the chain executes it.

Type Parameters ​

Type ParameterDefault type
TResult1unknown
TResult2never

Parameters ​

ParameterType
onfulfilled?| ((value: unknown) => TResult1 | PromiseLike<TResult1>) | null
onrejected?| ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null

Returns ​

PromiseLike<TResult1 | TResult2>

Implementation of ​

ts
PromiseLike.then;

toOps() ​

ts
toOps(): MediaOp[];

Defined in: src/batteries/media/builder.ts:205

The accumulated ops (a copy).

Returns ​

MediaOp[]


toPipe() ​

ts
toPipe(): string;

Defined in: src/batteries/media/builder.ts:210

The canonical pipe form of the accumulated chain.

Returns ​

string


updateText() ​

ts
updateText(anchor: string, replace: string): MediaChain;

Defined in: src/batteries/media/builder.ts:124

Replace the first occurrence of anchor text.

Parameters ​

ParameterType
anchorstring
replacestring

Returns ​

MediaChain


withOp() ​

ts
withOp(verb: string, args: Record<string, MediaArgValue>): MediaChain;

Defined in: src/batteries/media/builder.ts:216

Internal — used by namespaces to append.

Parameters ​

ParameterType
verbstring
argsRecord<string, MediaArgValue>

Returns ​

MediaChain