leangraph 1.1.8 → 1.2.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/README.md +59 -0
- package/dist/executor.d.ts.map +1 -1
- package/dist/executor.js +67 -20
- package/dist/executor.js.map +1 -1
- package/dist/parser.d.ts +29 -3
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +108 -5
- package/dist/parser.js.map +1 -1
- package/dist/routes.d.ts.map +1 -1
- package/dist/routes.js +37 -0
- package/dist/routes.js.map +1 -1
- package/dist/translator.d.ts +11 -0
- package/dist/translator.d.ts.map +1 -1
- package/dist/translator.js +32 -0
- package/dist/translator.js.map +1 -1
- package/package.json +1 -1
package/dist/translator.d.ts
CHANGED
|
@@ -46,6 +46,17 @@ export declare class Translator {
|
|
|
46
46
|
* Translate DROP INDEX to SQL.
|
|
47
47
|
*/
|
|
48
48
|
private translateDropIndex;
|
|
49
|
+
/**
|
|
50
|
+
* Translate CREATE CONSTRAINT to SQL.
|
|
51
|
+
* Creates a partial unique index on a JSON property filtered by label.
|
|
52
|
+
*
|
|
53
|
+
* Syntax: CREATE CONSTRAINT [name] ON (n:Label) ASSERT n.property IS UNIQUE
|
|
54
|
+
*/
|
|
55
|
+
private translateCreateConstraint;
|
|
56
|
+
/**
|
|
57
|
+
* Translate DROP CONSTRAINT to SQL.
|
|
58
|
+
*/
|
|
59
|
+
private translateDropConstraint;
|
|
49
60
|
private translateMatch;
|
|
50
61
|
private registerPathExpression;
|
|
51
62
|
private registerNodePattern;
|
package/dist/translator.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translator.d.ts","sourceRoot":"","sources":["../src/translator.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,EASL,UAAU,
|
|
1
|
+
{"version":3,"file":"translator.d.ts","sourceRoot":"","sources":["../src/translator.ts"],"names":[],"mappings":"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"}
|
package/dist/translator.js
CHANGED
|
@@ -174,6 +174,10 @@ export class Translator {
|
|
|
174
174
|
return { statements: this.translateCreateIndex(clause) };
|
|
175
175
|
case "DROP_INDEX":
|
|
176
176
|
return { statements: this.translateDropIndex(clause) };
|
|
177
|
+
case "CREATE_CONSTRAINT":
|
|
178
|
+
return { statements: this.translateCreateConstraint(clause) };
|
|
179
|
+
case "DROP_CONSTRAINT":
|
|
180
|
+
return { statements: this.translateDropConstraint(clause) };
|
|
177
181
|
default:
|
|
178
182
|
throw new Error(`Unknown clause type: ${clause.type}`);
|
|
179
183
|
}
|
|
@@ -339,6 +343,34 @@ export class Translator {
|
|
|
339
343
|
return [{ sql, params: [] }];
|
|
340
344
|
}
|
|
341
345
|
// ============================================================================
|
|
346
|
+
// CREATE CONSTRAINT / DROP CONSTRAINT
|
|
347
|
+
// ============================================================================
|
|
348
|
+
/**
|
|
349
|
+
* Translate CREATE CONSTRAINT to SQL.
|
|
350
|
+
* Creates a partial unique index on a JSON property filtered by label.
|
|
351
|
+
*
|
|
352
|
+
* Syntax: CREATE CONSTRAINT [name] ON (n:Label) ASSERT n.property IS UNIQUE
|
|
353
|
+
*/
|
|
354
|
+
translateCreateConstraint(clause) {
|
|
355
|
+
const rawName = clause.constraintName || `constraint_${clause.label}_${clause.property}_unique`;
|
|
356
|
+
// Quote constraint name as a SQL identifier to prevent injection
|
|
357
|
+
const constraintName = `"${rawName.replace(/"/g, '""')}"`;
|
|
358
|
+
const escapedProperty = escSqlStr(clause.property);
|
|
359
|
+
const escapedLabel = escSqlStr(clause.label);
|
|
360
|
+
// Create a partial unique index: unique on (property) where primary label matches
|
|
361
|
+
const sql = `CREATE UNIQUE INDEX IF NOT EXISTS ${constraintName} ON nodes(json_extract(properties, '$.${escapedProperty}')) WHERE json_extract(label, '$[0]') = '${escapedLabel}'`;
|
|
362
|
+
return [{ sql, params: [] }];
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* Translate DROP CONSTRAINT to SQL.
|
|
366
|
+
*/
|
|
367
|
+
translateDropConstraint(clause) {
|
|
368
|
+
// Quote constraint name as a SQL identifier to prevent injection
|
|
369
|
+
const constraintName = `"${clause.constraintName.replace(/"/g, '""')}"`;
|
|
370
|
+
const sql = `DROP INDEX IF EXISTS ${constraintName}`;
|
|
371
|
+
return [{ sql, params: [] }];
|
|
372
|
+
}
|
|
373
|
+
// ============================================================================
|
|
342
374
|
// MATCH
|
|
343
375
|
// ============================================================================
|
|
344
376
|
translateMatch(clause, optional = false) {
|