@kitedb/core 0.2.6 → 0.2.8

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 CHANGED
@@ -21,7 +21,7 @@ This package ships prebuilt binaries for major platforms. If a prebuild isn't av
21
21
  The fluent API provides a high-level, type-safe interface for schema-driven workflows:
22
22
 
23
23
  ```ts
24
- import { ray, node, edge, prop, optional } from 'kitedb'
24
+ import { kite, node, edge, prop, optional } from 'kitedb'
25
25
 
26
26
  // Define your schema
27
27
  const User = node('user', {
@@ -38,7 +38,7 @@ const Knows = edge('knows', {
38
38
  })
39
39
 
40
40
  // Open database (async)
41
- const db = await ray('./social.kitedb', {
41
+ const db = await kite('./social.kitedb', {
42
42
  nodes: [User],
43
43
  edges: [Knows],
44
44
  })
@@ -59,6 +59,26 @@ const path = db.shortestPath(alice).via(Knows).to(bob).dijkstra()
59
59
  db.close()
60
60
  ```
61
61
 
62
+ Note: The example uses top-level await (ESM). If your project is CommonJS or can’t enable top-level await, wrap it:
63
+
64
+ ```ts
65
+ async function main() {
66
+ const db = await kite('./social.kitedb', { nodes: [User], edges: [Knows] })
67
+ // ...
68
+ db.close()
69
+ }
70
+
71
+ main().catch(console.error)
72
+ ```
73
+
74
+ Or use the sync open:
75
+
76
+ ```ts
77
+ const db = kiteSync('./social.kitedb', { nodes: [User], edges: [Knows] })
78
+ // ...
79
+ db.close()
80
+ ```
81
+
62
82
  ## Quickstart (low-level API)
63
83
 
64
84
  For direct control, use the low-level `Database` class:
@@ -163,7 +183,7 @@ This is implemented using a read-write lock (RwLock) internally, providing good
163
183
 
164
184
  ## API surface
165
185
 
166
- The Node bindings expose both low-level graph primitives (`Database`) and higher-level APIs (Ray) for schema-driven workflows, plus metrics, backups, traversal, and vector search. For full API details and guides, see the docs:
186
+ The Node bindings expose both low-level graph primitives (`Database`) and higher-level APIs (Kite) for schema-driven workflows, plus metrics, backups, traversal, and vector search. For full API details and guides, see the docs:
167
187
 
168
188
  https://kitedb.vercel.com/docs
169
189
 
