@cesarandreslopez/occ 0.8.2 → 0.8.4

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 +11 -1
  6. package/dist/src/code/build.js +89 -19
  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 +6 -1
  15. package/dist/src/code/discover.js +18 -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 +10 -1
  26. package/dist/src/code/store.js +107 -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 +3 -0
  32. package/dist/src/doc/batch.js +3 -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 +3 -0
  37. package/dist/src/doc/discover.js +13 -25
  38. package/dist/src/doc/discover.js.map +1 -1
  39. package/dist/src/utils.d.ts +13 -0
  40. package/dist/src/utils.js +87 -0
  41. package/dist/src/utils.js.map +1 -1
  42. package/dist/src/walker.d.ts +2 -0
  43. package/dist/src/walker.js +17 -5
  44. package/dist/src/walker.js.map +1 -1
  45. package/dist/src/workspace/analyze.d.ts +2 -0
  46. package/dist/src/workspace/analyze.js +2 -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 +2 -0
  51. package/dist/src/workspace/documents.js +2 -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 +17 -1
  57. package/dist/src/workspace/prepare.js +72 -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,20 @@ 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
+ /** Additional ignore overlay patterns evaluated independently from the base matcher. */
15
+ overlayIgnorePatterns?: string[];
16
+ /** Content retention mode for indexed code. */
17
+ contentMode?: ContentMode;
18
+ /** Skip code files larger than this many bytes. */
19
+ maxFileSizeBytes?: number;
20
+ /** Skip code files with more than this many lines. */
21
+ maxLines?: number;
22
+ /** Skip likely minified code files. Default: true. */
23
+ skipMinified?: boolean;
24
+ /** Abort long-running preparation work. */
25
+ signal?: AbortSignal;
12
26
  /** Maximum document file size in MB. */
13
27
  largeFileLimitMb?: number;
14
28
  /** Maximum number of document files to inspect. */
@@ -32,6 +46,8 @@ export interface WorkspacePreparedContext {
32
46
  fileCount: number;
33
47
  nodeCount: number;
34
48
  edgeCount: number;
49
+ contentMode: ContentMode;
50
+ skippedFileCount: number;
35
51
  } | null;
36
52
  documents: WorkspaceDocumentSet | null;
37
53
  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,45 @@ 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
+ overlayIgnorePatterns: options.overlayIgnorePatterns,
35
+ contentMode: options.contentMode,
36
+ maxFileSizeBytes: options.maxFileSizeBytes,
37
+ maxLines: options.maxLines,
38
+ skipMinified: options.skipMinified,
39
+ }, onProgress ? (event) => mapCodeProgress(event, onProgress) : undefined, options.signal);
31
40
  }
