UNPKG

sombradb

Version:

A high-performance graph database with ACID transactions

242 lines (217 loc) 7.69 kB
/* 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