@cesarandreslopez/occ 0.3.1 → 0.4.1

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 (150) hide show
  1. package/README.md +130 -4
  2. package/dist/src/cli-validation.d.ts +14 -0
  3. package/dist/src/cli-validation.js +58 -0
  4. package/dist/src/cli-validation.js.map +1 -0
  5. package/dist/src/cli.js +26 -8
  6. package/dist/src/cli.js.map +1 -1
  7. package/dist/src/code/build.d.ts +7 -5
  8. package/dist/src/code/build.js +68 -11
  9. package/dist/src/code/build.js.map +1 -1
  10. package/dist/src/code/command.js +26 -19
  11. package/dist/src/code/command.js.map +1 -1
  12. package/dist/src/code/discover.d.ts +6 -4
  13. package/dist/src/code/discover.js +5 -0
  14. package/dist/src/code/discover.js.map +1 -1
  15. package/dist/src/code/languages.d.ts +28 -7
  16. package/dist/src/code/languages.js +9 -0
  17. package/dist/src/code/languages.js.map +1 -1
  18. package/dist/src/code/output.js +12 -3
  19. package/dist/src/code/output.js.map +1 -1
  20. package/dist/src/code/parsers.js +75 -10
  21. package/dist/src/code/parsers.js.map +1 -1
  22. package/dist/src/code/query.js +82 -22
  23. package/dist/src/code/query.js.map +1 -1
  24. package/dist/src/code/types.d.ts +1201 -145
  25. package/dist/src/code/types.js +150 -1
  26. package/dist/src/code/types.js.map +1 -1
  27. package/dist/src/doc/command.d.ts +2 -0
  28. package/dist/src/doc/command.js +54 -0
  29. package/dist/src/doc/command.js.map +1 -0
  30. package/dist/src/doc/inspect-docx.d.ts +14 -0
  31. package/dist/src/doc/inspect-docx.js +188 -0
  32. package/dist/src/doc/inspect-docx.js.map +1 -0
  33. package/dist/src/doc/inspect-odt.d.ts +8 -0
  34. package/dist/src/doc/inspect-odt.js +92 -0
  35. package/dist/src/doc/inspect-odt.js.map +1 -0
  36. package/dist/src/doc/inspect-pdf.d.ts +8 -0
  37. package/dist/src/doc/inspect-pdf.js +88 -0
  38. package/dist/src/doc/inspect-pdf.js.map +1 -0
  39. package/dist/src/doc/inspect.d.ts +2 -0
  40. package/dist/src/doc/inspect.js +70 -0
  41. package/dist/src/doc/inspect.js.map +1 -0
  42. package/dist/src/doc/output.d.ts +3 -0
  43. package/dist/src/doc/output.js +82 -0
  44. package/dist/src/doc/output.js.map +1 -0
  45. package/dist/src/doc/types.d.ts +172 -0
  46. package/dist/src/doc/types.js +62 -0
  47. package/dist/src/doc/types.js.map +1 -0
  48. package/dist/src/inspect/shared.d.ts +20 -0
  49. package/dist/src/inspect/shared.js +29 -0
  50. package/dist/src/inspect/shared.js.map +1 -0
  51. package/dist/src/inspect/xlsx-cells.d.ts +4 -0
  52. package/dist/src/inspect/xlsx-cells.js +31 -0
  53. package/dist/src/inspect/xlsx-cells.js.map +1 -0
  54. package/dist/src/markdown/convert.js +6 -4
  55. package/dist/src/markdown/convert.js.map +1 -1
  56. package/dist/src/output/tabular.d.ts +6 -4
  57. package/dist/src/output/tabular.js +5 -0
  58. package/dist/src/output/tabular.js.map +1 -1
  59. package/dist/src/output/tree.d.ts +21 -9
  60. package/dist/src/output/tree.js +10 -0
  61. package/dist/src/output/tree.js.map +1 -1
  62. package/dist/src/parsers/docx.js +5 -1
  63. package/dist/src/parsers/docx.js.map +1 -1
  64. package/dist/src/parsers/odf.js +4 -3
  65. package/dist/src/parsers/odf.js.map +1 -1
  66. package/dist/src/parsers/pdf.js +6 -1
  67. package/dist/src/parsers/pdf.js.map +1 -1
  68. package/dist/src/parsers/pptx.js +2 -1
  69. package/dist/src/parsers/pptx.js.map +1 -1
  70. package/dist/src/parsers/xlsx.js +11 -4
  71. package/dist/src/parsers/xlsx.js.map +1 -1
  72. package/dist/src/progress.d.ts +7 -5
  73. package/dist/src/progress.js +6 -0
  74. package/dist/src/progress.js.map +1 -1
  75. package/dist/src/scc.d.ts +35 -26
  76. package/dist/src/scc.js +26 -1
  77. package/dist/src/scc.js.map +1 -1
  78. package/dist/src/sheet/command.d.ts +2 -0
  79. package/dist/src/sheet/command.js +61 -0
  80. package/dist/src/sheet/command.js.map +1 -0
  81. package/dist/src/sheet/inspect.d.ts +3 -0
  82. package/dist/src/sheet/inspect.js +426 -0
  83. package/dist/src/sheet/inspect.js.map +1 -0
  84. package/dist/src/sheet/output.d.ts +3 -0
  85. package/dist/src/sheet/output.js +158 -0
  86. package/dist/src/sheet/output.js.map +1 -0
  87. package/dist/src/sheet/types.d.ts +472 -0
  88. package/dist/src/sheet/types.js +119 -0
  89. package/dist/src/sheet/types.js.map +1 -0
  90. package/dist/src/slide/command.d.ts +2 -0
  91. package/dist/src/slide/command.js +54 -0
  92. package/dist/src/slide/command.js.map +1 -0
  93. package/dist/src/slide/inspect-odp.d.ts +7 -0
  94. package/dist/src/slide/inspect-odp.js +105 -0
  95. package/dist/src/slide/inspect-odp.js.map +1 -0
  96. package/dist/src/slide/inspect-pptx.d.ts +11 -0
  97. package/dist/src/slide/inspect-pptx.js +157 -0
  98. package/dist/src/slide/inspect-pptx.js.map +1 -0
  99. package/dist/src/slide/inspect.d.ts +2 -0
  100. package/dist/src/slide/inspect.js +76 -0
  101. package/dist/src/slide/inspect.js.map +1 -0
  102. package/dist/src/slide/output.d.ts +3 -0
  103. package/dist/src/slide/output.js +92 -0
  104. package/dist/src/slide/output.js.map +1 -0
  105. package/dist/src/slide/types.d.ts +167 -0
  106. package/dist/src/slide/types.js +61 -0
  107. package/dist/src/slide/types.js.map +1 -0
  108. package/dist/src/stats.d.ts +6 -4
  109. package/dist/src/stats.js +5 -0
  110. package/dist/src/stats.js.map +1 -1
  111. package/dist/src/structure/types.d.ts +19 -11
  112. package/dist/src/structure/types.js +26 -21
  113. package/dist/src/structure/types.js.map +1 -1
  114. package/dist/src/table/command.d.ts +2 -0
  115. package/dist/src/table/command.js +58 -0
  116. package/dist/src/table/command.js.map +1 -0
  117. package/dist/src/table/inspect-docx.d.ts +2 -0
  118. package/dist/src/table/inspect-docx.js +108 -0
  119. package/dist/src/table/inspect-docx.js.map +1 -0
  120. package/dist/src/table/inspect-odp.d.ts +2 -0
  121. package/dist/src/table/inspect-odp.js +106 -0
  122. package/dist/src/table/inspect-odp.js.map +1 -0
  123. package/dist/src/table/inspect-odt.d.ts +2 -0
  124. package/dist/src/table/inspect-odt.js +100 -0
  125. package/dist/src/table/inspect-odt.js.map +1 -0
  126. package/dist/src/table/inspect-pptx.d.ts +2 -0
  127. package/dist/src/table/inspect-pptx.js +112 -0
  128. package/dist/src/table/inspect-pptx.js.map +1 -0
  129. package/dist/src/table/inspect-xlsx.d.ts +2 -0
  130. package/dist/src/table/inspect-xlsx.js +161 -0
  131. package/dist/src/table/inspect-xlsx.js.map +1 -0
  132. package/dist/src/table/inspect.d.ts +2 -0
  133. package/dist/src/table/inspect.js +65 -0
  134. package/dist/src/table/inspect.js.map +1 -0
  135. package/dist/src/table/output.d.ts +3 -0
  136. package/dist/src/table/output.js +93 -0
  137. package/dist/src/table/output.js.map +1 -0
  138. package/dist/src/table/types.d.ts +104 -0
  139. package/dist/src/table/types.js +40 -0
  140. package/dist/src/table/types.js.map +1 -0
  141. package/dist/src/types.d.ts +25 -20
  142. package/dist/src/types.js +21 -1
  143. package/dist/src/types.js.map +1 -1
  144. package/dist/src/utils.d.ts +11 -1
  145. package/dist/src/utils.js +2 -0
  146. package/dist/src/utils.js.map +1 -1
  147. package/dist/src/walker.d.ts +21 -12
  148. package/dist/src/walker.js +13 -0
  149. package/dist/src/walker.js.map +1 -1
  150. package/package.json +3 -2
