react-native-pageindex 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 (64) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/LICENSE +21 -0
  3. package/README.md +405 -0
  4. package/dist/config.d.ts +4 -0
  5. package/dist/config.d.ts.map +1 -0
  6. package/dist/config.js +22 -0
  7. package/dist/config.js.map +1 -0
  8. package/dist/index.d.ts +49 -0
  9. package/dist/index.d.ts.map +1 -0
  10. package/dist/index.js +75 -0
  11. package/dist/index.js.map +1 -0
  12. package/dist/pageIndex.d.ts +48 -0
  13. package/dist/pageIndex.d.ts.map +1 -0
  14. package/dist/pageIndex.js +962 -0
  15. package/dist/pageIndex.js.map +1 -0
  16. package/dist/pageIndexDocument.d.ts +85 -0
  17. package/dist/pageIndexDocument.d.ts.map +1 -0
  18. package/dist/pageIndexDocument.js +145 -0
  19. package/dist/pageIndexDocument.js.map +1 -0
  20. package/dist/pageIndexMd.d.ts +31 -0
  21. package/dist/pageIndexMd.d.ts.map +1 -0
  22. package/dist/pageIndexMd.js +260 -0
  23. package/dist/pageIndexMd.js.map +1 -0
  24. package/dist/parsers/csv.d.ts +17 -0
  25. package/dist/parsers/csv.d.ts.map +1 -0
  26. package/dist/parsers/csv.js +147 -0
  27. package/dist/parsers/csv.js.map +1 -0
  28. package/dist/parsers/docx.d.ts +20 -0
  29. package/dist/parsers/docx.d.ts.map +1 -0
  30. package/dist/parsers/docx.js +134 -0
  31. package/dist/parsers/docx.js.map +1 -0
  32. package/dist/parsers/xlsx.d.ts +19 -0
  33. package/dist/parsers/xlsx.d.ts.map +1 -0
  34. package/dist/parsers/xlsx.js +121 -0
  35. package/dist/parsers/xlsx.js.map +1 -0
  36. package/dist/reverseIndex.d.ts +39 -0
  37. package/dist/reverseIndex.d.ts.map +1 -0
  38. package/dist/reverseIndex.js +248 -0
  39. package/dist/reverseIndex.js.map +1 -0
  40. package/dist/types.d.ts +190 -0
  41. package/dist/types.d.ts.map +1 -0
  42. package/dist/types.js +4 -0
  43. package/dist/types.js.map +1 -0
  44. package/dist/utils/json.d.ts +13 -0
  45. package/dist/utils/json.d.ts.map +1 -0
  46. package/dist/utils/json.js +69 -0
  47. package/dist/utils/json.js.map +1 -0
  48. package/dist/utils/pdf.d.ts +20 -0
  49. package/dist/utils/pdf.d.ts.map +1 -0
  50. package/dist/utils/pdf.js +96 -0
  51. package/dist/utils/pdf.js.map +1 -0
  52. package/dist/utils/progress.d.ts +29 -0
  53. package/dist/utils/progress.d.ts.map +1 -0
  54. package/dist/utils/progress.js +59 -0
  55. package/dist/utils/progress.js.map +1 -0
  56. package/dist/utils/tokens.d.ts +7 -0
  57. package/dist/utils/tokens.d.ts.map +1 -0
  58. package/dist/utils/tokens.js +12 -0
  59. package/dist/utils/tokens.js.map +1 -0
  60. package/dist/utils/tree.d.ts +88 -0
  61. package/dist/utils/tree.d.ts.map +1 -0
  62. package/dist/utils/tree.js +365 -0
  63. package/dist/utils/tree.js.map +1 -0
  64. package/package.json +76 -0