package/dist/index.d.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * @example
5
5
  * ```typescript
6
- * import { ray, defineNode, defineEdge, prop, optional } from 'kitedb-core'
6
+ * import { kite, defineNode, defineEdge, prop, optional } from 'kitedb-core'
7
7
  *
8
8
  * // Define schema
9
9
  * const User = defineNode('user', {
@@ -19,7 +19,7 @@
19
19
  * })
20
20
  *
21
21
  * // Open database
22
- * const db = await ray('./my.kitedb', {
22
+ * const db = await kite('./my.kitedb', {
23
23
  * nodes: [User],
24
24
  * edges: [knows],
25
25
  * })
@@ -34,16 +34,157 @@
34
34
  * @packageDocumentation
35
35
  */
36
36
  export { node, edge, prop, optional, withDefault, defineNode, defineEdge } from './schema';
37
- export type { PropType, PropSpec, KeySpec, NodeSpec, NodeConfig, EdgeSpec } from './schema';
38
- import { Ray as NativeRay } from '../index';
39
- import type { NodeSpec, EdgeSpec } from './schema';
40
- export { Ray } from '../index';
41
- export { Database, VectorIndex, RayInsertBuilder, RayInsertExecutorSingle, RayInsertExecutorMany, RayUpdateBuilder, RayUpdateEdgeBuilder, RayTraversal, RayPath, } from '../index';
37
+ export type { PropType, PropSpec, KeySpec, NodeSpec, NodeConfig, EdgeSpec, NodeRef, InferNodeInsert, InferNodeUpsert, InferNode, InferEdgeProps, } from './schema';
38
+ import { Kite as NativeKite, KiteInsertBuilder as NativeKiteInsertBuilder, KiteUpsertBuilder as NativeKiteUpsertBuilder, KiteTraversal as NativeKiteTraversal, KitePath as NativeKitePath } from '../index';
39
+ import type { JsKiteOptions, JsPropValue, JsTraverseOptions, JsPathResult, JsFullEdge, KiteInsertExecutorSingle, KiteInsertExecutorMany, KiteUpsertExecutorSingle, KiteUpsertExecutorMany, KiteUpdateBuilder, KiteUpdateEdgeBuilder, KiteUpsertByIdBuilder, KiteUpsertEdgeBuilder } from '../index';
40
+ import type { NodeSpec, EdgeSpec, NodeRef, InferNodeInsert, InferNodeUpsert, InferNode, InferEdgeProps } from './schema';
41
+ type NodeLike = string | NodeSpec;
42
+ type EdgeLike = string | EdgeSpec;
43
+ type InsertEntry = {
44
+ key: unknown;
45
+ props?: Record<string, unknown> | null;
46
+ } & Record<string, unknown>;
47
+ type ArrayWithToArray<T, U = T> = T[] & {
48
+ toArray(): U[];
49
+ };
50
+ type NodeObject = NodeRef & Record<string, unknown>;
51
+ type NodeIdLike = number | {
52
+ id: number;
53
+ };
54
+ type InsertExecutorSingle<N extends NodeSpec> = Omit<KiteInsertExecutorSingle, 'returning'> & {
55
+ returning(): InferNode<N>;
56
+ };
57
+ type InsertExecutorMany<N extends NodeSpec> = Omit<KiteInsertExecutorMany, 'returning'> & {
58
+ returning(): Array<InferNode<N>>;
59
+ };
60
+ type UpsertExecutorSingle<N extends NodeSpec> = Omit<KiteUpsertExecutorSingle, 'returning'> & {
61
+ returning(): InferNode<N>;
62
+ };
63
+ type UpsertExecutorMany<N extends NodeSpec> = Omit<KiteUpsertExecutorMany, 'returning'> & {
64
+ returning(): Array<InferNode<N>>;
65
+ };
66
+ export declare class KiteInsertBuilder<N extends NodeSpec = NodeSpec> extends NativeKiteInsertBuilder {
67
+ static wrap(builder: NativeKiteInsertBuilder): KiteInsertBuilder;
68
+ values(key: InferNodeInsert<N>['key'], props?: Omit<InferNodeInsert<N>, 'key'> | null): InsertExecutorSingle<N>;
69
+ values(entry: InferNodeInsert<N>): InsertExecutorSingle<N>;
70
+ values(key: unknown, props?: object | null): KiteInsertExecutorSingle;
71
+ values(entry: InsertEntry): KiteInsertExecutorSingle;
72
+ valuesMany(entries: Array<InferNodeInsert<N>>): InsertExecutorMany<N>;
73
+ valuesMany(entries: Array<unknown>): KiteInsertExecutorMany;
74
+ valuesMany(entries: Array<InsertEntry>): KiteInsertExecutorMany;
75
+ }
76
+ export declare class KiteUpsertBuilder<N extends NodeSpec = NodeSpec> extends NativeKiteUpsertBuilder {
77
+ static wrap(builder: NativeKiteUpsertBuilder): KiteUpsertBuilder;
78
+ values(key: InferNodeUpsert<N>['key'], props?: Omit<InferNodeUpsert<N>, 'key'> | null): UpsertExecutorSingle<N>;
79
+ values(entry: InferNodeUpsert<N>): UpsertExecutorSingle<N>;
80
+ values(key: unknown, props?: object | null): KiteUpsertExecutorSingle;
81
+ values(entry: InsertEntry): KiteUpsertExecutorSingle;
82
+ valuesMany(entries: Array<InferNodeUpsert<N>>): UpsertExecutorMany<N>;
83
+ valuesMany(entries: Array<unknown>): KiteUpsertExecutorMany;
84
+ valuesMany(entries: Array<InsertEntry>): KiteUpsertExecutorMany;
85
+ }
86
+ export declare class KiteTraversal extends NativeKiteTraversal {
87
+ static wrap(traversal: NativeKiteTraversal, db?: Kite): KiteTraversal;
88
+ whereEdge(func: unknown): KiteTraversal;
89
+ whereNode(func: unknown): KiteTraversal;
90
+ take(limit: number): KiteTraversal;
91
+ select(props: Array<string>): KiteTraversal;
92
+ }
93
+ export declare class KitePath extends NativeKitePath {
94
+ static wrap(path: NativeKitePath): KitePath;
95
+ via(edgeType: EdgeLike): this;
96
+ maxDepth(depth: number): this;
97
+ direction(direction: string): this;
98
+ bidirectional(): this;
99
+ dijkstra(): JsPathResult;
100
+ bfs(): JsPathResult;
101
+ kShortest(k: number): Array<JsPathResult>;
102
+ }
103
+ export declare class KiteShortestPathBuilder {
104
+ private readonly db;
105
+ private readonly source;
106
+ private target;
107
+ private edgeTypes;
108
+ private maxDepthValue;
109
+ private directionValue;
110
+ private useBidirectional;
111
+ constructor(db: Kite, source: number);
112
+ via(edgeType: EdgeLike): this;
113
+ to(target: NodeIdLike): this;
114
+ maxDepth(depth: number): this;
115
+ direction(direction: string): this;
116
+ bidirectional(): this;
117
+ dijkstra(): JsPathResult;
118
+ bfs(): JsPathResult;
119
+ kShortest(k: number): Array<JsPathResult>;
120
+ private buildPath;
121
+ }
122
+ export declare class KiteLinkBuilder<E extends EdgeSpec = EdgeSpec> {
123
+ private readonly db;
124
+ private readonly src;
125
+ private dst;
126
+ private edgeType;
127
+ private edgeProps;
128
+ constructor(db: Kite, src: number);
129
+ to(dst: NodeIdLike): this;
130
+ via<E2 extends EdgeSpec>(edgeType: E2): KiteLinkBuilder<E2>;
131
+ props(props: InferEdgeProps<E> | object | null): this;
132
+ execute(): void;
133
+ }
134
+ export declare class Kite extends NativeKite {
135
+ static open(path: string, options: JsKiteOptions): Kite;
136
+ transaction<T>(fn: (ctx: Kite) => T | Promise<T>): T | Promise<T>;
137
+ batch(operations: Array<any>): any[];
138
+ deleteByKey(nodeType: NodeLike, key: unknown): boolean;
139
+ link(src: NodeIdLike, edgeType: EdgeLike, dst: NodeIdLike, props?: object | null): void;
140
+ link(src: NodeIdLike): KiteLinkBuilder;
141
+ }
142
+ export interface Kite {
143
+ get<N extends NodeSpec>(nodeType: N, key: InferNodeInsert<N>['key']): InferNode<N> | null;
144
+ getRef<N extends NodeSpec>(nodeType: N, key: InferNodeInsert<N>['key']): NodeRef<N> | null;
145
+ delete<N extends NodeSpec>(nodeType: N, key: InferNodeInsert<N>['key']): boolean;
146
+ insert<N extends NodeSpec>(nodeType: N): KiteInsertBuilder<N>;
147
+ upsert<N extends NodeSpec>(nodeType: N): KiteUpsertBuilder<N>;
148
+ update<N extends NodeSpec>(nodeType: N, key: InferNodeInsert<N>['key']): KiteUpdateBuilder;
149
+ updateByKey<N extends NodeSpec>(nodeType: N, key: InferNodeInsert<N>['key']): KiteUpdateBuilder;
150
+ upsertById<N extends NodeSpec>(nodeType: N, nodeId: number): KiteUpsertByIdBuilder;
151
+ all<N extends NodeSpec>(nodeType: N): Array<InferNode<N>>;
152
+ countNodes(nodeType?: NodeLike | null): number;
153
+ countEdges(edgeType?: EdgeLike | null): number;
154
+ allEdges(edgeType?: EdgeLike | null): Array<JsFullEdge>;
155
+ link<E extends EdgeSpec>(src: NodeIdLike, edgeType: E, dst: NodeIdLike, props?: InferEdgeProps<E> | object | null): void;
156
+ link(src: NodeIdLike): KiteLinkBuilder;
157
+ unlink(src: NodeIdLike, edgeType: EdgeLike, dst: NodeIdLike): boolean;
158
+ hasEdge(src: NodeIdLike, edgeType: EdgeLike, dst: NodeIdLike): boolean;
159
+ getEdgeProp(src: NodeIdLike, edgeType: EdgeLike, dst: NodeIdLike, propName: string): JsPropValue | null;
160
+ getEdgeProps(src: NodeIdLike, edgeType: EdgeLike, dst: NodeIdLike): Record<string, JsPropValue>;
161
+ setEdgeProp(src: NodeIdLike, edgeType: EdgeLike, dst: NodeIdLike, propName: string, value: unknown): void;
162
+ delEdgeProp(src: NodeIdLike, edgeType: EdgeLike, dst: NodeIdLike, propName: string): void;
163
+ updateEdge(src: NodeIdLike, edgeType: EdgeLike, dst: NodeIdLike): KiteUpdateEdgeBuilder;
164
+ upsertEdge(src: NodeIdLike, edgeType: EdgeLike, dst: NodeIdLike): KiteUpsertEdgeBuilder;
165
+ hasPath(source: NodeIdLike, target: NodeIdLike, edgeType?: EdgeLike | null): boolean;
166
+ reachableFrom(source: NodeIdLike, maxDepth: number, edgeType?: EdgeLike | null): Array<number>;
167
+ from(node: NodeIdLike): KiteTraversal;
168
+ fromNodes(nodeIds: Array<NodeIdLike>): KiteTraversal;
169
+ path(source: NodeIdLike, target: NodeIdLike): KitePath;
170
+ pathToAny(source: NodeIdLike, targets: Array<NodeIdLike>): KitePath;
171
+ shortestPath(source: NodeIdLike): KiteShortestPathBuilder;
172
+ }
173
+ export interface KiteTraversal {
174
+ out(edgeType?: EdgeLike | null): KiteTraversal;
175
+ ['in'](edgeType?: EdgeLike | null): KiteTraversal;
176
+ both(edgeType?: EdgeLike | null): KiteTraversal;
177
+ traverse(edgeType: EdgeLike | undefined | null, options: JsTraverseOptions): KiteTraversal;
178
+ nodes(): ArrayWithToArray<number, NodeObject>;
179
+ edges(): ArrayWithToArray<JsFullEdge>;
180
+ toArray(): ArrayWithToArray<NodeObject>;
181
+ }
182
+ export { Database, VectorIndex, KiteInsertExecutorSingle, KiteInsertExecutorMany, KiteUpdateBuilder, KiteUpdateEdgeBuilder, KiteUpsertExecutorSingle, KiteUpsertExecutorMany, KiteUpsertByIdBuilder, KiteUpsertEdgeBuilder, } from '../index';
42
183
  export { JsTraversalDirection as TraversalDirection, JsDistanceMetric as DistanceMetric, JsAggregation as Aggregation, JsSyncMode as SyncMode, JsCompressionType as CompressionType, PropType as PropValueType, } from '../index';
43
184
  export { openDatabase, createBackup, restoreBackup, getBackupInfo, createOfflineBackup, collectMetrics, healthCheck, createVectorIndex, bruteForceSearch, pathConfig, traversalStep, version, } from '../index';
44
185
  export type { DbStats, CheckResult, OpenOptions, ExportOptions, ExportResult, ImportOptions, ImportResult, BackupOptions, BackupResult, RestoreOptions, OfflineBackupOptions, StreamOptions, PaginationOptions, NodePage, EdgePage, NodeWithProps, EdgeWithProps, DatabaseMetrics, DataMetrics, CacheMetrics, CacheLayerMetrics, MemoryMetrics, MvccMetrics, MvccStats, HealthCheckResult, HealthCheckEntry, JsTraverseOptions as TraverseOptions, JsTraversalStep as TraversalStep, JsTraversalResult as TraversalResult, JsPathConfig as PathConfig, JsPathResult as PathResult, JsPathEdge as PathEdge, VectorIndexOptions, VectorIndexStats, VectorSearchHit, SimilarOptions, JsIvfConfig as IvfConfig, JsIvfStats as IvfStats, JsPqConfig as PqConfig, JsSearchOptions as SearchOptions, JsSearchResult as SearchResult, JsBruteForceResult as BruteForceResult, CompressionOptions, SingleFileOptimizeOptions, VacuumOptions, JsCacheStats as CacheStats, JsEdge as Edge, JsFullEdge as FullEdge, JsNodeProp as NodeProp, JsPropValue as PropValue, JsEdgeInput as EdgeInput, } from '../index';
45
- /** Options for opening a Ray database */
46
- export interface RayOptions {
186
+ /** Options for opening a Kite database */
187
+ export interface KiteOptions {
47
188
  /** Node type definitions */
48
189
  nodes: NodeSpec[];
49
190
  /** Edge type definitions */
@@ -56,41 +197,41 @@ export interface RayOptions {
56
197
  lockFile?: boolean;
57
198
  }
58
199
  /**
59
- * Open a Ray database asynchronously.
200
+ * Open a Kite database asynchronously.
60
201
  *
61
202
  * This is the recommended way to open a database as it doesn't block
62
203
  * the Node.js event loop during file I/O.
63
204
  *
64
205
  * @param path - Path to the database file
65
206
  * @param options - Database options including schema
66
- * @returns Promise resolving to a Ray database instance
207
+ * @returns Promise resolving to a Kite database instance
67
208
  *
68
209
  * @example
69
210
  * ```typescript
