@nicia-ai/typegraph 0.16.2 → 0.17.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.
- package/dist/index.cjs +63 -24
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +63 -24
- package/dist/index.js.map +1 -1
- package/dist/interchange/index.d.cts +1 -1
- package/dist/interchange/index.d.ts +1 -1
- package/dist/profiler/index.d.cts +1 -1
- package/dist/profiler/index.d.ts +1 -1
- package/dist/{store-BZ7BexR1.d.cts → store-B_JzzHwb.d.cts} +2 -2
- package/dist/{store--7Nft1Ii.d.ts → store-DkY1pDfu.d.ts} +2 -2
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -2185,14 +2185,18 @@ function buildStandardProjection(input) {
|
|
|
2185
2185
|
});
|
|
2186
2186
|
return drizzleOrm.sql.join(projectedFields, drizzleOrm.sql`, `);
|
|
2187
2187
|
}
|
|
2188
|
-
function
|
|
2189
|
-
const
|
|
2188
|
+
function buildAliasToCteMap(ast) {
|
|
2189
|
+
const map = /* @__PURE__ */ new Map([
|
|
2190
2190
|
[ast.start.alias, `cte_${ast.start.alias}`]
|
|
2191
2191
|
]);
|
|
2192
2192
|
for (const traversal of ast.traversals) {
|
|
2193
|
-
|
|
2194
|
-
|
|
2193
|
+
map.set(traversal.nodeAlias, `cte_${traversal.nodeAlias}`);
|
|
2194
|
+
map.set(traversal.edgeAlias, `cte_${traversal.nodeAlias}`);
|
|
2195
2195
|
}
|
|
2196
|
+
return map;
|
|
2197
|
+
}
|
|
2198
|
+
function compileSelectiveProjection(fields, dialect, ast, collapsedTraversalCteAlias) {
|
|
2199
|
+
const aliasToCte = buildAliasToCteMap(ast);
|
|
2196
2200
|
const columns = fields.map((field2) => {
|
|
2197
2201
|
const cteAlias = collapsedTraversalCteAlias ?? aliasToCte.get(field2.alias) ?? `cte_${field2.alias}`;
|
|
2198
2202
|
if (field2.isSystemField) {
|
|
@@ -2241,6 +2245,7 @@ function buildStandardOrderBy(input) {
|
|
|
2241
2245
|
if (!ast.orderBy || ast.orderBy.length === 0) {
|
|
2242
2246
|
return void 0;
|
|
2243
2247
|
}
|
|
2248
|
+
const aliasToCte = buildAliasToCteMap(ast);
|
|
2244
2249
|
const parts = [];
|
|
2245
2250
|
for (const orderSpec of ast.orderBy) {
|
|
2246
2251
|
const valueType = orderSpec.field.valueType;
|
|
@@ -2249,7 +2254,7 @@ function buildStandardOrderBy(input) {
|
|
|
2249
2254
|
"Ordering by JSON arrays or objects is not supported"
|
|
2250
2255
|
);
|
|
2251
2256
|
}
|
|
2252
|
-
const cteAlias = collapsedTraversalCteAlias ?? `cte_${orderSpec.field.alias}`;
|
|
2257
|
+
const cteAlias = collapsedTraversalCteAlias ?? aliasToCte.get(orderSpec.field.alias) ?? `cte_${orderSpec.field.alias}`;
|
|
2253
2258
|
const field2 = compileFieldValue(
|
|
2254
2259
|
orderSpec.field,
|
|
2255
2260
|
dialect,
|
|
@@ -2296,8 +2301,14 @@ function buildStandardGroupBy(input) {
|
|
|
2296
2301
|
if (allFields.length === 0) {
|
|
2297
2302
|
return void 0;
|
|
2298
2303
|
}
|
|
2304
|
+
const aliasToCte = buildAliasToCteMap(ast);
|
|
2299
2305
|
const parts = allFields.map(
|
|
2300
|
-
(field2) => compileFieldValue(
|
|
2306
|
+
(field2) => compileFieldValue(
|
|
2307
|
+
field2,
|
|
2308
|
+
dialect,
|
|
2309
|
+
field2.valueType,
|
|
2310
|
+
aliasToCte.get(field2.alias) ?? `cte_${field2.alias}`
|
|
2311
|
+
)
|
|
2301
2312
|
);
|
|
2302
2313
|
return drizzleOrm.sql`GROUP BY ${drizzleOrm.sql.join(parts, drizzleOrm.sql`, `)}`;
|
|
2303
2314
|
}
|
|
@@ -2372,6 +2383,7 @@ function buildStandardVectorOrderBy(input) {
|
|
|
2372
2383
|
const distanceOrder = drizzleOrm.sql`cte_embeddings.distance ASC`;
|
|
2373
2384
|
const additionalOrders = [];
|
|
2374
2385
|
if (ast.orderBy && ast.orderBy.length > 0) {
|
|
2386
|
+
const aliasToCte = buildAliasToCteMap(ast);
|
|
2375
2387
|
for (const orderSpec of ast.orderBy) {
|
|
2376
2388
|
const valueType = orderSpec.field.valueType;
|
|
2377
2389
|
if (valueType === "array" || valueType === "object") {
|
|
@@ -2379,7 +2391,7 @@ function buildStandardVectorOrderBy(input) {
|
|
|
2379
2391
|
"Ordering by JSON arrays or objects is not supported"
|
|
2380
2392
|
);
|
|
2381
2393
|
}
|
|
2382
|
-
const cteAlias = `cte_${orderSpec.field.alias}`;
|
|
2394
|
+
const cteAlias = aliasToCte.get(orderSpec.field.alias) ?? `cte_${orderSpec.field.alias}`;
|
|
2383
2395
|
const field2 = compileFieldValue(
|
|
2384
2396
|
orderSpec.field,
|
|
2385
2397
|
dialect,
|
|
@@ -3849,6 +3861,16 @@ function mapSubgraphEdgeRow(row, projectionPlan) {
|
|
|
3849
3861
|
applyProjectedFields(projectedEdge, row, kindPlan);
|
|
3850
3862
|
return projectedEdge;
|
|
3851
3863
|
}
|
|
3864
|
+
|
|
3865
|
+
// src/query/ast.ts
|
|
3866
|
+
function mergeEdgeKinds(traversal) {
|
|
3867
|
+
const inverse = traversal.inverseEdgeKinds;
|
|
3868
|
+
if (inverse === void 0 || inverse.length === 0) return traversal.edgeKinds;
|
|
3869
|
+
return [
|
|
3870
|
+
...traversal.edgeKinds,
|
|
3871
|
+
...inverse.filter((kind) => !traversal.edgeKinds.includes(kind))
|
|
3872
|
+
];
|
|
3873
|
+
}
|
|
3852
3874
|
var OPERATOR_MAP = {
|
|
3853
3875
|
union: "UNION",
|
|
3854
3876
|
unionAll: "UNION ALL",
|
|
@@ -5431,16 +5453,6 @@ function getStreamBatchSize(options) {
|
|
|
5431
5453
|
return options?.batchSize ?? chunkMME3H4ZF_cjs.DEFAULT_STREAM_BATCH_SIZE;
|
|
5432
5454
|
}
|
|
5433
5455
|
|
|
5434
|
-
// src/query/ast.ts
|
|
5435
|
-
function mergeEdgeKinds(traversal) {
|
|
5436
|
-
const inverse = traversal.inverseEdgeKinds;
|
|
5437
|
-
if (inverse === void 0 || inverse.length === 0) return traversal.edgeKinds;
|
|
5438
|
-
return [
|
|
5439
|
-
...traversal.edgeKinds,
|
|
5440
|
-
...inverse.filter((kind) => !traversal.edgeKinds.includes(kind))
|
|
5441
|
-
];
|
|
5442
|
-
}
|
|
5443
|
-
|
|
5444
5456
|
// src/query/execution/field-tracker.ts
|
|
5445
5457
|
var OBJECT_PROTOTYPE_PROPERTIES = /* @__PURE__ */ new Set([
|
|
5446
5458
|
"__proto__",
|
|
@@ -6560,11 +6572,33 @@ var ExecutableQuery = class _ExecutableQuery {
|
|
|
6560
6572
|
* Orders results.
|
|
6561
6573
|
*/
|
|
6562
6574
|
orderBy(alias, field2, direction = "asc") {
|
|
6563
|
-
const
|
|
6564
|
-
(traversal) => traversal.
|
|
6565
|
-
)
|
|
6566
|
-
const
|
|
6567
|
-
const
|
|
6575
|
+
const edgeTraversal = this.#state.traversals.find(
|
|
6576
|
+
(traversal) => traversal.edgeAlias === alias
|
|
6577
|
+
);
|
|
6578
|
+
const isEdge = edgeTraversal !== void 0;
|
|
6579
|
+
const isSystem = field2 === "id" || field2 === "kind" || isEdge && (field2 === "from_id" || field2 === "to_id");
|
|
6580
|
+
let typeInfo;
|
|
6581
|
+
if (!isSystem) {
|
|
6582
|
+
if (isEdge) {
|
|
6583
|
+
const edgeKindNames = mergeEdgeKinds(edgeTraversal);
|
|
6584
|
+
typeInfo = this.#config.schemaIntrospector.getSharedEdgeFieldTypeInfo(
|
|
6585
|
+
edgeKindNames,
|
|
6586
|
+
field2
|
|
6587
|
+
);
|
|
6588
|
+
} else {
|
|
6589
|
+
const kindNames = alias === this.#state.startAlias ? this.#state.startKinds : this.#state.traversals.find(
|
|
6590
|
+
(traversal) => traversal.nodeAlias === alias
|
|
6591
|
+
)?.nodeKinds;
|
|
6592
|
+
typeInfo = kindNames ? this.#config.schemaIntrospector.getSharedFieldTypeInfo(
|
|
6593
|
+
kindNames,
|
|
6594
|
+
field2
|
|
6595
|
+
) : void 0;
|
|
6596
|
+
}
|
|
6597
|
+
}
|
|
6598
|
+
const orderSpec = isSystem ? {
|
|
6599
|
+
field: fieldRef(alias, [field2], { valueType: "string" }),
|
|
6600
|
+
direction
|
|
6601
|
+
} : {
|
|
6568
6602
|
field: fieldRef(alias, ["props"], {
|
|
6569
6603
|
jsonPointer: chunkP5CNM325_cjs.jsonPointer([field2]),
|
|
6570
6604
|
valueType: typeInfo?.valueType,
|
|
@@ -8108,8 +8142,13 @@ var QueryBuilder = class _QueryBuilder {
|
|
|
8108
8142
|
* Orders results.
|
|
8109
8143
|
*/
|
|
8110
8144
|
orderBy(alias, field2, direction = "asc") {
|
|
8111
|
-
const
|
|
8112
|
-
const
|
|
8145
|
+
const edgeKindNames = this.#getEdgeKindNamesForAlias(alias);
|
|
8146
|
+
const isEdge = edgeKindNames !== void 0;
|
|
8147
|
+
const isSystem = field2 === "id" || field2 === "kind" || isEdge && (field2 === "from_id" || field2 === "to_id");
|
|
8148
|
+
const typeInfo = isSystem ? void 0 : isEdge ? this.#config.schemaIntrospector.getSharedEdgeFieldTypeInfo(
|
|
8149
|
+
edgeKindNames,
|
|
8150
|
+
field2
|
|
8151
|
+
) : this.#getOrderByTypeInfo(alias, field2);
|
|
8113
8152
|
const orderSpec = isSystem ? {
|
|
8114
8153
|
field: fieldRef(alias, [field2], { valueType: "string" }),
|
|
8115
8154
|
direction
|