@danielsimonjr/memoryjs 1.0.0 → 1.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.
- package/README.md +385 -113
- package/README.md.backup-1768084780988 +266 -0
- package/dist/index.cjs +17364 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +12371 -0
- package/dist/index.d.ts +12367 -11
- package/dist/index.js +17102 -19
- package/dist/index.js.map +1 -1
- package/dist/workers/levenshteinWorker.cjs +102 -0
- package/dist/workers/levenshteinWorker.cjs.map +1 -0
- package/dist/workers/levenshteinWorker.js +57 -91
- package/dist/workers/levenshteinWorker.js.map +1 -1
- package/package.json +12 -6
- package/dist/core/EntityManager.d.ts +0 -268
- package/dist/core/EntityManager.d.ts.map +0 -1
- package/dist/core/EntityManager.js +0 -512
- package/dist/core/EntityManager.js.map +0 -1
- package/dist/core/GraphEventEmitter.d.ts +0 -202
- package/dist/core/GraphEventEmitter.d.ts.map +0 -1
- package/dist/core/GraphEventEmitter.js +0 -347
- package/dist/core/GraphEventEmitter.js.map +0 -1
- package/dist/core/GraphStorage.d.ts +0 -395
- package/dist/core/GraphStorage.d.ts.map +0 -1
- package/dist/core/GraphStorage.js +0 -786
- package/dist/core/GraphStorage.js.map +0 -1
- package/dist/core/GraphTraversal.d.ts +0 -141
- package/dist/core/GraphTraversal.d.ts.map +0 -1
- package/dist/core/GraphTraversal.js +0 -574
- package/dist/core/GraphTraversal.js.map +0 -1
- package/dist/core/HierarchyManager.d.ts +0 -111
- package/dist/core/HierarchyManager.d.ts.map +0 -1
- package/dist/core/HierarchyManager.js +0 -225
- package/dist/core/HierarchyManager.js.map +0 -1
- package/dist/core/ManagerContext.d.ts +0 -76
- package/dist/core/ManagerContext.d.ts.map +0 -1
- package/dist/core/ManagerContext.js +0 -129
- package/dist/core/ManagerContext.js.map +0 -1
- package/dist/core/ObservationManager.d.ts +0 -85
- package/dist/core/ObservationManager.d.ts.map +0 -1
- package/dist/core/ObservationManager.js +0 -124
- package/dist/core/ObservationManager.js.map +0 -1
- package/dist/core/RelationManager.d.ts +0 -131
- package/dist/core/RelationManager.d.ts.map +0 -1
- package/dist/core/RelationManager.js +0 -212
- package/dist/core/RelationManager.js.map +0 -1
- package/dist/core/SQLiteStorage.d.ts +0 -354
- package/dist/core/SQLiteStorage.d.ts.map +0 -1
- package/dist/core/SQLiteStorage.js +0 -919
- package/dist/core/SQLiteStorage.js.map +0 -1
- package/dist/core/StorageFactory.d.ts +0 -45
- package/dist/core/StorageFactory.d.ts.map +0 -1
- package/dist/core/StorageFactory.js +0 -65
- package/dist/core/StorageFactory.js.map +0 -1
- package/dist/core/TransactionManager.d.ts +0 -464
- package/dist/core/TransactionManager.d.ts.map +0 -1
- package/dist/core/TransactionManager.js +0 -869
- package/dist/core/TransactionManager.js.map +0 -1
- package/dist/core/index.d.ts +0 -17
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -20
- package/dist/core/index.js.map +0 -1
- package/dist/features/AnalyticsManager.d.ts +0 -44
- package/dist/features/AnalyticsManager.d.ts.map +0 -1
- package/dist/features/AnalyticsManager.js +0 -224
- package/dist/features/AnalyticsManager.js.map +0 -1
- package/dist/features/ArchiveManager.d.ts +0 -133
- package/dist/features/ArchiveManager.d.ts.map +0 -1
- package/dist/features/ArchiveManager.js +0 -282
- package/dist/features/ArchiveManager.js.map +0 -1
- package/dist/features/CompressionManager.d.ts +0 -119
- package/dist/features/CompressionManager.d.ts.map +0 -1
- package/dist/features/CompressionManager.js +0 -470
- package/dist/features/CompressionManager.js.map +0 -1
- package/dist/features/IOManager.d.ts +0 -225
- package/dist/features/IOManager.d.ts.map +0 -1
- package/dist/features/IOManager.js +0 -1093
- package/dist/features/IOManager.js.map +0 -1
- package/dist/features/KeywordExtractor.d.ts +0 -61
- package/dist/features/KeywordExtractor.d.ts.map +0 -1
- package/dist/features/KeywordExtractor.js +0 -127
- package/dist/features/KeywordExtractor.js.map +0 -1
- package/dist/features/ObservationNormalizer.d.ts +0 -90
- package/dist/features/ObservationNormalizer.d.ts.map +0 -1
- package/dist/features/ObservationNormalizer.js +0 -194
- package/dist/features/ObservationNormalizer.js.map +0 -1
- package/dist/features/StreamingExporter.d.ts +0 -128
- package/dist/features/StreamingExporter.d.ts.map +0 -1
- package/dist/features/StreamingExporter.js +0 -212
- package/dist/features/StreamingExporter.js.map +0 -1
- package/dist/features/TagManager.d.ts +0 -147
- package/dist/features/TagManager.d.ts.map +0 -1
- package/dist/features/TagManager.js +0 -211
- package/dist/features/TagManager.js.map +0 -1
- package/dist/features/index.d.ts +0 -14
- package/dist/features/index.d.ts.map +0 -1
- package/dist/features/index.js +0 -15
- package/dist/features/index.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/search/BM25Search.d.ts +0 -148
- package/dist/search/BM25Search.d.ts.map +0 -1
- package/dist/search/BM25Search.js +0 -340
- package/dist/search/BM25Search.js.map +0 -1
- package/dist/search/BasicSearch.d.ts +0 -51
- package/dist/search/BasicSearch.d.ts.map +0 -1
- package/dist/search/BasicSearch.js +0 -138
- package/dist/search/BasicSearch.js.map +0 -1
- package/dist/search/BooleanSearch.d.ts +0 -98
- package/dist/search/BooleanSearch.d.ts.map +0 -1
- package/dist/search/BooleanSearch.js +0 -431
- package/dist/search/BooleanSearch.js.map +0 -1
- package/dist/search/EarlyTerminationManager.d.ts +0 -140
- package/dist/search/EarlyTerminationManager.d.ts.map +0 -1
- package/dist/search/EarlyTerminationManager.js +0 -280
- package/dist/search/EarlyTerminationManager.js.map +0 -1
- package/dist/search/EmbeddingCache.d.ts +0 -175
- package/dist/search/EmbeddingCache.d.ts.map +0 -1
- package/dist/search/EmbeddingCache.js +0 -247
- package/dist/search/EmbeddingCache.js.map +0 -1
- package/dist/search/EmbeddingService.d.ts +0 -277
- package/dist/search/EmbeddingService.d.ts.map +0 -1
- package/dist/search/EmbeddingService.js +0 -531
- package/dist/search/EmbeddingService.js.map +0 -1
- package/dist/search/FuzzySearch.d.ts +0 -118
- package/dist/search/FuzzySearch.d.ts.map +0 -1
- package/dist/search/FuzzySearch.js +0 -313
- package/dist/search/FuzzySearch.js.map +0 -1
- package/dist/search/HybridScorer.d.ts +0 -181
- package/dist/search/HybridScorer.d.ts.map +0 -1
- package/dist/search/HybridScorer.js +0 -258
- package/dist/search/HybridScorer.js.map +0 -1
- package/dist/search/HybridSearchManager.d.ts +0 -80
- package/dist/search/HybridSearchManager.d.ts.map +0 -1
- package/dist/search/HybridSearchManager.js +0 -188
- package/dist/search/HybridSearchManager.js.map +0 -1
- package/dist/search/IncrementalIndexer.d.ts +0 -201
- package/dist/search/IncrementalIndexer.d.ts.map +0 -1
- package/dist/search/IncrementalIndexer.js +0 -343
- package/dist/search/IncrementalIndexer.js.map +0 -1
- package/dist/search/OptimizedInvertedIndex.d.ts +0 -163
- package/dist/search/OptimizedInvertedIndex.d.ts.map +0 -1
- package/dist/search/OptimizedInvertedIndex.js +0 -359
- package/dist/search/OptimizedInvertedIndex.js.map +0 -1
- package/dist/search/ParallelSearchExecutor.d.ts +0 -172
- package/dist/search/ParallelSearchExecutor.d.ts.map +0 -1
- package/dist/search/ParallelSearchExecutor.js +0 -310
- package/dist/search/ParallelSearchExecutor.js.map +0 -1
- package/dist/search/QuantizedVectorStore.d.ts +0 -171
- package/dist/search/QuantizedVectorStore.d.ts.map +0 -1
- package/dist/search/QuantizedVectorStore.js +0 -308
- package/dist/search/QuantizedVectorStore.js.map +0 -1
- package/dist/search/QueryAnalyzer.d.ts +0 -76
- package/dist/search/QueryAnalyzer.d.ts.map +0 -1
- package/dist/search/QueryAnalyzer.js +0 -228
- package/dist/search/QueryAnalyzer.js.map +0 -1
- package/dist/search/QueryCostEstimator.d.ts +0 -244
- package/dist/search/QueryCostEstimator.d.ts.map +0 -1
- package/dist/search/QueryCostEstimator.js +0 -653
- package/dist/search/QueryCostEstimator.js.map +0 -1
- package/dist/search/QueryPlanCache.d.ts +0 -220
- package/dist/search/QueryPlanCache.d.ts.map +0 -1
- package/dist/search/QueryPlanCache.js +0 -380
- package/dist/search/QueryPlanCache.js.map +0 -1
- package/dist/search/QueryPlanner.d.ts +0 -58
- package/dist/search/QueryPlanner.d.ts.map +0 -1
- package/dist/search/QueryPlanner.js +0 -138
- package/dist/search/QueryPlanner.js.map +0 -1
- package/dist/search/RankedSearch.d.ts +0 -71
- package/dist/search/RankedSearch.d.ts.map +0 -1
- package/dist/search/RankedSearch.js +0 -239
- package/dist/search/RankedSearch.js.map +0 -1
- package/dist/search/ReflectionManager.d.ts +0 -120
- package/dist/search/ReflectionManager.d.ts.map +0 -1
- package/dist/search/ReflectionManager.js +0 -232
- package/dist/search/ReflectionManager.js.map +0 -1
- package/dist/search/SavedSearchManager.d.ts +0 -79
- package/dist/search/SavedSearchManager.d.ts.map +0 -1
- package/dist/search/SavedSearchManager.js +0 -147
- package/dist/search/SavedSearchManager.js.map +0 -1
- package/dist/search/SearchFilterChain.d.ts +0 -120
- package/dist/search/SearchFilterChain.d.ts.map +0 -1
- package/dist/search/SearchFilterChain.js +0 -186
- package/dist/search/SearchFilterChain.js.map +0 -1
- package/dist/search/SearchManager.d.ts +0 -326
- package/dist/search/SearchManager.d.ts.map +0 -1
- package/dist/search/SearchManager.js +0 -454
- package/dist/search/SearchManager.js.map +0 -1
- package/dist/search/SearchSuggestions.d.ts +0 -27
- package/dist/search/SearchSuggestions.d.ts.map +0 -1
- package/dist/search/SearchSuggestions.js +0 -58
- package/dist/search/SearchSuggestions.js.map +0 -1
- package/dist/search/SemanticSearch.d.ts +0 -149
- package/dist/search/SemanticSearch.d.ts.map +0 -1
- package/dist/search/SemanticSearch.js +0 -324
- package/dist/search/SemanticSearch.js.map +0 -1
- package/dist/search/SymbolicSearch.d.ts +0 -61
- package/dist/search/SymbolicSearch.d.ts.map +0 -1
- package/dist/search/SymbolicSearch.js +0 -164
- package/dist/search/SymbolicSearch.js.map +0 -1
- package/dist/search/TFIDFEventSync.d.ts +0 -85
- package/dist/search/TFIDFEventSync.d.ts.map +0 -1
- package/dist/search/TFIDFEventSync.js +0 -134
- package/dist/search/TFIDFEventSync.js.map +0 -1
- package/dist/search/TFIDFIndexManager.d.ts +0 -151
- package/dist/search/TFIDFIndexManager.d.ts.map +0 -1
- package/dist/search/TFIDFIndexManager.js +0 -433
- package/dist/search/TFIDFIndexManager.js.map +0 -1
- package/dist/search/VectorStore.d.ts +0 -235
- package/dist/search/VectorStore.d.ts.map +0 -1
- package/dist/search/VectorStore.js +0 -312
- package/dist/search/VectorStore.js.map +0 -1
- package/dist/search/index.d.ts +0 -35
- package/dist/search/index.d.ts.map +0 -1
- package/dist/search/index.js +0 -53
- package/dist/search/index.js.map +0 -1
- package/dist/types/index.d.ts +0 -13
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -13
- package/dist/types/index.js.map +0 -1
- package/dist/types/types.d.ts +0 -1811
- package/dist/types/types.d.ts.map +0 -1
- package/dist/types/types.js +0 -10
- package/dist/types/types.js.map +0 -1
- package/dist/utils/BatchProcessor.d.ts +0 -271
- package/dist/utils/BatchProcessor.d.ts.map +0 -1
- package/dist/utils/BatchProcessor.js +0 -377
- package/dist/utils/BatchProcessor.js.map +0 -1
- package/dist/utils/MemoryMonitor.d.ts +0 -176
- package/dist/utils/MemoryMonitor.d.ts.map +0 -1
- package/dist/utils/MemoryMonitor.js +0 -306
- package/dist/utils/MemoryMonitor.js.map +0 -1
- package/dist/utils/WorkerPoolManager.d.ts +0 -233
- package/dist/utils/WorkerPoolManager.d.ts.map +0 -1
- package/dist/utils/WorkerPoolManager.js +0 -421
- package/dist/utils/WorkerPoolManager.js.map +0 -1
- package/dist/utils/compressedCache.d.ts +0 -221
- package/dist/utils/compressedCache.d.ts.map +0 -1
- package/dist/utils/compressedCache.js +0 -349
- package/dist/utils/compressedCache.js.map +0 -1
- package/dist/utils/compressionUtil.d.ts +0 -214
- package/dist/utils/compressionUtil.d.ts.map +0 -1
- package/dist/utils/compressionUtil.js +0 -248
- package/dist/utils/compressionUtil.js.map +0 -1
- package/dist/utils/constants.d.ts +0 -245
- package/dist/utils/constants.d.ts.map +0 -1
- package/dist/utils/constants.js +0 -253
- package/dist/utils/constants.js.map +0 -1
- package/dist/utils/entityUtils.d.ts +0 -379
- package/dist/utils/entityUtils.d.ts.map +0 -1
- package/dist/utils/entityUtils.js +0 -649
- package/dist/utils/entityUtils.js.map +0 -1
- package/dist/utils/errors.d.ts +0 -95
- package/dist/utils/errors.d.ts.map +0 -1
- package/dist/utils/errors.js +0 -146
- package/dist/utils/errors.js.map +0 -1
- package/dist/utils/formatters.d.ts +0 -145
- package/dist/utils/formatters.d.ts.map +0 -1
- package/dist/utils/formatters.js +0 -133
- package/dist/utils/formatters.js.map +0 -1
- package/dist/utils/index.d.ts +0 -26
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -88
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/indexes.d.ts +0 -270
- package/dist/utils/indexes.d.ts.map +0 -1
- package/dist/utils/indexes.js +0 -527
- package/dist/utils/indexes.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -31
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js +0 -41
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/operationUtils.d.ts +0 -124
- package/dist/utils/operationUtils.d.ts.map +0 -1
- package/dist/utils/operationUtils.js +0 -176
- package/dist/utils/operationUtils.js.map +0 -1
- package/dist/utils/parallelUtils.d.ts +0 -76
- package/dist/utils/parallelUtils.d.ts.map +0 -1
- package/dist/utils/parallelUtils.js +0 -192
- package/dist/utils/parallelUtils.js.map +0 -1
- package/dist/utils/schemas.d.ts +0 -556
- package/dist/utils/schemas.d.ts.map +0 -1
- package/dist/utils/schemas.js +0 -485
- package/dist/utils/schemas.js.map +0 -1
- package/dist/utils/searchAlgorithms.d.ts +0 -99
- package/dist/utils/searchAlgorithms.d.ts.map +0 -1
- package/dist/utils/searchAlgorithms.js +0 -168
- package/dist/utils/searchAlgorithms.js.map +0 -1
- package/dist/utils/searchCache.d.ts +0 -108
- package/dist/utils/searchCache.d.ts.map +0 -1
- package/dist/utils/searchCache.js +0 -210
- package/dist/utils/searchCache.js.map +0 -1
- package/dist/utils/taskScheduler.d.ts +0 -294
- package/dist/utils/taskScheduler.d.ts.map +0 -1
- package/dist/utils/taskScheduler.js +0 -487
- package/dist/utils/taskScheduler.js.map +0 -1
- package/dist/workers/index.d.ts +0 -12
- package/dist/workers/index.d.ts.map +0 -1
- package/dist/workers/index.js +0 -10
- package/dist/workers/index.js.map +0 -1
- package/dist/workers/levenshteinWorker.d.ts +0 -60
- package/dist/workers/levenshteinWorker.d.ts.map +0 -1
package/dist/utils/schemas.js
DELETED
|
@@ -1,485 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Validation Schemas and Helpers
|
|
3
|
-
*
|
|
4
|
-
* Consolidated module for Zod schemas and validation utilities.
|
|
5
|
-
* Provides runtime type safety and data validation.
|
|
6
|
-
*
|
|
7
|
-
* @module utils/schemas
|
|
8
|
-
*/
|
|
9
|
-
import { z } from 'zod';
|
|
10
|
-
import { IMPORTANCE_RANGE } from './constants.js';
|
|
11
|
-
import { ValidationError } from './errors.js';
|
|
12
|
-
// ==================== Constants ====================
|
|
13
|
-
/**
|
|
14
|
-
* Importance range constants (imported from centralized constants).
|
|
15
|
-
*/
|
|
16
|
-
const MIN_IMPORTANCE = IMPORTANCE_RANGE.MIN;
|
|
17
|
-
const MAX_IMPORTANCE = IMPORTANCE_RANGE.MAX;
|
|
18
|
-
// ==================== Base Schema Components ====================
|
|
19
|
-
/**
|
|
20
|
-
* ISO 8601 date string validation.
|
|
21
|
-
* Accepts standard ISO format: YYYY-MM-DDTHH:mm:ss.sssZ
|
|
22
|
-
*/
|
|
23
|
-
const isoDateSchema = z.string().datetime({ message: 'Must be a valid ISO 8601 date string' });
|
|
24
|
-
/**
|
|
25
|
-
* Entity name validation.
|
|
26
|
-
* Must be a non-empty string with reasonable length constraints.
|
|
27
|
-
*/
|
|
28
|
-
const entityNameSchema = z.string()
|
|
29
|
-
.min(1, 'Entity name cannot be empty')
|
|
30
|
-
.max(500, 'Entity name cannot exceed 500 characters')
|
|
31
|
-
.trim();
|
|
32
|
-
/**
|
|
33
|
-
* Entity type validation.
|
|
34
|
-
* Must be a non-empty string (e.g., "person", "project", "concept").
|
|
35
|
-
*/
|
|
36
|
-
const entityTypeSchema = z.string()
|
|
37
|
-
.min(1, 'Entity type cannot be empty')
|
|
38
|
-
.max(100, 'Entity type cannot exceed 100 characters')
|
|
39
|
-
.trim();
|
|
40
|
-
/**
|
|
41
|
-
* Observation validation.
|
|
42
|
-
* Each observation must be a non-empty string.
|
|
43
|
-
*/
|
|
44
|
-
const observationSchema = z.string()
|
|
45
|
-
.min(1, 'Observation cannot be empty')
|
|
46
|
-
.max(5000, 'Observation cannot exceed 5000 characters');
|
|
47
|
-
/**
|
|
48
|
-
* Tag validation.
|
|
49
|
-
* Tags are normalized to lowercase and must be non-empty.
|
|
50
|
-
*/
|
|
51
|
-
const tagSchema = z.string()
|
|
52
|
-
.min(1, 'Tag cannot be empty')
|
|
53
|
-
.max(100, 'Tag cannot exceed 100 characters')
|
|
54
|
-
.trim()
|
|
55
|
-
.toLowerCase();
|
|
56
|
-
/**
|
|
57
|
-
* Importance validation.
|
|
58
|
-
* Must be a number between MIN_IMPORTANCE and MAX_IMPORTANCE (0-10).
|
|
59
|
-
*/
|
|
60
|
-
const importanceSchema = z.number()
|
|
61
|
-
.int('Importance must be an integer')
|
|
62
|
-
.min(MIN_IMPORTANCE, `Importance must be at least ${MIN_IMPORTANCE}`)
|
|
63
|
-
.max(MAX_IMPORTANCE, `Importance must be at most ${MAX_IMPORTANCE}`);
|
|
64
|
-
/**
|
|
65
|
-
* Relation type validation.
|
|
66
|
-
* Should be in snake_case format (e.g., "works_at", "manages").
|
|
67
|
-
*/
|
|
68
|
-
const relationTypeSchema = z.string()
|
|
69
|
-
.min(1, 'Relation type cannot be empty')
|
|
70
|
-
.max(100, 'Relation type cannot exceed 100 characters')
|
|
71
|
-
.trim();
|
|
72
|
-
// ==================== Entity Schemas ====================
|
|
73
|
-
/**
|
|
74
|
-
* Complete Entity schema with all fields.
|
|
75
|
-
* Used for validating full entity objects including timestamps.
|
|
76
|
-
*/
|
|
77
|
-
export const EntitySchema = z.object({
|
|
78
|
-
name: entityNameSchema,
|
|
79
|
-
entityType: entityTypeSchema,
|
|
80
|
-
observations: z.array(observationSchema),
|
|
81
|
-
createdAt: isoDateSchema.optional(),
|
|
82
|
-
lastModified: isoDateSchema.optional(),
|
|
83
|
-
tags: z.array(tagSchema).optional(),
|
|
84
|
-
importance: importanceSchema.optional(),
|
|
85
|
-
parentId: entityNameSchema.optional(),
|
|
86
|
-
}).strict();
|
|
87
|
-
/**
|
|
88
|
-
* Entity creation input schema.
|
|
89
|
-
* Used for validating user input when creating new entities.
|
|
90
|
-
* Timestamps are optional and will be auto-generated if not provided.
|
|
91
|
-
*/
|
|
92
|
-
export const CreateEntitySchema = z.object({
|
|
93
|
-
name: entityNameSchema,
|
|
94
|
-
entityType: entityTypeSchema,
|
|
95
|
-
observations: z.array(observationSchema),
|
|
96
|
-
tags: z.array(tagSchema).optional(),
|
|
97
|
-
importance: importanceSchema.optional(),
|
|
98
|
-
parentId: entityNameSchema.optional(),
|
|
99
|
-
createdAt: isoDateSchema.optional(),
|
|
100
|
-
lastModified: isoDateSchema.optional(),
|
|
101
|
-
}).strict();
|
|
102
|
-
/**
|
|
103
|
-
* Entity update input schema.
|
|
104
|
-
* All fields are optional for partial updates.
|
|
105
|
-
* Name cannot be updated (it's the unique identifier).
|
|
106
|
-
*/
|
|
107
|
-
export const UpdateEntitySchema = z.object({
|
|
108
|
-
entityType: entityTypeSchema.optional(),
|
|
109
|
-
observations: z.array(observationSchema).optional(),
|
|
110
|
-
tags: z.array(tagSchema).optional(),
|
|
111
|
-
importance: importanceSchema.optional(),
|
|
112
|
-
parentId: entityNameSchema.optional(),
|
|
113
|
-
}).strict();
|
|
114
|
-
// ==================== Relation Schemas ====================
|
|
115
|
-
/**
|
|
116
|
-
* Complete Relation schema with all fields.
|
|
117
|
-
* Used for validating full relation objects including timestamps.
|
|
118
|
-
*/
|
|
119
|
-
export const RelationSchema = z.object({
|
|
120
|
-
from: entityNameSchema,
|
|
121
|
-
to: entityNameSchema,
|
|
122
|
-
relationType: relationTypeSchema,
|
|
123
|
-
createdAt: isoDateSchema.optional(),
|
|
124
|
-
lastModified: isoDateSchema.optional(),
|
|
125
|
-
}).strict();
|
|
126
|
-
/**
|
|
127
|
-
* Relation creation input schema.
|
|
128
|
-
* Used for validating user input when creating new relations.
|
|
129
|
-
* Timestamps are optional and will be auto-generated if not provided.
|
|
130
|
-
*/
|
|
131
|
-
export const CreateRelationSchema = z.object({
|
|
132
|
-
from: entityNameSchema,
|
|
133
|
-
to: entityNameSchema,
|
|
134
|
-
relationType: relationTypeSchema,
|
|
135
|
-
createdAt: isoDateSchema.optional(),
|
|
136
|
-
lastModified: isoDateSchema.optional(),
|
|
137
|
-
}).strict();
|
|
138
|
-
// ==================== Search Schemas ====================
|
|
139
|
-
/**
|
|
140
|
-
* Search query validation.
|
|
141
|
-
* Validates text search queries with reasonable length constraints.
|
|
142
|
-
*/
|
|
143
|
-
export const SearchQuerySchema = z.string()
|
|
144
|
-
.min(1, 'Search query cannot be empty')
|
|
145
|
-
.max(1000, 'Search query cannot exceed 1000 characters')
|
|
146
|
-
.trim();
|
|
147
|
-
/**
|
|
148
|
-
* Date range validation for search filters.
|
|
149
|
-
*/
|
|
150
|
-
export const DateRangeSchema = z.object({
|
|
151
|
-
start: isoDateSchema,
|
|
152
|
-
end: isoDateSchema,
|
|
153
|
-
}).strict().refine((data) => new Date(data.start) <= new Date(data.end), { message: 'Start date must be before or equal to end date' });
|
|
154
|
-
// ==================== Tag Schemas ====================
|
|
155
|
-
/**
|
|
156
|
-
* Tag alias validation for TagManager.
|
|
157
|
-
*/
|
|
158
|
-
export const TagAliasSchema = z.object({
|
|
159
|
-
canonical: tagSchema,
|
|
160
|
-
aliases: z.array(tagSchema).min(1, 'Must have at least one alias'),
|
|
161
|
-
}).strict();
|
|
162
|
-
// ==================== Export Schemas ====================
|
|
163
|
-
/**
|
|
164
|
-
* Export format validation.
|
|
165
|
-
*/
|
|
166
|
-
export const ExportFormatSchema = z.enum(['json', 'graphml', 'csv']);
|
|
167
|
-
// ==================== Batch Operation Schemas ====================
|
|
168
|
-
/**
|
|
169
|
-
* Batch entity creation validation.
|
|
170
|
-
* Validates array of entities with maximum constraints.
|
|
171
|
-
* Empty arrays are allowed (no-op).
|
|
172
|
-
*/
|
|
173
|
-
export const BatchCreateEntitiesSchema = z.array(CreateEntitySchema)
|
|
174
|
-
.max(1000, 'Cannot create more than 1000 entities in a single batch');
|
|
175
|
-
/**
|
|
176
|
-
* Batch relation creation validation.
|
|
177
|
-
* Validates array of relations with maximum constraints.
|
|
178
|
-
* Empty arrays are allowed (no-op).
|
|
179
|
-
*/
|
|
180
|
-
export const BatchCreateRelationsSchema = z.array(CreateRelationSchema)
|
|
181
|
-
.max(1000, 'Cannot create more than 1000 relations in a single batch');
|
|
182
|
-
/**
|
|
183
|
-
* Entity name array validation for batch deletion.
|
|
184
|
-
*/
|
|
185
|
-
export const EntityNamesSchema = z.array(entityNameSchema)
|
|
186
|
-
.min(1, 'Must specify at least one entity name')
|
|
187
|
-
.max(1000, 'Cannot delete more than 1000 entities in a single batch');
|
|
188
|
-
/**
|
|
189
|
-
* Relation array validation for batch deletion.
|
|
190
|
-
*/
|
|
191
|
-
export const DeleteRelationsSchema = z.array(CreateRelationSchema)
|
|
192
|
-
.min(1, 'Must specify at least one relation')
|
|
193
|
-
.max(1000, 'Cannot delete more than 1000 relations in a single batch');
|
|
194
|
-
// ==================== Observation Schemas ====================
|
|
195
|
-
/**
|
|
196
|
-
* Single observation input for add operations.
|
|
197
|
-
* Empty contents array is allowed (no-op).
|
|
198
|
-
*/
|
|
199
|
-
export const AddObservationInputSchema = z.object({
|
|
200
|
-
entityName: entityNameSchema,
|
|
201
|
-
contents: z.array(observationSchema),
|
|
202
|
-
}).strict();
|
|
203
|
-
/**
|
|
204
|
-
* Batch observation addition validation.
|
|
205
|
-
* Empty array is allowed (no-op).
|
|
206
|
-
*/
|
|
207
|
-
export const AddObservationsInputSchema = z.array(AddObservationInputSchema)
|
|
208
|
-
.max(1000, 'Cannot add observations to more than 1000 entities in a single batch');
|
|
209
|
-
/**
|
|
210
|
-
* Single observation deletion input.
|
|
211
|
-
* Empty observations array is allowed (no-op).
|
|
212
|
-
* Non-existent entities are silently skipped by the manager.
|
|
213
|
-
*/
|
|
214
|
-
export const DeleteObservationInputSchema = z.object({
|
|
215
|
-
entityName: entityNameSchema,
|
|
216
|
-
observations: z.array(observationSchema),
|
|
217
|
-
}).strict();
|
|
218
|
-
/**
|
|
219
|
-
* Batch observation deletion validation.
|
|
220
|
-
* Empty array is allowed (no-op).
|
|
221
|
-
*/
|
|
222
|
-
export const DeleteObservationsInputSchema = z.array(DeleteObservationInputSchema)
|
|
223
|
-
.max(1000, 'Cannot delete observations from more than 1000 entities in a single batch');
|
|
224
|
-
// ==================== Archive Schema ====================
|
|
225
|
-
/**
|
|
226
|
-
* Archive criteria validation.
|
|
227
|
-
* All fields are optional - the manager handles the case when no criteria provided.
|
|
228
|
-
*/
|
|
229
|
-
export const ArchiveCriteriaSchema = z.object({
|
|
230
|
-
olderThan: isoDateSchema.optional(),
|
|
231
|
-
importanceLessThan: z.number().min(0).max(10).optional(),
|
|
232
|
-
tags: z.array(tagSchema).optional(),
|
|
233
|
-
}).strict();
|
|
234
|
-
// ==================== Saved Search Schemas ====================
|
|
235
|
-
/**
|
|
236
|
-
* Saved search creation input validation.
|
|
237
|
-
*/
|
|
238
|
-
export const SavedSearchInputSchema = z.object({
|
|
239
|
-
name: z.string().min(1, 'Search name cannot be empty').max(200, 'Search name cannot exceed 200 characters').trim(),
|
|
240
|
-
description: z.string().max(1000, 'Description cannot exceed 1000 characters').optional(),
|
|
241
|
-
query: SearchQuerySchema,
|
|
242
|
-
tags: z.array(tagSchema).optional(),
|
|
243
|
-
minImportance: importanceSchema.optional(),
|
|
244
|
-
maxImportance: importanceSchema.optional(),
|
|
245
|
-
entityType: entityTypeSchema.optional(),
|
|
246
|
-
}).strict();
|
|
247
|
-
/**
|
|
248
|
-
* Saved search update validation.
|
|
249
|
-
* All fields are optional for partial updates.
|
|
250
|
-
*/
|
|
251
|
-
export const SavedSearchUpdateSchema = z.object({
|
|
252
|
-
description: z.string().max(1000, 'Description cannot exceed 1000 characters').optional(),
|
|
253
|
-
query: SearchQuerySchema.optional(),
|
|
254
|
-
tags: z.array(tagSchema).optional(),
|
|
255
|
-
minImportance: importanceSchema.optional(),
|
|
256
|
-
maxImportance: importanceSchema.optional(),
|
|
257
|
-
entityType: entityTypeSchema.optional(),
|
|
258
|
-
}).strict();
|
|
259
|
-
// ==================== Import/Export Schemas ====================
|
|
260
|
-
/**
|
|
261
|
-
* Import format validation.
|
|
262
|
-
*/
|
|
263
|
-
export const ImportFormatSchema = z.enum(['json', 'csv', 'graphml']);
|
|
264
|
-
/**
|
|
265
|
-
* Export format validation (includes all output formats).
|
|
266
|
-
*/
|
|
267
|
-
export const ExtendedExportFormatSchema = z.enum(['json', 'csv', 'graphml', 'gexf', 'dot', 'markdown', 'mermaid']);
|
|
268
|
-
/**
|
|
269
|
-
* Merge strategy validation for imports.
|
|
270
|
-
*/
|
|
271
|
-
export const MergeStrategySchema = z.enum(['replace', 'skip', 'merge', 'fail']);
|
|
272
|
-
/**
|
|
273
|
-
* Export filter validation.
|
|
274
|
-
*/
|
|
275
|
-
export const ExportFilterSchema = z.object({
|
|
276
|
-
startDate: isoDateSchema.optional(),
|
|
277
|
-
endDate: isoDateSchema.optional(),
|
|
278
|
-
entityType: entityTypeSchema.optional(),
|
|
279
|
-
tags: z.array(tagSchema).optional(),
|
|
280
|
-
}).strict();
|
|
281
|
-
// ==================== Search Parameter Schemas ====================
|
|
282
|
-
/**
|
|
283
|
-
* Tags array validation (optional, for search filters).
|
|
284
|
-
*/
|
|
285
|
-
export const OptionalTagsSchema = z.array(tagSchema).optional();
|
|
286
|
-
/**
|
|
287
|
-
* Optional entity names array validation.
|
|
288
|
-
*/
|
|
289
|
-
export const OptionalEntityNamesSchema = z.array(entityNameSchema).optional();
|
|
290
|
-
// ==================== Zod Validation Helpers ====================
|
|
291
|
-
/**
|
|
292
|
-
* Formats Zod errors into human-readable strings.
|
|
293
|
-
*
|
|
294
|
-
* @param error - Zod error object
|
|
295
|
-
* @returns Array of formatted error messages
|
|
296
|
-
*/
|
|
297
|
-
export function formatZodErrors(error) {
|
|
298
|
-
return error.issues.map(issue => {
|
|
299
|
-
const path = issue.path.length > 0 ? `${issue.path.join('.')}: ` : '';
|
|
300
|
-
return `${path}${issue.message}`;
|
|
301
|
-
});
|
|
302
|
-
}
|
|
303
|
-
/**
|
|
304
|
-
* Validates data against a Zod schema and returns the typed result.
|
|
305
|
-
* Throws ValidationError with formatted error messages on failure.
|
|
306
|
-
*
|
|
307
|
-
* @param data - The data to validate
|
|
308
|
-
* @param schema - The Zod schema to validate against
|
|
309
|
-
* @param errorMessage - Custom error message prefix (default: 'Validation failed')
|
|
310
|
-
* @returns The validated and typed data
|
|
311
|
-
* @throws ValidationError if validation fails
|
|
312
|
-
*
|
|
313
|
-
* @example
|
|
314
|
-
* ```typescript
|
|
315
|
-
* const entities = validateWithSchema(
|
|
316
|
-
* input,
|
|
317
|
-
* BatchCreateEntitiesSchema,
|
|
318
|
-
* 'Invalid entity data'
|
|
319
|
-
* );
|
|
320
|
-
* ```
|
|
321
|
-
*/
|
|
322
|
-
export function validateWithSchema(data, schema, errorMessage = 'Validation failed') {
|
|
323
|
-
const result = schema.safeParse(data);
|
|
324
|
-
if (!result.success) {
|
|
325
|
-
const errors = formatZodErrors(result.error);
|
|
326
|
-
throw new ValidationError(errorMessage, errors);
|
|
327
|
-
}
|
|
328
|
-
return result.data;
|
|
329
|
-
}
|
|
330
|
-
/**
|
|
331
|
-
* Validates data and returns a result object instead of throwing.
|
|
332
|
-
* Useful when you want to handle validation errors gracefully.
|
|
333
|
-
*
|
|
334
|
-
* @param data - The data to validate
|
|
335
|
-
* @param schema - The Zod schema to validate against
|
|
336
|
-
* @returns Result object with success status and either data or errors
|
|
337
|
-
*
|
|
338
|
-
* @example
|
|
339
|
-
* ```typescript
|
|
340
|
-
* const result = validateSafe(input, EntitySchema);
|
|
341
|
-
* if (result.success) {
|
|
342
|
-
* console.log(result.data);
|
|
343
|
-
* } else {
|
|
344
|
-
* console.error(result.errors);
|
|
345
|
-
* }
|
|
346
|
-
* ```
|
|
347
|
-
*/
|
|
348
|
-
export function validateSafe(data, schema) {
|
|
349
|
-
const result = schema.safeParse(data);
|
|
350
|
-
if (result.success) {
|
|
351
|
-
return { success: true, data: result.data };
|
|
352
|
-
}
|
|
353
|
-
return { success: false, errors: formatZodErrors(result.error) };
|
|
354
|
-
}
|
|
355
|
-
/**
|
|
356
|
-
* Validates an array of items against a schema.
|
|
357
|
-
* Returns detailed information about which items failed validation.
|
|
358
|
-
*
|
|
359
|
-
* @param items - Array of items to validate
|
|
360
|
-
* @param schema - Zod schema for individual items
|
|
361
|
-
* @param errorMessage - Custom error message prefix
|
|
362
|
-
* @returns Array of validated items
|
|
363
|
-
* @throws ValidationError if any item fails validation
|
|
364
|
-
*/
|
|
365
|
-
export function validateArrayWithSchema(items, schema, errorMessage = 'Array validation failed') {
|
|
366
|
-
const errors = [];
|
|
367
|
-
const validated = [];
|
|
368
|
-
for (let i = 0; i < items.length; i++) {
|
|
369
|
-
const result = schema.safeParse(items[i]);
|
|
370
|
-
if (result.success) {
|
|
371
|
-
validated.push(result.data);
|
|
372
|
-
}
|
|
373
|
-
else {
|
|
374
|
-
const itemErrors = formatZodErrors(result.error);
|
|
375
|
-
errors.push(...itemErrors.map(e => `[${i}] ${e}`));
|
|
376
|
-
}
|
|
377
|
-
}
|
|
378
|
-
if (errors.length > 0) {
|
|
379
|
-
throw new ValidationError(errorMessage, errors);
|
|
380
|
-
}
|
|
381
|
-
return validated;
|
|
382
|
-
}
|
|
383
|
-
// ==================== Manual Validation Functions ====================
|
|
384
|
-
/**
|
|
385
|
-
* Type guard to check if value is a non-null object.
|
|
386
|
-
*/
|
|
387
|
-
function isObject(value) {
|
|
388
|
-
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
389
|
-
}
|
|
390
|
-
/**
|
|
391
|
-
* Validate an entity object.
|
|
392
|
-
*
|
|
393
|
-
* Checks required fields and data types.
|
|
394
|
-
*
|
|
395
|
-
* @param entity - Entity to validate (unknown type for runtime validation)
|
|
396
|
-
* @returns Validation result
|
|
397
|
-
*/
|
|
398
|
-
export function validateEntity(entity) {
|
|
399
|
-
const errors = [];
|
|
400
|
-
if (!isObject(entity)) {
|
|
401
|
-
return { valid: false, errors: ['Entity must be an object'] };
|
|
402
|
-
}
|
|
403
|
-
if (!entity.name || typeof entity.name !== 'string' || entity.name.trim() === '') {
|
|
404
|
-
errors.push('Entity name is required and must be a non-empty string');
|
|
405
|
-
}
|
|
406
|
-
if (!entity.entityType || typeof entity.entityType !== 'string' || entity.entityType.trim() === '') {
|
|
407
|
-
errors.push('Entity type is required and must be a non-empty string');
|
|
408
|
-
}
|
|
409
|
-
if (!Array.isArray(entity.observations)) {
|
|
410
|
-
errors.push('Observations must be an array');
|
|
411
|
-
}
|
|
412
|
-
else if (!entity.observations.every((o) => typeof o === 'string')) {
|
|
413
|
-
errors.push('All observations must be strings');
|
|
414
|
-
}
|
|
415
|
-
if (entity.tags !== undefined) {
|
|
416
|
-
if (!Array.isArray(entity.tags)) {
|
|
417
|
-
errors.push('Tags must be an array');
|
|
418
|
-
}
|
|
419
|
-
else if (!entity.tags.every((t) => typeof t === 'string')) {
|
|
420
|
-
errors.push('All tags must be strings');
|
|
421
|
-
}
|
|
422
|
-
}
|
|
423
|
-
if (entity.importance !== undefined) {
|
|
424
|
-
if (typeof entity.importance !== 'number') {
|
|
425
|
-
errors.push('Importance must be a number');
|
|
426
|
-
}
|
|
427
|
-
else if (!validateImportance(entity.importance)) {
|
|
428
|
-
errors.push('Importance must be between 0 and 10');
|
|
429
|
-
}
|
|
430
|
-
}
|
|
431
|
-
return { valid: errors.length === 0, errors };
|
|
432
|
-
}
|
|
433
|
-
/**
|
|
434
|
-
* Validate a relation object.
|
|
435
|
-
*
|
|
436
|
-
* Checks required fields and data types.
|
|
437
|
-
*
|
|
438
|
-
* @param relation - Relation to validate (unknown type for runtime validation)
|
|
439
|
-
* @returns Validation result
|
|
440
|
-
*/
|
|
441
|
-
export function validateRelation(relation) {
|
|
442
|
-
const errors = [];
|
|
443
|
-
if (!isObject(relation)) {
|
|
444
|
-
return { valid: false, errors: ['Relation must be an object'] };
|
|
445
|
-
}
|
|
446
|
-
if (!relation.from || typeof relation.from !== 'string' || relation.from.trim() === '') {
|
|
447
|
-
errors.push('Relation "from" is required and must be a non-empty string');
|
|
448
|
-
}
|
|
449
|
-
if (!relation.to || typeof relation.to !== 'string' || relation.to.trim() === '') {
|
|
450
|
-
errors.push('Relation "to" is required and must be a non-empty string');
|
|
451
|
-
}
|
|
452
|
-
if (!relation.relationType || typeof relation.relationType !== 'string' || relation.relationType.trim() === '') {
|
|
453
|
-
errors.push('Relation type is required and must be a non-empty string');
|
|
454
|
-
}
|
|
455
|
-
return { valid: errors.length === 0, errors };
|
|
456
|
-
}
|
|
457
|
-
/**
|
|
458
|
-
* Validate importance level (must be 0-10).
|
|
459
|
-
*
|
|
460
|
-
* @param importance - Importance value to validate
|
|
461
|
-
* @returns True if valid
|
|
462
|
-
*/
|
|
463
|
-
export function validateImportance(importance) {
|
|
464
|
-
return typeof importance === 'number'
|
|
465
|
-
&& !isNaN(importance)
|
|
466
|
-
&& importance >= IMPORTANCE_RANGE.MIN
|
|
467
|
-
&& importance <= IMPORTANCE_RANGE.MAX;
|
|
468
|
-
}
|
|
469
|
-
/**
|
|
470
|
-
* Validate an array of tags.
|
|
471
|
-
*
|
|
472
|
-
* @param tags - Tags array to validate (unknown type for runtime validation)
|
|
473
|
-
* @returns Validation result
|
|
474
|
-
*/
|
|
475
|
-
export function validateTags(tags) {
|
|
476
|
-
const errors = [];
|
|
477
|
-
if (!Array.isArray(tags)) {
|
|
478
|
-
return { valid: false, errors: ['Tags must be an array'] };
|
|
479
|
-
}
|
|
480
|
-
if (!tags.every((t) => typeof t === 'string' && t.trim() !== '')) {
|
|
481
|
-
errors.push('All tags must be non-empty strings');
|
|
482
|
-
}
|
|
483
|
-
return { valid: errors.length === 0, errors };
|
|
484
|
-
}
|
|
485
|
-
//# sourceMappingURL=schemas.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/utils/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Search Algorithms
|
|
3
|
-
*
|
|
4
|
-
* Algorithms for search operations: Levenshtein distance for fuzzy matching
|
|
5
|
-
* and TF-IDF for relevance scoring.
|
|
6
|
-
*
|
|
7
|
-
* @module utils/searchAlgorithms
|
|
8
|
-
*/
|
|
9
|
-
/**
|
|
10
|
-
* Calculate Levenshtein distance between two strings.
|
|
11
|
-
*
|
|
12
|
-
* Returns the minimum number of single-character edits needed to change
|
|
13
|
-
* one word into another.
|
|
14
|
-
*
|
|
15
|
-
* **Algorithm**: Space-optimized dynamic programming using only two rows.
|
|
16
|
-
* Time complexity: O(m*n), Space complexity: O(min(m,n)).
|
|
17
|
-
*
|
|
18
|
-
* This optimization reduces memory usage from O(m*n) to O(min(m,n)) by
|
|
19
|
-
* observing that each row only depends on the previous row.
|
|
20
|
-
*
|
|
21
|
-
* @param str1 - First string to compare
|
|
22
|
-
* @param str2 - Second string to compare
|
|
23
|
-
* @returns Minimum number of edits required (0 = identical strings)
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* ```typescript
|
|
27
|
-
* levenshteinDistance("kitten", "sitting"); // Returns 3
|
|
28
|
-
* levenshteinDistance("hello", "hello"); // Returns 0
|
|
29
|
-
* levenshteinDistance("abc", ""); // Returns 3
|
|
30
|
-
* ```
|
|
31
|
-
*/
|
|
32
|
-
export declare function levenshteinDistance(str1: string, str2: string): number;
|
|
33
|
-
/**
|
|
34
|
-
* Calculate Term Frequency (TF) for a term in a document.
|
|
35
|
-
*
|
|
36
|
-
* TF = (Number of times term appears in document) / (Total terms in document)
|
|
37
|
-
*
|
|
38
|
-
* @param term - The search term
|
|
39
|
-
* @param document - The document text
|
|
40
|
-
* @returns Term frequency (0.0 to 1.0)
|
|
41
|
-
*/
|
|
42
|
-
export declare function calculateTF(term: string, document: string): number;
|
|
43
|
-
/**
|
|
44
|
-
* Calculate Inverse Document Frequency (IDF) for a term across documents.
|
|
45
|
-
*
|
|
46
|
-
* IDF = log(Total documents / Documents containing term)
|
|
47
|
-
*
|
|
48
|
-
* Note: For bulk IDF calculation, prefer calculateIDFFromTokenSets which
|
|
49
|
-
* avoids re-tokenizing documents for each term.
|
|
50
|
-
*
|
|
51
|
-
* @param term - The search term
|
|
52
|
-
* @param documents - Array of document texts
|
|
53
|
-
* @returns Inverse document frequency
|
|
54
|
-
*/
|
|
55
|
-
export declare function calculateIDF(term: string, documents: string[]): number;
|
|
56
|
-
/**
|
|
57
|
-
* Calculate Inverse Document Frequency (IDF) from pre-tokenized documents.
|
|
58
|
-
*
|
|
59
|
-
* IDF = log(Total documents / Documents containing term)
|
|
60
|
-
*
|
|
61
|
-
* **Optimized**: Avoids re-tokenizing documents for each term. Pre-tokenize
|
|
62
|
-
* documents once and convert to Sets for O(1) lookup per document.
|
|
63
|
-
*
|
|
64
|
-
* @param term - The search term (should already be lowercase)
|
|
65
|
-
* @param tokenSets - Array of Sets, each containing unique tokens for a document
|
|
66
|
-
* @returns Inverse document frequency
|
|
67
|
-
*
|
|
68
|
-
* @example
|
|
69
|
-
* ```typescript
|
|
70
|
-
* const docs = ["hello world", "hello there"];
|
|
71
|
-
* const tokenSets = docs.map(d => new Set(tokenize(d)));
|
|
72
|
-
* calculateIDFFromTokenSets("hello", tokenSets); // Low IDF (common term)
|
|
73
|
-
* calculateIDFFromTokenSets("world", tokenSets); // Higher IDF (less common)
|
|
74
|
-
* ```
|
|
75
|
-
*/
|
|
76
|
-
export declare function calculateIDFFromTokenSets(term: string, tokenSets: Set<string>[]): number;
|
|
77
|
-
/**
|
|
78
|
-
* Calculate TF-IDF score for a term in a document.
|
|
79
|
-
*
|
|
80
|
-
* TF-IDF = TF * IDF
|
|
81
|
-
*
|
|
82
|
-
* Higher scores indicate more important/relevant terms.
|
|
83
|
-
*
|
|
84
|
-
* @param term - The search term
|
|
85
|
-
* @param document - The document text
|
|
86
|
-
* @param documents - Array of all documents
|
|
87
|
-
* @returns TF-IDF score
|
|
88
|
-
*/
|
|
89
|
-
export declare function calculateTFIDF(term: string, document: string, documents: string[]): number;
|
|
90
|
-
/**
|
|
91
|
-
* Tokenize text into lowercase words.
|
|
92
|
-
*
|
|
93
|
-
* Splits on whitespace and removes punctuation.
|
|
94
|
-
*
|
|
95
|
-
* @param text - Text to tokenize
|
|
96
|
-
* @returns Array of lowercase tokens
|
|
97
|
-
*/
|
|
98
|
-
export declare function tokenize(text: string): string[];
|
|
99
|
-
//# sourceMappingURL=searchAlgorithms.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"searchAlgorithms.d.ts","sourceRoot":"","sources":["../../src/utils/searchAlgorithms.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAmCtE;AAID;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQlE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAWtE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAexF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EAAE,GAClB,MAAM,CAIR;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAM/C"}
|