leangraph 1.0.1 → 1.1.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.
Files changed (49) hide show
  1. package/README.md +198 -111
  2. package/dist/auth.d.ts +1 -4
  3. package/dist/auth.d.ts.map +1 -1
  4. package/dist/auth.js +3 -13
  5. package/dist/auth.js.map +1 -1
  6. package/dist/backup.d.ts +1 -3
  7. package/dist/backup.d.ts.map +1 -1
  8. package/dist/backup.js +10 -15
  9. package/dist/backup.js.map +1 -1
  10. package/dist/cli-helpers.d.ts +2 -3
  11. package/dist/cli-helpers.d.ts.map +1 -1
  12. package/dist/cli-helpers.js +11 -30
  13. package/dist/cli-helpers.js.map +1 -1
  14. package/dist/cli.js +82 -129
  15. package/dist/cli.js.map +1 -1
  16. package/dist/db.d.ts +8 -2
  17. package/dist/db.d.ts.map +1 -1
  18. package/dist/db.js +34 -8
  19. package/dist/db.js.map +1 -1
  20. package/dist/executor.d.ts +6 -0
  21. package/dist/executor.d.ts.map +1 -1
  22. package/dist/executor.js +92 -22
  23. package/dist/executor.js.map +1 -1
  24. package/dist/index.d.ts +8 -34
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +12 -38
  27. package/dist/index.js.map +1 -1
  28. package/dist/local.d.ts +3 -3
  29. package/dist/local.d.ts.map +1 -1
  30. package/dist/local.js +13 -15
  31. package/dist/local.js.map +1 -1
  32. package/dist/remote.d.ts +3 -3
  33. package/dist/remote.d.ts.map +1 -1
  34. package/dist/remote.js +8 -10
  35. package/dist/remote.js.map +1 -1
  36. package/dist/routes.d.ts +0 -1
  37. package/dist/routes.d.ts.map +1 -1
  38. package/dist/routes.js +12 -39
  39. package/dist/routes.js.map +1 -1
  40. package/dist/server.js +1 -1
  41. package/dist/server.js.map +1 -1
  42. package/dist/translator.d.ts.map +1 -1
  43. package/dist/translator.js +85 -32
  44. package/dist/translator.js.map +1 -1
  45. package/dist/types.d.ts +24 -26
  46. package/dist/types.d.ts.map +1 -1
  47. package/dist/types.js +2 -2
  48. package/dist/types.js.map +1 -1
  49. package/package.json +8 -2
package/dist/types.d.ts CHANGED
@@ -1,38 +1,36 @@
1
1
  /**
2
- * Options for creating a GraphDB client.
3
- * All options support environment variable defaults.
2
+ * Options for creating a LeanGraph client.
4
3
  */
