@danielsimonjr/memoryjs 1.0.0 → 1.2.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 +24156 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +16967 -0
- package/dist/index.d.ts +16963 -11
- package/dist/index.js +23887 -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 +75 -69
- 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
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// src/workers/levenshteinWorker.ts
|
|
31
|
+
var levenshteinWorker_exports = {};
|
|
32
|
+
__export(levenshteinWorker_exports, {
|
|
33
|
+
levenshteinDistance: () => levenshteinDistance,
|
|
34
|
+
searchEntities: () => searchEntities,
|
|
35
|
+
similarity: () => similarity
|
|
36
|
+
});
|
|
37
|
+
module.exports = __toCommonJS(levenshteinWorker_exports);
|
|
38
|
+
var import_workerpool = __toESM(require("@danielsimonjr/workerpool"), 1);
|
|
39
|
+
function levenshteinDistance(s1, s2) {
|
|
40
|
+
const len1 = s1.length;
|
|
41
|
+
const len2 = s2.length;
|
|
42
|
+
if (len1 === 0) return len2;
|
|
43
|
+
if (len2 === 0) return len1;
|
|
44
|
+
const matrix = [];
|
|
45
|
+
for (let i = 0; i <= len1; i++) {
|
|
46
|
+
matrix[i] = [i];
|
|
47
|
+
}
|
|
48
|
+
for (let j = 0; j <= len2; j++) {
|
|
49
|
+
matrix[0][j] = j;
|
|
50
|
+
}
|
|
51
|
+
for (let i = 1; i <= len1; i++) {
|
|
52
|
+
for (let j = 1; j <= len2; j++) {
|
|
53
|
+
const cost = s1[i - 1] === s2[j - 1] ? 0 : 1;
|
|
54
|
+
matrix[i][j] = Math.min(
|
|
55
|
+
matrix[i - 1][j] + 1,
|
|
56
|
+
// deletion
|
|
57
|
+
matrix[i][j - 1] + 1,
|
|
58
|
+
// insertion
|
|
59
|
+
matrix[i - 1][j - 1] + cost
|
|
60
|
+
// substitution
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return matrix[len1][len2];
|
|
65
|
+
}
|
|
66
|
+
function similarity(s1, s2) {
|
|
67
|
+
if (s1 === s2) return 1;
|
|
68
|
+
if (s1.includes(s2) || s2.includes(s1)) return 1;
|
|
69
|
+
const distance = levenshteinDistance(s1, s2);
|
|
70
|
+
const maxLength = Math.max(s1.length, s2.length);
|
|
71
|
+
return 1 - distance / maxLength;
|
|
72
|
+
}
|
|
73
|
+
function searchEntities(data) {
|
|
74
|
+
const { query, entities, threshold } = data;
|
|
75
|
+
const queryLower = query.toLowerCase();
|
|
76
|
+
const results = [];
|
|
77
|
+
for (const entity of entities) {
|
|
78
|
+
const nameScore = similarity(queryLower, entity.nameLower);
|
|
79
|
+
if (nameScore >= threshold) {
|
|
80
|
+
results.push({ name: entity.name, score: nameScore, matchedIn: "name" });
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
for (const obs of entity.observations) {
|
|
84
|
+
const obsScore = similarity(queryLower, obs);
|
|
85
|
+
if (obsScore >= threshold) {
|
|
86
|
+
results.push({ name: entity.name, score: obsScore, matchedIn: "observation" });
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return results;
|
|
92
|
+
}
|
|
93
|
+
import_workerpool.default.worker({
|
|
94
|
+
searchEntities
|
|
95
|
+
});
|
|
96
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
97
|
+
0 && (module.exports = {
|
|
98
|
+
levenshteinDistance,
|
|
99
|
+
searchEntities,
|
|
100
|
+
similarity
|
|
101
|
+
});
|
|
102
|
+
//# sourceMappingURL=levenshteinWorker.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/workers/levenshteinWorker.ts"],"sourcesContent":["/**\r\n * Levenshtein Worker\r\n *\r\n * Worker thread for calculating Levenshtein distances in parallel.\r\n * Uses workerpool for worker management.\r\n *\r\n * @module workers/levenshteinWorker\r\n */\r\n\r\nimport workerpool from '@danielsimonjr/workerpool';\r\n\r\n/**\r\n * Input data structure for the worker.\r\n */\r\nexport interface WorkerInput {\r\n /** Search query string */\r\n query: string;\r\n /** Array of entities to search */\r\n entities: Array<{\r\n name: string;\r\n nameLower: string;\r\n observations: string[];\r\n }>;\r\n /** Similarity threshold (0.0 to 1.0) */\r\n threshold: number;\r\n}\r\n\r\n/**\r\n * Match result returned by the worker.\r\n */\r\nexport interface MatchResult {\r\n /** Entity name that matched */\r\n name: string;\r\n /** Similarity score (0.0 to 1.0) */\r\n score: number;\r\n /** Where the match occurred */\r\n matchedIn: 'name' | 'observation';\r\n}\r\n\r\n/**\r\n * Calculate Levenshtein distance between two strings.\r\n *\r\n * Uses dynamic programming matrix for efficient computation.\r\n *\r\n * @param s1 - First string\r\n * @param s2 - Second string\r\n * @returns Levenshtein distance (number of edits)\r\n */\r\nexport function levenshteinDistance(s1: string, s2: string): number {\r\n const len1 = s1.length;\r\n const len2 = s2.length;\r\n\r\n if (len1 === 0) return len2;\r\n if (len2 === 0) return len1;\r\n\r\n const matrix: number[][] = [];\r\n\r\n // Initialize first column\r\n for (let i = 0; i <= len1; i++) {\r\n matrix[i] = [i];\r\n }\r\n\r\n // Initialize first row\r\n for (let j = 0; j <= len2; j++) {\r\n matrix[0][j] = j;\r\n }\r\n\r\n // Fill matrix\r\n for (let i = 1; i <= len1; i++) {\r\n for (let j = 1; j <= len2; j++) {\r\n const cost = s1[i - 1] === s2[j - 1] ? 0 : 1;\r\n matrix[i][j] = Math.min(\r\n matrix[i - 1][j] + 1, // deletion\r\n matrix[i][j - 1] + 1, // insertion\r\n matrix[i - 1][j - 1] + cost // substitution\r\n );\r\n }\r\n }\r\n\r\n return matrix[len1][len2];\r\n}\r\n\r\n/**\r\n * Calculate similarity score between two strings.\r\n *\r\n * @param s1 - First string\r\n * @param s2 - Second string\r\n * @returns Similarity score (0.0 to 1.0, where 1.0 is identical)\r\n */\r\nexport function similarity(s1: string, s2: string): number {\r\n // Exact match\r\n if (s1 === s2) return 1.0;\r\n\r\n // One contains the other\r\n if (s1.includes(s2) || s2.includes(s1)) return 1.0;\r\n\r\n // Calculate Levenshtein-based similarity\r\n const distance = levenshteinDistance(s1, s2);\r\n const maxLength = Math.max(s1.length, s2.length);\r\n return 1 - distance / maxLength;\r\n}\r\n\r\n/**\r\n * Search entities for fuzzy matches.\r\n *\r\n * @param data - Worker input containing query, entities, and threshold\r\n * @returns Array of match results\r\n */\r\nexport function searchEntities(data: WorkerInput): MatchResult[] {\r\n const { query, entities, threshold } = data;\r\n const queryLower = query.toLowerCase();\r\n const results: MatchResult[] = [];\r\n\r\n for (const entity of entities) {\r\n // Check name similarity\r\n const nameScore = similarity(queryLower, entity.nameLower);\r\n if (nameScore >= threshold) {\r\n results.push({ name: entity.name, score: nameScore, matchedIn: 'name' });\r\n continue;\r\n }\r\n\r\n // Check observations\r\n for (const obs of entity.observations) {\r\n const obsScore = similarity(queryLower, obs);\r\n if (obsScore >= threshold) {\r\n results.push({ name: entity.name, score: obsScore, matchedIn: 'observation' });\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return results;\r\n}\r\n\r\n// Register worker methods with workerpool\r\n// Cast to satisfy workerpool's generic type signature\r\nworkerpool.worker({\r\n searchEntities: searchEntities as (...args: unknown[]) => unknown,\r\n});\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,wBAAuB;AAuChB,SAAS,oBAAoB,IAAY,IAAoB;AAClE,QAAM,OAAO,GAAG;AAChB,QAAM,OAAO,GAAG;AAEhB,MAAI,SAAS,EAAG,QAAO;AACvB,MAAI,SAAS,EAAG,QAAO;AAEvB,QAAM,SAAqB,CAAC;AAG5B,WAAS,IAAI,GAAG,KAAK,MAAM,KAAK;AAC9B,WAAO,CAAC,IAAI,CAAC,CAAC;AAAA,EAChB;AAGA,WAAS,IAAI,GAAG,KAAK,MAAM,KAAK;AAC9B,WAAO,CAAC,EAAE,CAAC,IAAI;AAAA,EACjB;AAGA,WAAS,IAAI,GAAG,KAAK,MAAM,KAAK;AAC9B,aAAS,IAAI,GAAG,KAAK,MAAM,KAAK;AAC9B,YAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,IAAI;AAC3C,aAAO,CAAC,EAAE,CAAC,IAAI,KAAK;AAAA,QAClB,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI;AAAA;AAAA,QACnB,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI;AAAA;AAAA,QACnB,OAAO,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI;AAAA;AAAA,MACzB;AAAA,IACF;AAAA,EACF;AAEA,SAAO,OAAO,IAAI,EAAE,IAAI;AAC1B;AASO,SAAS,WAAW,IAAY,IAAoB;AAEzD,MAAI,OAAO,GAAI,QAAO;AAGtB,MAAI,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,EAAE,EAAG,QAAO;AAG/C,QAAM,WAAW,oBAAoB,IAAI,EAAE;AAC3C,QAAM,YAAY,KAAK,IAAI,GAAG,QAAQ,GAAG,MAAM;AAC/C,SAAO,IAAI,WAAW;AACxB;AAQO,SAAS,eAAe,MAAkC;AAC/D,QAAM,EAAE,OAAO,UAAU,UAAU,IAAI;AACvC,QAAM,aAAa,MAAM,YAAY;AACrC,QAAM,UAAyB,CAAC;AAEhC,aAAW,UAAU,UAAU;AAE7B,UAAM,YAAY,WAAW,YAAY,OAAO,SAAS;AACzD,QAAI,aAAa,WAAW;AAC1B,cAAQ,KAAK,EAAE,MAAM,OAAO,MAAM,OAAO,WAAW,WAAW,OAAO,CAAC;AACvE;AAAA,IACF;AAGA,eAAW,OAAO,OAAO,cAAc;AACrC,YAAM,WAAW,WAAW,YAAY,GAAG;AAC3C,UAAI,YAAY,WAAW;AACzB,gBAAQ,KAAK,EAAE,MAAM,OAAO,MAAM,OAAO,UAAU,WAAW,cAAc,CAAC;AAC7E;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAIA,kBAAAA,QAAW,OAAO;AAAA,EAChB;AACF,CAAC;","names":["workerpool"]}
|
|
@@ -1,99 +1,65 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const matrix = [];
|
|
27
|
-
// Initialize first column
|
|
28
|
-
for (let i = 0; i <= len1; i++) {
|
|
29
|
-
matrix[i] = [i];
|
|
1
|
+
// src/workers/levenshteinWorker.ts
|
|
2
|
+
import workerpool from "@danielsimonjr/workerpool";
|
|
3
|
+
function levenshteinDistance(s1, s2) {
|
|
4
|
+
const len1 = s1.length;
|
|
5
|
+
const len2 = s2.length;
|
|
6
|
+
if (len1 === 0) return len2;
|
|
7
|
+
if (len2 === 0) return len1;
|
|
8
|
+
const matrix = [];
|
|
9
|
+
for (let i = 0; i <= len1; i++) {
|
|
10
|
+
matrix[i] = [i];
|
|
11
|
+
}
|
|
12
|
+
for (let j = 0; j <= len2; j++) {
|
|
13
|
+
matrix[0][j] = j;
|
|
14
|
+
}
|
|
15
|
+
for (let i = 1; i <= len1; i++) {
|
|
16
|
+
for (let j = 1; j <= len2; j++) {
|
|
17
|
+
const cost = s1[i - 1] === s2[j - 1] ? 0 : 1;
|
|
18
|
+
matrix[i][j] = Math.min(
|
|
19
|
+
matrix[i - 1][j] + 1,
|
|
20
|
+
// deletion
|
|
21
|
+
matrix[i][j - 1] + 1,
|
|
22
|
+
// insertion
|
|
23
|
+
matrix[i - 1][j - 1] + cost
|
|
24
|
+
// substitution
|
|
25
|
+
);
|
|
30
26
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
matrix[0][j] = j;
|
|
34
|
-
}
|
|
35
|
-
// Fill matrix
|
|
36
|
-
for (let i = 1; i <= len1; i++) {
|
|
37
|
-
for (let j = 1; j <= len2; j++) {
|
|
38
|
-
const cost = s1[i - 1] === s2[j - 1] ? 0 : 1;
|
|
39
|
-
matrix[i][j] = Math.min(matrix[i - 1][j] + 1, // deletion
|
|
40
|
-
matrix[i][j - 1] + 1, // insertion
|
|
41
|
-
matrix[i - 1][j - 1] + cost // substitution
|
|
42
|
-
);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
return matrix[len1][len2];
|
|
27
|
+
}
|
|
28
|
+
return matrix[len1][len2];
|
|
46
29
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
*/
|
|
54
|
-
export function similarity(s1, s2) {
|
|
55
|
-
// Exact match
|
|
56
|
-
if (s1 === s2)
|
|
57
|
-
return 1.0;
|
|
58
|
-
// One contains the other
|
|
59
|
-
if (s1.includes(s2) || s2.includes(s1))
|
|
60
|
-
return 1.0;
|
|
61
|
-
// Calculate Levenshtein-based similarity
|
|
62
|
-
const distance = levenshteinDistance(s1, s2);
|
|
63
|
-
const maxLength = Math.max(s1.length, s2.length);
|
|
64
|
-
return 1 - distance / maxLength;
|
|
30
|
+
function similarity(s1, s2) {
|
|
31
|
+
if (s1 === s2) return 1;
|
|
32
|
+
if (s1.includes(s2) || s2.includes(s1)) return 1;
|
|
33
|
+
const distance = levenshteinDistance(s1, s2);
|
|
34
|
+
const maxLength = Math.max(s1.length, s2.length);
|
|
35
|
+
return 1 - distance / maxLength;
|
|
65
36
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
for (const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
}
|
|
83
|
-
// Check observations
|
|
84
|
-
for (const obs of entity.observations) {
|
|
85
|
-
const obsScore = similarity(queryLower, obs);
|
|
86
|
-
if (obsScore >= threshold) {
|
|
87
|
-
results.push({ name: entity.name, score: obsScore, matchedIn: 'observation' });
|
|
88
|
-
break;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
37
|
+
function searchEntities(data) {
|
|
38
|
+
const { query, entities, threshold } = data;
|
|
39
|
+
const queryLower = query.toLowerCase();
|
|
40
|
+
const results = [];
|
|
41
|
+
for (const entity of entities) {
|
|
42
|
+
const nameScore = similarity(queryLower, entity.nameLower);
|
|
43
|
+
if (nameScore >= threshold) {
|
|
44
|
+
results.push({ name: entity.name, score: nameScore, matchedIn: "name" });
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
for (const obs of entity.observations) {
|
|
48
|
+
const obsScore = similarity(queryLower, obs);
|
|
49
|
+
if (obsScore >= threshold) {
|
|
50
|
+
results.push({ name: entity.name, score: obsScore, matchedIn: "observation" });
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
91
53
|
}
|
|
92
|
-
|
|
54
|
+
}
|
|
55
|
+
return results;
|
|
93
56
|
}
|
|
94
|
-
// Register worker methods with workerpool
|
|
95
|
-
// Cast to satisfy workerpool's generic type signature
|
|
96
57
|
workerpool.worker({
|
|
97
|
-
|
|
58
|
+
searchEntities
|
|
98
59
|
});
|
|
60
|
+
export {
|
|
61
|
+
levenshteinDistance,
|
|
62
|
+
searchEntities,
|
|
63
|
+
similarity
|
|
64
|
+
};
|
|
99
65
|
//# sourceMappingURL=levenshteinWorker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/workers/levenshteinWorker.ts"],"sourcesContent":["/**\r\n * Levenshtein Worker\r\n *\r\n * Worker thread for calculating Levenshtein distances in parallel.\r\n * Uses workerpool for worker management.\r\n *\r\n * @module workers/levenshteinWorker\r\n */\r\n\r\nimport workerpool from '@danielsimonjr/workerpool';\r\n\r\n/**\r\n * Input data structure for the worker.\r\n */\r\nexport interface WorkerInput {\r\n /** Search query string */\r\n query: string;\r\n /** Array of entities to search */\r\n entities: Array<{\r\n name: string;\r\n nameLower: string;\r\n observations: string[];\r\n }>;\r\n /** Similarity threshold (0.0 to 1.0) */\r\n threshold: number;\r\n}\r\n\r\n/**\r\n * Match result returned by the worker.\r\n */\r\nexport interface MatchResult {\r\n /** Entity name that matched */\r\n name: string;\r\n /** Similarity score (0.0 to 1.0) */\r\n score: number;\r\n /** Where the match occurred */\r\n matchedIn: 'name' | 'observation';\r\n}\r\n\r\n/**\r\n * Calculate Levenshtein distance between two strings.\r\n *\r\n * Uses dynamic programming matrix for efficient computation.\r\n *\r\n * @param s1 - First string\r\n * @param s2 - Second string\r\n * @returns Levenshtein distance (number of edits)\r\n */\r\nexport function levenshteinDistance(s1: string, s2: string): number {\r\n const len1 = s1.length;\r\n const len2 = s2.length;\r\n\r\n if (len1 === 0) return len2;\r\n if (len2 === 0) return len1;\r\n\r\n const matrix: number[][] = [];\r\n\r\n // Initialize first column\r\n for (let i = 0; i <= len1; i++) {\r\n matrix[i] = [i];\r\n }\r\n\r\n // Initialize first row\r\n for (let j = 0; j <= len2; j++) {\r\n matrix[0][j] = j;\r\n }\r\n\r\n // Fill matrix\r\n for (let i = 1; i <= len1; i++) {\r\n for (let j = 1; j <= len2; j++) {\r\n const cost = s1[i - 1] === s2[j - 1] ? 0 : 1;\r\n matrix[i][j] = Math.min(\r\n matrix[i - 1][j] + 1, // deletion\r\n matrix[i][j - 1] + 1, // insertion\r\n matrix[i - 1][j - 1] + cost // substitution\r\n );\r\n }\r\n }\r\n\r\n return matrix[len1][len2];\r\n}\r\n\r\n/**\r\n * Calculate similarity score between two strings.\r\n *\r\n * @param s1 - First string\r\n * @param s2 - Second string\r\n * @returns Similarity score (0.0 to 1.0, where 1.0 is identical)\r\n */\r\nexport function similarity(s1: string, s2: string): number {\r\n // Exact match\r\n if (s1 === s2) return 1.0;\r\n\r\n // One contains the other\r\n if (s1.includes(s2) || s2.includes(s1)) return 1.0;\r\n\r\n // Calculate Levenshtein-based similarity\r\n const distance = levenshteinDistance(s1, s2);\r\n const maxLength = Math.max(s1.length, s2.length);\r\n return 1 - distance / maxLength;\r\n}\r\n\r\n/**\r\n * Search entities for fuzzy matches.\r\n *\r\n * @param data - Worker input containing query, entities, and threshold\r\n * @returns Array of match results\r\n */\r\nexport function searchEntities(data: WorkerInput): MatchResult[] {\r\n const { query, entities, threshold } = data;\r\n const queryLower = query.toLowerCase();\r\n const results: MatchResult[] = [];\r\n\r\n for (const entity of entities) {\r\n // Check name similarity\r\n const nameScore = similarity(queryLower, entity.nameLower);\r\n if (nameScore >= threshold) {\r\n results.push({ name: entity.name, score: nameScore, matchedIn: 'name' });\r\n continue;\r\n }\r\n\r\n // Check observations\r\n for (const obs of entity.observations) {\r\n const obsScore = similarity(queryLower, obs);\r\n if (obsScore >= threshold) {\r\n results.push({ name: entity.name, score: obsScore, matchedIn: 'observation' });\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return results;\r\n}\r\n\r\n// Register worker methods with workerpool\r\n// Cast to satisfy workerpool's generic type signature\r\nworkerpool.worker({\r\n searchEntities: searchEntities as (...args: unknown[]) => unknown,\r\n});\r\n"],"mappings":";AASA,OAAO,gBAAgB;AAuChB,SAAS,oBAAoB,IAAY,IAAoB;AAClE,QAAM,OAAO,GAAG;AAChB,QAAM,OAAO,GAAG;AAEhB,MAAI,SAAS,EAAG,QAAO;AACvB,MAAI,SAAS,EAAG,QAAO;AAEvB,QAAM,SAAqB,CAAC;AAG5B,WAAS,IAAI,GAAG,KAAK,MAAM,KAAK;AAC9B,WAAO,CAAC,IAAI,CAAC,CAAC;AAAA,EAChB;AAGA,WAAS,IAAI,GAAG,KAAK,MAAM,KAAK;AAC9B,WAAO,CAAC,EAAE,CAAC,IAAI;AAAA,EACjB;AAGA,WAAS,IAAI,GAAG,KAAK,MAAM,KAAK;AAC9B,aAAS,IAAI,GAAG,KAAK,MAAM,KAAK;AAC9B,YAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,IAAI;AAC3C,aAAO,CAAC,EAAE,CAAC,IAAI,KAAK;AAAA,QAClB,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI;AAAA;AAAA,QACnB,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI;AAAA;AAAA,QACnB,OAAO,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI;AAAA;AAAA,MACzB;AAAA,IACF;AAAA,EACF;AAEA,SAAO,OAAO,IAAI,EAAE,IAAI;AAC1B;AASO,SAAS,WAAW,IAAY,IAAoB;AAEzD,MAAI,OAAO,GAAI,QAAO;AAGtB,MAAI,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,EAAE,EAAG,QAAO;AAG/C,QAAM,WAAW,oBAAoB,IAAI,EAAE;AAC3C,QAAM,YAAY,KAAK,IAAI,GAAG,QAAQ,GAAG,MAAM;AAC/C,SAAO,IAAI,WAAW;AACxB;AAQO,SAAS,eAAe,MAAkC;AAC/D,QAAM,EAAE,OAAO,UAAU,UAAU,IAAI;AACvC,QAAM,aAAa,MAAM,YAAY;AACrC,QAAM,UAAyB,CAAC;AAEhC,aAAW,UAAU,UAAU;AAE7B,UAAM,YAAY,WAAW,YAAY,OAAO,SAAS;AACzD,QAAI,aAAa,WAAW;AAC1B,cAAQ,KAAK,EAAE,MAAM,OAAO,MAAM,OAAO,WAAW,WAAW,OAAO,CAAC;AACvE;AAAA,IACF;AAGA,eAAW,OAAO,OAAO,cAAc;AACrC,YAAM,WAAW,WAAW,YAAY,GAAG;AAC3C,UAAI,YAAY,WAAW;AACzB,gBAAQ,KAAK,EAAE,MAAM,OAAO,MAAM,OAAO,UAAU,WAAW,cAAc,CAAC;AAC7E;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAIA,WAAW,OAAO;AAAA,EAChB;AACF,CAAC;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,69 +1,75 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@danielsimonjr/memoryjs",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Core knowledge graph library with search, storage, and graph algorithms",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"main": "dist/index.
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
"
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
"
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
"
|
|
34
|
-
"graph-
|
|
35
|
-
"
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
"
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
"
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
"
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
"
|
|
68
|
-
|
|
69
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@danielsimonjr/memoryjs",
|
|
3
|
+
"version": "1.2.0",
|
|
4
|
+
"description": "Core knowledge graph library with search, storage, and graph algorithms",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.cjs",
|
|
7
|
+
"module": "dist/index.js",
|
|
8
|
+
"types": "dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"import": "./dist/index.js",
|
|
13
|
+
"require": "./dist/index.cjs"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"bin": {
|
|
17
|
+
"memoryjs": "./dist/index.js"
|
|
18
|
+
},
|
|
19
|
+
"files": [
|
|
20
|
+
"dist",
|
|
21
|
+
"README.md",
|
|
22
|
+
"LICENSE"
|
|
23
|
+
],
|
|
24
|
+
"scripts": {
|
|
25
|
+
"build": "tsup",
|
|
26
|
+
"build:watch": "tsup --watch",
|
|
27
|
+
"build:tsc": "tsc",
|
|
28
|
+
"typecheck": "tsc --noEmit",
|
|
29
|
+
"test": "vitest run",
|
|
30
|
+
"test:watch": "vitest",
|
|
31
|
+
"test:coverage": "vitest run --coverage",
|
|
32
|
+
"clean": "rimraf dist",
|
|
33
|
+
"prepublishOnly": "npm run clean && npm run build && npm run test",
|
|
34
|
+
"tools:install": "cd tools/chunking-for-files && npm install && cd ../compress-for-context && npm install && cd ../create-dependency-graph && npm install && cd ../migrate-from-jsonl-to-sqlite && npm install",
|
|
35
|
+
"tools:build": "cd tools/chunking-for-files && npm run build && cd ../compress-for-context && npm run build && cd ../create-dependency-graph && npm run build && cd ../migrate-from-jsonl-to-sqlite && npm run build"
|
|
36
|
+
},
|
|
37
|
+
"keywords": [
|
|
38
|
+
"knowledge-graph",
|
|
39
|
+
"graph-database",
|
|
40
|
+
"entity-management",
|
|
41
|
+
"search",
|
|
42
|
+
"sqlite",
|
|
43
|
+
"jsonl",
|
|
44
|
+
"semantic-search",
|
|
45
|
+
"hybrid-search"
|
|
46
|
+
],
|
|
47
|
+
"author": "Daniel Simon Jr",
|
|
48
|
+
"license": "MIT",
|
|
49
|
+
"repository": {
|
|
50
|
+
"type": "git",
|
|
51
|
+
"url": "git+https://github.com/danielsimonjr/memoryjs.git"
|
|
52
|
+
},
|
|
53
|
+
"bugs": {
|
|
54
|
+
"url": "https://github.com/danielsimonjr/memoryjs/issues"
|
|
55
|
+
},
|
|
56
|
+
"homepage": "https://github.com/danielsimonjr/memoryjs#readme",
|
|
57
|
+
"engines": {
|
|
58
|
+
"node": ">=18.0.0"
|
|
59
|
+
},
|
|
60
|
+
"dependencies": {
|
|
61
|
+
"@danielsimonjr/workerpool": "^10.0.1",
|
|
62
|
+
"async-mutex": "^0.5.0",
|
|
63
|
+
"better-sqlite3": "^11.7.0",
|
|
64
|
+
"zod": "^3.24.1"
|
|
65
|
+
},
|
|
66
|
+
"devDependencies": {
|
|
67
|
+
"@types/better-sqlite3": "^7.6.12",
|
|
68
|
+
"@types/node": "^22.10.5",
|
|
69
|
+
"@vitest/coverage-v8": "^4.0.16",
|
|
70
|
+
"rimraf": "^6.0.1",
|
|
71
|
+
"tsup": "^8.3.5",
|
|
72
|
+
"typescript": "^5.7.2",
|
|
73
|
+
"vitest": "^4.0.16"
|
|
74
|
+
}
|
|
75
|
+
}
|