@soulcraft/brainy 0.13.0 → 0.15.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 +67 -1
- package/dist/augmentations/memoryAugmentations.d.ts.map +1 -1
- package/dist/brainy.js +87325 -0
- package/dist/brainy.min.js +12511 -0
- package/dist/index.d.ts +1 -3
- package/dist/storage/adapters/fileSystemStorage.d.ts +104 -0
- package/dist/storage/adapters/fileSystemStorage.d.ts.map +1 -0
- package/dist/storage/adapters/memoryStorage.d.ts +101 -0
- package/dist/storage/adapters/memoryStorage.d.ts.map +1 -0
- package/dist/storage/adapters/opfsStorage.d.ts +114 -0
- package/dist/storage/adapters/opfsStorage.d.ts.map +1 -0
- package/dist/storage/adapters/s3CompatibleStorage.d.ts +136 -0
- package/dist/storage/adapters/s3CompatibleStorage.d.ts.map +1 -0
- package/dist/storage/baseStorage.d.ts +164 -0
- package/dist/storage/baseStorage.d.ts.map +1 -0
- package/dist/storage/fileSystemStorage.d.ts +0 -7
- package/dist/storage/fileSystemStorage.d.ts.map +1 -1
- package/dist/storage/opfsStorage.d.ts +3 -10
- package/dist/storage/opfsStorage.d.ts.map +1 -1
- package/dist/storage/s3CompatibleStorage.d.ts +1 -1
- package/dist/storage/s3CompatibleStorage.d.ts.map +1 -1
- package/dist/storage/storageFactory.d.ts +151 -0
- package/dist/storage/storageFactory.d.ts.map +1 -0
- package/dist/types/fileSystemTypes.d.ts +1 -0
- package/dist/types/fileSystemTypes.d.ts.map +1 -1
- package/dist/unified.js +5066 -5641
- package/dist/unified.min.js +747 -747
- package/dist/utils/version.d.ts +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -12,9 +12,7 @@ import { UniversalSentenceEncoder, createEmbeddingFunction, createTensorFlowEmbe
|
|
|
12
12
|
import { executeInThread, cleanupWorkerPools } from './utils/workerUtils.js';
|
|
13
13
|
import { isBrowser, isNode, isWebWorker, areWebWorkersAvailable, areWorkerThreadsAvailable, areWorkerThreadsAvailableSync, isThreadingAvailable, isThreadingAvailableAsync } from './utils/environment.js';
|
|
14
14
|
export { UniversalSentenceEncoder, createEmbeddingFunction, createTensorFlowEmbeddingFunction, createThreadedEmbeddingFunction, defaultEmbeddingFunction, executeInThread, cleanupWorkerPools, isBrowser, isNode, isWebWorker, areWebWorkersAvailable, areWorkerThreadsAvailable, areWorkerThreadsAvailableSync, isThreadingAvailable, isThreadingAvailableAsync };
|
|
15
|
-
import { OPFSStorage, MemoryStorage, createStorage } from './storage/
|
|
16
|
-
import { FileSystemStorage } from './storage/fileSystemStorage.js';
|
|
17
|
-
import { R2Storage, S3CompatibleStorage } from './storage/s3CompatibleStorage.js';
|
|
15
|
+
import { OPFSStorage, MemoryStorage, FileSystemStorage, R2Storage, S3CompatibleStorage, createStorage } from './storage/storageFactory.js';
|
|
18
16
|
export { OPFSStorage, MemoryStorage, FileSystemStorage, R2Storage, S3CompatibleStorage, createStorage };
|
|
19
17
|
import { Pipeline, pipeline, augmentationPipeline, ExecutionMode, PipelineOptions, PipelineResult, executeStreamlined, executeByType, executeSingle, processStaticData, processStreamingData, createPipeline, createStreamingPipeline, StreamlinedExecutionMode, StreamlinedPipelineOptions, StreamlinedPipelineResult } from './pipeline.js';
|
|
20
18
|
import { SequentialPipeline, sequentialPipeline, SequentialPipelineOptions } from './sequentialPipeline.js';
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File System Storage Adapter
|
|
3
|
+
* File system storage adapter for Node.js environments
|
|
4
|
+
*/
|
|
5
|
+
import { GraphVerb, HNSWNoun } from '../../coreTypes.js';
|
|
6
|
+
import { BaseStorage } from '../baseStorage.js';
|
|
7
|
+
type HNSWNode = HNSWNoun;
|
|
8
|
+
type Edge = GraphVerb;
|
|
9
|
+
/**
|
|
10
|
+
* File system storage adapter for Node.js environments
|
|
11
|
+
* Uses the file system to store data in the specified directory structure
|
|
12
|
+
*/
|
|
13
|
+
export declare class FileSystemStorage extends BaseStorage {
|
|
14
|
+
private rootDir;
|
|
15
|
+
private nounsDir;
|
|
16
|
+
private verbsDir;
|
|
17
|
+
private metadataDir;
|
|
18
|
+
private indexDir;
|
|
19
|
+
/**
|
|
20
|
+
* Initialize the storage adapter
|
|
21
|
+
* @param rootDirectory The root directory for storage
|
|
22
|
+
*/
|
|
23
|
+
constructor(rootDirectory: string);
|
|
24
|
+
/**
|
|
25
|
+
* Initialize the storage adapter
|
|
26
|
+
*/
|
|
27
|
+
init(): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Ensure a directory exists, creating it if necessary
|
|
30
|
+
*/
|
|
31
|
+
private ensureDirectoryExists;
|
|
32
|
+
/**
|
|
33
|
+
* Save a node to storage
|
|
34
|
+
*/
|
|
35
|
+
protected saveNode(node: HNSWNode): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Get a node from storage
|
|
38
|
+
*/
|
|
39
|
+
protected getNode(id: string): Promise<HNSWNode | null>;
|
|
40
|
+
/**
|
|
41
|
+
* Get all nodes from storage
|
|
42
|
+
*/
|
|
43
|
+
protected getAllNodes(): Promise<HNSWNode[]>;
|
|
44
|
+
/**
|
|
45
|
+
* Get nodes by noun type
|
|
46
|
+
* @param nounType The noun type to filter by
|
|
47
|
+
* @returns Promise that resolves to an array of nodes of the specified noun type
|
|
48
|
+
*/
|
|
49
|
+
protected getNodesByNounType(nounType: string): Promise<HNSWNode[]>;
|
|
50
|
+
/**
|
|
51
|
+
* Delete a node from storage
|
|
52
|
+
*/
|
|
53
|
+
protected deleteNode(id: string): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Save an edge to storage
|
|
56
|
+
*/
|
|
57
|
+
protected saveEdge(edge: Edge): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* Get an edge from storage
|
|
60
|
+
*/
|
|
61
|
+
protected getEdge(id: string): Promise<Edge | null>;
|
|
62
|
+
/**
|
|
63
|
+
* Get all edges from storage
|
|
64
|
+
*/
|
|
65
|
+
protected getAllEdges(): Promise<Edge[]>;
|
|
66
|
+
/**
|
|
67
|
+
* Get edges by source
|
|
68
|
+
*/
|
|
69
|
+
protected getEdgesBySource(sourceId: string): Promise<Edge[]>;
|
|
70
|
+
/**
|
|
71
|
+
* Get edges by target
|
|
72
|
+
*/
|
|
73
|
+
protected getEdgesByTarget(targetId: string): Promise<Edge[]>;
|
|
74
|
+
/**
|
|
75
|
+
* Get edges by type
|
|
76
|
+
*/
|
|
77
|
+
protected getEdgesByType(type: string): Promise<Edge[]>;
|
|
78
|
+
/**
|
|
79
|
+
* Delete an edge from storage
|
|
80
|
+
*/
|
|
81
|
+
protected deleteEdge(id: string): Promise<void>;
|
|
82
|
+
/**
|
|
83
|
+
* Save metadata to storage
|
|
84
|
+
*/
|
|
85
|
+
saveMetadata(id: string, metadata: any): Promise<void>;
|
|
86
|
+
/**
|
|
87
|
+
* Get metadata from storage
|
|
88
|
+
*/
|
|
89
|
+
getMetadata(id: string): Promise<any | null>;
|
|
90
|
+
/**
|
|
91
|
+
* Clear all data from storage
|
|
92
|
+
*/
|
|
93
|
+
clear(): Promise<void>;
|
|
94
|
+
/**
|
|
95
|
+
* Get information about storage usage and capacity
|
|
96
|
+
*/
|
|
97
|
+
getStorageStatus(): Promise<{
|
|
98
|
+
type: string;
|
|
99
|
+
used: number;
|
|
100
|
+
quota: number | null;
|
|
101
|
+
details?: Record<string, any>;
|
|
102
|
+
}>;
|
|
103
|
+
}
|
|
104
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileSystemStorage.d.ts","sourceRoot":"","sources":["../../../src/storage/adapters/fileSystemStorage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAiD,MAAM,mBAAmB,CAAA;AAG9F,KAAK,QAAQ,GAAG,QAAQ,CAAA;AACxB,KAAK,IAAI,GAAG,SAAS,CAAA;AAyBrB;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,WAAW;IAChD,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,QAAQ,CAAQ;IAExB;;;OAGG;gBACS,aAAa,EAAE,MAAM;IASjC;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmClC;;OAEG;YACW,qBAAqB;IAWnC;;OAEG;cACa,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAevD;;OAEG;cACa,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IA2B7D;;OAEG;cACa,WAAW,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAiClD;;;;OAIG;cACa,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAuCzE;;OAEG;cACa,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcrD;;OAEG;cACa,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAenD;;OAEG;cACa,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAgCzD;;OAEG;cACa,WAAW,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAsC9C;;OAEG;cACa,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAKnE;;OAEG;cACa,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAKnE;;OAEG;cACa,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAK7D;;OAEG;cACa,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcrD;;OAEG;IACU,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnE;;OAEG;IACU,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAezD;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAsCnC;;OAEG;IACU,gBAAgB,IAAI,OAAO,CAAC;QACvC,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAC9B,CAAC;CAsFH"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory Storage Adapter
|
|
3
|
+
* In-memory storage adapter for environments where persistent storage is not available or needed
|
|
4
|
+
*/
|
|
5
|
+
import { GraphVerb, HNSWNoun } from '../../coreTypes.js';
|
|
6
|
+
import { BaseStorage } from '../baseStorage.js';
|
|
7
|
+
/**
|
|
8
|
+
* Type alias for HNSWNoun to make the code more readable
|
|
9
|
+
*/
|
|
10
|
+
type HNSWNode = HNSWNoun;
|
|
11
|
+
/**
|
|
12
|
+
* Type alias for GraphVerb to make the code more readable
|
|
13
|
+
*/
|
|
14
|
+
type Edge = GraphVerb;
|
|
15
|
+
/**
|
|
16
|
+
* In-memory storage adapter
|
|
17
|
+
* Uses Maps to store data in memory
|
|
18
|
+
*/
|
|
19
|
+
export declare class MemoryStorage extends BaseStorage {
|
|
20
|
+
private nouns;
|
|
21
|
+
private verbs;
|
|
22
|
+
private metadata;
|
|
23
|
+
constructor();
|
|
24
|
+
/**
|
|
25
|
+
* Initialize the storage adapter
|
|
26
|
+
* Nothing to initialize for in-memory storage
|
|
27
|
+
*/
|
|
28
|
+
init(): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Save a node to storage
|
|
31
|
+
*/
|
|
32
|
+
protected saveNode(node: HNSWNode): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Get a node from storage
|
|
35
|
+
*/
|
|
36
|
+
protected getNode(id: string): Promise<HNSWNode | null>;
|
|
37
|
+
/**
|
|
38
|
+
* Get all nodes from storage
|
|
39
|
+
*/
|
|
40
|
+
protected getAllNodes(): Promise<HNSWNode[]>;
|
|
41
|
+
/**
|
|
42
|
+
* Get nodes by noun type
|
|
43
|
+
* @param nounType The noun type to filter by
|
|
44
|
+
* @returns Promise that resolves to an array of nodes of the specified noun type
|
|
45
|
+
*/
|
|
46
|
+
protected getNodesByNounType(nounType: string): Promise<HNSWNode[]>;
|
|
47
|
+
/**
|
|
48
|
+
* Delete a node from storage
|
|
49
|
+
*/
|
|
50
|
+
protected deleteNode(id: string): Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* Save an edge to storage
|
|
53
|
+
*/
|
|
54
|
+
protected saveEdge(edge: Edge): Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* Get an edge from storage
|
|
57
|
+
*/
|
|
58
|
+
protected getEdge(id: string): Promise<Edge | null>;
|
|
59
|
+
/**
|
|
60
|
+
* Get all edges from storage
|
|
61
|
+
*/
|
|
62
|
+
protected getAllEdges(): Promise<Edge[]>;
|
|
63
|
+
/**
|
|
64
|
+
* Get edges by source
|
|
65
|
+
*/
|
|
66
|
+
protected getEdgesBySource(sourceId: string): Promise<Edge[]>;
|
|
67
|
+
/**
|
|
68
|
+
* Get edges by target
|
|
69
|
+
*/
|
|
70
|
+
protected getEdgesByTarget(targetId: string): Promise<Edge[]>;
|
|
71
|
+
/**
|
|
72
|
+
* Get edges by type
|
|
73
|
+
*/
|
|
74
|
+
protected getEdgesByType(type: string): Promise<Edge[]>;
|
|
75
|
+
/**
|
|
76
|
+
* Delete an edge from storage
|
|
77
|
+
*/
|
|
78
|
+
protected deleteEdge(id: string): Promise<void>;
|
|
79
|
+
/**
|
|
80
|
+
* Save metadata to storage
|
|
81
|
+
*/
|
|
82
|
+
saveMetadata(id: string, metadata: any): Promise<void>;
|
|
83
|
+
/**
|
|
84
|
+
* Get metadata from storage
|
|
85
|
+
*/
|
|
86
|
+
getMetadata(id: string): Promise<any | null>;
|
|
87
|
+
/**
|
|
88
|
+
* Clear all data from storage
|
|
89
|
+
*/
|
|
90
|
+
clear(): Promise<void>;
|
|
91
|
+
/**
|
|
92
|
+
* Get information about storage usage and capacity
|
|
93
|
+
*/
|
|
94
|
+
getStorageStatus(): Promise<{
|
|
95
|
+
type: string;
|
|
96
|
+
used: number;
|
|
97
|
+
quota: number | null;
|
|
98
|
+
details?: Record<string, any>;
|
|
99
|
+
}>;
|
|
100
|
+
}
|
|
101
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memoryStorage.d.ts","sourceRoot":"","sources":["../../../src/storage/adapters/memoryStorage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C;;GAEG;AACH,KAAK,QAAQ,GAAG,QAAQ,CAAA;AAExB;;GAEG;AACH,KAAK,IAAI,GAAG,SAAS,CAAA;AAErB;;;GAGG;AACH,qBAAa,aAAc,SAAQ,WAAW;IAE5C,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,QAAQ,CAA8B;;IAM9C;;;OAGG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlC;;OAEG;cACa,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBvD;;OAEG;cACa,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAwB7D;;OAEG;cACa,WAAW,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAuBlD;;;;OAIG;cACa,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IA6BzE;;OAEG;cACa,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrD;;OAEG;cACa,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBnD;;OAEG;cACa,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IA6BzD;;OAEG;cACa,WAAW,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IA4B9C;;OAEG;cACa,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAKnE;;OAEG;cACa,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAKnE;;OAEG;cACa,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAK7D;;OAEG;cACa,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrD;;OAEG;IACU,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAInE;;OAEG;IACU,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IASzD;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMnC;;OAEG;IACU,gBAAgB,IAAI,OAAO,CAAC;QACvC,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAC9B,CAAC;CAYH"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OPFS (Origin Private File System) Storage Adapter
|
|
3
|
+
* Provides persistent storage for the vector database using the Origin Private File System API
|
|
4
|
+
*/
|
|
5
|
+
import { GraphVerb, HNSWNoun } from '../../coreTypes.js';
|
|
6
|
+
import { BaseStorage } from '../baseStorage.js';
|
|
7
|
+
import '../../types/fileSystemTypes.js';
|
|
8
|
+
type HNSWNode = HNSWNoun;
|
|
9
|
+
type Edge = GraphVerb;
|
|
10
|
+
/**
|
|
11
|
+
* OPFS storage adapter for browser environments
|
|
12
|
+
* Uses the Origin Private File System API to store data persistently
|
|
13
|
+
*/
|
|
14
|
+
export declare class OPFSStorage extends BaseStorage {
|
|
15
|
+
private rootDir;
|
|
16
|
+
private nounsDir;
|
|
17
|
+
private verbsDir;
|
|
18
|
+
private metadataDir;
|
|
19
|
+
private indexDir;
|
|
20
|
+
private isAvailable;
|
|
21
|
+
private isPersistentRequested;
|
|
22
|
+
private isPersistentGranted;
|
|
23
|
+
constructor();
|
|
24
|
+
/**
|
|
25
|
+
* Initialize the storage adapter
|
|
26
|
+
*/
|
|
27
|
+
init(): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Check if OPFS is available in the current environment
|
|
30
|
+
*/
|
|
31
|
+
isOPFSAvailable(): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Request persistent storage permission from the user
|
|
34
|
+
* @returns Promise that resolves to true if permission was granted, false otherwise
|
|
35
|
+
*/
|
|
36
|
+
requestPersistentStorage(): Promise<boolean>;
|
|
37
|
+
/**
|
|
38
|
+
* Check if persistent storage is granted
|
|
39
|
+
* @returns Promise that resolves to true if persistent storage is granted, false otherwise
|
|
40
|
+
*/
|
|
41
|
+
isPersistent(): Promise<boolean>;
|
|
42
|
+
/**
|
|
43
|
+
* Save a node to storage
|
|
44
|
+
*/
|
|
45
|
+
protected saveNode(node: HNSWNode): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Get a node from storage
|
|
48
|
+
*/
|
|
49
|
+
protected getNode(id: string): Promise<HNSWNode | null>;
|
|
50
|
+
/**
|
|
51
|
+
* Get all nodes from storage
|
|
52
|
+
*/
|
|
53
|
+
protected getAllNodes(): Promise<HNSWNode[]>;
|
|
54
|
+
/**
|
|
55
|
+
* Get nodes by noun type
|
|
56
|
+
* @param nounType The noun type to filter by
|
|
57
|
+
* @returns Promise that resolves to an array of nodes of the specified noun type
|
|
58
|
+
*/
|
|
59
|
+
protected getNodesByNounType(nounType: string): Promise<HNSWNode[]>;
|
|
60
|
+
/**
|
|
61
|
+
* Delete a node from storage
|
|
62
|
+
*/
|
|
63
|
+
protected deleteNode(id: string): Promise<void>;
|
|
64
|
+
/**
|
|
65
|
+
* Save an edge to storage
|
|
66
|
+
*/
|
|
67
|
+
protected saveEdge(edge: Edge): Promise<void>;
|
|
68
|
+
/**
|
|
69
|
+
* Get an edge from storage
|
|
70
|
+
*/
|
|
71
|
+
protected getEdge(id: string): Promise<Edge | null>;
|
|
72
|
+
/**
|
|
73
|
+
* Get all edges from storage
|
|
74
|
+
*/
|
|
75
|
+
protected getAllEdges(): Promise<Edge[]>;
|
|
76
|
+
/**
|
|
77
|
+
* Get edges by source
|
|
78
|
+
*/
|
|
79
|
+
protected getEdgesBySource(sourceId: string): Promise<Edge[]>;
|
|
80
|
+
/**
|
|
81
|
+
* Get edges by target
|
|
82
|
+
*/
|
|
83
|
+
protected getEdgesByTarget(targetId: string): Promise<Edge[]>;
|
|
84
|
+
/**
|
|
85
|
+
* Get edges by type
|
|
86
|
+
*/
|
|
87
|
+
protected getEdgesByType(type: string): Promise<Edge[]>;
|
|
88
|
+
/**
|
|
89
|
+
* Delete an edge from storage
|
|
90
|
+
*/
|
|
91
|
+
protected deleteEdge(id: string): Promise<void>;
|
|
92
|
+
/**
|
|
93
|
+
* Save metadata to storage
|
|
94
|
+
*/
|
|
95
|
+
saveMetadata(id: string, metadata: any): Promise<void>;
|
|
96
|
+
/**
|
|
97
|
+
* Get metadata from storage
|
|
98
|
+
*/
|
|
99
|
+
getMetadata(id: string): Promise<any | null>;
|
|
100
|
+
/**
|
|
101
|
+
* Clear all data from storage
|
|
102
|
+
*/
|
|
103
|
+
clear(): Promise<void>;
|
|
104
|
+
/**
|
|
105
|
+
* Get information about storage usage and capacity
|
|
106
|
+
*/
|
|
107
|
+
getStorageStatus(): Promise<{
|
|
108
|
+
type: string;
|
|
109
|
+
used: number;
|
|
110
|
+
quota: number | null;
|
|
111
|
+
details?: Record<string, any>;
|
|
112
|
+
}>;
|
|
113
|
+
}
|
|
114
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opfsStorage.d.ts","sourceRoot":"","sources":["../../../src/storage/adapters/opfsStorage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAC,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAC,WAAW,EAAgD,MAAM,mBAAmB,CAAA;AAC5F,OAAO,gCAAgC,CAAA;AAavC,KAAK,QAAQ,GAAG,QAAQ,CAAA;AACxB,KAAK,IAAI,GAAG,SAAS,CAAA;AAKrB;;;GAGG;AACH,qBAAa,WAAY,SAAQ,WAAW;IACxC,OAAO,CAAC,OAAO,CAAyC;IACxD,OAAO,CAAC,QAAQ,CAAyC;IACzD,OAAO,CAAC,QAAQ,CAAyC;IACzD,OAAO,CAAC,WAAW,CAAyC;IAC5D,OAAO,CAAC,QAAQ,CAAyC;IACzD,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,qBAAqB,CAAQ;IACrC,OAAO,CAAC,mBAAmB,CAAQ;;IAWnC;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA6ClC;;OAEG;IACI,eAAe,IAAI,OAAO;IAIjC;;;OAGG;IACU,wBAAwB,IAAI,OAAO,CAAC,OAAO,CAAC;IAuBzD;;;OAGG;IACU,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAc7C;;OAEG;cACa,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BvD;;OAEG;cACa,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IA6B7D;;OAEG;cACa,WAAW,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAqClD;;;;OAIG;cACa,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IA4CzE;;OAEG;cACa,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcrD;;OAEG;cACa,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BnD;;OAEG;cACa,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAkCzD;;OAEG;cACa,WAAW,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IA0C9C;;OAEG;cACa,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAKnE;;OAEG;cACa,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAKnE;;OAEG;cACa,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAK7D;;OAEG;cACa,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcrD;;OAEG;IACU,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBnE;;OAEG;IACU,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAiBzD;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAmCnC;;OAEG;IACU,gBAAgB,IAAI,OAAO,CAAC;QACrC,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAChC,CAAC;CAoIL"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* S3-Compatible Storage Adapter
|
|
3
|
+
* Uses the AWS S3 client to interact with S3-compatible storage services
|
|
4
|
+
* including Amazon S3, Cloudflare R2, and Google Cloud Storage
|
|
5
|
+
*/
|
|
6
|
+
import { GraphVerb, HNSWNoun } from '../../coreTypes.js';
|
|
7
|
+
import { BaseStorage } from '../baseStorage.js';
|
|
8
|
+
type HNSWNode = HNSWNoun;
|
|
9
|
+
type Edge = GraphVerb;
|
|
10
|
+
export { S3CompatibleStorage as R2Storage };
|
|
11
|
+
/**
|
|
12
|
+
* S3-compatible storage adapter for server environments
|
|
13
|
+
* Uses the AWS S3 client to interact with S3-compatible storage services
|
|
14
|
+
* including Amazon S3, Cloudflare R2, and Google Cloud Storage
|
|
15
|
+
*
|
|
16
|
+
* To use this adapter with Amazon S3, you need to provide:
|
|
17
|
+
* - region: AWS region (e.g., 'us-east-1')
|
|
18
|
+
* - credentials: AWS credentials (accessKeyId and secretAccessKey)
|
|
19
|
+
* - bucketName: S3 bucket name
|
|
20
|
+
*
|
|
21
|
+
* To use this adapter with Cloudflare R2, you need to provide:
|
|
22
|
+
* - accountId: Cloudflare account ID
|
|
23
|
+
* - accessKeyId: R2 access key ID
|
|
24
|
+
* - secretAccessKey: R2 secret access key
|
|
25
|
+
* - bucketName: R2 bucket name
|
|
26
|
+
*
|
|
27
|
+
* To use this adapter with Google Cloud Storage, you need to provide:
|
|
28
|
+
* - region: GCS region (e.g., 'us-central1')
|
|
29
|
+
* - credentials: GCS credentials (accessKeyId and secretAccessKey)
|
|
30
|
+
* - endpoint: GCS endpoint (e.g., 'https://storage.googleapis.com')
|
|
31
|
+
* - bucketName: GCS bucket name
|
|
32
|
+
*/
|
|
33
|
+
export declare class S3CompatibleStorage extends BaseStorage {
|
|
34
|
+
private s3Client;
|
|
35
|
+
private bucketName;
|
|
36
|
+
private serviceType;
|
|
37
|
+
private region;
|
|
38
|
+
private endpoint?;
|
|
39
|
+
private accountId?;
|
|
40
|
+
private accessKeyId;
|
|
41
|
+
private secretAccessKey;
|
|
42
|
+
private sessionToken?;
|
|
43
|
+
private nounPrefix;
|
|
44
|
+
private verbPrefix;
|
|
45
|
+
private metadataPrefix;
|
|
46
|
+
private indexPrefix;
|
|
47
|
+
/**
|
|
48
|
+
* Initialize the storage adapter
|
|
49
|
+
* @param options Configuration options for the S3-compatible storage
|
|
50
|
+
*/
|
|
51
|
+
constructor(options: {
|
|
52
|
+
bucketName: string;
|
|
53
|
+
region?: string;
|
|
54
|
+
endpoint?: string;
|
|
55
|
+
accountId?: string;
|
|
56
|
+
accessKeyId: string;
|
|
57
|
+
secretAccessKey: string;
|
|
58
|
+
sessionToken?: string;
|
|
59
|
+
serviceType?: string;
|
|
60
|
+
});
|
|
61
|
+
/**
|
|
62
|
+
* Initialize the storage adapter
|
|
63
|
+
*/
|
|
64
|
+
init(): Promise<void>;
|
|
65
|
+
/**
|
|
66
|
+
* Save a node to storage
|
|
67
|
+
*/
|
|
68
|
+
protected saveNode(node: HNSWNode): Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* Get a node from storage
|
|
71
|
+
*/
|
|
72
|
+
protected getNode(id: string): Promise<HNSWNode | null>;
|
|
73
|
+
/**
|
|
74
|
+
* Get all nodes from storage
|
|
75
|
+
*/
|
|
76
|
+
protected getAllNodes(): Promise<HNSWNode[]>;
|
|
77
|
+
/**
|
|
78
|
+
* Get nodes by noun type
|
|
79
|
+
* @param nounType The noun type to filter by
|
|
80
|
+
* @returns Promise that resolves to an array of nodes of the specified noun type
|
|
81
|
+
*/
|
|
82
|
+
protected getNodesByNounType(nounType: string): Promise<HNSWNode[]>;
|
|
83
|
+
/**
|
|
84
|
+
* Delete a node from storage
|
|
85
|
+
*/
|
|
86
|
+
protected deleteNode(id: string): Promise<void>;
|
|
87
|
+
/**
|
|
88
|
+
* Save an edge to storage
|
|
89
|
+
*/
|
|
90
|
+
protected saveEdge(edge: Edge): Promise<void>;
|
|
91
|
+
/**
|
|
92
|
+
* Get an edge from storage
|
|
93
|
+
*/
|
|
94
|
+
protected getEdge(id: string): Promise<Edge | null>;
|
|
95
|
+
/**
|
|
96
|
+
* Get all edges from storage
|
|
97
|
+
*/
|
|
98
|
+
protected getAllEdges(): Promise<Edge[]>;
|
|
99
|
+
/**
|
|
100
|
+
* Get edges by source
|
|
101
|
+
*/
|
|
102
|
+
protected getEdgesBySource(sourceId: string): Promise<Edge[]>;
|
|
103
|
+
/**
|
|
104
|
+
* Get edges by target
|
|
105
|
+
*/
|
|
106
|
+
protected getEdgesByTarget(targetId: string): Promise<Edge[]>;
|
|
107
|
+
/**
|
|
108
|
+
* Get edges by type
|
|
109
|
+
*/
|
|
110
|
+
protected getEdgesByType(type: string): Promise<Edge[]>;
|
|
111
|
+
/**
|
|
112
|
+
* Delete an edge from storage
|
|
113
|
+
*/
|
|
114
|
+
protected deleteEdge(id: string): Promise<void>;
|
|
115
|
+
/**
|
|
116
|
+
* Save metadata to storage
|
|
117
|
+
*/
|
|
118
|
+
saveMetadata(id: string, metadata: any): Promise<void>;
|
|
119
|
+
/**
|
|
120
|
+
* Get metadata from storage
|
|
121
|
+
*/
|
|
122
|
+
getMetadata(id: string): Promise<any | null>;
|
|
123
|
+
/**
|
|
124
|
+
* Clear all data from storage
|
|
125
|
+
*/
|
|
126
|
+
clear(): Promise<void>;
|
|
127
|
+
/**
|
|
128
|
+
* Get information about storage usage and capacity
|
|
129
|
+
*/
|
|
130
|
+
getStorageStatus(): Promise<{
|
|
131
|
+
type: string;
|
|
132
|
+
used: number;
|
|
133
|
+
quota: number | null;
|
|
134
|
+
details?: Record<string, any>;
|
|
135
|
+
}>;
|
|
136
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3CompatibleStorage.d.ts","sourceRoot":"","sources":["../../../src/storage/adapters/s3CompatibleStorage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base Storage Adapter
|
|
3
|
+
* Provides common functionality for all storage adapters
|
|
4
|
+
*/
|
|
5
|
+
import { GraphVerb, HNSWNoun, StorageAdapter } from '../coreTypes.js';
|
|
6
|
+
export declare const NOUNS_DIR = "nouns";
|
|
7
|
+
export declare const VERBS_DIR = "verbs";
|
|
8
|
+
export declare const METADATA_DIR = "metadata";
|
|
9
|
+
export declare const INDEX_DIR = "index";
|
|
10
|
+
/**
|
|
11
|
+
* Base storage adapter that implements common functionality
|
|
12
|
+
* This is an abstract class that should be extended by specific storage adapters
|
|
13
|
+
*/
|
|
14
|
+
export declare abstract class BaseStorage implements StorageAdapter {
|
|
15
|
+
protected isInitialized: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Initialize the storage adapter
|
|
18
|
+
* This method should be implemented by each specific adapter
|
|
19
|
+
*/
|
|
20
|
+
abstract init(): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Ensure the storage adapter is initialized
|
|
23
|
+
*/
|
|
24
|
+
protected ensureInitialized(): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Save a noun to storage
|
|
27
|
+
*/
|
|
28
|
+
saveNoun(noun: HNSWNoun): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Get a noun from storage
|
|
31
|
+
*/
|
|
32
|
+
getNoun(id: string): Promise<HNSWNoun | null>;
|
|
33
|
+
/**
|
|
34
|
+
* Get all nouns from storage
|
|
35
|
+
*/
|
|
36
|
+
getAllNouns(): Promise<HNSWNoun[]>;
|
|
37
|
+
/**
|
|
38
|
+
* Get nouns by noun type
|
|
39
|
+
* @param nounType The noun type to filter by
|
|
40
|
+
* @returns Promise that resolves to an array of nouns of the specified noun type
|
|
41
|
+
*/
|
|
42
|
+
getNounsByNounType(nounType: string): Promise<HNSWNoun[]>;
|
|
43
|
+
/**
|
|
44
|
+
* Delete a noun from storage
|
|
45
|
+
*/
|
|
46
|
+
deleteNoun(id: string): Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* Save a verb to storage
|
|
49
|
+
*/
|
|
50
|
+
saveVerb(verb: GraphVerb): Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* Get a verb from storage
|
|
53
|
+
*/
|
|
54
|
+
getVerb(id: string): Promise<GraphVerb | null>;
|
|
55
|
+
/**
|
|
56
|
+
* Get all verbs from storage
|
|
57
|
+
*/
|
|
58
|
+
getAllVerbs(): Promise<GraphVerb[]>;
|
|
59
|
+
/**
|
|
60
|
+
* Get verbs by source
|
|
61
|
+
*/
|
|
62
|
+
getVerbsBySource(sourceId: string): Promise<GraphVerb[]>;
|
|
63
|
+
/**
|
|
64
|
+
* Get verbs by target
|
|
65
|
+
*/
|
|
66
|
+
getVerbsByTarget(targetId: string): Promise<GraphVerb[]>;
|
|
67
|
+
/**
|
|
68
|
+
* Get verbs by type
|
|
69
|
+
*/
|
|
70
|
+
getVerbsByType(type: string): Promise<GraphVerb[]>;
|
|
71
|
+
/**
|
|
72
|
+
* Delete a verb from storage
|
|
73
|
+
*/
|
|
74
|
+
deleteVerb(id: string): Promise<void>;
|
|
75
|
+
/**
|
|
76
|
+
* Clear all data from storage
|
|
77
|
+
* This method should be implemented by each specific adapter
|
|
78
|
+
*/
|
|
79
|
+
abstract clear(): Promise<void>;
|
|
80
|
+
/**
|
|
81
|
+
* Get information about storage usage and capacity
|
|
82
|
+
* This method should be implemented by each specific adapter
|
|
83
|
+
*/
|
|
84
|
+
abstract getStorageStatus(): Promise<{
|
|
85
|
+
type: string;
|
|
86
|
+
used: number;
|
|
87
|
+
quota: number | null;
|
|
88
|
+
details?: Record<string, any>;
|
|
89
|
+
}>;
|
|
90
|
+
/**
|
|
91
|
+
* Save metadata to storage
|
|
92
|
+
* This method should be implemented by each specific adapter
|
|
93
|
+
*/
|
|
94
|
+
abstract saveMetadata(id: string, metadata: any): Promise<void>;
|
|
95
|
+
/**
|
|
96
|
+
* Get metadata from storage
|
|
97
|
+
* This method should be implemented by each specific adapter
|
|
98
|
+
*/
|
|
99
|
+
abstract getMetadata(id: string): Promise<any | null>;
|
|
100
|
+
/**
|
|
101
|
+
* Save a node to storage
|
|
102
|
+
* This method should be implemented by each specific adapter
|
|
103
|
+
*/
|
|
104
|
+
protected abstract saveNode(node: HNSWNoun): Promise<void>;
|
|
105
|
+
/**
|
|
106
|
+
* Get a node from storage
|
|
107
|
+
* This method should be implemented by each specific adapter
|
|
108
|
+
*/
|
|
109
|
+
protected abstract getNode(id: string): Promise<HNSWNoun | null>;
|
|
110
|
+
/**
|
|
111
|
+
* Get all nodes from storage
|
|
112
|
+
* This method should be implemented by each specific adapter
|
|
113
|
+
*/
|
|
114
|
+
protected abstract getAllNodes(): Promise<HNSWNoun[]>;
|
|
115
|
+
/**
|
|
116
|
+
* Get nodes by noun type
|
|
117
|
+
* This method should be implemented by each specific adapter
|
|
118
|
+
*/
|
|
119
|
+
protected abstract getNodesByNounType(nounType: string): Promise<HNSWNoun[]>;
|
|
120
|
+
/**
|
|
121
|
+
* Delete a node from storage
|
|
122
|
+
* This method should be implemented by each specific adapter
|
|
123
|
+
*/
|
|
124
|
+
protected abstract deleteNode(id: string): Promise<void>;
|
|
125
|
+
/**
|
|
126
|
+
* Save an edge to storage
|
|
127
|
+
* This method should be implemented by each specific adapter
|
|
128
|
+
*/
|
|
129
|
+
protected abstract saveEdge(edge: GraphVerb): Promise<void>;
|
|
130
|
+
/**
|
|
131
|
+
* Get an edge from storage
|
|
132
|
+
* This method should be implemented by each specific adapter
|
|
133
|
+
*/
|
|
134
|
+
protected abstract getEdge(id: string): Promise<GraphVerb | null>;
|
|
135
|
+
/**
|
|
136
|
+
* Get all edges from storage
|
|
137
|
+
* This method should be implemented by each specific adapter
|
|
138
|
+
*/
|
|
139
|
+
protected abstract getAllEdges(): Promise<GraphVerb[]>;
|
|
140
|
+
/**
|
|
141
|
+
* Get edges by source
|
|
142
|
+
* This method should be implemented by each specific adapter
|
|
143
|
+
*/
|
|
144
|
+
protected abstract getEdgesBySource(sourceId: string): Promise<GraphVerb[]>;
|
|
145
|
+
/**
|
|
146
|
+
* Get edges by target
|
|
147
|
+
* This method should be implemented by each specific adapter
|
|
148
|
+
*/
|
|
149
|
+
protected abstract getEdgesByTarget(targetId: string): Promise<GraphVerb[]>;
|
|
150
|
+
/**
|
|
151
|
+
* Get edges by type
|
|
152
|
+
* This method should be implemented by each specific adapter
|
|
153
|
+
*/
|
|
154
|
+
protected abstract getEdgesByType(type: string): Promise<GraphVerb[]>;
|
|
155
|
+
/**
|
|
156
|
+
* Delete an edge from storage
|
|
157
|
+
* This method should be implemented by each specific adapter
|
|
158
|
+
*/
|
|
159
|
+
protected abstract deleteEdge(id: string): Promise<void>;
|
|
160
|
+
/**
|
|
161
|
+
* Helper method to convert a Map to a plain object for serialization
|
|
162
|
+
*/
|
|
163
|
+
protected mapToObject<K extends string | number, V>(map: Map<K, V>, valueTransformer?: (value: V) => any): Record<string, any>;
|
|
164
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseStorage.d.ts","sourceRoot":"","sources":["../../src/storage/baseStorage.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,13 +7,6 @@ export declare class FileSystemStorage implements StorageAdapter {
|
|
|
7
7
|
private nounsDir;
|
|
8
8
|
private verbsDir;
|
|
9
9
|
private metadataDir;
|
|
10
|
-
private personDir;
|
|
11
|
-
private placeDir;
|
|
12
|
-
private thingDir;
|
|
13
|
-
private eventDir;
|
|
14
|
-
private conceptDir;
|
|
15
|
-
private contentDir;
|
|
16
|
-
private defaultDir;
|
|
17
10
|
private isInitialized;
|
|
18
11
|
constructor(rootDirectory?: string);
|
|
19
12
|
/**
|