synapse-db 0.3.0 → 0.3.1
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/dist/connectome.d.ts +11 -2
- package/dist/engine.d.ts +22 -3
- package/dist/index.d.ts +27 -0
- package/dist/index.js +1068 -100
- package/dist/serializer.d.ts +5 -0
- package/dist/types.d.ts +2 -0
- package/dist/wal/arena.d.ts +70 -0
- package/dist/wal/config.d.ts +52 -0
- package/dist/wal/index.d.ts +81 -0
- package/dist/wal/ringBuffer.d.ts +94 -0
- package/dist/wal/sqliteWalStore.d.ts +38 -0
- package/dist/wal/timeTravel.d.ts +34 -0
- package/package.json +2 -2
package/dist/connectome.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export declare class SynapseConnectome {
|
|
|
11
11
|
private readonly edgeMeta;
|
|
12
12
|
private readonly tokenInvertedIndex;
|
|
13
13
|
private readonly documentTokens;
|
|
14
|
+
private readonly dirtySearchNodes;
|
|
14
15
|
constructor();
|
|
15
16
|
/**
|
|
16
17
|
* 고유 노드 ID 복합키 생성
|
|
@@ -29,9 +30,17 @@ export declare class SynapseConnectome {
|
|
|
29
30
|
*/
|
|
30
31
|
removeDocument(collection: string, id: string): boolean;
|
|
31
32
|
/**
|
|
32
|
-
* 해당
|
|
33
|
+
* 해당 문서에서 출발하는 나가는 간선(Outgoing Edges)만 정리
|
|
33
34
|
*/
|
|
34
|
-
private
|
|
35
|
+
private removeDocumentOutgoingEdges;
|
|
36
|
+
/**
|
|
37
|
+
* 해당 문서의 기존 전문 검색 토큰 역색인 정리 (유령 토큰 원천 차단)
|
|
38
|
+
*/
|
|
39
|
+
private removeDocumentSearchTokens;
|
|
40
|
+
/**
|
|
41
|
+
* 대기 중인 변경 문서들의 검색 역색인을 일괄 동기화 (검색 또는 무결성 검증 시 자동 호출)
|
|
42
|
+
*/
|
|
43
|
+
private flushDirtySearchIndex;
|
|
35
44
|
/**
|
|
36
45
|
* O(1) 단일 문서 조회
|
|
37
46
|
*/
|
package/dist/engine.d.ts
CHANGED
|
@@ -1,19 +1,24 @@
|
|
|
1
1
|
import { SynapseConnectome } from "./connectome";
|
|
2
|
+
import { CausalWalEngine } from "./wal";
|
|
2
3
|
import type { SynapseDBConfig, SynapseDocument, SynapseDocumentInput, SynapseDBStats } from "./types";
|
|
3
4
|
export declare class SynapseEngine {
|
|
4
5
|
readonly vaultDir: string;
|
|
5
6
|
readonly connectome: SynapseConnectome;
|
|
7
|
+
readonly wal: CausalWalEngine;
|
|
6
8
|
readonly config: SynapseDBConfig;
|
|
7
9
|
private isInitialized;
|
|
8
10
|
private pendingWriteQueue;
|
|
9
11
|
private writeTimer;
|
|
12
|
+
private nextTimerFlushAtMs;
|
|
13
|
+
private cachedIsoMs;
|
|
14
|
+
private cachedIsoStr;
|
|
10
15
|
private watcherDebounceTimer;
|
|
11
16
|
private internalWriteResetTimer;
|
|
12
17
|
private fileWatcher;
|
|
13
18
|
private isWritingInternally;
|
|
14
19
|
constructor(config: SynapseDBConfig);
|
|
15
20
|
/**
|
|
16
|
-
* 볼트 디렉터리 초기화 및 기존 마크다운 파일 전체 로드
|
|
21
|
+
* 볼트 디렉터리 초기화 및 기존 마크다운 파일 전체 로드 + SQLite WAL 크래시 복구
|
|
17
22
|
*/
|
|
18
23
|
init(): Promise<void>;
|
|
19
24
|
/**
|
|
@@ -25,7 +30,16 @@ export declare class SynapseEngine {
|
|
|
25
30
|
*/
|
|
26
31
|
private loadCollectionDir;
|
|
27
32
|
/**
|
|
28
|
-
*
|
|
33
|
+
* 트랜잭션 아레나 스코프 내부일 경우 스테이징된 최신 문서를 우선 조회
|
|
34
|
+
*/
|
|
35
|
+
private getEffectiveDocument;
|
|
36
|
+
private isValidSafeIdentifier;
|
|
37
|
+
/**
|
|
38
|
+
* 동일 밀리초 내 Date.toISOString() 반복 문자열 할당을 제거하는 O(1) 시계열 타임스탬프 생성기
|
|
39
|
+
*/
|
|
40
|
+
private getNowIso;
|
|
41
|
+
/**
|
|
42
|
+
* 문서 저장 (Causal-WAL 링 버퍼 기록 + 인메모리 즉시 반영 + 지연(Lazy) 직렬화 원자적 디스크 쓰기)
|
|
29
43
|
*/
|
|
30
44
|
saveDocument<TData = Record<string, any>>(collection: string, input: SynapseDocumentInput<TData>): Promise<SynapseDocument<TData>>;
|
|
31
45
|
/**
|
|
@@ -37,9 +51,14 @@ export declare class SynapseEngine {
|
|
|
37
51
|
*/
|
|
38
52
|
deleteDocument(collection: string, id: string): Promise<boolean>;
|
|
39
53
|
/**
|
|
40
|
-
*
|
|
54
|
+
* 아레나 할당기 기반 원자적 트랜잭션 실행 (예외 발생 시 0ns 롤백, 성공 시 일괄 반영)
|
|
55
|
+
*/
|
|
56
|
+
executeTransaction<TResult>(fn: () => Promise<TResult> | TResult): Promise<TResult>;
|
|
57
|
+
/**
|
|
58
|
+
* 비동기 디바운스 디스크 쓰기 예약 (커널 타이머 재등록 오버헤드 제거 Coalesced Timer)
|
|
41
59
|
*/
|
|
42
60
|
private scheduleWrite;
|
|
61
|
+
private armWriteTimer;
|
|
43
62
|
/**
|
|
44
63
|
* 대기 중인 모든 디스크 쓰기 일괄 실행
|
|
45
64
|
*/
|
package/dist/index.d.ts
CHANGED
|
@@ -5,8 +5,10 @@
|
|
|
5
5
|
import { SynapseEngine } from "./engine";
|
|
6
6
|
import { SynapseCollection } from "./collection";
|
|
7
7
|
import { SynapseMigrator } from "./migrator";
|
|
8
|
+
import { SynapseConnectome } from "./connectome";
|
|
8
9
|
import { exportToObsidianCanvas, type CanvasData } from "./canvasExporter";
|
|
9
10
|
import type { SynapseDBConfig, SynapseDBStats } from "./types";
|
|
11
|
+
import type { CausalTimelineDiff, CausalWalEntry, CausalWalUnifiedStats, CompilerTemporalMetric } from "./wal";
|
|
10
12
|
export declare class SynapseDB {
|
|
11
13
|
readonly engine: SynapseEngine;
|
|
12
14
|
private readonly collections;
|
|
@@ -35,6 +37,30 @@ export declare class SynapseDB {
|
|
|
35
37
|
* 대기 중인 모든 디스크 I/O 플러시
|
|
36
38
|
*/
|
|
37
39
|
flush(): void;
|
|
40
|
+
/**
|
|
41
|
+
* 아레나 할당기 기반 원자적 트랜잭션 실행 (예외 발생 시 0ns 롤백)
|
|
42
|
+
*/
|
|
43
|
+
transaction<TResult>(fn: () => Promise<TResult> | TResult): Promise<TResult>;
|
|
44
|
+
/**
|
|
45
|
+
* 특정 LSN 시점의 시냅스 커넥톰을 즉시 복원 (Time-Travel)
|
|
46
|
+
*/
|
|
47
|
+
asOfLsn(targetLsn: number): SynapseConnectome;
|
|
48
|
+
/**
|
|
49
|
+
* 특정 타임스탬프(밀리초 또는 ISO 문자열) 시점의 시냅스 커넥톰 즉시 복원 (Time-Travel)
|
|
50
|
+
*/
|
|
51
|
+
asOf(timestampMsOrIso: number | string): SynapseConnectome;
|
|
52
|
+
/**
|
|
53
|
+
* 두 LSN 시점 사이의 문서 생성·수정·삭제 및 위키링크 변화 차분(Diff) 조회
|
|
54
|
+
*/
|
|
55
|
+
diffBetweenLsn(fromLsn: number, toLsn: number): CausalTimelineDiff;
|
|
56
|
+
/**
|
|
57
|
+
* 컴파일러 빌드 지연시간 및 바이너리 크기 시계열 메트릭 기록
|
|
58
|
+
*/
|
|
59
|
+
recordCompilerMetric(metric: CompilerTemporalMetric): CausalWalEntry;
|
|
60
|
+
/**
|
|
61
|
+
* Causal-WAL (링 버퍼, 아레나, SQLite WAL) 통합 상태 통계
|
|
62
|
+
*/
|
|
63
|
+
walStats(): CausalWalUnifiedStats;
|
|
38
64
|
/**
|
|
39
65
|
* 데이터베이스 종료 및 워처 해제
|
|
40
66
|
*/
|
|
@@ -47,3 +73,4 @@ export * from "./serializer";
|
|
|
47
73
|
export * from "./engine";
|
|
48
74
|
export * from "./migrator";
|
|
49
75
|
export * from "./canvasExporter";
|
|
76
|
+
export * from "./wal";
|