@markitdownjs/shared 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/types.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,115 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { createNode, isNodeOfType, walkAst, getNodeText, countTokens, findNodesOfType, detectMimeType, isSupportedExtension, generateId, readInputData, } from '../index.js';
3
+ describe('Document AST', () => {
4
+ describe('createNode', () => {
5
+ it('should create a text node', () => {
6
+ const node = createNode({ type: 'text', value: 'hello' });
7
+ expect(node.type).toBe('text');
8
+ expect(node.value).toBe('hello');
9
+ });
10
+ it('should create a heading node', () => {
11
+ const node = createNode({
12
+ type: 'heading',
13
+ level: 1,
14
+ children: [createNode({ type: 'text', value: 'Title' })],
15
+ });
16
+ expect(node.type).toBe('heading');
17
+ expect(node.level).toBe(1);
18
+ });
19
+ });
20
+ describe('isNodeOfType', () => {
21
+ it('should correctly identify node types', () => {
22
+ const text = createNode({ type: 'text', value: 'test' });
23
+ expect(isNodeOfType(text, 'text')).toBe(true);
24
+ expect(isNodeOfType(text, 'heading')).toBe(false);
25
+ });
26
+ });
27
+ describe('walkAst', () => {
28
+ it('should visit all nodes', () => {
29
+ const doc = createNode({
30
+ type: 'document',
31
+ children: [
32
+ createNode({
33
+ type: 'paragraph',
34
+ children: [createNode({ type: 'text', value: 'hello' })],
35
+ }),
36
+ ],
37
+ });
38
+ const visited = [];
39
+ walkAst(doc, (node) => { visited.push(node.type); });
40
+ expect(visited).toContain('document');
41
+ expect(visited).toContain('paragraph');
42
+ expect(visited).toContain('text');
43
+ });
44
+ });
45
+ describe('getNodeText', () => {
46
+ it('should extract text from text node', () => {
47
+ const node = createNode({ type: 'text', value: 'hello world' });
48
+ expect(getNodeText(node)).toBe('hello world');
49
+ });
50
+ it('should extract text from nested nodes', () => {
51
+ const doc = createNode({
52
+ type: 'document',
53
+ children: [
54
+ createNode({
55
+ type: 'paragraph',
56
+ children: [
57
+ createNode({ type: 'text', value: 'hello ' }),
58
+ createNode({ type: 'text', value: 'world' }),
59
+ ],
60
+ }),
61
+ ],
62
+ });
63
+ expect(getNodeText(doc)).toBe('hello world');
64
+ });
65
+ });
66
+ describe('countTokens', () => {
67
+ it('should count words', () => {
68
+ const node = createNode({ type: 'text', value: 'hello world foo bar' });
69
+ expect(countTokens(node)).toBe(4);
70
+ });
71
+ });
72
+ describe('findNodesOfType', () => {
73
+ it('should find all headings', () => {
74
+ const doc = createNode({
75
+ type: 'document',
76
+ children: [
77
+ createNode({ type: 'heading', level: 1, children: [] }),
78
+ createNode({ type: 'paragraph', children: [] }),
79
+ createNode({ type: 'heading', level: 2, children: [] }),
80
+ ],
81
+ });
82
+ const headings = findNodesOfType(doc, 'heading');
83
+ expect(headings).toHaveLength(2);
84
+ });
85
+ });
86
+ });
87
+ describe('MIME types', () => {
88
+ it('should detect PDF mime type', () => {
89
+ expect(detectMimeType('document.pdf')).toBe('application/pdf');
90
+ });
91
+ it('should detect DOCX mime type', () => {
92
+ expect(detectMimeType('report.docx')).toContain('wordprocessingml');
93
+ });
94
+ it('should support .html extension', () => {
95
+ expect(isSupportedExtension('.html')).toBe(true);
96
+ });
97
+ });
98
+ describe('Utilities', () => {
99
+ it('should generate unique IDs', () => {
100
+ const id1 = generateId();
101
+ const id2 = generateId();
102
+ expect(id1).not.toBe(id2);
103
+ });
104
+ it('should read string input', async () => {
105
+ const data = await readInputData('hello');
106
+ expect(data).toBeInstanceOf(Uint8Array);
107
+ expect(new TextDecoder().decode(data)).toBe('hello');
108
+ });
109
+ it('should read Uint8Array input', async () => {
110
+ const input = new Uint8Array([1, 2, 3]);
111
+ const data = await readInputData(input);
112
+ expect(data).toBe(input);
113
+ });
114
+ });
115
+ //# sourceMappingURL=types.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.test.js","sourceRoot":"","sources":["../../src/__tests__/types.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,155 @@
1
+ export type NodeType = "document" | "heading" | "paragraph" | "table" | "table-row" | "table-cell" | "list" | "list-item" | "image" | "link" | "code" | "quote" | "blockquote" | "thematic-break" | "html" | "text" | "emphasis" | "strong" | "inline-code" | "definition" | "footnote" | "page-break" | "section" | "strikethrough" | "subscript" | "superscript" | "math" | "horizontal-rule" | "raw";
2
+ export interface DocumentNode {
3
+ type: NodeType;
4
+ children?: AnyNode[];
5
+ position?: NodePosition;
6
+ [key: string]: unknown;
7
+ }
8
+ export interface NodePosition {
9
+ start: {
10
+ line: number;
11
+ column: number;
12
+ offset: number;
13
+ };
14
+ end: {
15
+ line: number;
16
+ column: number;
17
+ offset: number;
18
+ };
19
+ sourceFile?: string;
20
+ pageIndex?: number;
21
+ }
22
+ export interface HeadingNode extends DocumentNode {
23
+ type: "heading";
24
+ level: 1 | 2 | 3 | 4 | 5 | 6;
25
+ children: AnyNode[];
26
+ id?: string;
27
+ }
28
+ export interface ParagraphNode extends DocumentNode {
29
+ type: "paragraph";
30
+ children: AnyNode[];
31
+ }
32
+ export interface TableNode extends DocumentNode {
33
+ type: "table";
34
+ children: TableRowNode[];
35
+ caption?: string;
36
+ }
37
+ export interface TableRowNode extends DocumentNode {
38
+ type: "table-row";
39
+ children: TableCellNode[];
40
+ isHeader?: boolean;
41
+ }
42
+ export interface TableCellNode extends DocumentNode {
43
+ type: "table-cell";
44
+ children: AnyNode[];
45
+ colspan?: number;
46
+ rowspan?: number;
47
+ }
48
+ export interface ListNode extends DocumentNode {
49
+ type: "list";
50
+ ordered: boolean;
51
+ start?: number;
52
+ children: ListItemNode[];
53
+ }
54
+ export interface ListItemNode extends DocumentNode {
55
+ type: "list-item";
56
+ children: AnyNode[];
57
+ }
58
+ export interface ImageNode extends DocumentNode {
59
+ type: "image";
60
+ src: string;
61
+ alt?: string;
62
+ title?: string;
63
+ data?: Uint8Array;
64
+ mimeType?: string;
65
+ width?: number;
66
+ height?: number;
67
+ }
68
+ export interface LinkNode extends DocumentNode {
69
+ type: "link";
70
+ href: string;
71
+ title?: string;
72
+ children: AnyNode[];
73
+ }
74
+ export interface CodeNode extends DocumentNode {
75
+ type: "code";
76
+ language?: string;
77
+ value: string;
78
+ }
79
+ export interface QuoteNode extends DocumentNode {
80
+ type: "quote";
81
+ children: AnyNode[];
82
+ }
83
+ export interface BlockquoteNode extends DocumentNode {
84
+ type: "blockquote";
85
+ children: AnyNode[];
86
+ }
87
+ export interface TextNode extends DocumentNode {
88
+ type: "text";
89
+ value: string;
90
+ }
91
+ export interface EmphasisNode extends DocumentNode {
92
+ type: "emphasis";
93
+ children: AnyNode[];
94
+ }
95
+ export interface StrongNode extends DocumentNode {
96
+ type: "strong";
97
+ children: AnyNode[];
98
+ }
99
+ export interface InlineCodeNode extends DocumentNode {
100
+ type: "inline-code";
101
+ value: string;
102
+ }
103
+ export interface ThematicBreakNode extends DocumentNode {
104
+ type: "thematic-break";
105
+ }
106
+ export interface HtmlNode extends DocumentNode {
107
+ type: "html";
108
+ value: string;
109
+ }
110
+ export interface DefinitionNode extends DocumentNode {
111
+ type: "definition";
112
+ label: string;
113
+ url: string;
114
+ title?: string;
115
+ }
116
+ export interface FootnoteNode extends DocumentNode {
117
+ type: "footnote";
118
+ identifier: string;
119
+ children: AnyNode[];
120
+ }
121
+ export interface PageBreakNode extends DocumentNode {
122
+ type: "page-break";
123
+ pageNumber?: number;
124
+ }
125
+ export interface SectionNode extends DocumentNode {
126
+ type: "section";
127
+ title?: string;
128
+ level?: number;
129
+ children: AnyNode[];
130
+ }
131
+ export interface StrikethroughNode extends DocumentNode {
132
+ type: "strikethrough";
133
+ children: AnyNode[];
134
+ }
135
+ export interface MathNode extends DocumentNode {
136
+ type: "math";
137
+ value: string;
138
+ inline?: boolean;
139
+ }
140
+ export interface HorizontalRuleNode extends DocumentNode {
141
+ type: "horizontal-rule";
142
+ }
143
+ export interface RawNode extends DocumentNode {
144
+ type: "raw";
145
+ format: string;
146
+ value: string;
147
+ }
148
+ export type AnyNode = DocumentNode | HeadingNode | ParagraphNode | TableNode | TableRowNode | TableCellNode | ListNode | ListItemNode | ImageNode | LinkNode | CodeNode | QuoteNode | BlockquoteNode | TextNode | EmphasisNode | StrongNode | InlineCodeNode | ThematicBreakNode | HtmlNode | DefinitionNode | FootnoteNode | PageBreakNode | SectionNode | StrikethroughNode | MathNode | HorizontalRuleNode | RawNode;
149
+ export declare function createNode<T extends AnyNode>(node: T): T;
150
+ export declare function isNodeOfType<T extends AnyNode>(node: AnyNode, type: T["type"]): node is T;
151
+ export declare function walkAst(node: AnyNode, visitor: (node: AnyNode, parent: AnyNode | null) => boolean | void): void;
152
+ export declare function getNodeText(node: AnyNode): string;
153
+ export declare function countTokens(node: AnyNode): number;
154
+ export declare function findNodesOfType<T extends AnyNode>(root: AnyNode, type: T["type"]): T[];
155
+ //# sourceMappingURL=document-ast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-ast.d.ts","sourceRoot":"","sources":["../src/document-ast.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ export function createNode(node) {
2
+ return node;
3
+ }
4
+ export function isNodeOfType(node, type) {
5
+ return node.type === type;
6
+ }
7
+ export function walkAst(node, visitor) {
8
+ const walk = (n, parent) => {
9
+ const result = visitor(n, parent);
10
+ if (result === false)
11
+ return false;
12
+ if ("children" in n && Array.isArray(n.children)) {
13
+ for (const child of n.children) {
14
+ walk(child, n);
15
+ }
16
+ }
17
+ };
18
+ walk(node, null);
19
+ }
20
+ export function getNodeText(node) {
21
+ if (node.type === "text")
22
+ return node.value;
23
+ if (node.type === "code")
24
+ return node.value;
25
+ if (node.type === "inline-code")
26
+ return node.value;
27
+ if (node.type === "math")
28
+ return node.value;
29
+ if (node.type === "html")
30
+ return node.value;
31
+ if (node.type === "raw")
32
+ return node.value;
33
+ if ("children" in node && Array.isArray(node.children)) {
34
+ return node.children.map((c) => getNodeText(c)).join("");
35
+ }
36
+ return "";
37
+ }
38
+ export function countTokens(node) {
39
+ const text = getNodeText(node);
40
+ return text.split(/\s+/).filter(Boolean).length;
41
+ }
42
+ export function findNodesOfType(root, type) {
43
+ const results = [];
44
+ walkAst(root, (node) => {
45
+ if (node.type === type)
46
+ results.push(node);
47
+ });
48
+ return results;
49
+ }
50
+ //# sourceMappingURL=document-ast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-ast.js","sourceRoot":"","sources":["../src/document-ast.ts"],"names":[],"mappings":"AAkOA,MAAM,UAAU,UAAU,CAAoB,IAAO;IACnD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,IAAa,EACb,IAAe;IAEf,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,IAAa,EACb,OAAkE;IAElE,MAAM,IAAI,GAAG,CAAC,CAAU,EAAE,MAAsB,EAAkB,EAAE;QAClE,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAClC,IAAI,MAAM,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;QACnC,IAAI,UAAU,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjD,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAC/B,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAa;IACvC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;QAAE,OAAQ,IAAiB,CAAC,KAAK,CAAC;IAC1D,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;QAAE,OAAQ,IAAiB,CAAC,KAAK,CAAC;IAC1D,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa;QAAE,OAAQ,IAAuB,CAAC,KAAK,CAAC;IACvE,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;QAAE,OAAQ,IAAiB,CAAC,KAAK,CAAC;IAC1D,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;QAAE,OAAQ,IAAiB,CAAC,KAAK,CAAC;IAC1D,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK;QAAE,OAAQ,IAAgB,CAAC,KAAK,CAAC;IACxD,IAAI,UAAU,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAa;IACvC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,IAAa,EACb,IAAe;IAEf,MAAM,OAAO,GAAQ,EAAE,CAAC;IACxB,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;QACrB,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,IAAS,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/dist/dom.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ export declare function parseHTML(html: string): Promise<Document>;
2
+ export declare function parseXML(xml: string): Promise<Document>;
3
+ export declare function serializeXML(doc: Document): string;
4
+ //# sourceMappingURL=dom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../src/dom.ts"],"names":[],"mappings":"AAyBA,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAG/D;AAED,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAG7D;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,CAKlD"}
package/dist/dom.js ADDED
@@ -0,0 +1,35 @@
1
+ let domParserInstance;
2
+ async function getDOMParser() {
3
+ if (domParserInstance)
4
+ return domParserInstance;
5
+ if (typeof globalThis.DOMParser !== "undefined") {
6
+ domParserInstance = globalThis.DOMParser;
7
+ return domParserInstance;
8
+ }
9
+ try {
10
+ const mod = await import("linkedom");
11
+ if (mod.DOMParser) {
12
+ domParserInstance = mod.DOMParser;
13
+ return domParserInstance;
14
+ }
15
+ }
16
+ catch {
17
+ // linkedom not available
18
+ }
19
+ throw new Error("DOMParser is not available. Install 'linkedom' for Node.js support: npm install linkedom");
20
+ }
21
+ export async function parseHTML(html) {
22
+ const DP = await getDOMParser();
23
+ return new DP().parseFromString(html, "text/html");
24
+ }
25
+ export async function parseXML(xml) {
26
+ const DP = await getDOMParser();
27
+ return new DP().parseFromString(xml, "application/xml");
28
+ }
29
+ export function serializeXML(doc) {
30
+ if (typeof XMLSerializer !== "undefined") {
31
+ return new XMLSerializer().serializeToString(doc);
32
+ }
33
+ return doc.documentElement?.outerHTML ?? "";
34
+ }
35
+ //# sourceMappingURL=dom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom.js","sourceRoot":"","sources":["../src/dom.ts"],"names":[],"mappings":"AAAA,IAAI,iBAA0E,CAAC;AAE/E,KAAK,UAAU,YAAY;IACzB,IAAI,iBAAiB;QAAE,OAAO,iBAAiB,CAAC;IAEhD,IAAI,OAAO,UAAU,CAAC,SAAS,KAAK,WAAW,EAAE,CAAC;QAChD,iBAAiB,GAAG,UAAU,CAAC,SAAS,CAAC;QACzC,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;QACrC,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAClB,iBAAiB,GAAG,GAAG,CAAC,SAAmE,CAAC;YAC5F,OAAO,iBAAiB,CAAC;QAC3B,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,yBAAyB;IAC3B,CAAC;IAED,MAAM,IAAI,KAAK,CACb,0FAA0F,CAC3F,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAY;IAC1C,MAAM,EAAE,GAAG,MAAM,YAAY,EAAE,CAAC;IAChC,OAAO,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,GAAW;IACxC,MAAM,EAAE,GAAG,MAAM,YAAY,EAAE,CAAC;IAChC,OAAO,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAa;IACxC,IAAI,OAAO,aAAa,KAAK,WAAW,EAAE,CAAC;QACzC,OAAO,IAAI,aAAa,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,GAAG,CAAC,eAAe,EAAE,SAAS,IAAI,EAAE,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,25 @@
1
+ export declare class MarkItDownError extends Error {
2
+ readonly code: string;
3
+ readonly cause?: Error | undefined;
4
+ constructor(message: string, code: string, cause?: Error | undefined);
5
+ }
6
+ export declare class UnsupportedFormatError extends MarkItDownError {
7
+ constructor(format: string);
8
+ }
9
+ export declare class ConversionError extends MarkItDownError {
10
+ readonly converterId?: string | undefined;
11
+ constructor(message: string, converterId?: string | undefined, cause?: Error);
12
+ }
13
+ export declare class FileReadError extends MarkItDownError {
14
+ constructor(message: string, cause?: Error);
15
+ }
16
+ export declare class ParseError extends MarkItDownError {
17
+ constructor(message: string, cause?: Error);
18
+ }
19
+ export declare class PluginError extends MarkItDownError {
20
+ constructor(message: string, cause?: Error);
21
+ }
22
+ export declare class CancellationError extends MarkItDownError {
23
+ constructor();
24
+ }
25
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,eAAgB,SAAQ,KAAK;aAGtB,IAAI,EAAE,MAAM;aACZ,KAAK,CAAC,EAAE,KAAK;gBAF7B,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,KAAK,YAAA;CAKhC;AAED,qBAAa,sBAAuB,SAAQ,eAAe;gBAC7C,MAAM,EAAE,MAAM;CAI3B;AAED,qBAAa,eAAgB,SAAQ,eAAe;aAGhC,WAAW,CAAC,EAAE,MAAM;gBADpC,OAAO,EAAE,MAAM,EACC,WAAW,CAAC,EAAE,MAAM,YAAA,EACpC,KAAK,CAAC,EAAE,KAAK;CAKhB;AAED,qBAAa,aAAc,SAAQ,eAAe;gBACpC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAI3C;AAED,qBAAa,UAAW,SAAQ,eAAe;gBACjC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAI3C;AAED,qBAAa,WAAY,SAAQ,eAAe;gBAClC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAI3C;AAED,qBAAa,iBAAkB,SAAQ,eAAe;;CAKrD"}
package/dist/errors.js ADDED
@@ -0,0 +1,49 @@
1
+ export class MarkItDownError extends Error {
2
+ code;
3
+ cause;
4
+ constructor(message, code, cause) {
5
+ super(message);
6
+ this.code = code;
7
+ this.cause = cause;
8
+ this.name = "MarkItDownError";
9
+ }
10
+ }
11
+ export class UnsupportedFormatError extends MarkItDownError {
12
+ constructor(format) {
13
+ super(`Unsupported format: ${format}`, "UNSUPPORTED_FORMAT");
14
+ this.name = "UnsupportedFormatError";
15
+ }
16
+ }
17
+ export class ConversionError extends MarkItDownError {
18
+ converterId;
19
+ constructor(message, converterId, cause) {
20
+ super(message, "CONVERSION_ERROR", cause);
21
+ this.converterId = converterId;
22
+ this.name = "ConversionError";
23
+ }
24
+ }
25
+ export class FileReadError extends MarkItDownError {
26
+ constructor(message, cause) {
27
+ super(message, "FILE_READ_ERROR", cause);
28
+ this.name = "FileReadError";
29
+ }
30
+ }
31
+ export class ParseError extends MarkItDownError {
32
+ constructor(message, cause) {
33
+ super(message, "PARSE_ERROR", cause);
34
+ this.name = "ParseError";
35
+ }
36
+ }
37
+ export class PluginError extends MarkItDownError {
38
+ constructor(message, cause) {
39
+ super(message, "PLUGIN_ERROR", cause);
40
+ this.name = "PluginError";
41
+ }
42
+ }
43
+ export class CancellationError extends MarkItDownError {
44
+ constructor() {
45
+ super("Conversion was cancelled", "CANCELLED");
46
+ this.name = "CancellationError";
47
+ }
48
+ }
49
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAGtB;IACA;IAHlB,YACE,OAAe,EACC,IAAY,EACZ,KAAa;QAE7B,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,SAAI,GAAJ,IAAI,CAAQ;QACZ,UAAK,GAAL,KAAK,CAAQ;QAG7B,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,eAAe;IACzD,YAAY,MAAc;QACxB,KAAK,CAAC,uBAAuB,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,eAAe;IAGhC;IAFlB,YACE,OAAe,EACC,WAAoB,EACpC,KAAa;QAEb,KAAK,CAAC,OAAO,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC;QAH1B,gBAAW,GAAX,WAAW,CAAS;QAIpC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,eAAe;IAChD,YAAY,OAAe,EAAE,KAAa;QACxC,KAAK,CAAC,OAAO,EAAE,iBAAiB,EAAE,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,UAAW,SAAQ,eAAe;IAC7C,YAAY,OAAe,EAAE,KAAa;QACxC,KAAK,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,eAAe;IAC9C,YAAY,OAAe,EAAE,KAAa;QACxC,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,eAAe;IACpD;QACE,KAAK,CAAC,0BAA0B,EAAE,WAAW,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ export type { MimeType, FileExtension, ConverterId, ConversionInput, ConversionOptions, OutputFormat, ConversionResult, DocumentMetadata, AssetInfo, TableData, ImageInfo, HeadingInfo, ConversionStats, ProgressCallback, ProgressInfo, Converter, Plugin, PluginContext, ConversionMiddleware, ConverterRegistry, Logger, ChunkMetadata, DocumentChunk, ChunkingOptions, } from "./types.js";
2
+ export type { NodeType, NodePosition, DocumentNode, HeadingNode, ParagraphNode, TableNode, TableRowNode, TableCellNode, ListNode, ListItemNode, ImageNode, LinkNode, CodeNode, QuoteNode, BlockquoteNode, TextNode, EmphasisNode, StrongNode, InlineCodeNode, ThematicBreakNode, HtmlNode, DefinitionNode, FootnoteNode, PageBreakNode, SectionNode, StrikethroughNode, MathNode, HorizontalRuleNode, RawNode, AnyNode, } from "./document-ast.js";
3
+ export { createNode, isNodeOfType, walkAst, getNodeText, countTokens, findNodesOfType, } from "./document-ast.js";
4
+ export { extensionToMime, mimeToExtension, detectMimeType, isSupportedExtension, isSupportedMimeType, getSupportedExtensions, getSupportedMimeTypes, } from "./mime-types.js";
5
+ export { MarkItDownError, UnsupportedFormatError, ConversionError, FileReadError, ParseError, PluginError, CancellationError, } from "./errors.js";
6
+ export { uint8ArrayToDataUrl, blobToUint8Array, readInputData, detectMimeTypeFromData, truncateText, generateId, mergeOptions, AbortError, checkSignal, } from "./utils.js";
7
+ export { parseHTML, parseXML, serializeXML } from "./dom.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,QAAQ,EACR,aAAa,EACb,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,SAAS,EACT,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,MAAM,EACN,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,MAAM,EACN,aAAa,EACb,aAAa,EACb,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,aAAa,EACb,SAAS,EACT,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,QAAQ,EACR,kBAAkB,EAClB,OAAO,EACP,OAAO,GACR,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,UAAU,EACV,YAAY,EACZ,OAAO,EACP,WAAW,EACX,WAAW,EACX,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,eAAe,EACf,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,UAAU,EACV,WAAW,EACX,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,sBAAsB,EACtB,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,UAAU,EACV,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,6 @@
1
+ export { createNode, isNodeOfType, walkAst, getNodeText, countTokens, findNodesOfType, } from "./document-ast.js";
2
+ export { extensionToMime, mimeToExtension, detectMimeType, isSupportedExtension, isSupportedMimeType, getSupportedExtensions, getSupportedMimeTypes, } from "./mime-types.js";
3
+ export { MarkItDownError, UnsupportedFormatError, ConversionError, FileReadError, ParseError, PluginError, CancellationError, } from "./errors.js";
4
+ export { uint8ArrayToDataUrl, blobToUint8Array, readInputData, detectMimeTypeFromData, truncateText, generateId, mergeOptions, AbortError, checkSignal, } from "./utils.js";
5
+ export { parseHTML, parseXML, serializeXML } from "./dom.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA4DA,OAAO,EACL,UAAU,EACV,YAAY,EACZ,OAAO,EACP,WAAW,EACX,WAAW,EACX,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,eAAe,EACf,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,UAAU,EACV,WAAW,EACX,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,sBAAsB,EACtB,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,UAAU,EACV,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { MimeType, FileExtension } from "./types.js";
2
+ export declare function extensionToMime(extension: FileExtension): MimeType | undefined;
3
+ export declare function mimeToExtension(mimeType: MimeType): FileExtension | undefined;
4
+ export declare function detectMimeType(fileName: string): MimeType | undefined;
5
+ export declare function isSupportedExtension(extension: FileExtension): boolean;
6
+ export declare function isSupportedMimeType(mimeType: MimeType): boolean;
7
+ export declare function getSupportedExtensions(): FileExtension[];
8
+ export declare function getSupportedMimeTypes(): MimeType[];
9
+ //# sourceMappingURL=mime-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mime-types.d.ts","sourceRoot":"","sources":["../src/mime-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAyC1D,wBAAgB,eAAe,CAAC,SAAS,EAAE,aAAa,GAAG,QAAQ,GAAG,SAAS,CAG9E;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,aAAa,GAAG,SAAS,CAE7E;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAKrE;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,aAAa,GAAG,OAAO,CAGtE;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAE/D;AAED,wBAAgB,sBAAsB,IAAI,aAAa,EAAE,CAExD;AAED,wBAAgB,qBAAqB,IAAI,QAAQ,EAAE,CAElD"}
@@ -0,0 +1,63 @@
1
+ const EXTENSION_TO_MIME = {
2
+ ".pdf": "application/pdf",
3
+ ".docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
4
+ ".doc": "application/msword",
5
+ ".pptx": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
6
+ ".ppt": "application/vnd.ms-powerpoint",
7
+ ".xlsx": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
8
+ ".xls": "application/vnd.ms-excel",
9
+ ".csv": "text/csv",
10
+ ".tsv": "text/tab-separated-values",
11
+ ".json": "application/json",
12
+ ".xml": "application/xml",
13
+ ".html": "text/html",
14
+ ".htm": "text/html",
15
+ ".mhtml": "multipart/related",
16
+ ".epub": "application/epub+zip",
17
+ ".txt": "text/plain",
18
+ ".md": "text/markdown",
19
+ ".markdown": "text/markdown",
20
+ ".zip": "application/zip",
21
+ ".png": "image/png",
22
+ ".jpg": "image/jpeg",
23
+ ".jpeg": "image/jpeg",
24
+ ".webp": "image/webp",
25
+ ".gif": "image/gif",
26
+ ".tiff": "image/tiff",
27
+ ".tif": "image/tiff",
28
+ ".bmp": "image/bmp",
29
+ ".mp3": "audio/mpeg",
30
+ ".wav": "audio/wav",
31
+ ".m4a": "audio/mp4",
32
+ ".ogg": "audio/ogg",
33
+ ".flac": "audio/flac",
34
+ };
35
+ const MIME_TO_EXTENSION = Object.fromEntries(Object.entries(EXTENSION_TO_MIME).map(([ext, mime]) => [mime, ext]));
36
+ export function extensionToMime(extension) {
37
+ const ext = extension.startsWith(".") ? extension : `.${extension}`;
38
+ return EXTENSION_TO_MIME[ext.toLowerCase()];
39
+ }
40
+ export function mimeToExtension(mimeType) {
41
+ return MIME_TO_EXTENSION[mimeType.toLowerCase()];
42
+ }
43
+ export function detectMimeType(fileName) {
44
+ const dotIndex = fileName.lastIndexOf(".");
45
+ if (dotIndex === -1)
46
+ return undefined;
47
+ const ext = fileName.substring(dotIndex);
48
+ return extensionToMime(ext);
49
+ }
50
+ export function isSupportedExtension(extension) {
51
+ const ext = extension.startsWith(".") ? extension : `.${extension}`;
52
+ return ext.toLowerCase() in EXTENSION_TO_MIME;
53
+ }
54
+ export function isSupportedMimeType(mimeType) {
55
+ return mimeType.toLowerCase() in MIME_TO_EXTENSION;
56
+ }
57
+ export function getSupportedExtensions() {
58
+ return Object.keys(EXTENSION_TO_MIME);
59
+ }
60
+ export function getSupportedMimeTypes() {
61
+ return Object.keys(MIME_TO_EXTENSION);
62
+ }
63
+ //# sourceMappingURL=mime-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mime-types.js","sourceRoot":"","sources":["../src/mime-types.ts"],"names":[],"mappings":"AAEA,MAAM,iBAAiB,GAAoC;IACzD,MAAM,EAAE,iBAAiB;IACzB,OAAO,EAAE,yEAAyE;IAClF,MAAM,EAAE,oBAAoB;IAC5B,OAAO,EAAE,2EAA2E;IACpF,MAAM,EAAE,+BAA+B;IACvC,OAAO,EAAE,mEAAmE;IAC5E,MAAM,EAAE,0BAA0B;IAClC,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,2BAA2B;IACnC,OAAO,EAAE,kBAAkB;IAC3B,MAAM,EAAE,iBAAiB;IACzB,OAAO,EAAE,WAAW;IACpB,MAAM,EAAE,WAAW;IACnB,QAAQ,EAAE,mBAAmB;IAC7B,OAAO,EAAE,sBAAsB;IAC/B,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,eAAe;IACtB,WAAW,EAAE,eAAe;IAC5B,MAAM,EAAE,iBAAiB;IACzB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,YAAY;IACrB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,YAAY;CACtB,CAAC;AAEF,MAAM,iBAAiB,GAAkC,MAAM,CAAC,WAAW,CACzE,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CACpE,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,SAAwB;IACtD,MAAM,GAAG,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC;IACpE,OAAO,iBAAiB,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAkB;IAChD,OAAO,iBAAiB,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,QAAQ,KAAK,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACzC,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,SAAwB;IAC3D,MAAM,GAAG,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC;IACpE,OAAO,GAAG,CAAC,WAAW,EAAE,IAAI,iBAAiB,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAkB;IACpD,OAAO,QAAQ,CAAC,WAAW,EAAE,IAAI,iBAAiB,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,171 @@
1
+ import type { AnyNode } from "./document-ast.js";
2
+ export type MimeType = string;
3
+ export type FileExtension = string;
4
+ export type ConverterId = string;
5
+ /** Standardized document metadata schema */
6
+ export interface DocumentMetadata {
7
+ title?: string;
8
+ author?: string;
9
+ createdAt?: string;
10
+ modifiedAt?: string;
11
+ pages?: number;
12
+ language?: string;
13
+ format?: string;
14
+ source?: string;
15
+ description?: string;
16
+ subject?: string;
17
+ keywords?: string[];
18
+ wordCount?: number;
19
+ characterCount?: number;
20
+ pageCount?: number;
21
+ /** @deprecated Use createdAt instead */
22
+ createdDate?: Date;
23
+ /** @deprecated Use modifiedAt instead */
24
+ modifiedDate?: Date;
25
+ customProperties?: Record<string, unknown>;
26
+ }
27
+ /** Chunk metadata for RAG workflows */
28
+ export interface ChunkMetadata {
29
+ chunkId: string;
30
+ page?: number;
31
+ headingPath: string[];
32
+ tokenCount: number;
33
+ sourceFile?: string;
34
+ startIndex: number;
35
+ endIndex: number;
36
+ }
37
+ /** Document chunk for RAG */
38
+ export interface DocumentChunk {
39
+ id: string;
40
+ content: string;
41
+ metadata: ChunkMetadata;
42
+ ast: AnyNode;
43
+ }
44
+ /** Chunking configuration */
45
+ export interface ChunkingOptions {
46
+ enabled?: boolean;
47
+ strategy?: "heading" | "page" | "semantic" | "fixed";
48
+ maxTokens?: number;
49
+ overlap?: number;
50
+ headingDepth?: number;
51
+ sourceFile?: string;
52
+ }
53
+ export interface ConversionInput {
54
+ data: Uint8Array | ArrayBuffer | Blob | string;
55
+ mimeType?: MimeType;
56
+ fileName?: string;
57
+ options?: ConversionOptions;
58
+ }
59
+ export interface ConversionOptions {
60
+ outputFormat?: OutputFormat;
61
+ includeMetadata?: boolean;
62
+ includeImages?: boolean;
63
+ includeTables?: boolean;
64
+ maxTokens?: number;
65
+ customProperties?: Record<string, unknown>;
66
+ onProgress?: ProgressCallback;
67
+ signal?: AbortSignal;
68
+ /** Chunking configuration for RAG workflows */
69
+ chunking?: ChunkingOptions;
70
+ }
71
+ export type OutputFormat = "markdown" | "json" | "plaintext" | "html";
72
+ export interface ConversionResult {
73
+ markdown: string;
74
+ metadata: DocumentMetadata;
75
+ assets: AssetInfo[];
76
+ tables: TableData[];
77
+ images: ImageInfo[];
78
+ headings: HeadingInfo[];
79
+ ast?: AnyNode;
80
+ format: OutputFormat;
81
+ converterId: ConverterId;
82
+ stats: ConversionStats;
83
+ /** Document chunks for RAG workflows (only populated when chunking is enabled) */
84
+ chunks?: DocumentChunk[];
85
+ }
86
+ export interface AssetInfo {
87
+ id: string;
88
+ type: "image" | "font" | "stylesheet" | "other";
89
+ data?: Uint8Array;
90
+ mimeType: string;
91
+ fileName?: string;
92
+ url?: string;
93
+ }
94
+ export interface TableData {
95
+ headers: string[];
96
+ rows: string[][];
97
+ caption?: string;
98
+ }
99
+ export interface ImageInfo {
100
+ id: string;
101
+ data?: Uint8Array;
102
+ mimeType: string;
103
+ alt?: string;
104
+ caption?: string;
105
+ width?: number;
106
+ height?: number;
107
+ }
108
+ export interface HeadingInfo {
109
+ level: number;
110
+ text: string;
111
+ id?: string;
112
+ }
113
+ export interface ConversionStats {
114
+ startTime: number;
115
+ endTime: number;
116
+ duration: number;
117
+ inputSize: number;
118
+ outputSize: number;
119
+ pagesProcessed?: number;
120
+ chunksProcessed?: number;
121
+ }
122
+ export type ProgressCallback = (progress: ProgressInfo) => void;
123
+ export interface ProgressInfo {
124
+ phase: "parsing" | "converting" | "rendering" | "chunking";
125
+ percentage: number;
126
+ message?: string;
127
+ }
128
+ export interface Converter {
129
+ readonly id: ConverterId;
130
+ readonly supportedMimeTypes: MimeType[];
131
+ readonly supportedExtensions: FileExtension[];
132
+ canConvert(input: ConversionInput): Promise<boolean>;
133
+ convert(input: ConversionInput): Promise<ConversionResult>;
134
+ }
135
+ export interface Plugin {
136
+ readonly id: string;
137
+ readonly name: string;
138
+ readonly version: string;
139
+ converters?: Converter[];
140
+ middleware?: ConversionMiddleware[];
141
+ initialize?(context: PluginContext): Promise<void>;
142
+ destroy?(): Promise<void>;
143
+ }
144
+ export interface PluginContext {
145
+ registry: ConverterRegistry;
146
+ logger: Logger;
147
+ config: Record<string, unknown>;
148
+ }
149
+ export interface ConversionMiddleware {
150
+ name: string;
151
+ priority: number;
152
+ beforeConvert?(input: ConversionInput): Promise<ConversionInput>;
153
+ afterConvert?(result: ConversionResult): Promise<ConversionResult>;
154
+ }
155
+ export interface ConverterRegistry {
156
+ register(converter: Converter): void;
157
+ unregister(id: ConverterId): void;
158
+ get(id: ConverterId): Converter | undefined;
159
+ getByMimeType(mimeType: MimeType): Converter | undefined;
160
+ getByExtension(extension: FileExtension): Converter | undefined;
161
+ list(): Converter[];
162
+ canConvert(input: ConversionInput): Promise<Converter | undefined>;
163
+ getMiddlewares(): ConversionMiddleware[];
164
+ }
165
+ export interface Logger {
166
+ debug(message: string, ...args: unknown[]): void;
167
+ info(message: string, ...args: unknown[]): void;
168
+ warn(message: string, ...args: unknown[]): void;
169
+ error(message: string, ...args: unknown[]): void;
170
+ }
171
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ export declare function uint8ArrayToDataUrl(data: Uint8Array, mimeType: string): string;
2
+ export declare function blobToUint8Array(blob: Blob): Promise<Uint8Array>;
3
+ export declare function readInputData(input: Uint8Array | ArrayBuffer | Blob | string): Promise<Uint8Array>;
4
+ export declare function detectMimeTypeFromData(data: Uint8Array): string | undefined;
5
+ export declare function truncateText(text: string, maxLength: number): string;
6
+ export declare function generateId(): string;
7
+ export declare function mergeOptions<T extends Record<string, unknown>>(defaults: T, overrides?: Partial<T>): T;
8
+ export declare class AbortError extends Error {
9
+ constructor(message?: string);
10
+ }
11
+ export declare function checkSignal(signal?: AbortSignal): void;
12
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAS9E;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAEtE;AAED,wBAAsB,aAAa,CACjC,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,IAAI,GAAG,MAAM,GAC9C,OAAO,CAAC,UAAU,CAAC,CAWrB;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAuB3E;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAGpE;AAED,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5D,QAAQ,EAAE,CAAC,EACX,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GACrB,CAAC,CAGH;AAED,qBAAa,UAAW,SAAQ,KAAK;gBACvB,OAAO,SAA0B;CAI9C;AAED,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAItD"}
package/dist/utils.js ADDED
@@ -0,0 +1,73 @@
1
+ export function uint8ArrayToDataUrl(data, mimeType) {
2
+ let binary = "";
3
+ const chunkSize = 8192;
4
+ for (let i = 0; i < data.length; i += chunkSize) {
5
+ const chunk = data.subarray(i, i + chunkSize);
6
+ binary += String.fromCharCode(...chunk);
7
+ }
8
+ const base64 = btoa(binary);
9
+ return `data:${mimeType};base64,${base64}`;
10
+ }
11
+ export async function blobToUint8Array(blob) {
12
+ return new Uint8Array(await blob.arrayBuffer());
13
+ }
14
+ export async function readInputData(input) {
15
+ if (typeof input === "string") {
16
+ return new TextEncoder().encode(input);
17
+ }
18
+ if (input instanceof Uint8Array) {
19
+ return input;
20
+ }
21
+ if (input instanceof ArrayBuffer) {
22
+ return new Uint8Array(input);
23
+ }
24
+ return blobToUint8Array(input);
25
+ }
26
+ export function detectMimeTypeFromData(data) {
27
+ if (data.length < 4)
28
+ return undefined;
29
+ if (data[0] === 0x25 && data[1] === 0x50 && data[2] === 0x44 && data[3] === 0x46) {
30
+ return "application/pdf";
31
+ }
32
+ if (data[0] === 0x50 && data[1] === 0x4b && data[2] === 0x03 && data[3] === 0x04) {
33
+ return "application/zip";
34
+ }
35
+ if (data[0] === 0x89 && data[1] === 0x50 && data[2] === 0x4e && data[3] === 0x47) {
36
+ return "image/png";
37
+ }
38
+ if (data[0] === 0xff && data[1] === 0xd8 && data[2] === 0xff) {
39
+ return "image/jpeg";
40
+ }
41
+ if (data[0] === 0x52 && data[1] === 0x49 && data[2] === 0x46 && data[3] === 0x46) {
42
+ return "image/webp";
43
+ }
44
+ if (data[0] === 0x47 && data[1] === 0x49 && data[2] === 0x46 && data[3] === 0x38) {
45
+ return "image/gif";
46
+ }
47
+ return undefined;
48
+ }
49
+ export function truncateText(text, maxLength) {
50
+ if (text.length <= maxLength)
51
+ return text;
52
+ return text.slice(0, maxLength - 3) + "...";
53
+ }
54
+ export function generateId() {
55
+ return Math.random().toString(36).substring(2, 11);
56
+ }
57
+ export function mergeOptions(defaults, overrides) {
58
+ if (!overrides)
59
+ return defaults;
60
+ return { ...defaults, ...overrides };
61
+ }
62
+ export class AbortError extends Error {
63
+ constructor(message = "Operation was aborted") {
64
+ super(message);
65
+ this.name = "AbortError";
66
+ }
67
+ }
68
+ export function checkSignal(signal) {
69
+ if (signal?.aborted) {
70
+ throw new AbortError();
71
+ }
72
+ }
73
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "@markitdownjs/shared",
3
+ "version": "0.1.0",
4
+ "description": "Shared types, AST nodes, and utilities for MarkItDownJS",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "main": "./dist/index.js",
8
+ "module": "./dist/index.js",
9
+ "types": "./dist/index.d.ts",
10
+ "exports": {
11
+ ".": {
12
+ "import": "./dist/index.js",
13
+ "types": "./dist/index.d.ts"
14
+ }
15
+ },
16
+ "files": [
17
+ "dist"
18
+ ],
19
+ "devDependencies": {
20
+ "linkedom": "^0.18.12",
21
+ "typescript": "^5.5.0"
22
+ },
23
+ "scripts": {
24
+ "build": "tsc --project tsconfig.json",
25
+ "dev": "tsc --watch --project tsconfig.json",
26
+ "typecheck": "tsc --noEmit",
27
+ "clean": "rm -rf dist tsconfig.tsbuildinfo"
28
+ }
29
+ }