sombradb
Version:
A high-performance graph database with ACID transactions
242 lines (217 loc) • 7.69 kB
TypeScript
/* auto-generated by NAPI-RS */
/* eslint-disable */
export declare class QueryBuilder {
startFrom(nodeIds: Array<number>): this
startFromLabel(label: string): this
startFromProperty(label: string, key: string, value: string): this
traverse(edgeTypes: Array<string>, direction: string, depth: number): this
limit(n: number): this
getIds(): QueryResult
getNodes(): Array<SombraNode>
}
export type JsQueryBuilder = QueryBuilder
export declare class SombraDB {
constructor(path: string)
beginTransaction(): SombraTransaction
addNode(labels: Array<string>, properties?: Record<string, SombraPropertyValue> | undefined | null): number
addEdge(sourceNodeId: number, targetNodeId: number, label: string, properties?: Record<string, SombraPropertyValue> | undefined | null): number
getEdge(edgeId: number): SombraEdge
getOutgoingEdges(nodeId: number): Array<number>
getIncomingEdges(nodeId: number): Array<number>
getNode(nodeId: number): SombraNode | null
getNeighbors(nodeId: number): Array<number>
deleteNode(nodeId: number): void
deleteEdge(edgeId: number): void
setNodeProperty(nodeId: number, key: string, value: SombraPropertyValue): void
removeNodeProperty(nodeId: number, key: string): void
flush(): void
checkpoint(): void
getIncomingNeighbors(nodeId: number): Array<number>
getNeighborsTwoHops(nodeId: number): Array<number>
getNeighborsThreeHops(nodeId: number): Array<number>
bfsTraversal(startNodeId: number, maxDepth: number): Array<BfsResult>
getNodesByLabel(label: string): Array<number>
getNodesInRange(start: number, end: number): Array<number>
getNodesFrom(start: number): Array<number>
getNodesTo(end: number): Array<number>
getFirstNode(): number | null
getLastNode(): number | null
getFirstNNodes(n: number): Array<number>
getLastNNodes(n: number): Array<number>
getAllNodeIdsOrdered(): Array<number>
countOutgoingEdges(nodeId: number): number
countIncomingEdges(nodeId: number): number
countNodesByLabel(): Record<string, number>
countEdgesByType(): Record<string, number>
getTotalNodeCount(): number
getTotalEdgeCount(): number
degreeDistribution(): JsDegreeDistribution
findHubs(minDegree: number, degreeType: string): Array<HubNode>
findIsolatedNodes(): Array<number>
findLeafNodes(direction: string): Array<number>
getAverageDegree(): number
getDensity(): number
countNodesWithLabel(label: string): number
countEdgesWithType(edgeType: string): number
extractSubgraph(rootNodes: Array<number>, depth: number, edgeTypes?: Array<string> | undefined | null, direction?: string | undefined | null): JsSubgraph
extractInducedSubgraph(nodeIds: Array<number>): JsSubgraph
query(): JsQueryBuilder
findAncestorByLabel(startNodeId: number, label: string, edgeType: string): number | null
getAncestors(startNodeId: number, edgeType: string, maxDepth?: number | undefined | null): Array<number>
getDescendants(startNodeId: number, edgeType: string, maxDepth?: number | undefined | null): Array<number>
getContainingFile(nodeId: number): number
matchPattern(pattern: JsPattern): Array<JsMatch>
shortestPath(start: number, end: number, edgeTypes?: Array<string> | undefined | null): Array<number> | null
findPaths(start: number, end: number, minDepth: number, maxDepth: number, edgeTypes?: Array<string> | undefined | null): Array<Array<number>>
verifyIntegrity(opts: IntegrityOptions): IntegrityReport
getHeader(): HeaderState
getMetrics(): Metrics
}
export declare class SombraTransaction {
id(): number
addNode(labels: Array<string>, properties?: Record<string, SombraPropertyValue> | undefined | null): number
addEdge(sourceNodeId: number, targetNodeId: number, label: string, properties?: Record<string, SombraPropertyValue> | undefined | null): number
getEdge(edgeId: number): SombraEdge
getOutgoingEdges(nodeId: number): Array<number>
getIncomingEdges(nodeId: number): Array<number>
getNode(nodeId: number): SombraNode | null
getNeighbors(nodeId: number): Array<number>
deleteNode(nodeId: number): void
deleteEdge(edgeId: number): void
setNodeProperty(nodeId: number, key: string, value: SombraPropertyValue): void
removeNodeProperty(nodeId: number, key: string): void
commit(): void
rollback(): void
getIncomingNeighbors(nodeId: number): Array<number>
getNeighborsTwoHops(nodeId: number): Array<number>
getNeighborsThreeHops(nodeId: number): Array<number>
bfsTraversal(startNodeId: number, maxDepth: number): Array<BfsResult>
getNodesByLabel(label: string): Array<number>
getNodesInRange(start: number, end: number): Array<number>
getNodesFrom(start: number): Array<number>
getNodesTo(end: number): Array<number>
getFirstNode(): number | null
getLastNode(): number | null
getFirstNNodes(n: number): Array<number>
getLastNNodes(n: number): Array<number>
getAllNodeIdsOrdered(): Array<number>
countOutgoingEdges(nodeId: number): number
countIncomingEdges(nodeId: number): number
}
export interface BfsResult {
nodeId: number
depth: number
}
export interface DegreeEntry {
nodeId: number
degree: number
}
export interface EdgePattern {
fromVar: string
toVar: string
types?: Array<string>
properties?: PropertyFilters
direction: string
}
export declare function getDefaultPageSize(): number
export interface HeaderState {
nextNodeId: number
nextEdgeId: number
freePageHead?: number
lastRecordPage?: number
lastCommittedTxId: number
btreeIndexPage?: number
btreeIndexSize: number
}
export interface HubNode {
nodeId: number
degree: number
}
export interface IntegrityOptions {
checksumOnly?: boolean
verifyIndexes?: boolean
verifyAdjacency?: boolean
maxErrors?: number
}
export interface IntegrityReport {
checkedPages: number
checksumFailures: number
recordErrors: number
indexErrors: number
adjacencyErrors: number
errors: Array<string>
}
export interface JsDegreeDistribution {
inDegree: Array<DegreeEntry>
outDegree: Array<DegreeEntry>
totalDegree: Array<DegreeEntry>
}
export interface JsMatch {
nodeBindings: Record<string, number>
edgeIds: Array<number>
}
export interface JsPattern {
nodes: Array<NodePattern>
edges: Array<EdgePattern>
}
export interface JsSubgraph {
nodes: Array<SombraNode>
edges: Array<SombraEdge>
boundaryNodes: Array<number>
}
export interface Metrics {
cacheHits: number
cacheMisses: number
nodeLookups: number
edgeTraversals: number
walBytesWritten: number
walSyncs: number
checkpointsPerformed: number
pageEvictions: number
transactionsCommitted: number
transactionsRolledBack: number
}
export interface NodePattern {
varName: string
labels?: Array<string>
properties?: PropertyFilters
}
export interface PropertyBound {
value: SombraPropertyValue
inclusive: boolean
}
export interface PropertyFilters {
equals?: Record<string, SombraPropertyValue>
notEquals?: Record<string, SombraPropertyValue>
ranges?: Array<PropertyRangeFilter>
}
export interface PropertyRangeFilter {
key: string
min?: PropertyBound
max?: PropertyBound
}
export interface QueryResult {
startNodes: Array<number>
nodeIds: Array<number>
limited: boolean
}
export interface SombraEdge {
id: number
sourceNodeId: number
targetNodeId: number
typeName: string
properties: Record<string, SombraPropertyValue>
}
export interface SombraNode {
id: number
labels: Array<string>
properties: Record<string, SombraPropertyValue>
}
export interface SombraPropertyValue {
type: string
value: any
}
export type DegreeDistribution = JsDegreeDistribution
export type Subgraph = JsSubgraph
export type Pattern = JsPattern
export type Match = JsMatch