@@ -0,0 +1,93 @@
1
+ import Table from 'cli-table3';
2
+ import chalk from 'chalk';
3
+ import { formatBytes, formatNumber } from '../utils.js';
4
+ import { sectionHeader, stripAnsi, tableChars } from '../output/tabular.js';
5
+ const colors = {
6
+ header: (value) => chalk.bold(value),
7
+ key: (value) => chalk.cyan(value),
8
+ value: (value) => value,
9
+ dim: (value) => chalk.dim(value),
10
+ ok: (value) => chalk.green(value),
11
+ warn: (value) => chalk.yellow(value),
12
+ };
13
+ const noColor = Object.fromEntries(Object.keys(colors).map(key => [key, (value) => value]));
14
+ function palette(ci = false) {
15
+ return ci ? noColor : colors;
16
+ }
17
+ export function formatTablePayloadJson(payload) {
18
+ return JSON.stringify(payload, null, 2);
19
+ }
20
+ export function formatTableInspection(result, ci = false) {
21
+ const c = palette(ci);
22
+ const sections = [];
23
+ // Overview
24
+ const overviewLines = [
25
+ `${c.key('File')}: ${c.value(result.file)}`,
26
+ `${c.key('Format')}: ${c.value(result.format.toUpperCase())}`,
27
+ `${c.key('Size')}: ${c.value(formatBytes(result.size))}`,
28
+ `${c.key('Tables Found')}: ${c.value(formatNumber(result.tableCount))}`,
29
+ ];
30
+ if (result.totalTokenEstimate > 0) {
31
+ overviewLines.push(`${c.key('Total Token Estimate')}: ${c.value(formatNumber(result.totalTokenEstimate))}`);
32
+ }
33
+ sections.push(overviewLines.join('\n'));
34
+ // Notes
35
+ if (result.notes.length > 0) {
36
+ for (const note of result.notes) {
37
+ sections.push(c.dim(`Note: ${note}`));
38
+ }
39
+ }
40
+ // Per-table sections
41
+ for (const table of result.tables) {
42
+ sections.push(formatSingleTable(table, c, ci));
43
+ }
44
+ return sections.join('\n\n') + '\n';
45
+ }
46
+ function formatSingleTable(table, c, ci) {
47
+ const lines = [];
48
+ // Table header info
49
+ const titleParts = [`Table ${table.tableIndex}`];
50
+ if (table.location)
51
+ titleParts.push(`(${table.location})`);
52
+ titleParts.push(`— ${table.rowCount} rows × ${table.columnCount} cols, ${formatNumber(table.cellCount)} cells`);
53
+ const infoLine = ` ${c.key('Token Estimate')}: ${formatNumber(table.tokenEstimate)}`;
54
+ // Build the data table
55
+ const headRow = table.headers || [];
56
+ const hasHeaders = headRow.length > 0;
57
+ if (table.rows.length === 0 && !hasHeaders) {
58
+ const titleStr = titleParts.join(' ');
59
+ const width = Math.max(stripAnsi(titleStr).length + 6, stripAnsi(infoLine).length, 56);
60
+ return `${c.header(sectionHeader(titleStr, width, ci))}\n${infoLine}\n ${c.dim('(no data rows)')}`;
61
+ }
62
+ // Determine column count for the display table
63
+ const colCount = table.columnCount;
64
+ const displayHeaders = hasHeaders
65
+ ? headRow.map((h, i) => h || `Col ${i + 1}`)
66
+ : Array.from({ length: colCount }, (_, i) => `Col ${i + 1}`);
67
+ const dataTable = new Table({
68
+ head: ['#', ...displayHeaders.map(h => c.key(h))],
69
+ chars: tableChars(ci),
70
+ style: { head: [], border: [] },
71
+ colAligns: ['right', ...Array(colCount).fill('left')],
72
+ });
73
+ for (const row of table.rows) {
74
+ const rowCells = Array.from({ length: colCount }, (_, i) => {
75
+ const cell = row.cells[i];
76
+ return cell ? cell.value : '';
77
+ });
78
+ dataTable.push([String(row.index), ...rowCells]);
79
+ }
80
+ const rendered = dataTable.toString();
81
+ const tableWidth = Math.max(...rendered.split('\n').map(line => stripAnsi(line).length), 56);
82
+ const titleStr = titleParts.join(' ');
83
+ const parts = [
84
+ c.header(sectionHeader(titleStr, tableWidth, ci)),
85
+ infoLine,
86
+ rendered,
87
+ ];
88
+ if (table.truncated) {
89
+ parts.push(c.dim(` (showing ${table.rows.length} of ${table.rowCount - (hasHeaders ? 1 : 0)} data rows)`));
90
+ }
91
+ return parts.join('\n');
92
+ }
93
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../../src/table/output.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ import { z } from 'zod';
2
+ export declare const TableCellSchema: z.ZodObject<{
3
+ value: z.ZodString;
4
+ colSpan: z.ZodOptional<z.ZodNumber>;
5
+ rowSpan: z.ZodOptional<z.ZodNumber>;
6
+ }, z.core.$strip>;
7
+ export type TableCell = z.infer<typeof TableCellSchema>;
8
+ export declare const ExtractedTableSchema: z.ZodObject<{
9
+ tableIndex: z.ZodNumber;
10
+ location: z.ZodNullable<z.ZodString>;
11
+ rowCount: z.ZodNumber;
12
+ columnCount: z.ZodNumber;
13
+ cellCount: z.ZodNumber;
14
+ headers: z.ZodNullable<z.ZodArray<z.ZodString>>;
15
+ rows: z.ZodArray<z.ZodObject<{
16
+ index: z.ZodNumber;
17
+ cells: z.ZodArray<z.ZodObject<{
18
+ value: z.ZodString;
19
+ colSpan: z.ZodOptional<z.ZodNumber>;
20
+ rowSpan: z.ZodOptional<z.ZodNumber>;
21
+ }, z.core.$strip>>;
22
+ }, z.core.$strip>>;
23
+ truncated: z.ZodBoolean;
24
+ tokenEstimate: z.ZodNumber;
25
+ }, z.core.$strip>;
26
+ export type ExtractedTable = z.infer<typeof ExtractedTableSchema>;
27
+ export declare const TableInspectionResultSchema: z.ZodObject<{
28
+ file: z.ZodString;
29
+ format: z.ZodEnum<{
30
+ docx: "docx";
31
+ pdf: "pdf";
32
+ xlsx: "xlsx";
33
+ pptx: "pptx";
34
+ odt: "odt";
35
+ odp: "odp";
36
+ }>;
37
+ size: z.ZodNumber;
38
+ tableCount: z.ZodNumber;
39
+ tables: z.ZodArray<z.ZodObject<{
40
+ tableIndex: z.ZodNumber;
41
+ location: z.ZodNullable<z.ZodString>;
42
+ rowCount: z.ZodNumber;
43
+ columnCount: z.ZodNumber;
44
+ cellCount: z.ZodNumber;
45
+ headers: z.ZodNullable<z.ZodArray<z.ZodString>>;
46
+ rows: z.ZodArray<z.ZodObject<{
47
+ index: z.ZodNumber;
48
+ cells: z.ZodArray<z.ZodObject<{
49
+ value: z.ZodString;
50
+ colSpan: z.ZodOptional<z.ZodNumber>;
51
+ rowSpan: z.ZodOptional<z.ZodNumber>;
52
+ }, z.core.$strip>>;
53
+ }, z.core.$strip>>;
54
+ truncated: z.ZodBoolean;
55
+ tokenEstimate: z.ZodNumber;
56
+ }, z.core.$strip>>;
57
+ notes: z.ZodArray<z.ZodString>;
58
+ totalTokenEstimate: z.ZodNumber;
59
+ }, z.core.$strip>;
60
+ export type TableInspectionResult = z.infer<typeof TableInspectionResultSchema>;
61
+ export declare const TableInspectPayloadSchema: z.ZodObject<{
62
+ file: z.ZodString;
63
+ query: z.ZodRecord<z.ZodString, z.ZodUnknown>;
64
+ results: z.ZodObject<{
65
+ file: z.ZodString;
66
+ format: z.ZodEnum<{
67
+ docx: "docx";
68
+ pdf: "pdf";
69
+ xlsx: "xlsx";
70
+ pptx: "pptx";
71
+ odt: "odt";
72
+ odp: "odp";
73
+ }>;
74
+ size: z.ZodNumber;
75
+ tableCount: z.ZodNumber;
76
+ tables: z.ZodArray<z.ZodObject<{
77
+ tableIndex: z.ZodNumber;
78
+ location: z.ZodNullable<z.ZodString>;
79
+ rowCount: z.ZodNumber;
80
+ columnCount: z.ZodNumber;
81
+ cellCount: z.ZodNumber;
82
+ headers: z.ZodNullable<z.ZodArray<z.ZodString>>;
83
+ rows: z.ZodArray<z.ZodObject<{
84
+ index: z.ZodNumber;
85
+ cells: z.ZodArray<z.ZodObject<{
86
+ value: z.ZodString;
87
+ colSpan: z.ZodOptional<z.ZodNumber>;
88
+ rowSpan: z.ZodOptional<z.ZodNumber>;
89
+ }, z.core.$strip>>;
90
+ }, z.core.$strip>>;
91
+ truncated: z.ZodBoolean;
92
+ tokenEstimate: z.ZodNumber;
93
+ }, z.core.$strip>>;
94
+ notes: z.ZodArray<z.ZodString>;
95
+ totalTokenEstimate: z.ZodNumber;
96
+ }, z.core.$strip>;
97
+ }, z.core.$strip>;
98
+ export type TableInspectPayload = z.infer<typeof TableInspectPayloadSchema>;
99
+ export declare const InspectTableOptionsSchema: z.ZodObject<{
100
+ table: z.ZodOptional<z.ZodNumber>;
101
+ sampleRows: z.ZodNumber;
102
+ headerRow: z.ZodUnion<readonly [z.ZodLiteral<"auto">, z.ZodLiteral<"none">, z.ZodNumber]>;
103
+ }, z.core.$strip>;
104
+ export type InspectTableOptions = z.infer<typeof InspectTableOptionsSchema>;
@@ -0,0 +1,40 @@
1
+ import { z } from 'zod';
2
+ export const TableCellSchema = z.object({
3
+ value: z.string(),
4
+ colSpan: z.number().optional(),
5
+ rowSpan: z.number().optional(),
6
+ });
7
+ export const ExtractedTableSchema = z.object({
8
+ tableIndex: z.number(),
9
+ location: z.string().nullable(),
10
+ rowCount: z.number(),
11
+ columnCount: z.number(),
12
+ cellCount: z.number(),
13
+ headers: z.array(z.string()).nullable(),
14
+ rows: z.array(z.object({
15
+ index: z.number(),
16
+ cells: z.array(TableCellSchema),
17
+ })),
18
+ truncated: z.boolean(),
19
+ tokenEstimate: z.number(),
20
+ });
21
+ export const TableInspectionResultSchema = z.object({
22
+ file: z.string(),
23
+ format: z.enum(['docx', 'xlsx', 'pptx', 'odt', 'odp', 'pdf']),
24
+ size: z.number(),
25
+ tableCount: z.number(),
26
+ tables: z.array(ExtractedTableSchema),
27
+ notes: z.array(z.string()),
28
+ totalTokenEstimate: z.number(),
29
+ });
30
+ export const TableInspectPayloadSchema = z.object({
31
+ file: z.string(),
32
+ query: z.record(z.string(), z.unknown()),
33
+ results: TableInspectionResultSchema,
34
+ });
35
+ export const InspectTableOptionsSchema = z.object({
36
+ table: z.number().optional(),
37
+ sampleRows: z.number(),
38
+ headerRow: z.union([z.literal('auto'), z.literal('none'), z.number()]),
39
+ });
40
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/table/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QACrB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;KAChC,CAAC,CAAC;IACH,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;CAC1B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC;IACrC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC1B,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE;CAC/B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IACxC,OAAO,EAAE,2BAA2B;CACrC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;CACvE,CAAC,CAAC"}
@@ -1,20 +1,25 @@
1
- export interface FileEntry {
2
- path: string;
3
- size: number;
4
- }
5
- export interface SkippedEntry {
6
- path: string;
7
- reason: string;
8
- size: number;
9
- }
10
- export interface ParserOutput {
11
- fileType: string;
12
- metrics: Record<string, number>;
13
- }
14
- export interface ParseResult {
15
- filePath: string;
16
- size: number;
17
- success: boolean;
18
- fileType: string;
19
- metrics: Record<string, number> | null;
20
- }
1
+ import { z } from 'zod';
2
+ export declare const FileEntrySchema: z.ZodObject<{
3
+ path: z.ZodString;
4
+ size: z.ZodNumber;
5
+ }, z.core.$strip>;
6
+ export type FileEntry = z.infer<typeof FileEntrySchema>;
7
+ export declare const SkippedEntrySchema: z.ZodObject<{
8
+ path: z.ZodString;
9
+ reason: z.ZodString;
10
+ size: z.ZodNumber;
11
+ }, z.core.$strip>;
12
+ export type SkippedEntry = z.infer<typeof SkippedEntrySchema>;
13
+ export declare const ParserOutputSchema: z.ZodObject<{
14
+ fileType: z.ZodString;
15
+ metrics: z.ZodRecord<z.ZodString, z.ZodNumber>;
16
+ }, z.core.$strip>;
17
+ export type ParserOutput = z.infer<typeof ParserOutputSchema>;
18
+ export declare const ParseResultSchema: z.ZodObject<{
19
+ filePath: z.ZodString;
20
+ size: z.ZodNumber;
21
+ success: z.ZodBoolean;
22
+ fileType: z.ZodString;
23
+ metrics: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodNumber>>;
24
+ }, z.core.$strip>;
25
+ export type ParseResult = z.infer<typeof ParseResultSchema>;
package/dist/src/types.js CHANGED
@@ -1,2 +1,22 @@
1
- export {};
1
+ import { z } from 'zod';
2
+ export const FileEntrySchema = z.object({
3
+ path: z.string(),
4
+ size: z.number(),
5
+ });
6
+ export const SkippedEntrySchema = z.object({
7
+ path: z.string(),
8
+ reason: z.string(),
9
+ size: z.number(),
10
+ });
11
+ export const ParserOutputSchema = z.object({
12
+ fileType: z.string(),
13
+ metrics: z.record(z.string(), z.number()),
14
+ });
15
+ export const ParseResultSchema = z.object({
16
+ filePath: z.string(),
17
+ size: z.number(),
18
+ success: z.boolean(),
19
+ fileType: z.string(),
20
+ metrics: z.record(z.string(), z.number()).nullable(),
21
+ });
2
22
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;CAC1C,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACrD,CAAC,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { z } from 'zod';
1
2
  export declare function countWords(text: string): number;
