ai-document-parser 0.1.101

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.
Files changed (104) hide show
  1. package/LICENSE +21 -0
  2. package/LICENSES.md +26 -0
  3. package/README.md +106 -0
  4. package/dist/cli.d.ts +3 -0
  5. package/dist/cli.d.ts.map +1 -0
  6. package/dist/cli.js +124 -0
  7. package/dist/cli.js.map +1 -0
  8. package/dist/convert/converter.d.ts +7 -0
  9. package/dist/convert/converter.d.ts.map +1 -0
  10. package/dist/convert/converter.js +201 -0
  11. package/dist/convert/converter.js.map +1 -0
  12. package/dist/convert/emit.d.ts +15 -0
  13. package/dist/convert/emit.d.ts.map +1 -0
  14. package/dist/convert/emit.js +95 -0
  15. package/dist/convert/emit.js.map +1 -0
  16. package/dist/convert/index.d.ts +2 -0
  17. package/dist/convert/index.d.ts.map +1 -0
  18. package/dist/convert/index.js +2 -0
  19. package/dist/convert/index.js.map +1 -0
  20. package/dist/edit/docx-ooxml.d.ts +13 -0
  21. package/dist/edit/docx-ooxml.d.ts.map +1 -0
  22. package/dist/edit/docx-ooxml.js +182 -0
  23. package/dist/edit/docx-ooxml.js.map +1 -0
  24. package/dist/edit/index.d.ts +8 -0
  25. package/dist/edit/index.d.ts.map +1 -0
  26. package/dist/edit/index.js +26 -0
  27. package/dist/edit/index.js.map +1 -0
  28. package/dist/edit/spreadsheet.d.ts +19 -0
  29. package/dist/edit/spreadsheet.d.ts.map +1 -0
  30. package/dist/edit/spreadsheet.js +123 -0
  31. package/dist/edit/spreadsheet.js.map +1 -0
  32. package/dist/fonts/DejaVuSans.ttf +0 -0
  33. package/dist/fonts/LICENSE-DejaVu.txt +2 -0
  34. package/dist/index.d.ts +12 -0
  35. package/dist/index.d.ts.map +1 -0
  36. package/dist/index.js +11 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/parse/detect.d.ts +19 -0
  39. package/dist/parse/detect.d.ts.map +1 -0
  40. package/dist/parse/detect.js +109 -0
  41. package/dist/parse/detect.js.map +1 -0
  42. package/dist/parse/formats.d.ts +14 -0
  43. package/dist/parse/formats.d.ts.map +1 -0
  44. package/dist/parse/formats.js +23 -0
  45. package/dist/parse/formats.js.map +1 -0
  46. package/dist/parse/index.d.ts +4 -0
  47. package/dist/parse/index.d.ts.map +1 -0
  48. package/dist/parse/index.js +4 -0
  49. package/dist/parse/index.js.map +1 -0
  50. package/dist/parse/legacy-doc.d.ts +15 -0
  51. package/dist/parse/legacy-doc.d.ts.map +1 -0
  52. package/dist/parse/legacy-doc.js +100 -0
  53. package/dist/parse/legacy-doc.js.map +1 -0
  54. package/dist/parse/pdf.d.ts +8 -0
  55. package/dist/parse/pdf.d.ts.map +1 -0
  56. package/dist/parse/pdf.js +34 -0
  57. package/dist/parse/pdf.js.map +1 -0
  58. package/dist/parse/pptx.d.ts +7 -0
  59. package/dist/parse/pptx.d.ts.map +1 -0
  60. package/dist/parse/pptx.js +107 -0
  61. package/dist/parse/pptx.js.map +1 -0
  62. package/dist/parse/router.d.ts +7 -0
  63. package/dist/parse/router.d.ts.map +1 -0
  64. package/dist/parse/router.js +286 -0
  65. package/dist/parse/router.js.map +1 -0
  66. package/dist/parse/text-formats.d.ts +19 -0
  67. package/dist/parse/text-formats.d.ts.map +1 -0
  68. package/dist/parse/text-formats.js +82 -0
  69. package/dist/parse/text-formats.js.map +1 -0
  70. package/dist/types.d.ts +105 -0
  71. package/dist/types.d.ts.map +1 -0
  72. package/dist/types.js +5 -0
  73. package/dist/types.js.map +1 -0
  74. package/dist/utils/errors.d.ts +8 -0
  75. package/dist/utils/errors.d.ts.map +1 -0
  76. package/dist/utils/errors.js +17 -0
  77. package/dist/utils/errors.js.map +1 -0
  78. package/dist/utils/paths.d.ts +4 -0
  79. package/dist/utils/paths.d.ts.map +1 -0
  80. package/dist/utils/paths.js +20 -0
  81. package/dist/utils/paths.js.map +1 -0
  82. package/dist/utils/text.d.ts +5 -0
  83. package/dist/utils/text.d.ts.map +1 -0
  84. package/dist/utils/text.js +16 -0
  85. package/dist/utils/text.js.map +1 -0
  86. package/dist/write/docx.d.ts +4 -0
  87. package/dist/write/docx.d.ts.map +1 -0
  88. package/dist/write/docx.js +31 -0
  89. package/dist/write/docx.js.map +1 -0
  90. package/dist/write/index.d.ts +9 -0
  91. package/dist/write/index.d.ts.map +1 -0
  92. package/dist/write/index.js +38 -0
  93. package/dist/write/index.js.map +1 -0
  94. package/dist/write/pdf.d.ts +4 -0
  95. package/dist/write/pdf.d.ts.map +1 -0
  96. package/dist/write/pdf.js +70 -0
  97. package/dist/write/pdf.js.map +1 -0
  98. package/dist/write/spreadsheet.d.ts +2 -0
  99. package/dist/write/spreadsheet.d.ts.map +1 -0
  100. package/dist/write/spreadsheet.js +2 -0
  101. package/dist/write/spreadsheet.js.map +1 -0
  102. package/fonts/DejaVuSans.ttf +0 -0
  103. package/fonts/LICENSE-DejaVu.txt +2 -0
  104. package/package.json +88 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/parse/router.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export type TextFormat = 'md' | 'html' | 'csv';