@@ -0,0 +1,365 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.writeNodeId = writeNodeId;
4
+ exports.getNodes = getNodes;
5
+ exports.structureToList = structureToList;
6
+ exports.getLeafNodes = getLeafNodes;
7
+ exports.listToTree = listToTree;
8
+ exports.postProcessing = postProcessing;
9
+ exports.addPrefaceIfNeeded = addPrefaceIfNeeded;
10
+ exports.addNodeText = addNodeText;
11
+ exports.addNodeTextWithLabels = addNodeTextWithLabels;
12
+ exports.removeFields = removeFields;
13
+ exports.removeStructureText = removeStructureText;
14
+ exports.formatStructure = formatStructure;
15
+ exports.createCleanStructureForDescription = createCleanStructureForDescription;
16
+ exports.validateAndTruncatePhysicalIndices = validateAndTruncatePhysicalIndices;
17
+ exports.convertPhysicalIndexToInt = convertPhysicalIndexToInt;
18
+ exports.convertPageToInt = convertPageToInt;
19
+ exports.deepClone = deepClone;
20
+ // ─── Node ID ──────────────────────────────────────────────────────────────────
21
+ /**
22
+ * Recursively writes sequential zero-padded node_id values to every node.
23
+ * Port of `write_node_id()` from utils.py
24
+ */
25
+ function writeNodeId(data, nodeId = 0) {
26
+ if (Array.isArray(data)) {
27
+ for (const item of data) {
28
+ nodeId = writeNodeId(item, nodeId);
29
+ }
30
+ }
31
+ else if (typeof data === 'object' && data !== null) {
32
+ data.node_id = String(nodeId).padStart(4, '0');
33
+ nodeId += 1;
34
+ if (data.nodes) {
35
+ nodeId = writeNodeId(data.nodes, nodeId);
36
+ }
37
+ }
38
+ return nodeId;
39
+ }
40
+ // ─── Traversal ────────────────────────────────────────────────────────────────
41
+ /**
42
+ * Returns all nodes as a flat list (each node without its `nodes` children).
43
+ * Port of `get_nodes()` from utils.py
44
+ */
45
+ function getNodes(structure) {
46
+ if (Array.isArray(structure)) {
47
+ return structure.flatMap(getNodes);
48
+ }
49
+ const node = { ...structure };
50
+ delete node.nodes;
51
+ const result = [node];
52
+ if (structure.nodes) {
53
+ result.push(...getNodes(structure.nodes));
54
+ }
55
+ return result;
56
+ }
57
+ /**
58
+ * Flattens the tree into a list where each element still contains its `nodes`.
59
+ * Port of `structure_to_list()` from utils.py
60
+ */
61
+ function structureToList(structure) {
62
+ if (Array.isArray(structure)) {
63
+ return structure.flatMap(structureToList);
64
+ }
65
+ const result = [structure];
66
+ if (structure.nodes) {
67
+ result.push(...structureToList(structure.nodes));
68
+ }
69
+ return result;
70
+ }
71
+ /**
72
+ * Returns only leaf nodes (nodes with no children).
73
+ * Port of `get_leaf_nodes()` from utils.py
74
+ */
75
+ function getLeafNodes(structure) {
76
+ if (Array.isArray(structure)) {
77
+ return structure.flatMap(getLeafNodes);
78
+ }
79
+ if (!structure.nodes || structure.nodes.length === 0) {
80
+ const node = { ...structure };
81
+ delete node.nodes;
82
+ return [node];
83
+ }
84
+ return getLeafNodes(structure.nodes);
85
+ }
86
+ // ─── Tree Building ────────────────────────────────────────────────────────────
87
+ function getParentStructure(structure) {
88
+ const parts = structure.split('.');
89
+ return parts.length > 1 ? parts.slice(0, -1).join('.') : null;
90
+ }
91
+ /**
92
+ * Converts a flat list with `structure` index codes (e.g. "1.2.3") into a
93
+ * nested tree. Port of `list_to_tree()` from utils.py
94
+ */
95
+ function listToTree(data) {
96
+ const nodes = {};
97
+ const rootNodes = [];
98
+ for (const item of data) {
99
+ const structure = item.structure ?? '';
100
+ const node = {
101
+ title: item.title ?? '',
102
+ start_index: item.start_index,
103
+ end_index: item.end_index,
104
+ nodes: [],
105
+ };
106
+ nodes[structure] = node;
107
+ const parentStructure = getParentStructure(structure);
108
+ if (parentStructure && nodes[parentStructure]) {
109
+ nodes[parentStructure].nodes.push(node);
110
+ }
111
+ else {
112
+ rootNodes.push(node);
113
+ }
114
+ }
115
+ const cleanNode = (node) => {
116
+ if (!node.nodes || node.nodes.length === 0) {
117
+ delete node.nodes;
118
+ }
119
+ else {
120
+ node.nodes = node.nodes.map(cleanNode);
121
+ }
122
+ return node;
123
+ };
124
+ return rootNodes.map(cleanNode);
125
+ }
126
+ // ─── Post Processing ──────────────────────────────────────────────────────────
127
+ /**
128
+ * Converts a flat TOC list (with `physical_index`) into a tree, assigning
129
+ * `start_index` and `end_index` to each node.
130
+ * Port of `post_processing()` from utils.py
131
+ */
132
+ function postProcessing(structure, endPhysicalIndex) {
133
+ // Assign start_index and end_index from physical_index
134
+ for (let i = 0; i < structure.length; i++) {
135
+ structure[i].start_index = structure[i].physical_index ?? undefined;
136
+ if (i < structure.length - 1) {
137
+ const nextItem = structure[i + 1];
138
+ structure[i].end_index =
139
+ nextItem.appear_start === 'yes'
140
+ ? (nextItem.physical_index ?? 1) - 1
141
+ : nextItem.physical_index ?? undefined;
142
+ }
143
+ else {
144
+ structure[i].end_index = endPhysicalIndex;
145
+ }
146
+ }
147
+ const tree = listToTree(structure);
148
+ if (tree.length !== 0) {
149
+ return tree;
150
+ }
151
+ // Fallback: return the flat list cleaned up
152
+ for (const node of structure) {
153
+ delete node.appear_start;
154
+ delete node.physical_index;
155
+ }
156
+ return structure;
157
+ }
158
+ /**
159
+ * Inserts a "Preface" node at the beginning if the first section starts
160
+ * after page 1. Port of `add_preface_if_needed()` from utils.py
161
+ */
162
+ function addPrefaceIfNeeded(data) {
163
+ if (!Array.isArray(data) || data.length === 0)
164
+ return data;
165
+ if (data[0].physical_index != null && data[0].physical_index > 1) {
166
+ data.unshift({
167
+ structure: '0',
168
+ title: 'Preface',
169
+ physical_index: 1,
170
+ });
171
+ }
172
+ return data;
173
+ }
174
+ // ─── Text Attachment ──────────────────────────────────────────────────────────
175
+ function getPdfPageText(pages, startPage, endPage) {
176
+ let text = '';
177
+ for (let i = startPage - 1; i < endPage && i < pages.length; i++) {
178
+ text += pages[i].text;
179
+ }
180
+ return text;
181
+ }
182
+ function getPdfPageTextWithLabels(pages, startPage, endPage) {
183
+ let text = '';
184
+ for (let i = startPage - 1; i < endPage && i < pages.length; i++) {
185
+ text += `<physical_index_${i + 1}>\n${pages[i].text}\n<physical_index_${i + 1}>\n`;
186
+ }
187
+ return text;
188
+ }
189
+ /**
190
+ * Attaches raw page text to each node based on its start/end indices.
191
+ * Port of `add_node_text()` from utils.py
192
+ */
193
+ function addNodeText(node, pages) {
194
+ if (Array.isArray(node)) {
195
+ for (const n of node)
196
+ addNodeText(n, pages);
197
+ return;
198
+ }
199
+ if (node.start_index != null && node.end_index != null) {
200
+ node.text = getPdfPageText(pages, node.start_index, node.end_index);
201
+ }
202
+ if (node.nodes)
203
+ addNodeText(node.nodes, pages);
204
+ }
205
+ /**
206
+ * Same as `addNodeText` but wraps text in `<physical_index_X>` tags.
207
+ * Port of `add_node_text_with_labels()` from utils.py
208
+ */
209
+ function addNodeTextWithLabels(node, pages) {
210
+ if (Array.isArray(node)) {
211
+ for (const n of node)
212
+ addNodeTextWithLabels(n, pages);
213
+ return;
214
+ }
215
+ if (node.start_index != null && node.end_index != null) {
216
+ node.text = getPdfPageTextWithLabels(pages, node.start_index, node.end_index);
217
+ }
218
+ if (node.nodes)
219
+ addNodeTextWithLabels(node.nodes, pages);
220
+ }
221
+ // ─── Cleanup ──────────────────────────────────────────────────────────────────
222
+ /**
223
+ * Recursively removes specified fields from all nodes.
224
+ * Port of `remove_fields()` from utils.py
225
+ */
226
+ function removeFields(data, fields = ['text']) {
227
+ if (Array.isArray(data)) {
228
+ return data.map((item) => removeFields(item, fields));
229
+ }
230
+ if (typeof data === 'object' && data !== null) {
231
+ return Object.fromEntries(Object.entries(data)
232
+ .filter(([k]) => !fields.includes(k))
233
+ .map(([k, v]) => [k, removeFields(v, fields)]));
234
+ }
235
+ return data;
236
+ }
237
+ /**
238
+ * Removes the `text` field from all nodes in-place.
239
+ * Port of `remove_structure_text()` from utils.py
240
+ */
241
+ function removeStructureText(data) {
242
+ if (Array.isArray(data)) {
243
+ for (const item of data)
244
+ removeStructureText(item);
245
+ }
246
+ else if (typeof data === 'object' && data !== null) {
247
+ delete data.text;
248
+ if (data.nodes)
249
+ removeStructureText(data.nodes);
250
+ }
251
+ return data;
252
+ }
253
+ function reorderDict(data, keyOrder) {
254
+ return Object.fromEntries(keyOrder.filter((k) => k in data).map((k) => [k, data[k]]));
255
+ }
256
+ /**
257
+ * Re-orders keys of each node and optionally removes empty `nodes` arrays.
258
+ * Port of `format_structure()` from utils.py
259
+ */
260
+ function formatStructure(structure, order) {
261
+ if (!order)
262
+ return structure;
263
+ if (Array.isArray(structure)) {
264
+ return structure.map((item) => formatStructure(item, order));
265
+ }
266
+ if (typeof structure === 'object' && structure !== null) {
267
+ const s = structure;
268
+ if (s['nodes']) {
269
+ s['nodes'] = formatStructure(s['nodes'], order);
270
+ }
271
+ if (!s['nodes'] || (Array.isArray(s['nodes']) && s['nodes'].length === 0)) {
272
+ delete s['nodes'];
273
+ }
274
+ return reorderDict(s, order);
275
+ }
276
+ return structure;
277
+ }
278
+ // ─── Description Helper ───────────────────────────────────────────────────────
279
+ /**
280
+ * Creates a minimal structure (only title, node_id, summary, prefix_summary)
281
+ * suitable for document description generation.
282
+ * Port of `create_clean_structure_for_description()` from utils.py
283
+ */
284
+ function createCleanStructureForDescription(structure) {
285
+ if (Array.isArray(structure)) {
286
+ return structure.map((item) => createCleanStructureForDescription(item));
287
+ }
288
+ const clean = { title: structure.title };
289
+ if (structure.node_id)
290
+ clean.node_id = structure.node_id;
291
+ if (structure.summary)
292
+ clean.summary = structure.summary;
293
+ if (structure.prefix_summary)
294
+ clean.prefix_summary = structure.prefix_summary;
295
+ if (structure.nodes && structure.nodes.length > 0) {
296
+ clean.nodes = createCleanStructureForDescription(structure.nodes);
297
+ }
298
+ return clean;
299
+ }
300
+ // ─── Validation ───────────────────────────────────────────────────────────────
301
+ /**
302
+ * Sets `physical_index` to null for any TOC item that references a page
303
+ * beyond the actual document length.
304
+ * Port of `validate_and_truncate_physical_indices()` from utils.py
305
+ */
306
+ function validateAndTruncatePhysicalIndices(tocItems, pageListLength, startIndex = 1) {
307
+ if (!tocItems || tocItems.length === 0)
308
+ return tocItems;
309
+ const maxAllowedPage = pageListLength + startIndex - 1;
310
+ let truncatedCount = 0;
311
+ for (const item of tocItems) {
312
+ if (item.physical_index != null && item.physical_index > maxAllowedPage) {
313
+ item.physical_index = null;
314
+ truncatedCount++;
315
+ }
316
+ }
317
+ if (truncatedCount > 0) {
318
+ console.warn(`[PageIndex] Truncated ${truncatedCount} TOC items that exceeded document length`);
319
+ }
320
+ return tocItems;
321
+ }
322
+ // ─── Physical Index Conversion ────────────────────────────────────────────────
323
+ /**
324
+ * Converts string-form `<physical_index_X>` values to integers in-place.
325
+ * Port of `convert_physical_index_to_int()` from utils.py
326
+ */
327
+ function convertPhysicalIndexToInt(data) {
328
+ if (typeof data === 'string') {
329
+ const match = data.match(/physical_index_(\d+)/);
330
+ if (match)
331
+ return parseInt(match[1], 10);
332
+ return null;
333
+ }
334
+ if (Array.isArray(data)) {
335
+ for (const item of data) {
336
+ if (typeof item.physical_index === 'string') {
337
+ const match = item.physical_index.match(/physical_index_(\d+)/);
338
+ if (match)
339
+ item.physical_index = parseInt(match[1], 10);
340
+ else
341
+ item.physical_index = null;
342
+ }
343
+ }
344
+ }
345
+ return data;
346
+ }
347
+ /**
348
+ * Converts string `page` values to numbers in-place.
349
+ * Port of `convert_page_to_int()` from utils.py
350
+ */
351
+ function convertPageToInt(data) {
352
+ for (const item of data) {
353
+ if (typeof item.page === 'string') {
354
+ const parsed = parseInt(item.page, 10);
355
+ item.page = isNaN(parsed) ? null : parsed;
356
+ }
357
+ }
358
+ return data;
359
+ }
360
+ function deepClone(value) {
361
+ if (typeof structuredClone !== 'undefined')
362
+ return structuredClone(value);
363
+ return JSON.parse(JSON.stringify(value));
364
+ }
365
+ //# sourceMappingURL=tree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../src/utils/tree.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,76 @@
1
+ {
2
+ "name": "react-native-pageindex",
3
+ "version": "0.1.0",
4
+ "description": "Vectorless, reasoning-based RAG — builds a hierarchical tree index from PDF, DOCX, CSV, XLSX or Markdown using any LLM. React Native compatible.",
5
+ "main": "dist/index.js",
6
+ "module": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "require": "./dist/index.js",
12
+ "import": "./dist/index.js",
13
+ "default": "./dist/index.js"
14
+ }
15
+ },
16
+ "files": [
17
+ "dist",
18
+ "README.md",
19
+ "CHANGELOG.md",
20
+ "LICENSE"
21
+ ],
22
+ "scripts": {
23
+ "build": "tsc",
24
+ "prepare": "tsc",
25
+ "prepublishOnly": "npm run build",
26
+ "typecheck": "tsc --noEmit"
27
+ },
28
+ "keywords": [
29
+ "react-native",
30
+ "rag",
31
+ "pdf",
32
+ "docx",
33
+ "csv",
34
+ "xlsx",
35
+ "llm",
36
+ "page-index",
37
+ "document-analysis",
38
+ "tree-index",
39
+ "inverted-index",
40
+ "reverse-index",
41
+ "retrieval-augmented-generation",
42
+ "knowledge-base"
43
+ ],
44
+ "author": {
45
+ "name": "subham11",
46
+ "url": "https://github.com/subham11"
47
+ },
48
+ "license": "MIT",
49
+ "repository": {
50
+ "type": "git",
51
+ "url": "git+https://github.com/subham11/react-native-pageindex.git"
52
+ },
53
+ "bugs": {
54
+ "url": "https://github.com/subham11/react-native-pageindex/issues"
55
+ },
56
+ "homepage": "https://github.com/subham11/react-native-pageindex#readme",
57
+ "engines": {
58
+ "node": ">=16.0.0"
59
+ },
60
+ "peerDependencies": {
61
+ "react-native": ">=0.70.0"
62
+ },
63
+ "peerDependenciesMeta": {
64
+ "react-native": {
65
+ "optional": true
66
+ }
67
+ },
68
+ "optionalDependencies": {
69
+ "pdfjs-dist": ">=4.0.0",
70
+ "mammoth": ">=1.6.0",
71
+ "xlsx": ">=0.18.0"
72
+ },
73
+ "devDependencies": {
74
+ "typescript": "^5.0.0"
75
+ }
76
+ }