@mhalder/qdrant-mcp-server 2.2.0 → 3.1.0

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 (88) hide show
  1. package/.github/workflows/ci.yml +4 -1
  2. package/CHANGELOG.md +22 -0
  3. package/README.md +78 -3
  4. package/build/code/indexer.d.ts +2 -1
  5. package/build/code/indexer.d.ts.map +1 -1
  6. package/build/code/indexer.js +37 -7
  7. package/build/code/indexer.js.map +1 -1
  8. package/build/git/chunker.d.ts +39 -0
  9. package/build/git/chunker.d.ts.map +1 -0
  10. package/build/git/chunker.js +210 -0
  11. package/build/git/chunker.js.map +1 -0
  12. package/build/git/chunker.test.d.ts +2 -0
  13. package/build/git/chunker.test.d.ts.map +1 -0
  14. package/build/git/chunker.test.js +230 -0
  15. package/build/git/chunker.test.js.map +1 -0
  16. package/build/git/config.d.ts +34 -0
  17. package/build/git/config.d.ts.map +1 -0
  18. package/build/git/config.js +163 -0
  19. package/build/git/config.js.map +1 -0
  20. package/build/git/extractor.d.ts +57 -0
  21. package/build/git/extractor.d.ts.map +1 -0
  22. package/build/git/extractor.integration.test.d.ts +6 -0
  23. package/build/git/extractor.integration.test.d.ts.map +1 -0
  24. package/build/git/extractor.integration.test.js +166 -0
  25. package/build/git/extractor.integration.test.js.map +1 -0
  26. package/build/git/extractor.js +231 -0
  27. package/build/git/extractor.js.map +1 -0
  28. package/build/git/extractor.test.d.ts +2 -0
  29. package/build/git/extractor.test.d.ts.map +1 -0
  30. package/build/git/extractor.test.js +267 -0
  31. package/build/git/extractor.test.js.map +1 -0
  32. package/build/git/index.d.ts +10 -0
  33. package/build/git/index.d.ts.map +1 -0
  34. package/build/git/index.js +11 -0
  35. package/build/git/index.js.map +1 -0
  36. package/build/git/indexer.d.ts +50 -0
  37. package/build/git/indexer.d.ts.map +1 -0
  38. package/build/git/indexer.js +588 -0
  39. package/build/git/indexer.js.map +1 -0
  40. package/build/git/indexer.test.d.ts +2 -0
  41. package/build/git/indexer.test.d.ts.map +1 -0
  42. package/build/git/indexer.test.js +867 -0
  43. package/build/git/indexer.test.js.map +1 -0
  44. package/build/git/sync/synchronizer.d.ts +43 -0
  45. package/build/git/sync/synchronizer.d.ts.map +1 -0
  46. package/build/git/sync/synchronizer.js +108 -0
  47. package/build/git/sync/synchronizer.js.map +1 -0
  48. package/build/git/sync/synchronizer.test.d.ts +2 -0
  49. package/build/git/sync/synchronizer.test.d.ts.map +1 -0
  50. package/build/git/sync/synchronizer.test.js +188 -0
  51. package/build/git/sync/synchronizer.test.js.map +1 -0
  52. package/build/git/types.d.ts +159 -0
  53. package/build/git/types.d.ts.map +1 -0
  54. package/build/git/types.js +5 -0
  55. package/build/git/types.js.map +1 -0
  56. package/build/index.js +18 -0
  57. package/build/index.js.map +1 -1
  58. package/build/tools/git-history.d.ts +10 -0
  59. package/build/tools/git-history.d.ts.map +1 -0
  60. package/build/tools/git-history.js +144 -0
  61. package/build/tools/git-history.js.map +1 -0
  62. package/build/tools/index.d.ts +2 -0
  63. package/build/tools/index.d.ts.map +1 -1
  64. package/build/tools/index.js +4 -0
  65. package/build/tools/index.js.map +1 -1
  66. package/build/tools/schemas.d.ts +24 -0
  67. package/build/tools/schemas.d.ts.map +1 -1
  68. package/build/tools/schemas.js +64 -0
  69. package/build/tools/schemas.js.map +1 -1
  70. package/package.json +2 -2
  71. package/src/code/indexer.ts +49 -7
  72. package/src/git/chunker.test.ts +284 -0
  73. package/src/git/chunker.ts +256 -0
  74. package/src/git/config.ts +173 -0
  75. package/src/git/extractor.integration.test.ts +221 -0
  76. package/src/git/extractor.test.ts +403 -0
  77. package/src/git/extractor.ts +284 -0
  78. package/src/git/index.ts +31 -0
  79. package/src/git/indexer.test.ts +1089 -0
  80. package/src/git/indexer.ts +745 -0
  81. package/src/git/sync/synchronizer.test.ts +250 -0
  82. package/src/git/sync/synchronizer.ts +122 -0
  83. package/src/git/types.ts +192 -0
  84. package/src/index.ts +42 -0
  85. package/src/tools/git-history.ts +208 -0
  86. package/src/tools/index.ts +7 -0
  87. package/src/tools/schemas.ts +75 -0
  88. package/vitest.config.ts +2 -0
