opencode-rag-plugin 1.2.5 → 1.2.10

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 (109) hide show
  1. package/ReadMe.md +491 -463
  2. package/dist/cli.js +55 -1
  3. package/dist/cli.js.map +1 -1
  4. package/package.json +90 -90
  5. package/dist/__tests__/chunker/c.test.d.ts +0 -1
  6. package/dist/__tests__/chunker/c.test.js +0 -82
  7. package/dist/__tests__/chunker/c.test.js.map +0 -1
  8. package/dist/__tests__/chunker/cpp.test.d.ts +0 -1
  9. package/dist/__tests__/chunker/cpp.test.js +0 -96
  10. package/dist/__tests__/chunker/cpp.test.js.map +0 -1
  11. package/dist/__tests__/chunker/csharp.test.d.ts +0 -1
  12. package/dist/__tests__/chunker/csharp.test.js +0 -85
  13. package/dist/__tests__/chunker/csharp.test.js.map +0 -1
  14. package/dist/__tests__/chunker/css.test.d.ts +0 -1
  15. package/dist/__tests__/chunker/css.test.js +0 -64
  16. package/dist/__tests__/chunker/css.test.js.map +0 -1
  17. package/dist/__tests__/chunker/factory.test.d.ts +0 -1
  18. package/dist/__tests__/chunker/factory.test.js +0 -202
  19. package/dist/__tests__/chunker/factory.test.js.map +0 -1
  20. package/dist/__tests__/chunker/fallback.test.d.ts +0 -1
  21. package/dist/__tests__/chunker/fallback.test.js +0 -67
  22. package/dist/__tests__/chunker/fallback.test.js.map +0 -1
  23. package/dist/__tests__/chunker/go.test.d.ts +0 -1
  24. package/dist/__tests__/chunker/go.test.js +0 -90
  25. package/dist/__tests__/chunker/go.test.js.map +0 -1
  26. package/dist/__tests__/chunker/grammar.test.d.ts +0 -1
  27. package/dist/__tests__/chunker/grammar.test.js +0 -108
  28. package/dist/__tests__/chunker/grammar.test.js.map +0 -1
  29. package/dist/__tests__/chunker/html.test.d.ts +0 -1
  30. package/dist/__tests__/chunker/html.test.js +0 -64
  31. package/dist/__tests__/chunker/html.test.js.map +0 -1
  32. package/dist/__tests__/chunker/java.test.d.ts +0 -1
  33. package/dist/__tests__/chunker/java.test.js +0 -83
  34. package/dist/__tests__/chunker/java.test.js.map +0 -1
  35. package/dist/__tests__/chunker/javascript.test.d.ts +0 -1
  36. package/dist/__tests__/chunker/javascript.test.js +0 -88
  37. package/dist/__tests__/chunker/javascript.test.js.map +0 -1
  38. package/dist/__tests__/chunker/json.test.d.ts +0 -1
  39. package/dist/__tests__/chunker/json.test.js +0 -54
  40. package/dist/__tests__/chunker/json.test.js.map +0 -1
  41. package/dist/__tests__/chunker/kotlin.test.d.ts +0 -1
  42. package/dist/__tests__/chunker/kotlin.test.js +0 -42
  43. package/dist/__tests__/chunker/kotlin.test.js.map +0 -1
  44. package/dist/__tests__/chunker/markdown.test.d.ts +0 -1
  45. package/dist/__tests__/chunker/markdown.test.js +0 -76
  46. package/dist/__tests__/chunker/markdown.test.js.map +0 -1
  47. package/dist/__tests__/chunker/python.test.d.ts +0 -1
  48. package/dist/__tests__/chunker/python.test.js +0 -81
  49. package/dist/__tests__/chunker/python.test.js.map +0 -1
  50. package/dist/__tests__/chunker/razor.test.d.ts +0 -1
  51. package/dist/__tests__/chunker/razor.test.js +0 -73
  52. package/dist/__tests__/chunker/razor.test.js.map +0 -1
  53. package/dist/__tests__/chunker/register.test.d.ts +0 -1
  54. package/dist/__tests__/chunker/register.test.js +0 -93
  55. package/dist/__tests__/chunker/register.test.js.map +0 -1
  56. package/dist/__tests__/chunker/ruby.test.d.ts +0 -1
  57. package/dist/__tests__/chunker/ruby.test.js +0 -40
  58. package/dist/__tests__/chunker/ruby.test.js.map +0 -1
  59. package/dist/__tests__/chunker/rust.test.d.ts +0 -1
  60. package/dist/__tests__/chunker/rust.test.js +0 -42
  61. package/dist/__tests__/chunker/rust.test.js.map +0 -1
  62. package/dist/__tests__/chunker/sln.test.d.ts +0 -1
  63. package/dist/__tests__/chunker/sln.test.js +0 -45
  64. package/dist/__tests__/chunker/sln.test.js.map +0 -1
  65. package/dist/__tests__/chunker/swift.test.d.ts +0 -1
  66. package/dist/__tests__/chunker/swift.test.js +0 -49
  67. package/dist/__tests__/chunker/swift.test.js.map +0 -1
  68. package/dist/__tests__/chunker/typescript.test.d.ts +0 -1
  69. package/dist/__tests__/chunker/typescript.test.js +0 -92
  70. package/dist/__tests__/chunker/typescript.test.js.map +0 -1
  71. package/dist/__tests__/chunker/uuid.test.d.ts +0 -1
  72. package/dist/__tests__/chunker/uuid.test.js +0 -19
  73. package/dist/__tests__/chunker/uuid.test.js.map +0 -1
  74. package/dist/__tests__/chunker/xml.test.d.ts +0 -1
  75. package/dist/__tests__/chunker/xml.test.js +0 -50
  76. package/dist/__tests__/chunker/xml.test.js.map +0 -1
  77. package/dist/__tests__/core/config.test.d.ts +0 -1
  78. package/dist/__tests__/core/config.test.js +0 -75
  79. package/dist/__tests__/core/config.test.js.map +0 -1
  80. package/dist/__tests__/core/fileLogger.test.d.ts +0 -1
  81. package/dist/__tests__/core/fileLogger.test.js +0 -34
  82. package/dist/__tests__/core/fileLogger.test.js.map +0 -1
  83. package/dist/__tests__/core/manifest.test.d.ts +0 -1
  84. package/dist/__tests__/core/manifest.test.js +0 -56
  85. package/dist/__tests__/core/manifest.test.js.map +0 -1
  86. package/dist/__tests__/embedder/embedBatch.test.d.ts +0 -1
  87. package/dist/__tests__/embedder/embedBatch.test.js +0 -88
  88. package/dist/__tests__/embedder/embedBatch.test.js.map +0 -1
  89. package/dist/__tests__/embedder/factory.test.d.ts +0 -1
  90. package/dist/__tests__/embedder/factory.test.js +0 -71
  91. package/dist/__tests__/embedder/factory.test.js.map +0 -1
  92. package/dist/__tests__/embedder/ollama.test.d.ts +0 -1
  93. package/dist/__tests__/embedder/ollama.test.js +0 -106
  94. package/dist/__tests__/embedder/ollama.test.js.map +0 -1
  95. package/dist/__tests__/embedder/openai.test.d.ts +0 -1
  96. package/dist/__tests__/embedder/openai.test.js +0 -94
  97. package/dist/__tests__/embedder/openai.test.js.map +0 -1
  98. package/dist/__tests__/indexer/indexer.test.d.ts +0 -1
  99. package/dist/__tests__/indexer/indexer.test.js +0 -176
  100. package/dist/__tests__/indexer/indexer.test.js.map +0 -1
  101. package/dist/__tests__/plugin.test.d.ts +0 -1
  102. package/dist/__tests__/plugin.test.js +0 -77
  103. package/dist/__tests__/plugin.test.js.map +0 -1
  104. package/dist/__tests__/retriever/retriever.test.d.ts +0 -1
  105. package/dist/__tests__/retriever/retriever.test.js +0 -97
  106. package/dist/__tests__/retriever/retriever.test.js.map +0 -1
  107. package/dist/__tests__/vectorstore/lancedb.test.d.ts +0 -1
  108. package/dist/__tests__/vectorstore/lancedb.test.js +0 -159
  109. package/dist/__tests__/vectorstore/lancedb.test.js.map +0 -1