5
- export interface GraphDBOptions {
4
+ export interface LeanGraphOptions {
6
5
  /**
7
- * Base URL of the GraphDB server.
8
- * Used in production mode. Ignored in development mode.
9
- * @default GRAPHDB_URL env var or 'https://leangraph.io'
10
- * @example 'https://my-graphdb.example.com'
6
+ * Connection mode.
7
+ * - local: Embedded SQLite, persisted to disk
8
+ * - remote: HTTP connection to server
9
+ * - test: Embedded SQLite, in-memory (resets on restart)
10
+ * @default LEANGRAPH_MODE env var or 'local'
11
+ */
12
+ mode?: "local" | "remote" | "test";
13
+ /**
14
+ * Base URL of the LeanGraph server.
15
+ * Only used in remote mode.
16
+ * @default LEANGRAPH_URL env var or 'https://leangraph.io'
11
17
  */
12
18
  url?: string;
13
19
  /**
14
- * Project name.
15
- * In production: used as part of the API endpoint path.
16
- * In development: used as the database filename.
17
- * @default GRAPHDB_PROJECT env var (required)
20
+ * Project name. Used as the database filename in local mode.
21
+ * @default LEANGRAPH_PROJECT env var (required)
18
22
  */
19
23
  project?: string;
20
24
  /**
21
25
  * API key for authentication.
22
- * Used in production mode. Ignored in development mode.
23
- * @default GRAPHDB_API_KEY env var
26
+ * Only used in remote mode.
27
+ * @default LEANGRAPH_API_KEY env var
24
28
  */
25
29
  apiKey?: string;
26
- /**
27
- * Environment name for data isolation.
28
- * @default NODE_ENV or 'production'
29
- */
30
- env?: string;
31
30
  /**
32
31
  * Path for local data storage.
33
- * Only used in development mode (when NODE_ENV=development).
34
- * - Use ':memory:' for an in-memory database (resets on restart)
35
- * @default GRAPHDB_DATA_PATH env var or './data'
32
+ * Only used in local mode. Database stored at {dataPath}/{project}.db
33
+ * @default LEANGRAPH_DATA_PATH env var or './data'
36
34
  */
37
35
  dataPath?: string;
38
36
  }
@@ -69,20 +67,20 @@ export type NodeResult = Record<string, unknown>;
69
67
  * GraphDB client interface.
70
68
  * Both local and remote clients implement this interface.
71
69
  */
72
- export interface GraphDBClient {
70
+ export interface LeanGraphClient {
73
71
  /**
74
72
  * Execute a Cypher query and return the data array.
75
- * @throws GraphDBError if the query fails
73
+ * @throws LeanGraphError if the query fails
76
74
  */
77
75
  query<T = Record<string, unknown>>(cypher: string, params?: Record<string, unknown>): Promise<T[]>;
78
76
  /**
79
77
  * Execute a Cypher query and return the full response including metadata.
80
- * @throws GraphDBError if the query fails
78
+ * @throws LeanGraphError if the query fails
81
79
  */
82
80
  queryRaw<T = Record<string, unknown>>(cypher: string, params?: Record<string, unknown>): Promise<QueryResponse<T>>;
83
81
  /**
84
82
  * Execute a mutating query (CREATE, SET, DELETE, MERGE) without expecting return data.
85
- * @throws GraphDBError if the query fails
83
+ * @throws LeanGraphError if the query fails
86
84
  */
87
85
  execute(cypher: string, params?: Record<string, unknown>): Promise<void>;
88
86
  /**
@@ -123,7 +121,7 @@ export interface GraphDBClient {
123
121
  * Error thrown by GraphDB operations.
124
122
  * Contains optional position information for Cypher parse errors.
125
123
  */
126
- export declare class GraphDBError extends Error {
124
+ export declare class LeanGraphError extends Error {
127
125
  readonly position?: number;
128
126
  readonly line?: number;
129
127
  readonly column?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAEnC;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACxD,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAMjD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAEhB;;;OAGG;IACH,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7B;;;OAGG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzE;;;OAGG;IACH,UAAU,CACR,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB;;OAEG;IACH,UAAU,CACR,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;OAGG;IACH,OAAO,CACL,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAE9B;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3E;;;;OAIG;IACH,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IAElC;;;OAGG;IACH,KAAK,IAAI,IAAI,CAAC;CACf;AAMD;;;GAGG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACvC,SAAgB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClC,SAAgB,IAAI,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAgB,MAAM,CAAC,EAAE,MAAM,CAAC;gBAG9B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;CAQJ"}
package/dist/types.js CHANGED
@@ -6,13 +6,13 @@
6
6
  * Error thrown by GraphDB operations.
7
7
  * Contains optional position information for Cypher parse errors.
8
8
  */
9
- export class GraphDBError extends Error {
9
+ export class LeanGraphError extends Error {
10
10
  position;
11
11
  line;
12
12
  column;
13
13
  constructor(message, options) {
14
14
  super(message);
15
- this.name = "GraphDBError";
15
+ this.name = "LeanGraphError";
16
16
  this.position = options?.position;
17
17
  this.line = options?.line;
18
18
  this.column = options?.column;
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,2BAA2B;AA0K3B,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrB,QAAQ,CAAU;IAClB,IAAI,CAAU;IACd,MAAM,CAAU;IAEhC,YACE,OAAe,EACf,OAIC;QAED,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC;IAChC,CAAC;CACF"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAwK3B,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvB,QAAQ,CAAU;IAClB,IAAI,CAAU;IACd,MAAM,CAAU;IAEhC,YACE,OAAe,EACf,OAIC;QAED,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC;IAChC,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "leangraph",
3
- "version": "1.0.1",
3
+ "version": "1.1.0",
4
4
  "description": "SQLite-based graph database with Cypher query support",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -24,13 +24,19 @@
24
24
  "prepare": "[ -d .git ] && cp hooks/pre-commit .git/hooks/ && chmod +x .git/hooks/pre-commit || true",
25
25
  "build": "tsc",
26
26
  "test": "vitest run",
27
+ "test:remote": "./scripts/test-remote.sh",
28
+ "test:all": "npm test && npm run test:remote",
27
29
  "test:watch": "vitest",
28
30
  "test:coverage": "vitest run --coverage",
29
31
  "dev": "tsx watch src/server.ts",
30
32
  "tck": "node --import tsx test/tck/run-test.ts",
31
33
  "tck:failing": "node --import tsx test/tck/list-failing-tests.ts",
32
34
  "tck:check-fixed": "TCK_TEST_ALL=1 npm test 2>&1 | grep -A 50 'from FAILING_TESTS that now PASS'",
33
- "prepublishOnly": "npm run build"
35
+ "prepublishOnly": "npm run build",
36
+ "benchmark": "node --import tsx benchmark/src/run.ts",
37
+ "benchmark:report": "node --import tsx benchmark/src/report.ts",
38
+ "benchmark:compare": "node --import tsx benchmark/src/compare.ts",
39
+ "benchmark:analyze": "node --import tsx benchmark/src/analyze.ts"
34
40
  },
35
41
  "dependencies": {
36
42
  "@hono/node-server": "^1.13.0",