@@ -0,0 +1,267 @@
1
+ import { describe, it, expect, vi, beforeEach } from "vitest";
2
+ import { GitExtractor, normalizeRemoteUrl } from "./extractor.js";
3
+ import { DEFAULT_GIT_CONFIG, GIT_LOG_COMMIT_DELIMITER } from "./config.js";
4
+ // Mock child_process with promisify-compatible execFile
5
+ vi.mock("node:child_process", () => ({
6
+ execFile: vi.fn(),
7
+ }));
8
+ vi.mock("node:util", () => ({
9
+ promisify: (fn) => fn,
10
+ }));
11
+ import { execFile } from "node:child_process";
12
+ const mockExecFile = vi.mocked(execFile);
13
+ describe("GitExtractor", () => {
14
+ let extractor;
15
+ const config = { ...DEFAULT_GIT_CONFIG };
16
+ beforeEach(() => {
17
+ mockExecFile.mockReset();
18
+ extractor = new GitExtractor("/test/repo", config);
19
+ });
20
+ describe("validateRepository", () => {
21
+ it("should return true for valid git repository", async () => {
22
+ mockExecFile.mockResolvedValue({ stdout: ".git", stderr: "" });
23
+ const result = await extractor.validateRepository();
24
+ expect(result).toBe(true);
25
+ expect(mockExecFile).toHaveBeenCalledWith("git", ["rev-parse", "--git-dir"], expect.objectContaining({ cwd: "/test/repo" }));
26
+ });
27
+ it("should return false for non-git directory", async () => {
28
+ mockExecFile.mockRejectedValue(new Error("fatal: not a git repository"));
29
+ const result = await extractor.validateRepository();
30
+ expect(result).toBe(false);
31
+ });
32
+ });
33
+ describe("getLatestCommitHash", () => {
34
+ it("should return latest commit hash", async () => {
35
+ mockExecFile.mockResolvedValue({
36
+ stdout: "abc123def456789\n",
37
+ stderr: "",
38
+ });
39
+ const result = await extractor.getLatestCommitHash();
40
+ expect(result).toBe("abc123def456789");
41
+ expect(mockExecFile).toHaveBeenCalledWith("git", ["rev-parse", "HEAD"], expect.objectContaining({ cwd: "/test/repo" }));
42
+ });
43
+ });
44
+ describe("getCommitCount", () => {
45
+ it("should return total commit count", async () => {
46
+ mockExecFile.mockResolvedValue({ stdout: "42\n", stderr: "" });
47
+ const result = await extractor.getCommitCount();
48
+ expect(result).toBe(42);
49
+ expect(mockExecFile).toHaveBeenCalledWith("git", ["rev-list", "--count", "HEAD"], expect.objectContaining({ cwd: "/test/repo" }));
50
+ });
51
+ it("should return commit count since specific commit", async () => {
52
+ mockExecFile.mockResolvedValue({ stdout: "10\n", stderr: "" });
53
+ const result = await extractor.getCommitCount("abc123");
54
+ expect(result).toBe(10);
55
+ expect(mockExecFile).toHaveBeenCalledWith("git", ["rev-list", "--count", "abc123..HEAD"], expect.objectContaining({ cwd: "/test/repo" }));
56
+ });
57
+ });
58
+ describe("getCommits", () => {
59
+ it("should parse commits from git log output", async () => {
60
+ const gitLogOutput = [
61
+ GIT_LOG_COMMIT_DELIMITER,
62
+ "abc123def|abc123d|John Doe|john@example.com|2024-01-15T10:30:00Z|feat: add new feature|This is the body",
63
+ "",
64
+ "10\t5\tsrc/feature.ts",
65
+ "3\t1\tsrc/utils.ts",
66
+ GIT_LOG_COMMIT_DELIMITER,
67
+ "xyz789ghi|xyz789g|Jane Smith|jane@example.com|2024-01-14T09:00:00Z|fix: resolve bug|Bug fix description",
68
+ "",
69
+ "2\t8\tsrc/bug.ts",
70
+ ].join("\n");
71
+ mockExecFile.mockResolvedValue({
72
+ stdout: gitLogOutput,
73
+ stderr: "",
74
+ });
75
+ const result = await extractor.getCommits();
76
+ expect(result).toHaveLength(2);
77
+ // First commit
78
+ expect(result[0].hash).toBe("abc123def");
79
+ expect(result[0].shortHash).toBe("abc123d");
80
+ expect(result[0].author).toBe("John Doe");
81
+ expect(result[0].authorEmail).toBe("john@example.com");
82
+ expect(result[0].subject).toBe("feat: add new feature");
83
+ expect(result[0].body).toBe("This is the body");
84
+ expect(result[0].files).toEqual(["src/feature.ts", "src/utils.ts"]);
85
+ expect(result[0].insertions).toBe(13);
86
+ expect(result[0].deletions).toBe(6);
87
+ // Second commit
88
+ expect(result[1].hash).toBe("xyz789ghi");
89
+ expect(result[1].subject).toBe("fix: resolve bug");
90
+ expect(result[1].files).toEqual(["src/bug.ts"]);
91
+ expect(result[1].insertions).toBe(2);
92
+ expect(result[1].deletions).toBe(8);
93
+ });
94
+ it("should handle commits with no files", async () => {
95
+ const gitLogOutput = [
96
+ GIT_LOG_COMMIT_DELIMITER,
97
+ "abc123|abc12|Author|author@example.com|2024-01-15T10:00:00Z|chore: empty commit|",
98
+ ].join("\n");
99
+ mockExecFile.mockResolvedValue({
100
+ stdout: gitLogOutput,
101
+ stderr: "",
102
+ });
103
+ const result = await extractor.getCommits();
104
+ expect(result).toHaveLength(1);
105
+ expect(result[0].files).toEqual([]);
106
+ expect(result[0].insertions).toBe(0);
107
+ expect(result[0].deletions).toBe(0);
108
+ });
109
+ it("should handle binary files in numstat", async () => {
110
+ const gitLogOutput = [
111
+ GIT_LOG_COMMIT_DELIMITER,
112
+ "abc123|abc12|Author|author@example.com|2024-01-15T10:00:00Z|feat: add image|",
113
+ "",
114
+ "-\t-\tassets/image.png",
115
+ "5\t2\tsrc/component.ts",
116
+ ].join("\n");
117
+ mockExecFile.mockResolvedValue({
118
+ stdout: gitLogOutput,
119
+ stderr: "",
120
+ });
121
+ const result = await extractor.getCommits();
122
+ expect(result[0].files).toEqual(["assets/image.png", "src/component.ts"]);
123
+ expect(result[0].insertions).toBe(5); // Binary files don't count
124
+ expect(result[0].deletions).toBe(2);
125
+ });
126
+ it("should handle renamed files", async () => {
127
+ const gitLogOutput = [
128
+ GIT_LOG_COMMIT_DELIMITER,
129
+ "abc123|abc12|Author|author@example.com|2024-01-15T10:00:00Z|refactor: rename file|",
130
+ "",
131
+ "0\t0\tsrc/{old.ts => new.ts}",
132
+ ].join("\n");
133
+ mockExecFile.mockResolvedValue({
134
+ stdout: gitLogOutput,
135
+ stderr: "",
136
+ });
137
+ const result = await extractor.getCommits();
138
+ expect(result[0].files).toEqual(["src/new.ts"]);
139
+ });
140
+ it("should respect maxCommits option", async () => {
141
+ mockExecFile.mockResolvedValue({ stdout: "", stderr: "" });
142
+ await extractor.getCommits({ maxCommits: 100 });
143
+ expect(mockExecFile).toHaveBeenCalledWith("git", expect.arrayContaining(["-n100"]), expect.any(Object));
144
+ });
145
+ it("should add sinceCommit range when specified", async () => {
146
+ mockExecFile.mockResolvedValue({ stdout: "", stderr: "" });
147
+ await extractor.getCommits({ sinceCommit: "abc123" });
148
+ expect(mockExecFile).toHaveBeenCalledWith("git", expect.arrayContaining(["abc123..HEAD"]), expect.any(Object));
149
+ });
150
+ it("should add sinceDate filter when specified", async () => {
151
+ mockExecFile.mockResolvedValue({ stdout: "", stderr: "" });
152
+ await extractor.getCommits({ sinceDate: "2024-01-01" });
153
+ expect(mockExecFile).toHaveBeenCalledWith("git", expect.arrayContaining(["--since=2024-01-01"]), expect.any(Object));
154
+ });
155
+ it("should handle commits with pipes in body", async () => {
156
+ const gitLogOutput = [
157
+ GIT_LOG_COMMIT_DELIMITER,
158
+ "abc123|abc12|Author|author@example.com|2024-01-15T10:00:00Z|feat: add feature|Body with | pipes | characters",
159
+ ].join("\n");
160
+ mockExecFile.mockResolvedValue({
161
+ stdout: gitLogOutput,
162
+ stderr: "",
163
+ });
164
+ const result = await extractor.getCommits();
165
+ expect(result[0].body).toBe("Body with | pipes | characters");
166
+ });
167
+ it("should handle simple rename format", async () => {
168
+ const gitLogOutput = [
169
+ GIT_LOG_COMMIT_DELIMITER,
170
+ "abc123|abc12|Author|author@example.com|2024-01-15T10:00:00Z|refactor: move|",
171
+ "",
172
+ "0\t0\told-name.ts => new-name.ts",
173
+ ].join("\n");
174
+ mockExecFile.mockResolvedValue({
175
+ stdout: gitLogOutput,
176
+ stderr: "",
177
+ });
178
+ const result = await extractor.getCommits();
179
+ expect(result[0].files).toEqual(["new-name.ts"]);
180
+ });
181
+ });
182
+ describe("getCommitDiff", () => {
183
+ it("should return diff for a commit", async () => {
184
+ const diffOutput = `commit abc123
185
+ Author: John Doe <john@example.com>
186
+
187
+ feat: add feature
188
+
189
+ diff --git a/file.ts b/file.ts
190
+ --- a/file.ts
191
+ +++ b/file.ts
192
+ @@ -1,3 +1,5 @@
193
+ +const newLine = true;
194
+ const existingLine = true;`;
195
+ mockExecFile.mockResolvedValue({ stdout: diffOutput, stderr: "" });
196
+ const result = await extractor.getCommitDiff("abc123");
197
+ expect(result).toBe(diffOutput);
198
+ expect(mockExecFile).toHaveBeenCalledWith("git", ["show", "--no-color", "-p", "abc123"], expect.objectContaining({ cwd: "/test/repo" }));
199
+ });
200
+ it("should truncate large diffs", async () => {
201
+ const largeDiff = "x".repeat(10000);
202
+ const customConfig = { ...config, maxDiffSize: 100 };
203
+ const customExtractor = new GitExtractor("/test/repo", customConfig);
204
+ mockExecFile.mockResolvedValue({ stdout: largeDiff, stderr: "" });
205
+ const result = await customExtractor.getCommitDiff("abc123");
206
+ expect(result.length).toBeLessThan(largeDiff.length);
207
+ expect(result).toContain("[diff truncated: showing 100 of 10000 bytes]");
208
+ });
209
+ it("should return empty string on error", async () => {
210
+ mockExecFile.mockRejectedValue(new Error("Commit not found"));
211
+ const result = await extractor.getCommitDiff("nonexistent");
212
+ expect(result).toBe("");
213
+ });
214
+ });
215
+ describe("getRemoteUrl", () => {
216
+ it("should return remote origin URL", async () => {
217
+ mockExecFile.mockResolvedValue({
218
+ stdout: "git@github.com:user/repo.git\n",
219
+ stderr: "",
220
+ });
221
+ const result = await extractor.getRemoteUrl();
222
+ expect(result).toBe("git@github.com:user/repo.git");
223
+ expect(mockExecFile).toHaveBeenCalledWith("git", ["remote", "get-url", "origin"], expect.objectContaining({ cwd: "/test/repo" }));
224
+ });
225
+ it("should return empty string when no remote configured", async () => {
226
+ mockExecFile.mockRejectedValue(new Error("fatal: No such remote 'origin'"));
227
+ const result = await extractor.getRemoteUrl();
228
+ expect(result).toBe("");
229
+ });
230
+ it("should return HTTPS URL", async () => {
231
+ mockExecFile.mockResolvedValue({
232
+ stdout: "https://github.com/user/repo.git\n",
233
+ stderr: "",
234
+ });
235
+ const result = await extractor.getRemoteUrl();
236
+ expect(result).toBe("https://github.com/user/repo.git");
237
+ });
238
+ });
239
+ });
240
+ describe("normalizeRemoteUrl", () => {
241
+ it("should normalize SSH URL", () => {
242
+ expect(normalizeRemoteUrl("git@github.com:user/repo.git")).toBe("user/repo");
243
+ });
244
+ it("should normalize HTTPS URL", () => {
245
+ expect(normalizeRemoteUrl("https://github.com/user/repo.git")).toBe("user/repo");
246
+ });
247
+ it("should handle URL without .git suffix", () => {
248
+ expect(normalizeRemoteUrl("git@github.com:user/repo")).toBe("user/repo");
249
+ expect(normalizeRemoteUrl("https://github.com/user/repo")).toBe("user/repo");
250
+ });
251
+ it("should return empty string for empty input", () => {
252
+ expect(normalizeRemoteUrl("")).toBe("");
253
+ });
254
+ it("should handle GitLab SSH URL", () => {
255
+ expect(normalizeRemoteUrl("git@gitlab.com:group/project.git")).toBe("group/project");
256
+ });
257
+ it("should handle Bitbucket SSH URL", () => {
258
+ expect(normalizeRemoteUrl("git@bitbucket.org:team/repo.git")).toBe("team/repo");
259
+ });
260
+ it("should handle HTTP URL (not HTTPS)", () => {
261
+ expect(normalizeRemoteUrl("http://github.com/user/repo.git")).toBe("user/repo");
262
+ });
263
+ it("should handle nested paths", () => {
264
+ expect(normalizeRemoteUrl("https://github.com/org/group/subgroup/repo.git")).toBe("org/group/subgroup/repo");
265
+ });
266
+ });
267
+ //# sourceMappingURL=extractor.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractor.test.js","sourceRoot":"","sources":["../../src/git/extractor.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Git history indexing module - barrel export
3
+ */
4
+ export type { CommitChunk, CommitType, GitChangeStats, GitConfig, GitExtractOptions, GitIndexOptions, GitIndexStats, GitIndexStatus, GitIndexingStatus, GitProgressCallback, GitProgressUpdate, GitSearchOptions, GitSearchResult, GitSnapshot, RawCommit, } from "./types.js";
5
+ export { DEFAULT_GIT_CONFIG, COMMIT_TYPE_PATTERNS } from "./config.js";
6
+ export { GitHistoryIndexer } from "./indexer.js";
7
+ export { GitExtractor } from "./extractor.js";
8
+ export { CommitChunker } from "./chunker.js";
9
+ export { GitSynchronizer } from "./sync/synchronizer.js";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/git/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACV,WAAW,EACX,UAAU,EACV,cAAc,EACd,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,SAAS,GACV,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Git history indexing module - barrel export
3
+ */
4
+ // Config
5
+ export { DEFAULT_GIT_CONFIG, COMMIT_TYPE_PATTERNS } from "./config.js";
6
+ // Main classes
7
+ export { GitHistoryIndexer } from "./indexer.js";
8
+ export { GitExtractor } from "./extractor.js";
9
+ export { CommitChunker } from "./chunker.js";
10
+ export { GitSynchronizer } from "./sync/synchronizer.js";
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/git/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAqBH,SAAS;AACT,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEvE,eAAe;AACf,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * GitHistoryIndexer - Main orchestrator for git history indexing
3
+ */
4
+ import type { EmbeddingProvider } from "../embeddings/base.js";
5
+ import type { QdrantManager } from "../qdrant/client.js";
6
+ import type { GitChangeStats, GitConfig, GitIndexOptions, GitIndexStats, GitIndexStatus, GitProgressCallback, GitSearchOptions, GitSearchResult } from "./types.js";
7
+ export declare class GitHistoryIndexer {
8
+ private qdrant;
9
+ private embeddings;
10
+ private config;
11
+ constructor(qdrant: QdrantManager, embeddings: EmbeddingProvider, config: GitConfig);
12
+ /**
13
+ * Validate that a path doesn't attempt directory traversal
14
+ */
15
+ private validatePath;
16
+ /**
17
+ * Index git history for a repository
18
+ */
19
+ indexHistory(path: string, options?: GitIndexOptions, progressCallback?: GitProgressCallback): Promise<GitIndexStats>;
20
+ /**
21
+ * Search indexed git history
22
+ */
23
+ searchHistory(path: string, query: string, options?: GitSearchOptions): Promise<GitSearchResult[]>;
24
+ /**
25
+ * Get indexing status for a repository
26
+ */
27
+ getIndexStatus(path: string): Promise<GitIndexStatus>;
28
+ /**
29
+ * Index only new commits since last indexing
30
+ */
31
+ indexNewCommits(path: string, progressCallback?: GitProgressCallback): Promise<GitChangeStats>;
32
+ /**
33
+ * Clear all indexed data for a repository
34
+ */
35
+ clearIndex(path: string): Promise<void>;
36
+ /**
37
+ * Store indexing status marker in the collection
38
+ */
39
+ private storeIndexingMarker;
40
+ /**
41
+ * Build search filter from options
42
+ */
43
+ private buildSearchFilter;
44
+ /**
45
+ * Generate deterministic collection name from repository path.
46
+ * Uses git remote URL for consistent naming across machines, with fallback to full path.
47
+ */
48
+ private getCollectionName;
49
+ }
50
+ //# sourceMappingURL=indexer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/git/indexer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKzD,OAAO,KAAK,EAEV,cAAc,EACd,SAAS,EACT,eAAe,EACf,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;gBAFN,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,iBAAiB,EAC7B,MAAM,EAAE,SAAS;IAG3B;;OAEG;YACW,YAAY;IAW1B;;OAEG;IACG,YAAY,CAChB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,eAAe,EACzB,gBAAgB,CAAC,EAAE,mBAAmB,GACrC,OAAO,CAAC,aAAa,CAAC;IA6OzB;;OAEG;IACG,aAAa,CACjB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,EAAE,CAAC;IAyE7B;;OAEG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAiF3D;;OAEG;IACG,eAAe,CACnB,IAAI,EAAE,MAAM,EACZ,gBAAgB,CAAC,EAAE,mBAAmB,GACrC,OAAO,CAAC,cAAc,CAAC;IAqJ1B;;OAEG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB7C;;OAEG;YACW,mBAAmB;IA0CjC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgDzB;;;OAGG;YACW,iBAAiB;CAahC"}