2
3
  export declare function formatBytes(bytes: number): string;
3
4
  export declare function formatNumber(n: number | null | undefined): string;
@@ -5,6 +6,15 @@ export declare function getExtension(filePath: string): string;
5
6
  export declare const EXTENSION_TO_TYPE: Record<string, string>;
6
7
  export declare const OFFICE_EXTENSIONS: string[];
7
8
  export declare const METRIC_FIELDS: readonly ["words", "pages", "paragraphs", "sheets", "rows", "cells", "slides"];
8
- export type MetricField = typeof METRIC_FIELDS[number];
9
+ export declare const MetricFieldSchema: z.ZodEnum<{
10
+ words: "words";
11
+ pages: "pages";
12
+ paragraphs: "paragraphs";
13
+ sheets: "sheets";
14
+ rows: "rows";
15
+ cells: "cells";
16
+ slides: "slides";
17
+ }>;
18
+ export type MetricField = z.infer<typeof MetricFieldSchema>;
9
19
  export declare function hasKey(field: string): string;
10
20
  export declare function writeStream(stream: NodeJS.WritableStream, text: string): Promise<void>;
package/dist/src/utils.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import path from 'node:path';
2
+ import { z } from 'zod';
2
3
  export function countWords(text) {
3
4
  if (!text)
4
5
  return 0;
@@ -31,6 +32,7 @@ export const EXTENSION_TO_TYPE = {
31
32
  };
32
33
  export const OFFICE_EXTENSIONS = Object.keys(EXTENSION_TO_TYPE);
33
34
  export const METRIC_FIELDS = ['words', 'pages', 'paragraphs', 'sheets', 'rows', 'cells', 'slides'];
35
+ export const MetricFieldSchema = z.enum(METRIC_FIELDS);
34
36
  export function hasKey(field) {
35
37
  return `has${field[0].toUpperCase()}${field.slice(1)}`;
36
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,IAAI,CAAC,IAAI;QAAE,OAAO,CAAC,CAAC;IACpB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9B,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACtC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnF,MAAM,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACxC,OAAO,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,CAA4B;IACvD,IAAI,CAAC,IAAI,IAAI;QAAE,OAAO,EAAE,CAAC;IACzB,OAAO,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAA2B;IACvD,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;CACX,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAa,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAE1E,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAC;AAI5G,MAAM,UAAU,MAAM,CAAC,KAAa;IAClC,OAAO,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACzD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAA6B,EAAE,IAAY;IAC3E,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAoB,EAAE,EAAE;YAC1C,IAAI,KAAK;gBAAE,MAAM,CAAC,KAAK,CAAC,CAAC;;gBACpB,OAAO,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,IAAI,CAAC,IAAI;QAAE,OAAO,CAAC,CAAC;IACpB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9B,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACtC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnF,MAAM,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACxC,OAAO,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,CAA4B;IACvD,IAAI,CAAC,IAAI,IAAI;QAAE,OAAO,EAAE,CAAC;IACzB,OAAO,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAA2B;IACvD,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;CACX,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAa,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAE1E,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAC;AAE5G,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAGvD,MAAM,UAAU,MAAM,CAAC,KAAa;IAClC,OAAO,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACzD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAA6B,EAAE,IAAY;IAC3E,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAoB,EAAE,EAAE;YAC1C,IAAI,KAAK;gBAAE,MAAM,CAAC,KAAK,CAAC,CAAC;;gBACpB,OAAO,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,13 +1,22 @@
1
- import type { FileEntry, SkippedEntry } from './types.js';
2
- export interface FindFilesOptions {
3
- includeExt?: string;
4
- excludeExt?: string;
5
- excludeDir?: string[];
6
- noGitignore?: boolean;
7
- largeFileLimit?: number;
8
- }
9
- export interface FindFilesResult {
10
- files: FileEntry[];
11
- skipped: SkippedEntry[];
12
- }
1
+ import { z } from 'zod';
2
+ export declare const FindFilesOptionsSchema: z.ZodObject<{
3
+ includeExt: z.ZodOptional<z.ZodString>;
4
+ excludeExt: z.ZodOptional<z.ZodString>;
5
+ excludeDir: z.ZodOptional<z.ZodArray<z.ZodString>>;
6
+ noGitignore: z.ZodOptional<z.ZodBoolean>;
7
+ largeFileLimit: z.ZodOptional<z.ZodNumber>;
8
+ }, z.core.$strip>;
9
+ export type FindFilesOptions = z.infer<typeof FindFilesOptionsSchema>;
10
+ export declare const FindFilesResultSchema: z.ZodObject<{
11
+ files: z.ZodArray<z.ZodObject<{
12
+ path: z.ZodString;
13
+ size: z.ZodNumber;
14
+ }, z.core.$strip>>;
15
+ skipped: z.ZodArray<z.ZodObject<{
16
+ path: z.ZodString;
17
+ reason: z.ZodString;
18
+ size: z.ZodNumber;
19
+ }, z.core.$strip>>;
20
+ }, z.core.$strip>;
21
+ export type FindFilesResult = z.infer<typeof FindFilesResultSchema>;
13
22
  export declare function findFiles(directories: string[], options?: FindFilesOptions): Promise<FindFilesResult>;
@@ -1,6 +1,19 @@
1
1
  import fg from 'fast-glob';
2
2
  import { stat } from 'node:fs/promises';
3
+ import { z } from 'zod';
3
4
  import { OFFICE_EXTENSIONS } from './utils.js';
5
+ import { FileEntrySchema, SkippedEntrySchema } from './types.js';
6
+ export const FindFilesOptionsSchema = z.object({
7
+ includeExt: z.string().optional(),
8
+ excludeExt: z.string().optional(),
9
+ excludeDir: z.array(z.string()).optional(),
10
+ noGitignore: z.boolean().optional(),
11
+ largeFileLimit: z.number().optional(),
12
+ });
13
+ export const FindFilesResultSchema = z.object({
14
+ files: z.array(FileEntrySchema),
15
+ skipped: z.array(SkippedEntrySchema),
16
+ });
4
17
  export async function findFiles(directories, options = {}) {
5
18
  const { includeExt, excludeExt, excludeDir = ['node_modules', '.git'], noGitignore = false, largeFileLimit = 50, } = options;
6
19
  let extensions = OFFICE_EXTENSIONS;
@@ -1 +1 @@
1
- {"version":3,"file":"walker.js","sourceRoot":"","sources":["../../src/walker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"walker.js","sourceRoot":"","sources":["../../src/walker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cesarandreslopez/occ",
3
- "version": "0.3.1",
3
+ "version": "0.4.1",
4
4
  "description": "Office Cloc and Count — scc-style summary tables for office documents",
5
5
  "type": "module",
6
6
  "bin": {
@@ -57,7 +57,8 @@
57
57
  "officeparser": "^6.0.1",
58
58
  "pdf-parse": "^1.1.1",
59
59
  "turndown": "^7.2.2",
60
- "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz"
60
+ "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz",
61
+ "zod": "^4.3.6"
61
62
  },
62
63
  "devDependencies": {
63
64
  "@types/node": "^25.3.5",