2
+ export declare function readTextFile(path: string): Promise<string>;
3
+ export declare function parseMarkdown(text: string): {
4
+ format: 'md';
5
+ text: string;
6
+ paragraphs: string[];
7
+ };
8
+ /** Strip tags for plain text; keep a simple paragraph list from block tags. */
9
+ export declare function parseHtml(text: string): {
10
+ format: 'html';
11
+ text: string;
12
+ paragraphs: string[];
13
+ };
14
+ export declare function parseCsv(text: string): {
15
+ format: 'csv';
16
+ text: string;
17
+ rows: string[][];
18
+ };
19
+ //# sourceMappingURL=text-formats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-formats.d.ts","sourceRoot":"","sources":["../../src/parse/text-formats.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,MAAM,GAAG,KAAK,CAAC;AAE/C,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEhE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;IAC3C,MAAM,EAAE,IAAI,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAMA;AAED,+EAA+E;AAC/E,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAsBA;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG;IACtC,MAAM,EAAE,KAAK,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;CAClB,CAYA"}
@@ -0,0 +1,82 @@
1
+ import { readFile } from 'node:fs/promises';
2
+ export async function readTextFile(path) {
3
+ return readFile(path, 'utf8');
4
+ }
5
+ export function parseMarkdown(text) {
6
+ const paragraphs = text
7
+ .split(/\n\s*\n/)
8
+ .map((p) => p.trim())
9
+ .filter(Boolean);
10
+ return { format: 'md', text: text.replace(/\r\n/g, '\n'), paragraphs };
11
+ }
12
+ /** Strip tags for plain text; keep a simple paragraph list from block tags. */
13
+ export function parseHtml(text) {
14
+ const normalized = text.replace(/\r\n/g, '\n');
15
+ const withoutScripts = normalized
16
+ .replace(/<script[\s\S]*?<\/script>/gi, '')
17
+ .replace(/<style[\s\S]*?<\/style>/gi, '');
18
+ const withBreaks = withoutScripts
19
+ .replace(/<\/(p|div|h[1-6]|li|tr|br)\s*>/gi, '\n')
20
+ .replace(/<br\s*\/?>/gi, '\n');
21
+ const plain = withBreaks
22
+ .replace(/<[^>]+>/g, '')
23
+ .replace(/&nbsp;/g, ' ')
24
+ .replace(/&amp;/g, '&')
25
+ .replace(/&lt;/g, '<')
26
+ .replace(/&gt;/g, '>')
27
+ .replace(/&quot;/g, '"')
28
+ .replace(/\n{3,}/g, '\n\n')
29
+ .trim();
30
+ const paragraphs = plain
31
+ .split(/\n\s*\n/)
32
+ .map((p) => p.trim())
33
+ .filter(Boolean);
34
+ return { format: 'html', text: plain, paragraphs };
35
+ }
36
+ export function parseCsv(text) {
37
+ const lines = text.replace(/\r\n/g, '\n').replace(/\r/g, '\n').split('\n');
38
+ const rows = [];
39
+ for (const line of lines) {
40
+ if (line === '' && rows.length === 0)
41
+ continue;
42
+ rows.push(splitCsvLine(line));
43
+ }
44
+ // drop trailing empty line
45
+ while (rows.length && rows[rows.length - 1].every((c) => c === '')) {
46
+ rows.pop();
47
+ }
48
+ return { format: 'csv', text: text.replace(/\r\n/g, '\n'), rows };
49
+ }
50
+ function splitCsvLine(line) {
51
+ const cells = [];
52
+ let cur = '';
53
+ let inQuotes = false;
54
+ for (let i = 0; i < line.length; i++) {
55
+ const ch = line[i];
56
+ if (inQuotes) {
57
+ if (ch === '"' && line[i + 1] === '"') {
58
+ cur += '"';
59
+ i++;
60
+ }
61
+ else if (ch === '"') {
62
+ inQuotes = false;
63
+ }
64
+ else {
65
+ cur += ch;
66
+ }
67
+ }
68
+ else if (ch === '"') {
69
+ inQuotes = true;
70
+ }
71
+ else if (ch === ',') {
72
+ cells.push(cur);
73
+ cur = '';
74
+ }
75
+ else {
76
+ cur += ch;
77
+ }
78
+ }
79
+ cells.push(cur);
80
+ return cells;
81
+ }
82
+ //# sourceMappingURL=text-formats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-formats.js","sourceRoot":"","sources":["../../src/parse/text-formats.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Shared types for ai-document-parser.
3
+ */
4
+ export type ParseOutputMode = 'text' | 'structured' | 'ast' | 'chunks';
5
+ export type ConvertFormat = 'md' | 'html' | 'csv' | 'rtf' | 'epub' | 'text' | 'chunks' | 'pdf';
6
+ export type DocumentInput = string | Buffer | Uint8Array | ArrayBuffer;
7
+ export interface ParseOptions {
8
+ /** Default: 'text' */
9
+ output?: ParseOutputMode;
10
+ /** Reserved; currently ignored (no OCR pipeline in core). Default: false */
11
+ ocr?: boolean;
12
+ extractAttachments?: boolean;
13
+ includeRawContent?: boolean;
14
+ }
15
+ export interface ConvertOptions {
16
+ ocr?: boolean;
17
+ extractAttachments?: boolean;
18
+ generator?: Record<string, unknown>;
19
+ }
20
+ export interface DocumentWarning {
21
+ code: string;
22
+ message: string;
23
+ }
24
+ export interface DocumentResult {
25
+ /** Detected / resolved format (e.g. docx, xlsx, pdf) */
26
+ format: string;
27
+ /** Plain text when output is text, or stringified structured/chunks */
28
+ text: string;
29
+ charCount: number;
30
+ /** Path when input was a file path */
31
+ path?: string;
32
+ /** Structured agent-friendly payload when output === 'structured' */
33
+ structured?: DocxStructured | SpreadsheetStructured | LegacyDocStructured | PptxStructured | Record<string, unknown>;
34
+ /** Simplified document shape when output === 'ast' */
35
+ ast?: unknown;
36
+ /** Chunks when output === 'chunks' */
37
+ chunks?: unknown[];
38
+ warnings?: DocumentWarning[];
39
+ }
40
+ export interface DocxStructured {
41
+ format: 'docx';
42
+ paragraphs: string[];
43
+ }
44
+ export interface SpreadsheetStructured {
45
+ format: 'xlsx' | 'xls';
46
+ sheets: Record<string, (string | number | boolean | null)[][]>;
47
+ }
48
+ export interface LegacyDocStructured {
49
+ format: 'doc';
50
+ paragraphs: string[];
51
+ source: 'ai-document-parser-doc-binary';
52
+ }
53
+ export interface PptxStructured {
54
+ format: 'pptx';
55
+ /** Per-slide text blocks (DrawingML a:t runs grouped by a:p). */
56
+ slides: string[][];
57
+ }
58
+ export interface ConvertResult {
59
+ value: string | Uint8Array | unknown;
60
+ messages: DocumentWarning[];
61
+ format: ConvertFormat;
62
+ }
63
+ export type EditDocxOp = {
64
+ type: 'docx';
65
+ op: 'replace';
66
+ oldString: string;
67
+ newString: string;
68
+ replaceAll?: boolean;
69
+ } | {
70
+ type: 'docx';
71
+ op: 'append';
72
+ paragraphs: string[];
73
+ };
74
+ export type EditSpreadsheetOp = {
75
+ type: 'spreadsheet';
76
+ op: 'patchCells';
77
+ updates: Array<{
78
+ sheet?: string;
79
+ cell: string;
80
+ value: string | number | boolean | null;
81
+ }>;
82
+ };
83
+ export type EditDocumentOp = EditDocxOp | EditSpreadsheetOp;
84
+ export interface EditResult {
85
+ path: string;
86
+ message: string;
87
+ changes: number;
88
+ }
89
+ export type WriteDocumentInput = {
90
+ type: 'docx';
91
+ content: string | string[];
92
+ } | {
93
+ type: 'xlsx' | 'xls';
94
+ sheets: Record<string, (string | number | boolean | null)[][]>;
95
+ } | {
96
+ type: 'pdf';
97
+ content: string;
98
+ title?: string;
99
+ };
100
+ export interface WriteResult {
101
+ path: string;
102
+ message: string;
103
+ }
104
+ export type DocumentErrorCode = 'UNSUPPORTED_FORMAT' | 'PARSE_FAILED' | 'CONVERT_FAILED' | 'EDIT_TARGET_NOT_FOUND' | 'MULTIPLE_MATCHES' | 'WRITE_FAILED' | 'LICENSE_PEER_MISSING' | 'LEGACY_DOC_LOW_FIDELITY' | 'INVALID_ARGUMENT' | 'IO_ERROR';
105
+ //# 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,5 @@
1
+ /**
2
+ * Shared types for ai-document-parser.
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,8 @@
1
+ import type { DocumentErrorCode } from '../types.js';
2
+ export declare class DocumentError extends Error {
3
+ readonly code: DocumentErrorCode;
4
+ readonly cause?: unknown;
5
+ constructor(code: DocumentErrorCode, message: string, cause?: unknown);
6
+ }
7
+ export declare function wrapError(code: DocumentErrorCode, message: string, err: unknown): DocumentError;
8
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;gBAEb,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAMtE;AAED,wBAAgB,SAAS,CACvB,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,OAAO,GACX,aAAa,CAIf"}
@@ -0,0 +1,17 @@
1
+ export class DocumentError extends Error {
2
+ code;
3
+ cause;
4
+ constructor(code, message, cause) {
5
+ super(message);
6
+ this.name = 'DocumentError';
7
+ this.code = code;
8
+ this.cause = cause;
9
+ }
10
+ }
11
+ export function wrapError(code, message, err) {
12
+ if (err instanceof DocumentError)
13
+ return err;
14
+ const detail = err instanceof Error ? err.message : String(err);
15
+ return new DocumentError(code, `${message}: ${detail}`, err);
16
+ }
17
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAc,SAAQ,KAAK;IAC7B,IAAI,CAAoB;IACxB,KAAK,CAAW;IAEzB,YAAY,IAAuB,EAAE,OAAe,EAAE,KAAe;QACnE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAED,MAAM,UAAU,SAAS,CACvB,IAAuB,EACvB,OAAe,EACf,GAAY;IAEZ,IAAI,GAAG,YAAY,aAAa;QAAE,OAAO,GAAG,CAAC;IAC7C,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChE,OAAO,IAAI,aAAa,CAAC,IAAI,EAAE,GAAG,OAAO,KAAK,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC;AAC/D,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function extOf(input: string): string;
2
+ export declare function isPathLike(input: unknown): input is string;
3
+ export declare function ensureParentDir(filePath: string): Promise<void>;
4
+ //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"AAEA,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAE1D;AASD,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGrE"}
@@ -0,0 +1,20 @@
1
+ import path from 'node:path';
2
+ export function extOf(input) {
3
+ return path.extname(input).toLowerCase();
4
+ }
5
+ export function isPathLike(input) {
6
+ return typeof input === 'string' && !looksLikeRawContent(input);
7
+ }
8
+ /** Heuristic: short strings without path separators may still be paths (e.g. "a.docx"). */
9
+ function looksLikeRawContent(s) {
10
+ if (s.includes('\n') || s.includes('\r'))
11
+ return true;
12
+ if (s.length > 512 && !/[\\/]/.test(s) && !/\.\w{1,8}$/.test(s))
13
+ return true;
14
+ return false;
15
+ }
16
+ export async function ensureParentDir(filePath) {
17
+ const { mkdir } = await import('node:fs/promises');
18
+ await mkdir(path.dirname(filePath), { recursive: true });
19
+ }
20
+ //# sourceMappingURL=paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,UAAU,KAAK,CAAC,KAAa;IACjC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC;AAED,2FAA2F;AAC3F,SAAS,mBAAmB,CAAC,CAAS;IACpC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,IAAI,CAAC,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7E,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAAgB;IACpD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACnD,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,5 @@
1
+ /** Escape text for HTML element content / attributes. */
2
+ export declare function escapeHtml(s: string): string;
3
+ /** Escape a single CSV cell (RFC-style quotes when needed). */
4
+ export declare function csvEscapeCell(value: string | number | boolean | null | undefined): string;
5
+ //# sourceMappingURL=text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/utils/text.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAM5C;AAED,+DAA+D;AAC/D,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAIzF"}
@@ -0,0 +1,16 @@
1
+ /** Escape text for HTML element content / attributes. */
2
+ export function escapeHtml(s) {
3
+ return s
4
+ .replace(/&/g, '&amp;')
5
+ .replace(/</g, '&lt;')
6
+ .replace(/>/g, '&gt;')
7
+ .replace(/"/g, '&quot;');
8
+ }
9
+ /** Escape a single CSV cell (RFC-style quotes when needed). */
10
+ export function csvEscapeCell(value) {
11
+ if (value === null || value === undefined)
12
+ return '';
13
+ const s = String(value);
14
+ return /[",\n\r]/.test(s) ? `"${s.replace(/"/g, '""')}"` : s;
15
+ }
16
+ //# sourceMappingURL=text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/utils/text.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,MAAM,UAAU,UAAU,CAAC,CAAS;IAClC,OAAO,CAAC;SACL,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,aAAa,CAAC,KAAmD;IAC/E,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACrD,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACxB,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function writeDocx(filePath: string, content: string | string[]): Promise<{
2
+ message: string;
3
+ }>;
4
+ //# sourceMappingURL=docx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docx.d.ts","sourceRoot":"","sources":["../../src/write/docx.ts"],"names":[],"mappings":"AAKA,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GACzB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA+B9B"}
@@ -0,0 +1,31 @@
1
+ import { writeFile } from 'node:fs/promises';
2
+ import { Document, Packer, Paragraph, TextRun } from 'docx';
3
+ import { ensureParentDir } from '../utils/paths.js';
4
+ import { wrapError } from '../utils/errors.js';
5
+ export async function writeDocx(filePath, content) {
6
+ try {
7
+ const paragraphs = Array.isArray(content)
8
+ ? content
9
+ : content.split(/\r?\n/);
10
+ const children = paragraphs.map((text) => new Paragraph({
11
+ children: [new TextRun(text || ' ')],
12
+ }));
13
+ const doc = new Document({
14
+ sections: [
15
+ {
16
+ children: children.length > 0 ? children : [new Paragraph({ children: [] })],
17
+ },
18
+ ],
19
+ });
20
+ const buffer = await Packer.toBuffer(doc);
21
+ await ensureParentDir(filePath);
22
+ await writeFile(filePath, buffer);
23
+ return {
24
+ message: `Created DOCX: ${filePath} (${paragraphs.length} paragraph(s))`,
25
+ };
26
+ }
27
+ catch (err) {
28
+ throw wrapError('WRITE_FAILED', `Failed to write docx ${filePath}`, err);
29
+ }
30
+ }
31
+ //# sourceMappingURL=docx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docx.js","sourceRoot":"","sources":["../../src/write/docx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,QAAgB,EAChB,OAA0B;IAE1B,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YACvC,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAE3B,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAC7B,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,SAAS,CAAC;YACZ,QAAQ,EAAE,CAAC,IAAI,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;SACrC,CAAC,CACL,CAAC;QAEF,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC;YACvB,QAAQ,EAAE;gBACR;oBACE,QAAQ,EACN,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;iBACrE;aACF;SACF,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;QAChC,MAAM,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAClC,OAAO;YACL,OAAO,EAAE,iBAAiB,QAAQ,KAAK,UAAU,CAAC,MAAM,gBAAgB;SACzE,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,SAAS,CAAC,cAAc,EAAE,wBAAwB,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { WriteDocumentInput, WriteResult } from '../types.js';
2
+ /**
3
+ * Create a new document from scratch (plain text / grid).
4
+ */
5
+ export declare function writeDocument(filePath: string, input: WriteDocumentInput): Promise<WriteResult>;
6
+ export { writeDocx } from './docx.js';
7
+ export { writePdf } from './pdf.js';
8
+ export { writeSpreadsheet } from './spreadsheet.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/write/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAKnE;;GAEG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,WAAW,CAAC,CAyCtB;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,38 @@
1
+ import path from 'node:path';
2
+ import { DocumentError } from '../utils/errors.js';
3
+ import { writeDocx } from './docx.js';
4
+ import { writePdf } from './pdf.js';
5
+ import { writeSpreadsheet } from './spreadsheet.js';
6
+ /**
7
+ * Create a new document from scratch (plain text / grid).
8
+ */
9
+ export async function writeDocument(filePath, input) {
10
+ const ext = path.extname(filePath).toLowerCase();
11
+ if (input.type === 'docx') {
12
+ if (ext && ext !== '.docx') {
13
+ throw new DocumentError('INVALID_ARGUMENT', `Expected .docx path for type docx, got ${ext}`);
14
+ }
15
+ const result = await writeDocx(filePath, input.content);
16
+ return { path: filePath, message: result.message };
17
+ }
18
+ if (input.type === 'xlsx' || input.type === 'xls') {
19
+ const expected = input.type === 'xls' ? '.xls' : '.xlsx';
20
+ if (ext && ext !== expected) {
21
+ throw new DocumentError('INVALID_ARGUMENT', `Expected ${expected} path for type ${input.type}, got ${ext}`);
22
+ }
23
+ const result = await writeSpreadsheet(filePath, input.sheets);
24
+ return { path: filePath, message: result.message };
25
+ }
26
+ if (input.type === 'pdf') {
27
+ if (ext && ext !== '.pdf') {
28
+ throw new DocumentError('INVALID_ARGUMENT', `Expected .pdf path for type pdf, got ${ext}`);
29
+ }
30
+ const result = await writePdf(filePath, input.content, input.title);
31
+ return { path: filePath, message: result.message };
32
+ }
33
+ throw new DocumentError('INVALID_ARGUMENT', `Unsupported write type: ${input.type}`);
34
+ }
35
+ export { writeDocx } from './docx.js';
36
+ export { writePdf } from './pdf.js';
37
+ export { writeSpreadsheet } from './spreadsheet.js';
38
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/write/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAAgB,EAChB,KAAyB;IAEzB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IAEjD,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,IAAI,GAAG,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YAC3B,MAAM,IAAI,aAAa,CACrB,kBAAkB,EAClB,0CAA0C,GAAG,EAAE,CAChD,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACxD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IACrD,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QACzD,IAAI,GAAG,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,IAAI,aAAa,CACrB,kBAAkB,EAClB,YAAY,QAAQ,kBAAkB,KAAK,CAAC,IAAI,SAAS,GAAG,EAAE,CAC/D,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IACrD,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACzB,IAAI,GAAG,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YAC1B,MAAM,IAAI,aAAa,CACrB,kBAAkB,EAClB,wCAAwC,GAAG,EAAE,CAC9C,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACpE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IACrD,CAAC;IAED,MAAM,IAAI,aAAa,CACrB,kBAAkB,EAClB,2BAA4B,KAA0B,CAAC,IAAI,EAAE,CAC9D,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function writePdf(filePath: string, content: string, title?: string): Promise<{
2
+ message: string;
3
+ }>;
4
+ //# sourceMappingURL=pdf.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf.d.ts","sourceRoot":"","sources":["../../src/write/pdf.ts"],"names":[],"mappings":"AAwCA,wBAAsB,QAAQ,CAC5B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAqC9B"}
@@ -0,0 +1,70 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { writeFile } from 'node:fs/promises';
3
+ import path from 'node:path';
4
+ import { fileURLToPath } from 'node:url';
5
+ import { jsPDF } from 'jspdf';
6
+ import { ensureParentDir } from '../utils/paths.js';
7
+ import { wrapError } from '../utils/errors.js';
8
+ const PDF_FONT = 'DejaVuSans';
9
+ const PDF_FONT_FILE = 'DejaVuSans.ttf';
10
+ function resolveFontPath() {
11
+ // Prefer packaged fonts next to dist/, then repo fonts/
12
+ const here = path.dirname(fileURLToPath(import.meta.url));
13
+ const candidates = [
14
+ path.join(here, '..', '..', 'fonts', PDF_FONT_FILE),
15
+ path.join(here, '..', 'fonts', PDF_FONT_FILE),
16
+ path.join(process.cwd(), 'fonts', PDF_FONT_FILE),
17
+ ];
18
+ for (const c of candidates) {
19
+ try {
20
+ readFileSync(c);
21
+ return c;
22
+ }
23
+ catch {
24
+ /* try next */
25
+ }
26
+ }
27
+ throw new Error(`Font ${PDF_FONT_FILE} not found. Expected under package fonts/`);
28
+ }
29
+ function registerCyrillicFont(doc) {
30
+ const fontPath = resolveFontPath();
31
+ const fontData = readFileSync(fontPath).toString('binary');
32
+ doc.addFileToVFS(PDF_FONT_FILE, fontData);
33
+ doc.addFont(PDF_FONT_FILE, PDF_FONT, 'normal');
34
+ doc.setFont(PDF_FONT);
35
+ }
36
+ export async function writePdf(filePath, content, title) {
37
+ try {
38
+ const doc = new jsPDF({ unit: 'mm', format: 'a4' });
39
+ registerCyrillicFont(doc);
40
+ const margin = 15;
41
+ const pageWidth = doc.internal.pageSize.getWidth() - margin * 2;
42
+ let y = margin;
43
+ if (title) {
44
+ doc.setFontSize(14);
45
+ const titleLines = doc.splitTextToSize(title, pageWidth);
46
+ doc.text(titleLines, margin, y);
47
+ y += titleLines.length * 7 + 4;
48
+ }
49
+ doc.setFontSize(11);
50
+ const lines = doc.splitTextToSize(content, pageWidth);
51
+ const lineHeight = 5;
52
+ for (const line of lines) {
53
+ if (y > doc.internal.pageSize.getHeight() - margin) {
54
+ doc.addPage();
55
+ doc.setFont(PDF_FONT);
56
+ y = margin;
57
+ }
58
+ doc.text(line, margin, y);
59
+ y += lineHeight;
60
+ }
61
+ const buffer = Buffer.from(doc.output('arraybuffer'));
62
+ await ensureParentDir(filePath);
63
+ await writeFile(filePath, buffer);
64
+ return { message: `Created PDF: ${filePath} (${lines.length} line(s))` };
65
+ }
66
+ catch (err) {
67
+ throw wrapError('WRITE_FAILED', `Failed to write pdf ${filePath}`, err);
68
+ }
69
+ }
70
+ //# sourceMappingURL=pdf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf.js","sourceRoot":"","sources":["../../src/write/pdf.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { writeSpreadsheet, updateSpreadsheetCells, readSpreadsheetStructured, readSpreadsheetStructuredAsync, readSpreadsheetStructuredFromBuffer, spreadsheetToText, type SheetGrid, type CellUpdate, } from '../edit/spreadsheet.js';
2
+ //# sourceMappingURL=spreadsheet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spreadsheet.d.ts","sourceRoot":"","sources":["../../src/write/spreadsheet.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,yBAAyB,EACzB,8BAA8B,EAC9B,mCAAmC,EACnC,iBAAiB,EACjB,KAAK,SAAS,EACd,KAAK,UAAU,GAChB,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { writeSpreadsheet, updateSpreadsheetCells, readSpreadsheetStructured, readSpreadsheetStructuredAsync, readSpreadsheetStructuredFromBuffer, spreadsheetToText, } from '../edit/spreadsheet.js';
2
+ //# sourceMappingURL=spreadsheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spreadsheet.js","sourceRoot":"","sources":["../../src/write/spreadsheet.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,yBAAyB,EACzB,8BAA8B,EAC9B,mCAAmC,EACnC,iBAAiB,GAGlB,MAAM,wBAAwB,CAAC"}
Binary file
@@ -0,0 +1,2 @@
1
+ DejaVu Sans (DejaVuSans.ttf) — fonts from the DejaVu project.
2
+ See https://dejavu-fonts.github.io/ for license terms (Bitstream Vera / Arev Fonts / Public Domain).