32
41
  async function buildCodeSubprocess(rootDir, options, onProgress) {
33
42
  const runnerPath = path.resolve(path.dirname(fileURLToPath(import.meta.url)), 'prepare-runner.js');
43
+ abortIfNeeded(options.signal);
34
44
  return new Promise((resolve, reject) => {
35
45
  let settled = false;
46
+ let abortTimer;
36
47
  const child = fork(runnerPath, [], { stdio: ['ignore', 'ignore', 'pipe', 'ipc'] });
48
+ const cleanup = () => {
49
+ if (abortTimer)
50
+ clearTimeout(abortTimer);
51
+ options.signal?.removeEventListener('abort', handleAbort);
52
+ };
53
+ const rejectAbort = () => {
54
+ cleanup();
55
+ reject(new DOMException('The operation was aborted.', 'AbortError'));
56
+ };
57
+ const handleAbort = () => {
58
+ if (settled)
59
+ return;
60
+ child.send({ type: 'abort' });
61
+ abortTimer = setTimeout(() => {
62
+ if (!settled)
63
+ child.kill();
64
+ }, 1000);
65
+ };
66
+ options.signal?.addEventListener('abort', handleAbort, { once: true });
37
67
  let stderr = '';
38
68
  child.stderr?.on('data', (d) => {
39
69
  stderr += d.toString();
@@ -42,30 +72,44 @@ async function buildCodeSubprocess(rootDir, options, onProgress) {
42
72
  if (msg.type === 'progress' && msg.event && onProgress) {
43
73
  mapCodeProgress(msg.event, onProgress);
44
74
  }
75
+ else if (msg.type === 'aborted') {
76
+ settled = true;
77
+ rejectAbort();
78
+ }
45
79
  else if (msg.type === 'complete' && msg.resultPath) {
46
80
  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
- }
81
+ void (async () => {
82
+ try {
83
+ const { index } = await readSectionedCodeIndex(msg.resultPath, options.signal);
84
+ await rm(msg.resultPath, { recursive: true, force: true }).catch(() => undefined);
85
+ cleanup();
86
+ resolve(index);
87
+ }
88
+ catch (err) {
89
+ cleanup();
90
+ reject(err instanceof Error ? err : new Error(String(err)));
91
+ }
92
+ })();
56
93
  }
57
94
  else if (msg.type === 'error') {
58
95
  settled = true;
96
+ cleanup();
59
97
  reject(new Error(msg.message ?? 'Subprocess failed'));
60
98
  }
61
99
  });
62
100
  child.on('error', (err) => {
63
101
  settled = true;
102
+ cleanup();
64
103
  reject(err);
65
104
  });
66
105
  child.on('close', (code) => {
67
106
  if (settled)
68
107
  return;
108
+ cleanup();
109
+ if (options.signal?.aborted) {
110
+ rejectAbort();
111
+ return;
112
+ }
69
113
  if (code !== 0) {
70
114
  reject(new Error(`Prepare runner exited with code ${code}: ${stderr.trim()}`));
71
115
  }
@@ -79,6 +123,12 @@ async function buildCodeSubprocess(rootDir, options, onProgress) {
79
123
  repoRoot: rootDir,
80
124
  excludeDir: options.excludeDir,
81
125
  noGitignore: options.noGitignore,
126
+ ignorePatterns: options.ignorePatterns,
127
+ overlayIgnorePatterns: options.overlayIgnorePatterns,
128
+ contentMode: options.contentMode,
129
+ maxFileSizeBytes: options.maxFileSizeBytes,
130
+ maxLines: options.maxLines,
131
+ skipMinified: options.skipMinified,
82
132
  },
83
133
  });
84
134
  });
@@ -89,11 +139,13 @@ export async function prepareWorkspaceContext(rootDir, options = {}, onProgress)
89
139
  const errors = [];
90
140
  const includeCode = options.includeCode !== false;
91
141
  const includeDocuments = options.includeDocuments !== false;
142
+ abortIfNeeded(options.signal);
92
143
  onProgress?.({ scope: 'prepare', stage: 'start', completed: 0, total: 1, detail: 'Starting workspace preparation' });
93
144
  // Phase 1: Code indexing
94
145
  let codeResult = null;
95
146
  if (includeCode) {
96
147
  try {
148
+ abortIfNeeded(options.signal);
97
149
  const mode = resolveExecutionMode(options);
98
150
  const buildFn = mode === 'subprocess' ? buildCodeSubprocess : buildCodeInline;
99
151
  const index = await buildFn(resolvedRoot, options, onProgress);
@@ -102,10 +154,14 @@ export async function prepareWorkspaceContext(rootDir, options = {}, onProgress)
102
154
  fileCount: index.files.length,
103
155
  nodeCount: index.nodes.length,
104
156
  edgeCount: index.edges.length,
157
+ contentMode: index.contentMode,
158
+ skippedFileCount: index.skippedFiles.length,
105
159
  };
106
160
  }
107
161
  catch (err) {
108
162
  const error = err instanceof Error ? err : new Error(String(err));
163
+ if (error.name === 'AbortError')
164
+ throw error;
109
165
  errors.push(`Code indexing failed: ${error.message}`);
110
166
  }
111
167
  }
@@ -113,9 +169,12 @@ export async function prepareWorkspaceContext(rootDir, options = {}, onProgress)
113
169
  let documentsResult = null;
114
170
  if (includeDocuments) {
115
171
  try {
172
+ abortIfNeeded(options.signal);
116
173
  const docSet = await inspectWorkspaceDocumentSet(resolvedRoot, {
117
174
  excludeDir: options.excludeDir,
118
175
  noGitignore: options.noGitignore,
176
+ ignorePatterns: options.ignorePatterns,
177
+ overlayIgnorePatterns: options.overlayIgnorePatterns,
119
178
  largeFileLimitMb: options.largeFileLimitMb,
120
179
  maxFiles: options.maxFiles,
121
180
  maxReferenceFiles: options.maxReferenceFiles,
@@ -136,6 +195,8 @@ export async function prepareWorkspaceContext(rootDir, options = {}, onProgress)
136
195
  }
137
196
  catch (err) {
138
197
  const error = err instanceof Error ? err : new Error(String(err));
198
+ if (error.name === 'AbortError')
199
+ throw error;
139
200
  errors.push(`Document inspection failed: ${error.message}`);
140
201
  }
141
202
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prepare.js","sourceRoot":"","sources":["../../../src/workspace/prepare.ts"],"names":[],"mappings":"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"}
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.2",
3
+ "version": "0.8.4",
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
  },