@meaningfully/core 0.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 (124) hide show
  1. package/.nvmrc +1 -0
  2. package/LICENSE +7 -0
  3. package/README.md +3 -0
  4. package/dist/DocumentSetManager.d.ts +28 -0
  5. package/dist/DocumentSetManager.d.ts.map +1 -0
  6. package/dist/DocumentSetManager.js +134 -0
  7. package/dist/DocumentSetManager.js.map +1 -0
  8. package/dist/Meaningfully.d.ts +52 -0
  9. package/dist/Meaningfully.d.ts.map +1 -0
  10. package/dist/Meaningfully.js +206 -0
  11. package/dist/Meaningfully.js.map +1 -0
  12. package/dist/MetadataManager.d.ts +32 -0
  13. package/dist/MetadataManager.d.ts.map +1 -0
  14. package/dist/MetadataManager.js +115 -0
  15. package/dist/MetadataManager.js.map +1 -0
  16. package/dist/api/embedding.d.ts +7 -0
  17. package/dist/api/embedding.d.ts.map +1 -0
  18. package/dist/api/embedding.js +94 -0
  19. package/dist/api/embedding.js.map +1 -0
  20. package/dist/api/embedding.test.d.ts +2 -0
  21. package/dist/api/embedding.test.d.ts.map +1 -0
  22. package/dist/api/embedding.test.js +340 -0
  23. package/dist/api/embedding.test.js.map +1 -0
  24. package/dist/index.d.ts +5 -0
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/index.js +6 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/services/batchingWeaviateVectorStore.d.ts +6 -0
  29. package/dist/services/batchingWeaviateVectorStore.d.ts.map +1 -0
  30. package/dist/services/batchingWeaviateVectorStore.js +21 -0
  31. package/dist/services/batchingWeaviateVectorStore.js.map +1 -0
  32. package/dist/services/csvLoader.d.ts +3 -0
  33. package/dist/services/csvLoader.d.ts.map +1 -0
  34. package/dist/services/csvLoader.js +18 -0
  35. package/dist/services/csvLoader.js.map +1 -0
  36. package/dist/services/csvLoader.test.d.ts +2 -0
  37. package/dist/services/csvLoader.test.d.ts.map +1 -0
  38. package/dist/services/csvLoader.test.js +75 -0
  39. package/dist/services/csvLoader.test.js.map +1 -0
  40. package/dist/services/embeddings.d.ts +22 -0
  41. package/dist/services/embeddings.d.ts.map +1 -0
  42. package/dist/services/embeddings.js +314 -0
  43. package/dist/services/embeddings.js.map +1 -0
  44. package/dist/services/embeddings.test.d.ts +2 -0
  45. package/dist/services/embeddings.test.d.ts.map +1 -0
  46. package/dist/services/embeddings.test.js +115 -0
  47. package/dist/services/embeddings.test.js.map +1 -0
  48. package/dist/services/loggingOpenAIEmbedding.d.ts +2 -0
  49. package/dist/services/loggingOpenAIEmbedding.d.ts.map +1 -0
  50. package/dist/services/loggingOpenAIEmbedding.js +41 -0
  51. package/dist/services/loggingOpenAIEmbedding.js.map +1 -0
  52. package/dist/services/mockEmbedding.d.ts +6 -0
  53. package/dist/services/mockEmbedding.d.ts.map +1 -0
  54. package/dist/services/mockEmbedding.js +14 -0
  55. package/dist/services/mockEmbedding.js.map +1 -0
  56. package/dist/services/progressManager.d.ts +21 -0
  57. package/dist/services/progressManager.d.ts.map +1 -0
  58. package/dist/services/progressManager.js +76 -0
  59. package/dist/services/progressManager.js.map +1 -0
  60. package/dist/services/progressVectorStoreIndex.d.ts +21 -0
  61. package/dist/services/progressVectorStoreIndex.d.ts.map +1 -0
  62. package/dist/services/progressVectorStoreIndex.js +60 -0
  63. package/dist/services/progressVectorStoreIndex.js.map +1 -0
  64. package/dist/services/sentenceSplitter.d.ts +17 -0
  65. package/dist/services/sentenceSplitter.d.ts.map +1 -0
  66. package/dist/services/sentenceSplitter.js +207 -0
  67. package/dist/services/sentenceSplitter.js.map +1 -0
  68. package/dist/services/sentenceSplitter.test.d.ts +2 -0
  69. package/dist/services/sentenceSplitter.test.d.ts.map +1 -0
  70. package/dist/services/sentenceSplitter.test.js +68 -0
  71. package/dist/services/sentenceSplitter.test.js.map +1 -0
  72. package/dist/services/sploder.d.ts +13 -0
  73. package/dist/services/sploder.d.ts.map +1 -0
  74. package/dist/services/sploder.js +45 -0
  75. package/dist/services/sploder.js.map +1 -0
  76. package/dist/types/index.d.ts +77 -0
  77. package/dist/types/index.d.ts.map +1 -0
  78. package/dist/types/index.js +2 -0
  79. package/dist/types/index.js.map +1 -0
  80. package/dist/utils.d.ts +3 -0
  81. package/dist/utils.d.ts.map +1 -0
  82. package/dist/utils.js +7 -0
  83. package/dist/utils.js.map +1 -0
  84. package/package.json +43 -0
  85. package/src/Meaningfully.d.ts +57 -0
  86. package/src/Meaningfully.ts +228 -0
  87. package/src/MetadataManager.d.ts +27 -0
  88. package/src/MetadataManager.ts +145 -0
  89. package/src/api/embedding.d.ts +6 -0
  90. package/src/api/embedding.ts +122 -0
  91. package/src/index.ts +5 -0
  92. package/src/services/batchingWeaviateVectorStore.d.ts +5 -0
  93. package/src/services/batchingWeaviateVectorStore.ts +23 -0
  94. package/src/services/csvLoader.d.ts +2 -0
  95. package/src/services/csvLoader.ts +24 -0
  96. package/src/services/embeddings.d.ts +21 -0
  97. package/src/services/embeddings.ts +374 -0
  98. package/src/services/loggingOpenAIEmbedding.d.ts +0 -0
  99. package/src/services/loggingOpenAIEmbedding.ts +46 -0
  100. package/src/services/mockEmbedding.d.ts +5 -0
  101. package/src/services/mockEmbedding.ts +13 -0
  102. package/src/services/progressManager.d.ts +20 -0
  103. package/src/services/progressManager.ts +88 -0
  104. package/src/services/progressVectorStoreIndex.d.ts +20 -0
  105. package/src/services/progressVectorStoreIndex.ts +95 -0
  106. package/src/services/sentenceSplitter.d.ts +16 -0
  107. package/src/services/sentenceSplitter.ts +243 -0
  108. package/src/services/sploder.d.ts +12 -0
  109. package/src/services/sploder.ts +62 -0
  110. package/src/types/index.d.ts +71 -0
  111. package/src/types/index.ts +89 -0
  112. package/src/utils.d.ts +2 -0
  113. package/src/utils.ts +6 -0
  114. package/tests/MetadataManager.test.ts +120 -0
  115. package/tests/csvLoader.test.d.ts +1 -0
  116. package/tests/csvLoader.test.ts +88 -0
  117. package/tests/embedding.test.d.ts +1 -0
  118. package/tests/embedding.test.ts +425 -0
  119. package/tests/embeddings.test.d.ts +1 -0
  120. package/tests/embeddings.test.ts +144 -0
  121. package/tests/sentenceSplitter.test.d.ts +1 -0
  122. package/tests/sentenceSplitter.test.ts +81 -0
  123. package/tsconfig.json +31 -0
  124. package/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,94 @@
