@cesarandreslopez/occ 0.8.1 → 0.8.3

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 (59) hide show
  1. package/README.md +1 -0
  2. package/dist/src/cli.d.ts +1 -0
  3. package/dist/src/cli.js +7 -0
  4. package/dist/src/cli.js.map +1 -1
  5. package/dist/src/code/build.d.ts +10 -1
  6. package/dist/src/code/build.js +90 -21
  7. package/dist/src/code/build.js.map +1 -1
  8. package/dist/src/code/cache.js +7 -4
  9. package/dist/src/code/cache.js.map +1 -1
  10. package/dist/src/code/chunk.js +10 -1
  11. package/dist/src/code/chunk.js.map +1 -1
  12. package/dist/src/code/command.js +43 -21
  13. package/dist/src/code/command.js.map +1 -1
  14. package/dist/src/code/discover.d.ts +5 -1
  15. package/dist/src/code/discover.js +16 -26
  16. package/dist/src/code/discover.js.map +1 -1
  17. package/dist/src/code/index-io.d.ts +19 -0
  18. package/dist/src/code/index-io.js +98 -0
  19. package/dist/src/code/index-io.js.map +1 -0
  20. package/dist/src/code/parsers.d.ts +15 -1
  21. package/dist/src/code/parsers.js +48 -4
  22. package/dist/src/code/parsers.js.map +1 -1
  23. package/dist/src/code/query.js +27 -4
  24. package/dist/src/code/query.js.map +1 -1
  25. package/dist/src/code/store.d.ts +9 -1
  26. package/dist/src/code/store.js +104 -43
  27. package/dist/src/code/store.js.map +1 -1
  28. package/dist/src/code/types.d.ts +51 -4
  29. package/dist/src/code/types.js +19 -2
  30. package/dist/src/code/types.js.map +1 -1
  31. package/dist/src/doc/batch.d.ts +2 -0
  32. package/dist/src/doc/batch.js +2 -0
  33. package/dist/src/doc/batch.js.map +1 -1
  34. package/dist/src/doc/command.js +15 -2
  35. package/dist/src/doc/command.js.map +1 -1
  36. package/dist/src/doc/discover.d.ts +2 -0
  37. package/dist/src/doc/discover.js +12 -25
  38. package/dist/src/doc/discover.js.map +1 -1
  39. package/dist/src/utils.d.ts +12 -0
  40. package/dist/src/utils.js +81 -0
  41. package/dist/src/utils.js.map +1 -1
  42. package/dist/src/walker.d.ts +1 -0
  43. package/dist/src/walker.js +15 -5
  44. package/dist/src/walker.js.map +1 -1
  45. package/dist/src/workspace/analyze.d.ts +1 -0
  46. package/dist/src/workspace/analyze.js +1 -0
  47. package/dist/src/workspace/analyze.js.map +1 -1
  48. package/dist/src/workspace/command.js +8 -0
  49. package/dist/src/workspace/command.js.map +1 -1
  50. package/dist/src/workspace/documents.d.ts +1 -0
  51. package/dist/src/workspace/documents.js +1 -0
  52. package/dist/src/workspace/documents.js.map +1 -1
  53. package/dist/src/workspace/prepare-runner.d.ts +2 -0
  54. package/dist/src/workspace/prepare-runner.js +18 -43
  55. package/dist/src/workspace/prepare-runner.js.map +1 -1
  56. package/dist/src/workspace/prepare-types.d.ts +15 -1
  57. package/dist/src/workspace/prepare.js +69 -11
  58. package/dist/src/workspace/prepare.js.map +1 -1
  59. package/package.json +3 -2
@@ -4,71 +4,46 @@
4
4
  *
5
5
  * IPC protocol:
6
6
  * Parent → Child: { type: 'start', options: BuildCodebaseOptions }
7
+ * Parent → Child: { type: 'abort' }
7
8
  * Child → Parent: { type: 'progress', event: ProgressEvent }
8
9
  * Child → Parent: { type: 'complete', resultPath: string }
10
+ * Child → Parent: { type: 'aborted' }
9
11
  * Child → Parent: { type: 'error', message: string }
10
12
  */
11
- import { openSync, writeSync, closeSync } from 'node:fs';
12
13
  import { join } from 'node:path';
13
14
  import { tmpdir } from 'node:os';
14
15
  import { buildCodebaseIndex } from '../code/build.js';