@@ -1,108 +0,0 @@
1
- import { describe, it } from "node:test";
2
- import assert from "node:assert/strict";
3
- import { walkTree } from "../../chunker/grammar.js";
4
- function makeNode(type, startIndex, endIndex, startRow, endRow, children = []) {
5
- return {
6
- type,
7
- startIndex,
8
- endIndex,
9
- startPosition: { row: startRow },
10
- endPosition: { row: endRow },
11
- children,
12
- };
13
- }
14
- describe("walkTree", () => {
15
- it("returns empty array for leaf node", () => {
16
- const node = makeNode("identifier", 0, 5, 0, 0);
17
- const result = walkTree(node, new Set(["function"]), "hello");
18
- assert.deepStrictEqual(result, []);
19
- });
20
- it("does not match at depth 0 (root node type is ignored)", () => {
21
- const node = makeNode("function_declaration", 0, 20, 0, 2, [
22
- makeNode("identifier", 5, 10, 0, 0),
23
- ]);
24
- const result = walkTree(node, new Set(["function_declaration"]), "function hello() {}");
25
- // Root node type matches but depth=0 → not collected
26
- assert.deepStrictEqual(result, []);
27
- });
28
- it("matches node at depth 1 when type is in nodeTypes", () => {
29
- const child = makeNode("function_declaration", 0, 20, 1, 3);
30
- const root = makeNode("program", 0, 20, 0, 3, [child]);
31
- const result = walkTree(root, new Set(["function_declaration"]), "function hello() {}");
32
- assert.equal(result.length, 1);
33
- assert.equal(result[0].type, "function_declaration");
34
- });
35
- it("recurses into children to find matching node", () => {
36
- const grandchild = makeNode("function_declaration", 0, 20, 2, 5);
37
- const child = makeNode("block", 0, 20, 1, 5, [grandchild]);
38
- const root = makeNode("program", 0, 20, 0, 5, [child]);
39
- const result = walkTree(root, new Set(["function_declaration"]), "function hello() {}");
40
- assert.equal(result.length, 1);
41
- assert.equal(result[0].type, "function_declaration");
42
- });
43
- it("respects maxDepth parameter", () => {
44
- const deep = makeNode("function_declaration", 0, 20, 3, 5);
45
- const mid = makeNode("block", 0, 20, 2, 5, [deep]);
46
- const child = makeNode("class", 0, 20, 1, 5, [mid]);
47
- const root = makeNode("program", 0, 20, 0, 5, [child]);
48
- // Default maxDepth=10: searches depths 0–10 → reaches depth 3
49
- const result = walkTree(root, new Set(["function_declaration"]), "content");
50
- assert.equal(result.length, 1);
51
- // maxDepth=2: searches depths 0–2 → won't reach depth 3
52
- const resultShallow = walkTree(root, new Set(["function_declaration"]), "content", 2);
53
- assert.deepStrictEqual(resultShallow, []);
54
- });
55
- it("finds multiple matching nodes at same depth", () => {
56
- const fn1 = makeNode("function_declaration", 0, 10, 1, 1);
57
- const fn2 = makeNode("function_declaration", 11, 21, 2, 2);
58
- const root = makeNode("program", 0, 21, 0, 2, [fn1, fn2]);
59
- const result = walkTree(root, new Set(["function_declaration"]), "fn1() {} fn2() {}");
60
- assert.equal(result.length, 2);
61
- });
62
- it("extracts correct text from source using startIndex/endIndex", () => {
63
- const source = "function hello() { return 'world'; }";
64
- const child = makeNode("function_declaration", 0, source.length, 1, 1);
65
- const root = makeNode("program", 0, source.length, 0, 1, [child]);
66
- const result = walkTree(root, new Set(["function_declaration"]), source);
67
- assert.equal(result.length, 1);
68
- assert.equal(result[0].text, source);
69
- });
70
- it("sets correct 1-indexed line numbers from row positions", () => {
71
- const child = makeNode("function_declaration", 10, 50, 5, 8);
72
- const root = makeNode("program", 0, 60, 0, 10, [child]);
73
- const result = walkTree(root, new Set(["function_declaration"]), "some\ncontent\nhere\nmore\nstuff\nfunction foo() {\n return 1;\n}\n");
74
- assert.equal(result.length, 1);
75
- assert.equal(result[0].startLine, 6); // row 5 + 1
76
- assert.equal(result[0].endLine, 9); // row 8 + 1
77
- });
78
- it("returns empty array when no node types match within maxDepth", () => {
79
- const child = makeNode("variable_declaration", 0, 10, 1, 1);
80
- const root = makeNode("program", 0, 10, 0, 1, [child]);
81
- const result = walkTree(root, new Set(["function_declaration", "class_declaration"]), "let x = 1;");
82
- assert.deepStrictEqual(result, []);
83
- });
84
- it("empty nodeTypes set returns nothing", () => {
85
- const child = makeNode("function_declaration", 0, 10, 1, 1);
86
- const root = makeNode("program", 0, 10, 0, 1, [child]);
87
- const result = walkTree(root, new Set(), "function foo() {}");
88
- assert.deepStrictEqual(result, []);
89
- });
90
- it("stops recursing once a matching node is found (no grandchildren)", () => {
91
- const grandchild = makeNode("method_definition", 5, 15, 3, 4);
92
- const classNode = makeNode("class_declaration", 0, 20, 1, 5, [grandchild]);
93
- const root = makeNode("program", 0, 20, 0, 5, [classNode]);
94
- // class_declaration matches at depth 1 → stops, never reaches grandchild
95
- const result = walkTree(root, new Set(["class_declaration", "method_definition"]), "class A { foo() {} }");
96
- assert.equal(result.length, 1);
97
- assert.equal(result[0].type, "class_declaration");
98
- });
99
- it("preserves correct startIndex and endIndex in result", () => {
100
- const child = makeNode("function_declaration", 5, 15, 1, 2);
101
- const root = makeNode("program", 0, 20, 0, 3, [child]);
102
- const result = walkTree(root, new Set(["function_declaration"]), "01234function foo()0123456789");
103
- assert.equal(result.length, 1);
104
- assert.equal(result[0].startIndex, 5);
105
- assert.equal(result[0].endIndex, 15);
106
- });
107
- });
108
- //# sourceMappingURL=grammar.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grammar.test.js","sourceRoot":"","sources":["../../../src/__tests__/chunker/grammar.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,64 +0,0 @@
1
- import { describe, it } from "node:test";
2
- import assert from "node:assert/strict";
3
- import { htmlChunker } from "../../chunker/html.js";
4
- describe("HtmlChunker", () => {
5
- it("language is 'html'", () => {
6
- assert.equal(htmlChunker.language, "html");
7
- });
8
- it("fileExtensions includes .html and .htm", () => {
9
- assert.ok(htmlChunker.fileExtensions.includes(".html"));
10
- assert.ok(htmlChunker.fileExtensions.includes(".htm"));
11
- assert.equal(htmlChunker.fileExtensions.length, 2);
12
- });
13
- it("grammarName is 'html'", () => {
14
- assert.equal(htmlChunker.grammarName, "html");
15
- });
16
- it("nodeTypes contains script_element and style_element", () => {
17
- assert.ok(htmlChunker.nodeTypes.has("script_element"));
18
- assert.ok(htmlChunker.nodeTypes.has("style_element"));
19
- });
20
- it("chunk returns empty array for empty content", async () => {
21
- const chunks = await htmlChunker.chunk("test.html", "");
22
- assert.deepStrictEqual(chunks, []);
23
- });
24
- it("chunk returns empty array for whitespace-only content", async () => {
25
- const chunks = await htmlChunker.chunk("test.html", " \n ");
26
- assert.deepStrictEqual(chunks, []);
27
- });
28
- it("chunk parses a script element", async () => {
29
- const html = "<html><body><script>const x = 1;</script></body></html>";
30
- const chunks = await htmlChunker.chunk("test.html", html);
31
- assert.equal(chunks.length, 1);
32
- assert.ok(chunks[0].content.includes("<script>"));
33
- });
34
- it("chunk parses a style element", async () => {
35
- const html = "<html><head><style>body { color: red; }</style></head></html>";
36
- const chunks = await htmlChunker.chunk("test.html", html);
37
- assert.equal(chunks.length, 1);
38
- assert.ok(chunks[0].content.includes("<style>"));
39
- });
40
- it("chunk parses both script and style elements", async () => {
41
- const html = `<html>
42
- <head><style>.a { x: 1; }</style></head>
43
- <body><script>const y = 2;</script></body>
44
- </html>`;
45
- const chunks = await htmlChunker.chunk("test.html", html);
46
- assert.equal(chunks.length, 2);
47
- const hasStyle = chunks.some((c) => c.content.includes("<style>"));
48
- const hasScript = chunks.some((c) => c.content.includes("<script>"));
49
- assert.ok(hasStyle);
50
- assert.ok(hasScript);
51
- });
52
- it("chunk generates unique IDs", async () => {
53
- const html = "<html><head><style>.a{}</style></head><body><script>const x = 1;</script></body></html>";
54
- const chunks = await htmlChunker.chunk("test.html", html);
55
- const ids = chunks.map((c) => c.id);
56
- assert.equal(new Set(ids).size, ids.length);
57
- });
58
- it("chunk sets correct startLine metadata", async () => {
59
- const html = "\n\n\n<style>body { color: red; }</style>";
60
- const chunks = await htmlChunker.chunk("test.html", html);
61
- assert.equal(chunks[0].metadata.startLine, 4);
62
- });
63
- });
64
- //# sourceMappingURL=html.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"html.test.js","sourceRoot":"","sources":["../../../src/__tests__/chunker/html.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,83 +0,0 @@
1
- import { describe, it } from "node:test";
2
- import assert from "node:assert/strict";
3
- import { javaChunker } from "../../chunker/java.js";
4
- describe("JavaChunker", () => {
5
- it("language is 'java'", () => {
6
- assert.equal(javaChunker.language, "java");
7
- });
8
- it("fileExtensions includes .java", () => {
9
- assert.ok(javaChunker.fileExtensions.includes(".java"));
10
- });
11
- it("grammarName is 'java'", () => {
12
- assert.equal(javaChunker.grammarName, "java");
13
- });
14
- it("nodeTypes contains expected types", () => {
15
- const types = javaChunker.nodeTypes;
16
- assert.ok(types.has("method_declaration"));
17
- assert.ok(types.has("class_declaration"));
18
- assert.ok(types.has("interface_declaration"));
19
- assert.ok(types.has("enum_declaration"));
20
- });
21
- it("chunk returns empty array for empty content", async () => {
22
- const chunks = await javaChunker.chunk("test.java", "");
23
- assert.deepStrictEqual(chunks, []);
24
- });
25
- it("chunk returns empty array for whitespace-only content", async () => {
26
- const chunks = await javaChunker.chunk("test.java", " \n \n ");
27
- assert.deepStrictEqual(chunks, []);
28
- });
29
- it("chunk parses a class declaration with a method", async () => {
30
- const code = "class Foo {\n void bar() {\n return;\n }\n}";
31
- const chunks = await javaChunker.chunk("test.java", code);
32
- assert.ok(chunks.length > 0, "expected at least one chunk");
33
- assert.equal(chunks[0].metadata.language, "java");
34
- assert.equal(chunks[0].metadata.filePath, "test.java");
35
- assert.ok(chunks[0].content.includes("class Foo"));
36
- });
37
- it("chunk parses an interface declaration", async () => {
38
- const code = "interface Runnable {\n void run();\n}";
39
- const chunks = await javaChunker.chunk("Runnable.java", code);
40
- assert.ok(chunks.length > 0, "expected at least one chunk");
41
- assert.ok(chunks[0].content.includes("interface Runnable"));
42
- });
43
- it("chunk parses an enum declaration", async () => {
44
- const code = "enum Color {\n RED, GREEN, BLUE\n}";
45
- const chunks = await javaChunker.chunk("Color.java", code);
46
- assert.ok(chunks.length > 0, "expected at least one chunk");
47
- assert.ok(chunks[0].content.includes("enum Color"));
48
- });
49
- it("chunk generates unique IDs for multiple declarations", async () => {
50
- const code = [
51
- "class Foo {",
52
- " void bar() {}",
53
- "}",
54
- "",
55
- "class Baz {",
56
- " void qux() {}",
57
- "}",
58
- ].join("\n");
59
- const chunks = await javaChunker.chunk("multi.java", code);
60
- const ids = new Set(chunks.map((c) => c.id));
61
- assert.equal(ids.size, chunks.length);
62
- });
63
- it("chunk sets correct startLine metadata", async () => {
64
- const code = [
65
- "// top comment",
66
- "",
67
- "class First {",
68
- " void doThing() {}",
69
- "}",
70
- "",
71
- "class Second {",
72
- " void doOther() {}",
73
- "}",
74
- ].join("\n");
75
- const chunks = await javaChunker.chunk("lines.java", code);
76
- const classChunks = chunks.filter((c) => c.content.includes("class "));
77
- assert.ok(classChunks.length >= 2, "expected at least two class chunks");
78
- const firstClass = classChunks.find((c) => c.content.includes("First"));
79
- assert.ok(firstClass, "should find First class chunk");
80
- assert.equal(firstClass.metadata.startLine, 3);
81
- });
82
- });
83
- //# sourceMappingURL=java.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"java.test.js","sourceRoot":"","sources":["../../../src/__tests__/chunker/java.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC5B,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC;QACpC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAC9C,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACxD,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACpE,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,IAAI,GACR,kDAAkD,CAAC;QACrD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC1D,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,6BAA6B,CAAC,CAAC;QAC5D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACxD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,IAAI,GACR,wCAAwC,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QAC9D,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,6BAA6B,CAAC,CAAC;QAC5D,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,IAAI,GACR,qCAAqC,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC3D,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,6BAA6B,CAAC,CAAC;QAC5D,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,IAAI,GAAG;YACX,aAAa;YACb,iBAAiB;YACjB,GAAG;YACH,EAAE;YACF,aAAa;YACb,iBAAiB;YACjB,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,IAAI,GAAG;YACX,gBAAgB;YAChB,EAAE;YACF,eAAe;YACf,qBAAqB;YACrB,GAAG;YACH,EAAE;YACF,gBAAgB;YAChB,qBAAqB;YACrB,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE,oCAAoC,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QACxE,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,+BAA+B,CAAC,CAAC;QACvD,MAAM,CAAC,KAAK,CAAC,UAAW,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,88 +0,0 @@
1
- import { describe, it } from "node:test";
2
- import assert from "node:assert/strict";
3
- import { javascriptChunker } from "../../chunker/javascript.js";
4
- describe("JavaScriptChunker", () => {
5
- it("language is 'javascript'", () => {
6
- assert.equal(javascriptChunker.language, "javascript");
7
- });
8
- it("fileExtensions includes .js, .jsx, .mjs, .cjs", () => {
9
- assert.ok(javascriptChunker.fileExtensions.includes(".js"));
10
- assert.ok(javascriptChunker.fileExtensions.includes(".jsx"));
11
- assert.ok(javascriptChunker.fileExtensions.includes(".mjs"));
12
- assert.ok(javascriptChunker.fileExtensions.includes(".cjs"));
13
- });
14
- it("grammarName is 'javascript'", () => {
15
- assert.equal(javascriptChunker.grammarName, "javascript");
16
- });
17
- it("nodeTypes contains expected types", () => {
18
- const types = javascriptChunker.nodeTypes;
19
- assert.ok(types.has("function_declaration"));
20
- assert.ok(types.has("method_definition"));
21
- assert.ok(types.has("class_declaration"));
22
- assert.ok(types.has("arrow_function"));
23
- assert.ok(types.has("export_statement"));
24
- });
25
- it("chunk returns empty array for empty content", async () => {
26
- const chunks = await javascriptChunker.chunk("test.js", "");
27
- assert.deepStrictEqual(chunks, []);
28
- });
29
- it("chunk returns empty array for whitespace-only content", async () => {
30
- const chunks = await javascriptChunker.chunk("test.js", " \n \n ");
31
- assert.deepStrictEqual(chunks, []);
32
- });
33
- it("chunk parses a function declaration", async () => {
34
- const code = "function hello() { return 'world'; }";
35
- const chunks = await javascriptChunker.chunk("test.js", code);
36
- assert.ok(chunks.length > 0, "expected at least one chunk");
37
- assert.equal(chunks[0].metadata.language, "javascript");
38
- assert.equal(chunks[0].metadata.filePath, "test.js");
39
- assert.ok(chunks[0].content.includes("hello"));
40
- });
41
- it("chunk parses a class declaration", async () => {
42
- const code = "class Counter { increment() { this.value++; } }";
43
- const chunks = await javascriptChunker.chunk("counter.js", code);
44
- assert.ok(chunks.length > 0, "expected at least one chunk");
45
- assert.ok(chunks.some((c) => c.content.includes("class Counter")));
46
- });
47
- it("chunk parses an arrow function", async () => {
48
- const code = "const add = (a, b) => a + b;";
49
- const chunks = await javascriptChunker.chunk("arrow.js", code);
50
- assert.ok(chunks.length > 0, "expected at least one chunk");
51
- assert.ok(chunks.some((c) => c.content.includes("=>")));
52
- });
53
- it("chunk parses an export statement", async () => {
54
- const code = "export function greet() { return 'hi'; }";
55
- const chunks = await javascriptChunker.chunk("mod.js", code);
56
- assert.ok(chunks.length > 0, "expected at least one chunk");
57
- assert.ok(chunks.some((c) => c.content.includes("export")));
58
- });
59
- it("chunk generates unique IDs for multiple declarations", async () => {
60
- const code = [
61
- "function foo() { return 1; }",
62
- "function bar() { return 2; }",
63
- "function baz() { return 3; }",
64
- ].join("\n");
65
- const chunks = await javascriptChunker.chunk("multi.js", code);
66
- const ids = new Set(chunks.map((c) => c.id));
67
- assert.equal(ids.size, chunks.length);
68
- });
69
- it("chunk sets correct startLine metadata", async () => {
70
- const code = [
71
- "// top comment",
72
- "",
73
- "function first() {",
74
- " return 1;",
75
- "}",
76
- "",
77
- "function second() {",
78
- " return 2;",
79
- "}",
80
- ].join("\n");
81
- const chunks = await javascriptChunker.chunk("lines.js", code);
82
- assert.ok(chunks.length >= 2, "expected at least two chunks");
83
- const firstFn = chunks.find((c) => c.content.includes("first"));
84
- assert.ok(firstFn, "should find first() chunk");
85
- assert.equal(firstFn.metadata.startLine, 3);
86
- });
87
- });
88
- //# sourceMappingURL=javascript.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"javascript.test.js","sourceRoot":"","sources":["../../../src/__tests__/chunker/javascript.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,CAAC,EAAE,CAAC,iBAAiB,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5D,MAAM,CAAC,EAAE,CAAC,iBAAiB,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7D,MAAM,CAAC,EAAE,CAAC,iBAAiB,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7D,MAAM,CAAC,EAAE,CAAC,iBAAiB,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,KAAK,GAAG,iBAAiB,CAAC,SAAS,CAAC;QAC1C,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC5D,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QACxE,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,IAAI,GAAG,sCAAsC,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC9D,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,6BAA6B,CAAC,CAAC;QAC5D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACtD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,IAAI,GAAG,iDAAiD,CAAC;QAC/D,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACjE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,6BAA6B,CAAC,CAAC;QAC5D,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,IAAI,GAAG,8BAA8B,CAAC;QAC5C,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC/D,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,6BAA6B,CAAC,CAAC;QAC5D,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,IAAI,GAAG,0CAA0C,CAAC;QACxD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC7D,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,6BAA6B,CAAC,CAAC;QAC5D,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,IAAI,GAAG;YACX,8BAA8B;YAC9B,8BAA8B;YAC9B,8BAA8B;SAC/B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC/D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,IAAI,GAAG;YACX,gBAAgB;YAChB,EAAE;YACF,oBAAoB;YACpB,aAAa;YACb,GAAG;YACH,EAAE;YACF,qBAAqB;YACrB,aAAa;YACb,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC/D,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,8BAA8B,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QAChE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC;QAChD,MAAM,CAAC,KAAK,CAAC,OAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,54 +0,0 @@
1
- import { describe, it } from "node:test";
2
- import assert from "node:assert/strict";
3
- import { jsonChunker } from "../../chunker/json.js";
4
- describe("JsonChunker", () => {
5
- it("language is 'json'", () => {
6
- assert.equal(jsonChunker.language, "json");
7
- });
8
- it("fileExtensions includes .json", () => {
9
- assert.ok(jsonChunker.fileExtensions.includes(".json"));
10
- assert.equal(jsonChunker.fileExtensions.length, 1);
11
- });
12
- it("grammarName is 'json'", () => {
13
- assert.equal(jsonChunker.grammarName, "json");
14
- });
15
- it("nodeTypes contains pair", () => {
16
- assert.ok(jsonChunker.nodeTypes.has("pair"));
17
- });
18
- it("chunk returns empty array for empty content", async () => {
19
- const chunks = await jsonChunker.chunk("test.json", "");
20
- assert.deepStrictEqual(chunks, []);
21
- });
22
- it("chunk returns empty array for whitespace-only content", async () => {
23
- const chunks = await jsonChunker.chunk("test.json", " \n ");
24
- assert.deepStrictEqual(chunks, []);
25
- });
26
- it("chunk extracts each pair from a JSON object", async () => {
27
- const json = JSON.stringify({ name: "test", version: "1.0", private: true }, null, 2);
28
- const chunks = await jsonChunker.chunk("test.json", json);
29
- assert.equal(chunks.length, 3);
30
- assert.ok(chunks[0].content.includes("\"name\""));
31
- assert.ok(chunks[1].content.includes("\"version\""));
32
- assert.ok(chunks[2].content.includes("\"private\""));
33
- });
34
- it("chunk handles nested objects", async () => {
35
- const json = JSON.stringify({ scripts: { build: "tsc", test: "jest" }, deps: {} }, null, 2);
36
- const chunks = await jsonChunker.chunk("test.json", json);
37
- assert.equal(chunks.length, 2);
38
- assert.ok(chunks[0].content.includes("\"scripts\""));
39
- assert.ok(chunks[1].content.includes("\"deps\""));
40
- });
41
- it("chunk generates unique IDs", async () => {
42
- const json = JSON.stringify({ a: 1, b: 2, c: 3 }, null, 2);
43
- const chunks = await jsonChunker.chunk("test.json", json);
44
- const ids = chunks.map((c) => c.id);
45
- assert.equal(new Set(ids).size, ids.length);
46
- });
47
- it("chunk sets correct startLine metadata", async () => {
48
- const json = JSON.stringify({ alpha: 1, beta: 2 }, null, 2);
49
- const chunks = await jsonChunker.chunk("test.json", json);
50
- assert.ok(chunks[0].metadata.startLine >= 1);
51
- assert.ok(chunks[1].metadata.startLine > chunks[0].metadata.startLine);
52
- });
53
- });
54
- //# sourceMappingURL=json.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"json.test.js","sourceRoot":"","sources":["../../../src/__tests__/chunker/json.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,42 +0,0 @@
1
- import { describe, it } from "node:test";
2
- import assert from "node:assert/strict";
3
- import { kotlinChunker } from "../../chunker/kotlin.js";
4
- describe("KotlinChunker", () => {
5
- it("language is 'kotlin'", () => {
6
- assert.equal(kotlinChunker.language, "kotlin");
7
- });
8
- it("fileExtensions includes .kt and .kts", () => {
9
- assert.ok(kotlinChunker.fileExtensions.includes(".kt"));
10
- assert.ok(kotlinChunker.fileExtensions.includes(".kts"));
11
- assert.equal(kotlinChunker.fileExtensions.length, 2);
12
- });
13
- it("nodeTypes contains function_declaration, class_declaration, interface_declaration, object_declaration, property_declaration", () => {
14
- assert.ok(kotlinChunker.nodeTypes.has("function_declaration"));
15
- assert.ok(kotlinChunker.nodeTypes.has("class_declaration"));
16
- assert.ok(kotlinChunker.nodeTypes.has("interface_declaration"));
17
- assert.ok(kotlinChunker.nodeTypes.has("object_declaration"));
18
- assert.ok(kotlinChunker.nodeTypes.has("property_declaration"));
19
- });
20
- it("chunk returns empty for empty content", async () => {
21
- const chunks = await kotlinChunker.chunk("test.kt", "");
22
- assert.deepStrictEqual(chunks, []);
23
- });
24
- it("chunk parses a function definition", async () => {
25
- const code = "fun greet(name: String): String {\n return \"Hello $name\"\n}";
26
- const chunks = await kotlinChunker.chunk("test.kt", code);
27
- assert.equal(chunks.length, 1);
28
- assert.ok(chunks[0].content.includes("fun greet"));
29
- });
30
- it("chunk parses a class definition", async () => {
31
- const code = "class Point(val x: Double, val y: Double)";
32
- const chunks = await kotlinChunker.chunk("test.kt", code);
33
- assert.equal(chunks.length, 1);
34
- assert.ok(chunks[0].content.includes("class Point"));
35
- });
36
- it("chunk generates unique IDs", async () => {
37
- const code = "fun a() {}\nfun b() {}\nfun c() {}";
38
- const chunks = await kotlinChunker.chunk("test.kt", code);
39
- assert.equal(new Set(chunks.map((c) => c.id)).size, chunks.length);
40
- });
41
- });
42
- //# sourceMappingURL=kotlin.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"kotlin.test.js","sourceRoot":"","sources":["../../../src/__tests__/chunker/kotlin.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,76 +0,0 @@
1
- import { describe, it } from "node:test";
2
- import assert from "node:assert/strict";
3
- import { MarkdownChunker } from "../../chunker/markdown.js";
4
- describe("MarkdownChunker", () => {
5
- const chunker = new MarkdownChunker();
6
- it("returns empty array for empty content", async () => {
7
- const chunks = await chunker.chunk("test.md", "");
8
- assert.deepStrictEqual(chunks, []);
9
- });
10
- it("returns single chunk for content without headings", async () => {
11
- const chunks = await chunker.chunk("test.md", "Some plain text\nwithout any headings.");
12
- assert.equal(chunks.length, 1);
13
- assert.equal(chunks[0].metadata.startLine, 1);
14
- assert.equal(chunks[0].metadata.endLine, 2);
15
- assert.equal(chunks[0].content, "Some plain text\nwithout any headings.");
16
- });
17
- it("splits on level-1 and level-2 headings", async () => {
18
- const content = [
19
- "# Section 1",
20
- "Content of section 1",
21
- "",
22
- "## Section 2",
23
- "Content of section 2",
24
- "",
25
- "# Section 3",
26
- "Content of section 3",
27
- ].join("\n");
28
- const chunks = await chunker.chunk("test.md", content);
29
- assert.ok(chunks.length >= 2, `Expected at least 2 chunks, got ${chunks.length}`);
30
- });
31
- it("includes heading text in chunk content", async () => {
32
- const content = "# Title\nSome content here.";
33
- const chunks = await chunker.chunk("test.md", content);
34
- assert.equal(chunks.length, 1);
35
- assert.ok(chunks[0].content.includes("Title"));
36
- });
37
- it("sets markdown language metadata", async () => {
38
- const chunks = await chunker.chunk("test.md", "# Hello\nWorld");
39
- assert.equal(chunks[0].metadata.language, "markdown");
40
- });
41
- it("sets correct filePath", async () => {
42
- const chunks = await chunker.chunk("/docs/readme.md", "# Hello\nWorld");
43
- assert.equal(chunks[0].metadata.filePath, "/docs/readme.md");
44
- });
45
- it("handles deep headings (h3+) with end-of-file split", async () => {
46
- const content = [
47
- "# Main",
48
- "main content",
49
- "### Sub detail",
50
- "detail content",
51
- ].join("\n");
52
- const chunks = await chunker.chunk("test.md", content);
53
- assert.ok(chunks.length >= 1, `Expected at least 1 chunk, got ${chunks.length}`);
54
- });
55
- it("generates unique ids for each chunk", async () => {
56
- const content = [
57
- "# First",
58
- "first content",
59
- "# Second",
60
- "second content",
61
- "# Third",
62
- "third content",
63
- ].join("\n");
64
- const chunks = await chunker.chunk("test.md", content);
65
- assert.ok(chunks.length >= 3);
66
- const ids = new Set(chunks.map((c) => c.id));
67
- assert.equal(ids.size, chunks.length);
68
- });
69
- it("language property returns 'markdown'", () => {
70
- assert.equal(chunker.language, "markdown");
71
- });
72
- it("fileExtensions includes .md and .mdx", () => {
73
- assert.deepStrictEqual(chunker.fileExtensions, [".md", ".mdx"]);
74
- });
75
- });
76
- //# sourceMappingURL=markdown.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"markdown.test.js","sourceRoot":"","sources":["../../../src/__tests__/chunker/markdown.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};