1
+ import { transformDocumentsToNodes, estimateCost, searchDocuments, getExistingVectorStoreIndex, persistNodes, persistDocuments, getExistingDocStore } from "../services/embeddings.js";
2
+ import { loadDocumentsFromCsv } from "../services/csvLoader.js";
3
+ import { MetadataMode } from "llamaindex";
4
+ import { ProgressManager } from "../services/progressManager.js";
5
+ export async function createEmbeddings(csvPath, textColumnName, config, settings, clients) {
6
+ try {
7
+ console.time("createEmbeddings Run Time");
8
+ const operationId = `embed-${Date.now()}`;
9
+ const progressManager = ProgressManager.getInstance();
10
+ progressManager.startOperation(operationId, 100);
11
+ const documents = await loadDocumentsFromCsv(csvPath, textColumnName);
12
+ if (documents.length === 0) {
13
+ progressManager.clearOperation(operationId);
14
+ console.timeEnd("createEmbeddings Run Time");
15
+ return {
16
+ success: false,
17
+ error: "That CSV does not appear to contain any documents. Please check the file and try again.",
18
+ };
19
+ }
20
+ progressManager.updateProgress(operationId, 5);
21
+ const nodes = await transformDocumentsToNodes(documents, config);
22
+ const [index] = await Promise.all([
23
+ persistNodes(nodes, config, settings, clients, (progress, total) => {
24
+ const percentage = Math.floor((progress / total) * 90) + 5; // Map to 5-95% of total progress
25
+ progressManager.updateProgress(operationId, percentage);
26
+ }),
27
+ persistDocuments(documents, config, settings, clients)
28
+ ]);
29
+ progressManager.completeOperation(operationId);
30
+ console.timeEnd("createEmbeddings Run Time");
31
+ return {
32
+ success: true,
33
+ index,
34
+ };
35
+ }
36
+ catch (error) {
37
+ return {
38
+ success: false,
39
+ error: error instanceof Error ? error.message : "Unknown error occurred",
40
+ };
41
+ }
42
+ }
43
+ // TODO: rename this to be parallel to createEmbeddings
44
+ export async function previewResults(csvPath, textColumnName, config) {
45
+ try {
46
+ const documents = await loadDocumentsFromCsv(csvPath, textColumnName);
47
+ if (documents.length === 0) {
48
+ return {
49
+ success: false,
50
+ error: "That CSV does not appear to contain any documents. Please check the file and try again.",
51
+ };
52
+ }
53
+ // Take 10 rows from the middle of the dataset for preview
54
+ // we take a consistent 10 so that the results of the preview are consistent (i.e. with a larger chunk size, you have fewer, longer results, but more shorter ones if you adjust it)
55
+ // and we take from the middle because the initial rows may be idiosyncratic.
56
+ const previewDocumentsSubset = documents.slice(Math.floor(documents.length / 2), Math.floor(documents.length / 2) + 10);
57
+ const previewNodes = await transformDocumentsToNodes(documents, config);
58
+ const previewSubsetNodes = await transformDocumentsToNodes(previewDocumentsSubset, config);
59
+ const { estimatedPrice, tokenCount, pricePer1M } = estimateCost(previewNodes, config.modelName);
60
+ return {
61
+ success: true,
62
+ nodes: previewSubsetNodes.map((node) => ({
63
+ text: node.text,
64
+ metadata: node.metadata
65
+ })),
66
+ estimatedPrice,
67
+ tokenCount,
68
+ pricePer1M
69
+ };
70
+ }
71
+ catch (error) {
72
+ return {
73
+ success: false,
74
+ error: error instanceof Error ? error.message : "Unknown error occurred"
75
+ };
76
+ }
77
+ }
78
+ export async function getDocStore(config) {
79
+ return await getExistingDocStore(config);
80
+ }
81
+ export async function getIndex(config, settings, clients) {
82
+ return await getExistingVectorStoreIndex(config, settings, clients);
83
+ }
84
+ export async function search(index, query, numResults = 10, filters) {
85
+ const results = await searchDocuments(index, query, numResults, filters);
86
+ return results.map((result) => ({
87
+ text: result.node.getContent(MetadataMode.NONE),
88
+ score: result.score ?? 0,
89
+ metadata: result.node.metadata,
90
+ // @ts-ignore
91
+ sourceNodeId: result.node.relationships?.SOURCE?.nodeId
92
+ }));
93
+ }
94
+ //# sourceMappingURL=embedding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedding.js","sourceRoot":"","sources":["../../src/api/embedding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=embedding.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedding.test.d.ts","sourceRoot":"","sources":["../../src/api/embedding.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,340 @@
1
+ //@ts-nocheck
2
+ import { describe, it, expect, vi, beforeEach } from 'vitest';
3
+ import { createEmbeddings, previewResults, getDocStore, getIndex, search } from './embedding';
4
+ import { loadDocumentsFromCsv } from '../services/csvLoader';
5
+ import { transformDocumentsToNodes, estimateCost, searchDocuments, getExistingVectorStoreIndex, persistNodes, getExistingDocStore } from '../services/embeddings';
6
+ // filepath: /Users/jeremybmerrill/code/meaningfully/src/main/api/embedding.test.ts
7
+ vi.mock('../services/csvLoader');
8
+ vi.mock('../services/embeddings');
9
+ describe('embedding.ts', () => {
10
+ describe('createEmbeddings', () => {
11
+ it('should create embeddings and return success', async () => {
12
+ const mockDocuments = [{ text: 'doc1' }, { text: 'doc2' }];
13
+ const mockNodes = [{ node: 'node1' }, { node: 'node2' }];
14
+ const mockIndex = 'index1';
15
+ loadDocumentsFromCsv.mockResolvedValue(mockDocuments);
16
+ transformDocumentsToNodes.mockResolvedValue(mockNodes);
17
+ persistNodes.mockResolvedValue(mockIndex);
18
+ const result = await createEmbeddings('path/to/csv', 'text', {}, {});
19
+ expect(result).toEqual({ success: true, index: mockIndex });
20
+ });
21
+ it('should return error on failure', async () => {
22
+ loadDocumentsFromCsv.mockRejectedValue(new Error('Failed to load documents'));
23
+ const result = await createEmbeddings('path/to/csv', 'text', {}, {});
24
+ expect(result).toEqual({ success: false, error: 'Failed to load documents' });
25
+ });
26
+ it('should handle empty documents', async () => {
27
+ loadDocumentsFromCsv.mockResolvedValue([]);
28
+ const result = await createEmbeddings('path/to/csv', 'text', {}, {});
29
+ expect(result).toEqual({ success: false, error: 'That CSV does not appear to contain any documents. Please check the file and try again.' });
30
+ });
31
+ });
32
+ describe('previewResults', () => {
33
+ it('should return preview results and estimated cost', async () => {
34
+ const mockDocuments = Array(20).fill({ text: 'doc' });
35
+ const mockNodes = [{ text: 'node1', metadata: {} }, { text: 'node2', metadata: {} }];
36
+ const mockPreviewNodes = [{ text: 'node1', metadata: {} }, { text: 'node2', metadata: {} }];
37
+ const mockEstimate = { estimatedPrice: 10, tokenCount: 100, pricePer1M: 0.01 };
38
+ loadDocumentsFromCsv.mockResolvedValue(mockDocuments);
39
+ transformDocumentsToNodes.mockResolvedValue(mockNodes);
40
+ estimateCost.mockReturnValue(mockEstimate);
41
+ const result = await previewResults('path/to/csv', 'text', {});
42
+ expect(result).toEqual({
43
+ success: true,
44
+ nodes: mockPreviewNodes,
45
+ ...mockEstimate
46
+ });
47
+ });
48
+ it('should return error on failure', async () => {
49
+ loadDocumentsFromCsv.mockRejectedValue(new Error('Failed to load documents'));
50
+ const result = await previewResults('path/to/csv', 'text', {});
51
+ expect(result).toEqual({ success: false, error: 'Failed to load documents' });
52
+ });
53
+ it('should handle empty documents', async () => {
54
+ loadDocumentsFromCsv.mockResolvedValue([]);
55
+ const result = await previewResults('path/to/csv', 'text', {});
56
+ expect(result).toEqual({ success: false, error: 'That CSV does not appear to contain any documents. Please check the file and try again.' });
57
+ });
58
+ });
59
+ describe('getDocStore', () => {
60
+ it('should return existing doc store', async () => {
61
+ const mockDocStore = 'docStore';
62
+ getExistingDocStore.mockResolvedValue(mockDocStore);
63
+ const result = await getDocStore({});
64
+ expect(result).toBe(mockDocStore);
65
+ });
66
+ });
67
+ describe('getIndex', () => {
68
+ it('should return existing vector store index', async () => {
69
+ const mockIndex = 'index';
70
+ getExistingVectorStoreIndex.mockResolvedValue(mockIndex);
71
+ const result = await getIndex({}, {});
72
+ expect(result).toBe(mockIndex);
73
+ });
74
+ });
75
+ describe('search', () => {
76
+ it('should return search results', async () => {
77
+ const mockResults = [
78
+ { node: { getContent: () => 'content1', metadata: {} }, score: 1 },
79
+ { node: { getContent: () => 'content2', metadata: {} }, score: 2 }
80
+ ];
81
+ searchDocuments.mockResolvedValue(mockResults);
82
+ const result = await search('index', 'query');
83
+ expect(result).toEqual([
84
+ { text: 'content1', score: 1, metadata: {} },
85
+ { text: 'content2', score: 2, metadata: {} }
86
+ ]);
87
+ });
88
+ it('should handle no search results', async () => {
89
+ searchDocuments.mockResolvedValue([]);
90
+ const result = await search('index', 'query');
91
+ expect(result).toEqual([]);
92
+ });
93
+ it('should handle search results with null scores', async () => {
94
+ const mockResults = [
95
+ { node: { getContent: () => 'content1', metadata: {} }, score: null },
96
+ { node: { getContent: () => 'content2', metadata: {} }, score: null }
97
+ ];
98
+ searchDocuments.mockResolvedValue(mockResults);
99
+ const result = await search('index', 'query');
100
+ expect(result).toEqual([
101
+ { text: 'content1', score: 0, metadata: {} },
102
+ { text: 'content2', score: 0, metadata: {} }
103
+ ]);
104
+ });
105
+ });
106
+ });
107
+ describe('previewResults', () => {
108
+ it('should return preview results and estimated cost', async () => {
109
+ const mockDocuments = Array(20).fill({ text: 'doc' });
110
+ const mockNodes = [{ text: 'node1', metadata: {} }, { text: 'node2', metadata: {} }];
111
+ const mockPreviewNodes = [{ text: 'node1', metadata: {} }, { text: 'node2', metadata: {} }];
112
+ const mockEstimate = { estimatedPrice: 10, tokenCount: 100, pricePer1M: 0.01 };
113
+ loadDocumentsFromCsv.mockResolvedValue(mockDocuments);
114
+ transformDocumentsToNodes.mockResolvedValue(mockNodes);
115
+ estimateCost.mockReturnValue(mockEstimate);
116
+ const result = await previewResults('path/to/csv', 'text', {});
117
+ expect(result).toEqual({
118
+ success: true,
119
+ nodes: mockPreviewNodes,
120
+ ...mockEstimate
121
+ });
122
+ });
123
+ it('should return error on failure', async () => {
124
+ loadDocumentsFromCsv.mockRejectedValue(new Error('Failed to load documents'));
125
+ const result = await previewResults('path/to/csv', 'text', {});
126
+ expect(result).toEqual({ success: false, error: 'Failed to load documents' });
127
+ });
128
+ });
129
+ describe('getDocStore', () => {
130
+ it('should return existing doc store', async () => {
131
+ const mockDocStore = 'docStore';
132
+ getExistingDocStore.mockResolvedValue(mockDocStore);
133
+ const result = await getDocStore({});
134
+ expect(result).toBe(mockDocStore);
135
+ });
136
+ });
137
+ describe('getIndex', () => {
138
+ it('should return existing vector store index', async () => {
139
+ const mockIndex = 'index';
140
+ getExistingVectorStoreIndex.mockResolvedValue(mockIndex);
141
+ const result = await getIndex({}, {});
142
+ expect(result).toBe(mockIndex);
143
+ });
144
+ });
145
+ describe('search', () => {
146
+ it('should return search results', async () => {
147
+ const mockResults = [
148
+ { node: { getContent: () => 'content1', metadata: {} }, score: 1 },
149
+ { node: { getContent: () => 'content2', metadata: {} }, score: 2 }
150
+ ];
151
+ searchDocuments.mockResolvedValue(mockResults);
152
+ const result = await search('index', 'query');
153
+ expect(result).toEqual([
154
+ { text: 'content1', score: 1, metadata: {} },
155
+ { text: 'content2', score: 2, metadata: {} }
156
+ ]);
157
+ });
158
+ it('should handle no search results', async () => {
159
+ searchDocuments.mockResolvedValue([]);
160
+ const result = await search('index', 'query');
161
+ expect(result).toEqual([]);
162
+ });
163
+ it('should handle search results with null scores', async () => {
164
+ const mockResults = [
165
+ { node: { getContent: () => 'content1', metadata: {} }, score: null },
166
+ { node: { getContent: () => 'content2', metadata: {} }, score: null }
167
+ ];
168
+ searchDocuments.mockResolvedValue(mockResults);
169
+ const result = await search('index', 'query');
170
+ expect(result).toEqual([
171
+ { text: 'content1', score: 0, metadata: {} },
172
+ { text: 'content2', score: 0, metadata: {} }
173
+ ]);
174
+ });
175
+ });
176
+ describe('createEmbeddings with progress tracking', () => {
177
+ beforeEach(() => {
178
+ vi.clearAllMocks();
179
+ });
180
+ it('should pass progress callback to persistNodes', async () => {
181
+ // Setup mocks
182
+ const mockDocuments = [{ text: 'doc1' }, { text: 'doc2' }];
183
+ const mockNodes = [{ text: 'node1', metadata: {} }, { text: 'node2', metadata: {} }];
184
+ const mockIndex = 'index1';
185
+ loadDocumentsFromCsv.mockResolvedValue(mockDocuments);
186
+ transformDocumentsToNodes.mockResolvedValue(mockNodes);
187
+ persistNodes.mockImplementation((nodes, config, settings, clients, callback) => {
188
+ // Call the callback with sample progress
189
+ if (callback) {
190
+ callback(1, 2); // 50% progress
191
+ callback(2, 2); // 100% progress
192
+ }
193
+ return Promise.resolve(mockIndex);
194
+ });
195
+ // Execute
196
+ const result = await createEmbeddings('path/to/csv', 'text', { modelName: 'test-model' }, {}, {});
197
+ // Verify
198
+ expect(persistNodes).toHaveBeenCalledTimes(1);
199
+ expect(persistNodes.mock.calls[0][4]).toBeInstanceOf(Function); // Verify callback was passed
200
+ expect(result).toEqual({ success: true, index: mockIndex });
201
+ });
202
+ it('should correctly track progress through ProgressManager', async () => {
203
+ // Setup
204
+ vi.mock('../services/progressManager', () => {
205
+ const mockInstance = {
206
+ startOperation: vi.fn(),
207
+ updateProgress: vi.fn(),
208
+ completeOperation: vi.fn(),
209
+ clearOperation: vi.fn()
210
+ };
211
+ return {
212
+ ProgressManager: {
213
+ getInstance: () => mockInstance
214
+ }
215
+ };
216
+ });
217
+ // Re-import to use mocked version
218
+ const { createEmbeddings } = await import('./embedding');
219
+ const { ProgressManager } = await import('../services/progressManager');
220
+ const mockDocuments = [{ text: 'doc1' }, { text: 'doc2' }];
221
+ const mockNodes = [{ text: 'node1', metadata: {} }];
222
+ const mockIndex = 'testIndex';
223
+ loadDocumentsFromCsv.mockResolvedValue(mockDocuments);
224
+ transformDocumentsToNodes.mockResolvedValue(mockNodes);
225
+ persistNodes.mockImplementation((nodes, config, settings, clients, callback) => {
226
+ if (callback)
227
+ callback(1, 2); // Call with 50% progress
228
+ return Promise.resolve(mockIndex);
229
+ });
230
+ // Execute
231
+ await createEmbeddings('path/to/csv', 'text', {}, {}, {});
232
+ // Verify
233
+ const progressManager = ProgressManager.getInstance();
234
+ expect(progressManager.startOperation).toHaveBeenCalledWith(expect.stringMatching(/^embed-\d+$/), 100);
235
+ expect(progressManager.updateProgress).toHaveBeenCalledWith(expect.any(String), 5);
236
+ expect(progressManager.updateProgress).toHaveBeenCalledWith(expect.any(String), expect.any(Number));
237
+ expect(progressManager.completeOperation).toHaveBeenCalledWith(expect.any(String));
238
+ });
239
+ it('should properly calculate percentage in progress callback', async () => {
240
+ // Setup mocks with spy on updateProgress
241
+ vi.mock('../services/progressManager', () => {
242
+ const mockInstance = {
243
+ startOperation: vi.fn(),
244
+ updateProgress: vi.fn(),
245
+ completeOperation: vi.fn(),
246
+ clearOperation: vi.fn()
247
+ };
248
+ return {
249
+ ProgressManager: {
250
+ getInstance: () => mockInstance
251
+ }
252
+ };
253
+ });
254
+ // Re-import to use mocked version
255
+ const { createEmbeddings } = await import('./embedding');
256
+ const { ProgressManager } = await import('../services/progressManager');
257
+ const mockDocuments = [{ text: 'doc1' }];
258
+ const mockNodes = [{ text: 'node1', metadata: {} }];
259
+ loadDocumentsFromCsv.mockResolvedValue(mockDocuments);
260
+ transformDocumentsToNodes.mockResolvedValue(mockNodes);
261
+ // Simulate persistNodes calling the callback with various progress values
262
+ persistNodes.mockImplementation((nodes, config, settings, clients, callback) => {
263
+ if (callback) {
264
+ callback(0, 10); // 0% progress
265
+ callback(5, 10); // 50% progress
266
+ callback(10, 10); // 100% progress
267
+ }
268
+ return Promise.resolve('mockIndex');
269
+ });
270
+ // Execute
271
+ await createEmbeddings('path/to/csv', 'text', {}, {}, {});
272
+ // Verify percentage calculations
273
+ // Initial update at 5%
274
+ const progressManager = ProgressManager.getInstance();
275
+ expect(progressManager.updateProgress).toHaveBeenCalledWith(expect.any(String), 5);
276
+ // Progress updates: 0%, 50%, 100% mapped to 5-95% range
277
+ expect(progressManager.updateProgress).toHaveBeenCalledWith(expect.any(String), 5); // 0% -> 5%
278
+ expect(progressManager.updateProgress).toHaveBeenCalledWith(expect.any(String), 50); // 50% -> 50%
279
+ expect(progressManager.updateProgress).toHaveBeenCalledWith(expect.any(String), 95); // 100% -> 95%
280
+ });
281
+ it('should clear operation on empty documents', async () => {
282
+ // Setup
283
+ vi.mock('../services/progressManager', () => {
284
+ const mockInstance = {
285
+ startOperation: vi.fn(),
286
+ updateProgress: vi.fn(),
287
+ completeOperation: vi.fn(),
288
+ clearOperation: vi.fn()
289
+ };
290
+ return {
291
+ ProgressManager: {
292
+ getInstance: () => mockInstance
293
+ }
294
+ };
295
+ });
296
+ // Re-import to use mocked version
297
+ const { createEmbeddings } = await import('./embedding');
298
+ const { ProgressManager } = await import('../services/progressManager');
299
+ loadDocumentsFromCsv.mockResolvedValue([]);
300
+ // Execute
301
+ const result = await createEmbeddings('path/to/csv', 'text', {}, {}, {});
302
+ // Verify
303
+ const progressManager = ProgressManager.getInstance();
304
+ expect(progressManager.clearOperation).toHaveBeenCalled();
305
+ expect(result).toEqual({
306
+ success: false,
307
+ error: "That CSV does not appear to contain any documents. Please check the file and try again."
308
+ });
309
+ });
310
+ it('shoulde complete operation on successful embedding', async () => {
311
+ // Setup
312
+ vi.mock('../services/progressManager', () => {
313
+ const mockInstance = {
314
+ startOperation: vi.fn(),
315
+ updateProgress: vi.fn(),
316
+ completeOperation: vi.fn(),
317
+ clearOperation: vi.fn()
318
+ };
319
+ return {
320
+ ProgressManager: {
321
+ getInstance: () => mockInstance
322
+ }
323
+ };
324
+ });
325
+ // Re-import to use mocked version
326
+ const { createEmbeddings } = await import('./embedding');
327
+ const { ProgressManager } = await import('../services/progressManager');
328
+ const mockDocuments = [{ text: 'doc1' }];
329
+ const mockNodes = [{ text: 'node1', metadata: {} }];
330
+ loadDocumentsFromCsv.mockResolvedValue(mockDocuments);
331
+ transformDocumentsToNodes.mockResolvedValue(mockNodes);
332
+ persistNodes.mockResolvedValue('mockIndex');
333
+ // Execute
334
+ await createEmbeddings('path/to/csv', 'text', {}, {}, {});
335
+ // Verify
336
+ const progressManager = ProgressManager.getInstance();
337
+ expect(progressManager.completeOperation).toHaveBeenCalled();
338
+ });
339
+ });
340
+ //# sourceMappingURL=embedding.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedding.test.js","sourceRoot":"","sources":["../../src/api/embedding.test.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,YAAY,EAAE,eAAe,EAAE,2BAA2B,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAGlK,mFAAmF;AAGnF,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AACjC,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AAElC,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC1B,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,aAAa,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YAC3D,MAAM,SAAS,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YACzD,MAAM,SAAS,GAAG,QAAQ,CAAC;YAC3B,oBAAoB,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;YACtD,yBAAyB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACvD,YAAY,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAE1C,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAErE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC5C,oBAAoB,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;YAE9E,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAErE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;YAC3C,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;YAE3C,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAErE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,yFAAyF,EAAE,CAAC,CAAC;QACjJ,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAC9D,MAAM,aAAa,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACtD,MAAM,SAAS,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YACrF,MAAM,gBAAgB,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5F,MAAM,YAAY,GAAG,EAAE,cAAc,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;YAC/E,oBAAoB,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;YACtD,yBAAyB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACvD,YAAY,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;YAE3C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YAE/D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACnB,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,gBAAgB;gBACvB,GAAG,YAAY;aAClB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC5C,oBAAoB,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;YAE9E,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YAE/D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;YAC3C,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;YAE3C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YAE/D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,yFAAyF,EAAE,CAAC,CAAC;QACjJ,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAC9C,MAAM,YAAY,GAAG,UAAU,CAAC;YAChC,mBAAmB,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;YAEpD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,CAAC,CAAC;YAErC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACtB,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,SAAS,GAAG,OAAO,CAAC;YAC1B,2BAA2B,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAEzD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAEtC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACpB,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;YAC1C,MAAM,WAAW,GAAG;gBAChB,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;gBAClE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;aACrE,CAAC;YACF,eAAe,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;YAE/C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAE9C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACnB,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBAC5C,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;aAC/C,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;YAC7C,eAAe,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;YAEtC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAE9C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,WAAW,GAAG;gBAChB,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;gBACrE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;aACxE,CAAC;YACF,eAAe,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;YAE/C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAE9C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACnB,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBAC5C,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;aAC/C,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAED,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,aAAa,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QACrF,MAAM,gBAAgB,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5F,MAAM,YAAY,GAAG,EAAE,cAAc,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QAC/E,oBAAoB,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACtD,yBAAyB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACvD,YAAY,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QAE3C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAE/D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,gBAAgB;YACvB,GAAG,YAAY;SAChB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC9C,oBAAoB,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;QAE9E,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAE/D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,YAAY,GAAG,UAAU,CAAC;QAChC,mBAAmB,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAEpD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,CAAC,CAAC;QAErC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,SAAS,GAAG,OAAO,CAAC;QAC1B,2BAA2B,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAEzD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAEtC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AACD,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACpB,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,WAAW,GAAG;YAChB,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;YAClE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;SACrE,CAAC;QACF,eAAe,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAE/C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE9C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACnB,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC5C,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;SAC/C,CAAC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QACjD,eAAe,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAEtC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE9C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,WAAW,GAAG;YAChB,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;YACrE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;SACxE,CAAC;QACF,eAAe,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAE/C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE9C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACnB,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC5C,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;SAC/C,CAAC,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AACH,QAAQ,CAAC,yCAAyC,EAAE,GAAG,EAAE;IACvD,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,cAAc;QACd,MAAM,aAAa,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QACrF,MAAM,SAAS,GAAG,QAAQ,CAAC;QAC3B,oBAAoB,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACtD,yBAAyB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACvD,YAAY,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;YAC7E,yCAAyC;YACzC,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,eAAe;gBAChC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,gBAAgB;YACnC,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,UAAU;QACV,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAElG,SAAS;QACT,MAAM,CAAC,YAAY,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,6BAA6B;QAC7F,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,QAAQ;QACR,EAAE,CAAC,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;YAC1C,MAAM,YAAY,GAAG;gBACnB,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;gBACvB,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;gBACvB,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE;gBAC1B,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;aACxB,CAAC;YAEF,OAAO;gBACL,eAAe,EAAE;oBACf,WAAW,EAAE,GAAG,EAAE,CAAC,YAAY;iBAChC;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,kCAAkC;QAClC,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACzD,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;QAExE,MAAM,aAAa,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,WAAW,CAAC;QAE9B,oBAAoB,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACtD,yBAAyB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACvD,YAAY,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;YAC7E,IAAI,QAAQ;gBAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,yBAAyB;YACvD,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,UAAU;QACV,MAAM,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAE1D,SAAS;QACT,MAAM,eAAe,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC;QACtD,MAAM,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,GAAG,CAAC,CAAC;QACvG,MAAM,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACnF,MAAM,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QACpG,MAAM,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,yCAAyC;QACzC,EAAE,CAAC,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;YAC1C,MAAM,YAAY,GAAG;gBACnB,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;gBACvB,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;gBACvB,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE;gBAC1B,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;aACxB,CAAC;YAEF,OAAO;gBACL,eAAe,EAAE;oBACf,WAAW,EAAE,GAAG,EAAE,CAAC,YAAY;iBAChC;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,kCAAkC;QAClC,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACzD,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;QAExE,MAAM,aAAa,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QACpD,oBAAoB,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACtD,yBAAyB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAEvD,0EAA0E;QAC1E,YAAY,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;YAC7E,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAE,cAAc;gBAChC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAE,eAAe;gBACjC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB;YACpC,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,UAAU;QACV,MAAM,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAE1D,iCAAiC;QACjC,uBAAuB;QACvB,MAAM,eAAe,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC;QACtD,MAAM,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAEnF,wDAAwD;QACxD,MAAM,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAG,WAAW;QACjG,MAAM,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAE,aAAa;QACnG,MAAM,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAE,cAAc;IACtG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,QAAQ;QACR,EAAE,CAAC,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;YAC1C,MAAM,YAAY,GAAG;gBACnB,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;gBACvB,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;gBACvB,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE;gBAC1B,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;aACxB,CAAC;YAEF,OAAO;gBACL,eAAe,EAAE;oBACf,WAAW,EAAE,GAAG,EAAE,CAAC,YAAY;iBAChC;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,kCAAkC;QAClC,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACzD,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;QAExE,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAE3C,UAAU;QACV,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAEzE,SAAS;QACT,MAAM,eAAe,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC;QACtD,MAAM,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,yFAAyF;SACjG,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,QAAQ;QACR,EAAE,CAAC,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;YAC1C,MAAM,YAAY,GAAG;gBACnB,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;gBACvB,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;gBACvB,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE;gBAC1B,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;aACxB,CAAC;YAEF,OAAO;gBACL,eAAe,EAAE;oBACf,WAAW,EAAE,GAAG,EAAE,CAAC,YAAY;iBAChC;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,kCAAkC;QAClC,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACzD,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;QAExE,MAAM,aAAa,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QACpD,oBAAoB,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACtD,yBAAyB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACvD,YAAY,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAE5C,UAAU;QACV,MAAM,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAE1D,SAAS;QACT,MAAM,eAAe,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC;QACtD,MAAM,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './Meaningfully.js';
2
+ export * from './MetadataManager.js';
3
+ export * from './services/progressManager.js';
4
+ export * from './types/index.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kBAAkB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,6 @@
1
+ export * from './Meaningfully.js';
2
+ export * from './MetadataManager.js';
3
+ export * from './services/progressManager.js';
4
+ export * from './types/index.js';
5
+ // src/index.ts
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kBAAkB,CAAC;AACjC,eAAe"}
@@ -0,0 +1,6 @@
1
+ import { WeaviateVectorStore } from '@llamaindex/weaviate';
2
+ import { BaseNode } from 'llamaindex';
3
+ export declare class BatchingWeaviateVectorStore extends WeaviateVectorStore {
4
+ add(nodes: BaseNode[]): Promise<string[]>;
5
+ }
6
+ //# sourceMappingURL=batchingWeaviateVectorStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batchingWeaviateVectorStore.d.ts","sourceRoot":"","sources":["../../src/services/batchingWeaviateVectorStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAUtC,qBAAa,2BAA4B,SAAQ,mBAAmB;IAC5D,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAUhD"}
@@ -0,0 +1,21 @@
1
+ import { WeaviateVectorStore } from '@llamaindex/weaviate';
2
+ /*
3
+
4
+ Patched version of WeaviateVectorStore to handle large batches by splitting into smaller chunks.
5
+
6
+ When I loaded a large-ish (5.4MB) spreadsheet, I got a Weaviate error about trying to load too much data at once.
7
+
8
+ */
9
+ export class BatchingWeaviateVectorStore extends WeaviateVectorStore {
10
+ async add(nodes) {
11
+ const batchSize = 100; // Define the batch size
12
+ const results = []; // Collect results from each batch
13
+ for (let i = 0; i < nodes.length; i += batchSize) {
14
+ const batch = nodes.slice(i, i + batchSize);
15
+ const batchResults = await super.add(batch); // Call the parent class's add method for each batch
16
+ results.push(...batchResults); // Aggregate results
17
+ }
18
+ return results; // Return aggregated results
19
+ }
20
+ }
21
+ //# sourceMappingURL=batchingWeaviateVectorStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batchingWeaviateVectorStore.js","sourceRoot":"","sources":["../../src/services/batchingWeaviateVectorStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG3D;;;;;;EAME;AAEF,MAAM,OAAO,2BAA4B,SAAQ,mBAAmB;IAClE,KAAK,CAAC,GAAG,CAAC,KAAiB;QACzB,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,wBAAwB;QAC/C,MAAM,OAAO,GAAa,EAAE,CAAC,CAAC,kCAAkC;QAChE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;YACjD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC;YAC5C,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,oDAAoD;YACjG,OAAO,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,oBAAoB;QACrD,CAAC;QACD,OAAO,OAAO,CAAC,CAAC,4BAA4B;IAC9C,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ import { Document } from "llamaindex";
2
+ export declare function loadDocumentsFromCsv(filePath: string, textColumnName: string): Promise<Document[]>;
3
+ //# sourceMappingURL=csvLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csvLoader.d.ts","sourceRoot":"","sources":["../../src/services/csvLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAgBrB"}
@@ -0,0 +1,18 @@
1
+ import { Document } from "llamaindex";
2
+ import { readFileSync } from "fs";
3
+ import Papa from "papaparse";
4
+ export async function loadDocumentsFromCsv(filePath, textColumnName) {
5
+ const fileContent = readFileSync(filePath, "utf-8");
6
+ const { data: records } = Papa.parse(fileContent, {
7
+ header: true,
8
+ skipEmptyLines: true,
9
+ });
10
+ return records.map((record) => {
11
+ const { [textColumnName]: text, ...metadata } = record;
12
+ return new Document({
13
+ text,
14
+ metadata: Object.fromEntries(Object.entries(metadata).map(([k, v]) => [k, v ?? ""])),
15
+ });
16
+ });
17
+ }
18
+ //# sourceMappingURL=csvLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csvLoader.js","sourceRoot":"","sources":["../../src/services/csvLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,QAAgB,EAChB,cAAsB;IAEtB,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACpD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;QAChD,MAAM,EAAE,IAAI;QACZ,cAAc,EAAE,IAAI;KACrB,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE;QACjC,MAAM,EAAE,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,CAAC;QACvD,OAAO,IAAI,QAAQ,CAAC;YAClB,IAAI;YACJ,QAAQ,EAAE,MAAM,CAAC,WAAW,CAC1B,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CACvD;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=csvLoader.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csvLoader.test.d.ts","sourceRoot":"","sources":["../../src/services/csvLoader.test.ts"],"names":[],"mappings":""}