15
- /**
16
- * Write a CodebaseIndex to disk element-by-element via file descriptor,
17
- * avoiding V8's ~512MB string length limit that JSON.stringify() hits
18
- * on large codebases.
19
- */
20
- function streamIndexToFile(index, filePath) {
21
- const fd = openSync(filePath, 'w');
22
- try {
23
- writeSync(fd, '{"repoRoot":');
24
- writeSync(fd, JSON.stringify(index.repoRoot));
25
- writeSync(fd, ',"capabilities":');
26
- writeSync(fd, JSON.stringify(index.capabilities));
27
- writeSync(fd, ',"files":[');
28
- for (let i = 0; i < index.files.length; i++) {
29
- if (i > 0)
30
- writeSync(fd, ',');
31
- writeSync(fd, JSON.stringify(index.files[i]));
32
- }
33
- writeSync(fd, '],"nodes":[');
34
- for (let i = 0; i < index.nodes.length; i++) {
35
- if (i > 0)
36
- writeSync(fd, ',');
37
- writeSync(fd, JSON.stringify(index.nodes[i]));
38
- }
39
- writeSync(fd, '],"edges":[');
40
- for (let i = 0; i < index.edges.length; i++) {
41
- if (i > 0)
42
- writeSync(fd, ',');
43
- writeSync(fd, JSON.stringify(index.edges[i]));
44
- }
45
- writeSync(fd, ']}');
46
- }
47
- finally {
48
- closeSync(fd);
49
- }
50
- }
16
+ import { writeSectionedCodeIndex } from '../code/index-io.js';
51
17
  function send(msg) {
52
18
  if (process.send) {
53
19
  process.send(msg);
54
20
  }
55
21
  }
22
+ let abortController;
56
23
  process.on('message', async (msg) => {
24
+ if (msg.type === 'abort') {
25
+ abortController?.abort();
26
+ return;
27
+ }
57
28
  if (msg.type !== 'start')
58
29
  return;
59
30
  try {
31
+ abortController = new AbortController();
60
32
  const index = await buildCodebaseIndex(msg.options, (event) => {
61
33
  send({ type: 'progress', event });
62
- });
63
- // Stream index to temp file element-by-element to avoid V8's ~512MB
64
- // string length limit on JSON.stringify for large codebases.
65
- const resultPath = join(tmpdir(), `occ-prepare-${process.pid}-${Date.now()}.json`);
66
- streamIndexToFile(index, resultPath);
34
+ }, abortController.signal);
35
+ const resultPath = join(tmpdir(), `occ-prepare-${process.pid}-${Date.now()}`);
36
+ await writeSectionedCodeIndex(resultPath, index, {}, abortController.signal);
67
37
  send({ type: 'complete', resultPath });
68
38
  }
69
39
  catch (err) {
70
40
  const error = err instanceof Error ? err : new Error(String(err));
71
- send({ type: 'error', message: error.message });
41
+ if (error.name === 'AbortError') {
42
+ send({ type: 'aborted' });
43
+ }
44
+ else {
45
+ send({ type: 'error', message: error.message });
46
+ }
72
47
  }