70
- * const db = await ray('./my.kitedb', {
211
+ * const db = await kite('./my.kitedb', {
71
212
  * nodes: [User, Post],
72
213
  * edges: [follows, authored],
73
214
  * })
74
215
  * ```
75
216
  */
76
- export declare function ray(path: string, options: RayOptions): Promise<NativeRay>;
217
+ export declare function kite(path: string, options: KiteOptions): Promise<Kite>;
77
218
  /**
78
- * Open a Ray database synchronously.
219
+ * Open a Kite database synchronously.
79
220
  *
80
221
  * Use this when you need synchronous initialization (e.g., at module load time).
81
- * For most cases, prefer the async `ray()` function.
222
+ * For most cases, prefer the async `kite()` function.
82
223
  *
83
224
  * @param path - Path to the database file
84
225
  * @param options - Database options including schema
85
- * @returns A Ray database instance
226
+ * @returns A Kite database instance
86
227
  *
87
228
  * @example
88
229
  * ```typescript
89
- * const db = raySync('./my.kitedb', {
230
+ * const db = kiteSync('./my.kitedb', {
90
231
  * nodes: [User],
91
232
  * edges: [knows],
92
233
  * })
93
234
  * ```
94
235
  */
95
- export declare function raySync(path: string, options: RayOptions): NativeRay;
236
+ export declare function kiteSync(path: string, options: KiteOptions): Kite;
96
237
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"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"}