73
48
  if (process.connected) {
74
49
  process.disconnect?.();
@@ -1 +1 @@
1
- {"version":3,"file":"prepare-runner.js","sourceRoot":"","sources":["../../../src/workspace/prepare-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prepare-runner.js","sourceRoot":"","sources":["../../../src/workspace/prepare-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAY9D,SAAS,IAAI,CAAC,GAA6C;IACzD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,IAAI,eAA4C,CAAC;AAEjD,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,GAAgC,EAAE,EAAE;IAC/D,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACzB,eAAe,EAAE,KAAK,EAAE,CAAC;QACzB,OAAO;IACT,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO;IAEjC,IAAI,CAAC;QACH,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,KAAoB,EAAE,EAAE;YAC3E,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QACpC,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;QAE3B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC9E,MAAM,uBAAuB,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;QAC7E,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAClE,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAChC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;IACzB,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { CodebaseIndex } from '../code/types.js';
1
+ import type { CodebaseIndex, ContentMode } from '../code/types.js';
2
2
  import type { WorkspaceDocumentSet } from './types.js';
3
3
  export interface WorkspacePrepareOptions {
4
4
  /** Include code indexing via buildCodebaseIndex. Default: true. */
@@ -9,6 +9,18 @@ export interface WorkspacePrepareOptions {
9
9
  excludeDir?: string[];
10
10
  /** Disable .gitignore respect. */
11
11
  noGitignore?: boolean;
12
+ /** Additional gitignore-style patterns applied after repo .gitignore rules. */
13
+ ignorePatterns?: string[];
14
+ /** Content retention mode for indexed code. */
15
+ contentMode?: ContentMode;
16
+ /** Skip code files larger than this many bytes. */
17
+ maxFileSizeBytes?: number;
18
+ /** Skip code files with more than this many lines. */
19
+ maxLines?: number;
20
+ /** Skip likely minified code files. Default: true. */
21
+ skipMinified?: boolean;
22
+ /** Abort long-running preparation work. */
23
+ signal?: AbortSignal;
12
24
  /** Maximum document file size in MB. */
13
25
  largeFileLimitMb?: number;
14
26
  /** Maximum number of document files to inspect. */
@@ -32,6 +44,8 @@ export interface WorkspacePreparedContext {
32
44
  fileCount: number;
33
45
  nodeCount: number;
34
46
  edgeCount: number;
47
+ contentMode: ContentMode;
48
+ skippedFileCount: number;
35
49
  } | null;
36
50
  documents: WorkspaceDocumentSet | null;
37
51
  elapsedMs: number;
@@ -1,9 +1,11 @@
1
1
  import path from 'node:path';
2
2
  import { fork } from 'node:child_process';
3
- import { readFileSync, unlinkSync } from 'node:fs';
3
+ import { rm } from 'node:fs/promises';
4
4
  import { fileURLToPath } from 'node:url';
5
5
  import { buildCodebaseIndex } from '../code/build.js';
6
+ import { readSectionedCodeIndex } from '../code/index-io.js';
6
7
  import { inspectWorkspaceDocumentSet } from './documents.js';
8
+ import { abortIfNeeded } from '../utils.js';
7
9
  function resolveExecutionMode(options) {
8
10
  const mode = options.executionMode ?? 'auto';
9
11
  if (mode === 'inline')
@@ -23,17 +25,44 @@ function mapCodeProgress(event, onProgress) {
23
25
  });
24
26
  }
25
27
  async function buildCodeInline(rootDir, options, onProgress) {
28
+ abortIfNeeded(options.signal);
26
29
  return buildCodebaseIndex({
27
30
  repoRoot: rootDir,
28
31
  excludeDir: options.excludeDir,
29
32
  noGitignore: options.noGitignore,
30
- }, onProgress ? (event) => mapCodeProgress(event, onProgress) : undefined);
33
+ ignorePatterns: options.ignorePatterns,
34
+ contentMode: options.contentMode,
35
+ maxFileSizeBytes: options.maxFileSizeBytes,
36
+ maxLines: options.maxLines,
37
+ skipMinified: options.skipMinified,
38
+ }, onProgress ? (event) => mapCodeProgress(event, onProgress) : undefined, options.signal);
31
39
  }
32
40
  async function buildCodeSubprocess(rootDir, options, onProgress) {
33
41
  const runnerPath = path.resolve(path.dirname(fileURLToPath(import.meta.url)), 'prepare-runner.js');
42
+ abortIfNeeded(options.signal);
34
43
  return new Promise((resolve, reject) => {
35
44
  let settled = false;
45
+ let abortTimer;
36
46
  const child = fork(runnerPath, [], { stdio: ['ignore', 'ignore', 'pipe', 'ipc'] });
47
+ const cleanup = () => {
48
+ if (abortTimer)
49
+ clearTimeout(abortTimer);
50
+ options.signal?.removeEventListener('abort', handleAbort);
51
+ };
52
+ const rejectAbort = () => {
53
+ cleanup();
54
+ reject(new DOMException('The operation was aborted.', 'AbortError'));
55
+ };
56
+ const handleAbort = () => {
57
+ if (settled)
58
+ return;
59
+ child.send({ type: 'abort' });
60
+ abortTimer = setTimeout(() => {
61
+ if (!settled)
62
+ child.kill();
63
+ }, 1000);
64
+ };
65
+ options.signal?.addEventListener('abort', handleAbort, { once: true });
37
66
  let stderr = '';
38
67
  child.stderr?.on('data', (d) => {
39
68
  stderr += d.toString();
@@ -42,30 +71,44 @@ async function buildCodeSubprocess(rootDir, options, onProgress) {
42
71
  if (msg.type === 'progress' && msg.event && onProgress) {
43
72
  mapCodeProgress(msg.event, onProgress);
44
73
  }
74
+ else if (msg.type === 'aborted') {
75
+ settled = true;
76
+ rejectAbort();
77
+ }
45
78
  else if (msg.type === 'complete' && msg.resultPath) {
46
79
  settled = true;
47
- try {
48
- const buf = readFileSync(msg.resultPath);
49
- const index = JSON.parse(buf);
50
- unlinkSync(msg.resultPath);
51
- resolve(index);
52
- }
53
- catch (err) {
54
- reject(err instanceof Error ? err : new Error(String(err)));
55
- }
80
+ void (async () => {
81
+ try {
82
+ const { index } = await readSectionedCodeIndex(msg.resultPath, options.signal);
83
+ await rm(msg.resultPath, { recursive: true, force: true }).catch(() => undefined);
84
+ cleanup();
85
+ resolve(index);
86
+ }
87
+ catch (err) {
88
+ cleanup();
89
+ reject(err instanceof Error ? err : new Error(String(err)));
90
+ }
91
+ })();
56
92
  }
57
93
  else if (msg.type === 'error') {
58
94
  settled = true;
95
+ cleanup();
59
96
  reject(new Error(msg.message ?? 'Subprocess failed'));
60
97
  }
61
98
  });
62
99
  child.on('error', (err) => {
63
100
  settled = true;
101
+ cleanup();
64
102
  reject(err);
65
103
  });
66
104
  child.on('close', (code) => {
67
105
  if (settled)
68
106
  return;
107
+ cleanup();
108
+ if (options.signal?.aborted) {
109
+ rejectAbort();
110
+ return;
111
+ }
69
112
  if (code !== 0) {
70
113
  reject(new Error(`Prepare runner exited with code ${code}: ${stderr.trim()}`));
71
114
  }
@@ -79,6 +122,11 @@ async function buildCodeSubprocess(rootDir, options, onProgress) {
79
122
  repoRoot: rootDir,
80
123
  excludeDir: options.excludeDir,
81
124
  noGitignore: options.noGitignore,
125
+ ignorePatterns: options.ignorePatterns,
126
+ contentMode: options.contentMode,
127
+ maxFileSizeBytes: options.maxFileSizeBytes,
128
+ maxLines: options.maxLines,
129
+ skipMinified: options.skipMinified,
82
130
  },
83
131
  });
84
132
  });
@@ -89,11 +137,13 @@ export async function prepareWorkspaceContext(rootDir, options = {}, onProgress)
89
137
  const errors = [];
90
138
  const includeCode = options.includeCode !== false;
91
139
  const includeDocuments = options.includeDocuments !== false;
140
+ abortIfNeeded(options.signal);
92
141
  onProgress?.({ scope: 'prepare', stage: 'start', completed: 0, total: 1, detail: 'Starting workspace preparation' });
93
142
  // Phase 1: Code indexing
94
143
  let codeResult = null;
95
144
  if (includeCode) {
96
145
  try {
146
+ abortIfNeeded(options.signal);
97
147
  const mode = resolveExecutionMode(options);
98
148
  const buildFn = mode === 'subprocess' ? buildCodeSubprocess : buildCodeInline;
99
149
  const index = await buildFn(resolvedRoot, options, onProgress);
@@ -102,10 +152,14 @@ export async function prepareWorkspaceContext(rootDir, options = {}, onProgress)
102
152
  fileCount: index.files.length,
103
153
  nodeCount: index.nodes.length,
104
154
  edgeCount: index.edges.length,
155
+ contentMode: index.contentMode,
156
+ skippedFileCount: index.skippedFiles.length,
105
157
  };
106
158
  }
107
159
  catch (err) {
108
160
  const error = err instanceof Error ? err : new Error(String(err));
161
+ if (error.name === 'AbortError')
162
+ throw error;
109
163
  errors.push(`Code indexing failed: ${error.message}`);
110
164
  }
111
165
  }
@@ -113,9 +167,11 @@ export async function prepareWorkspaceContext(rootDir, options = {}, onProgress)
113
167
  let documentsResult = null;
114
168
  if (includeDocuments) {
115
169
  try {
170
+ abortIfNeeded(options.signal);
116
171
  const docSet = await inspectWorkspaceDocumentSet(resolvedRoot, {
117
172
  excludeDir: options.excludeDir,
118
173
  noGitignore: options.noGitignore,
174
+ ignorePatterns: options.ignorePatterns,
119
175
  largeFileLimitMb: options.largeFileLimitMb,
120
176
  maxFiles: options.maxFiles,
121
177
  maxReferenceFiles: options.maxReferenceFiles,
@@ -136,6 +192,8 @@ export async function prepareWorkspaceContext(rootDir, options = {}, onProgress)
136
192
  }
137
193
  catch (err) {
138
194
  const error = err instanceof Error ? err : new Error(String(err));
195
+ if (error.name === 'AbortError')
196
+ throw error;
139
197
  errors.push(`Document inspection failed: ${error.message}`);
140
198
  }
141
199
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prepare.js","sourceRoot":"","sources":["../../../src/workspace/prepare.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAS7D,SAAS,oBAAoB,CAAC,OAAgC;IAC5D,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,IAAI,MAAM,CAAC;IAC7C,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACvC,IAAI,IAAI,KAAK,YAAY;QAAE,OAAO,YAAY,CAAC;IAC/C,iDAAiD;IACjD,OAAO,CAAC,OAAO,CAAC,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC;AACnE,CAAC;AAED,SAAS,eAAe,CAAC,KAAoB,EAAE,UAA6B;IAC1E,UAAU,CAAC;QACT,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,MAAM,EAAE,KAAK,CAAC,MAAM;KACrB,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,OAAe,EACf,OAAgC,EAChC,UAA8B;IAE9B,OAAO,kBAAkB,CACvB;QACE,QAAQ,EAAE,OAAO;QACjB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,EACD,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CACvE,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,OAAe,EACf,OAAgC,EAChC,UAA8B;IAE9B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAC7B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAC5C,mBAAmB,CACpB,CAAC;IAEF,OAAO,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACpD,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QAEnF,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE;YACrC,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAmF,EAAE,EAAE;YAC1G,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,IAAI,GAAG,CAAC,KAAK,IAAI,UAAU,EAAE,CAAC;gBACvD,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YACzC,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;gBACrD,OAAO,GAAG,IAAI,CAAC;gBACf,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAwB,CAAkB,CAAC;oBACpE,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBAC3B,OAAO,CAAC,KAAK,CAAC,CAAC;gBACjB,CAAC;gBAAC,OAAO,GAAY,EAAE,CAAC;oBACtB,MAAM,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC9D,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAChC,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,IAAI,mBAAmB,CAAC,CAAC,CAAC;YACxD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,OAAO,GAAG,IAAI,CAAC;YACf,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,OAAO;gBAAE,OAAO;YACpB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,KAAK,CAAC,mCAAmC,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;YACjF,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC,CAAC;YACtE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,OAAO;YACb,OAAO,EAAE;gBACP,QAAQ,EAAE,OAAO;gBACjB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,WAAW,EAAE,OAAO,CAAC,WAAW;aACjC;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAAe,EACf,UAAmC,EAAE,EACrC,UAA8B;IAE9B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,KAAK,KAAK,CAAC;IAClD,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,KAAK,KAAK,CAAC;IAE5D,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,gCAAgC,EAAE,CAAC,CAAC;IAErH,yBAAyB;IACzB,IAAI,UAAU,GAAqC,IAAI,CAAC;IACxD,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAC3C,MAAM,OAAO,GAAG,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,eAAe,CAAC;YAC9E,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,YAAY,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;YAC/D,UAAU,GAAG;gBACX,KAAK;gBACL,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;gBAC7B,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;gBAC7B,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;aAC9B,CAAC;QACJ,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAClE,MAAM,CAAC,IAAI,CAAC,yBAAyB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,+BAA+B;IAC/B,IAAI,eAAe,GAA0C,IAAI,CAAC;IAClE,IAAI,gBAAgB,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAC9C,YAAY,EACZ;gBACE,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;gBAC1C,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;gBAC5C,eAAe,EAAE,OAAO,CAAC,eAAe;aACzC,EACD,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;gBACrB,UAAU,CAAC;oBACT,KAAK,EAAE,WAAW;oBAClB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;iBACrB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC,CAAC,SAAS,CACd,CAAC;YACF,eAAe,GAAG,MAAM,CAAC;YACzB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACnF,CAAC;QACH,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAClE,MAAM,CAAC,IAAI,CAAC,+BAA+B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACzC,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,gBAAgB,SAAS,IAAI,EAAE,CAAC,CAAC;IAErH,OAAO;QACL,OAAO,EAAE,YAAY;QACrB,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,eAAe;QAC1B,SAAS;QACT,MAAM;KACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"prepare.js","sourceRoot":"","sources":["../../../src/workspace/prepare.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.8.1",
3
+ "version": "0.8.3",
4
4
  "description": "Office Cloc and Count — scc-style summary tables for office documents",
5
5
  "type": "module",
6
6
  "main": "./dist/src/index.js",
@@ -275,12 +275,13 @@
275
275
  "cli-table3": "^0.6.5",
276
276
  "commander": "^12.1.0",
277
277
  "fast-glob": "^3.3.2",
278
+ "ignore": "^7.0.5",
278
279
  "jszip": "^3.10.1",
279
280
  "mammoth": "^1.8.0",
280
281
  "officeparser": "^6.0.1",
281
282
  "pdf-parse": "^1.1.1",
282
- "typescript": "^5.9.3",
283
283
  "turndown": "^7.2.2",
284
+ "typescript": "^5.9.3",
284
285
  "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz",
285
286
  "zod": "^4.3.6"
286
287
  },