@nicia-ai/typegraph 0.47.0 → 0.48.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/backend/drizzle/indexes.d.cts +1 -1
- package/dist/backend/drizzle/indexes.d.ts +1 -1
- package/dist/backend/index.cjs +27 -19
- package/dist/backend/index.d.cts +37 -55
- package/dist/backend/index.d.ts +37 -55
- package/dist/backend/index.js +4 -4
- package/dist/backend/postgres/index.cjs +7 -7
- package/dist/backend/postgres/index.d.cts +21 -7
- package/dist/backend/postgres/index.d.ts +21 -7
- package/dist/backend/postgres/index.js +6 -6
- package/dist/backend/postgres/pglite-store.cjs +17 -17
- package/dist/backend/postgres/pglite-store.d.cts +8 -8
- package/dist/backend/postgres/pglite-store.d.ts +8 -8
- package/dist/backend/postgres/pglite-store.js +14 -14
- package/dist/backend/postgres/pglite.cjs +8 -8
- package/dist/backend/postgres/pglite.d.cts +3 -3
- package/dist/backend/postgres/pglite.d.ts +3 -3
- package/dist/backend/postgres/pglite.js +7 -7
- package/dist/backend/sqlite/index.cjs +7 -7
- package/dist/backend/sqlite/index.d.cts +20 -7
- package/dist/backend/sqlite/index.d.ts +20 -7
- package/dist/backend/sqlite/index.js +6 -6
- package/dist/backend/sqlite/libsql.cjs +8 -8
- package/dist/backend/sqlite/libsql.d.cts +3 -3
- package/dist/backend/sqlite/libsql.d.ts +3 -3
- package/dist/backend/sqlite/libsql.js +6 -6
- package/dist/backend/sqlite/local-store.cjs +18 -18
- package/dist/backend/sqlite/local-store.d.cts +8 -8
- package/dist/backend/sqlite/local-store.d.ts +8 -8
- package/dist/backend/sqlite/local-store.js +15 -15
- package/dist/backend/sqlite/local.cjs +9 -9
- package/dist/backend/sqlite/local.d.cts +3 -3
- package/dist/backend/sqlite/local.d.ts +3 -3
- package/dist/backend/sqlite/local.js +7 -7
- package/dist/{chunk-EMIB2RXD.cjs → chunk-2HIYYMWY.cjs} +99 -96
- package/dist/chunk-2HIYYMWY.cjs.map +1 -0
- package/dist/{chunk-6KFLYYOC.cjs → chunk-2QGYQBS2.cjs} +5 -5
- package/dist/{chunk-6KFLYYOC.cjs.map → chunk-2QGYQBS2.cjs.map} +1 -1
- package/dist/{chunk-5FT3TLPK.js → chunk-2SYZXD54.js} +16 -13
- package/dist/chunk-2SYZXD54.js.map +1 -0
- package/dist/{chunk-XYBQI6LE.js → chunk-2TYSSBU5.js} +6 -6
- package/dist/{chunk-XYBQI6LE.js.map → chunk-2TYSSBU5.js.map} +1 -1
- package/dist/{chunk-6JVZSOHQ.cjs → chunk-3FPR224C.cjs} +26 -26
- package/dist/{chunk-6JVZSOHQ.cjs.map → chunk-3FPR224C.cjs.map} +1 -1
- package/dist/{chunk-MFZR4QKM.cjs → chunk-3KOY4FH3.cjs} +181 -4
- package/dist/chunk-3KOY4FH3.cjs.map +1 -0
- package/dist/{chunk-6FWSNSRE.js → chunk-4WMMBDS5.js} +4 -4
- package/dist/chunk-4WMMBDS5.js.map +1 -0
- package/dist/{chunk-NG2RB5WL.js → chunk-5K2BKEBD.js} +18 -3
- package/dist/chunk-5K2BKEBD.js.map +1 -0
- package/dist/chunk-5PRKMB24.cjs +124 -0
- package/dist/chunk-5PRKMB24.cjs.map +1 -0
- package/dist/chunk-6LN7FIVU.js +107 -0
- package/dist/chunk-6LN7FIVU.js.map +1 -0
- package/dist/{chunk-I4G3SQPF.cjs → chunk-7XUYFFR4.cjs} +7 -7
- package/dist/chunk-7XUYFFR4.cjs.map +1 -0
- package/dist/{chunk-KH7XW7VV.js → chunk-ACGSAMD3.js} +24 -27
- package/dist/chunk-ACGSAMD3.js.map +1 -0
- package/dist/{chunk-QS3NQZVC.js → chunk-AX6JGVTZ.js} +16 -11
- package/dist/chunk-AX6JGVTZ.js.map +1 -0
- package/dist/{chunk-DJZTXBWY.js → chunk-BRRP76WO.js} +71 -30
- package/dist/chunk-BRRP76WO.js.map +1 -0
- package/dist/{chunk-5UMTUOM5.js → chunk-CT3ZKTOF.js} +5 -4
- package/dist/chunk-CT3ZKTOF.js.map +1 -0
- package/dist/{chunk-XY5OMOJD.js → chunk-DZAICA5J.js} +3 -3
- package/dist/{chunk-XY5OMOJD.js.map → chunk-DZAICA5J.js.map} +1 -1
- package/dist/{chunk-OIFSOPSR.cjs → chunk-EZEEWCFJ.cjs} +38 -156
- package/dist/chunk-EZEEWCFJ.cjs.map +1 -0
- package/dist/{chunk-AMMWA76F.cjs → chunk-FA2AFWLP.cjs} +6 -6
- package/dist/{chunk-AMMWA76F.cjs.map → chunk-FA2AFWLP.cjs.map} +1 -1
- package/dist/{chunk-FNOMT74T.js → chunk-I4GAZH5Z.js} +180 -5
- package/dist/chunk-I4GAZH5Z.js.map +1 -0
- package/dist/{chunk-WGX7JH7E.cjs → chunk-JB6T4GLL.cjs} +106 -134
- package/dist/chunk-JB6T4GLL.cjs.map +1 -0
- package/dist/{chunk-MX4DHSQP.cjs → chunk-JFRT7S3B.cjs} +92 -98
- package/dist/chunk-JFRT7S3B.cjs.map +1 -0
- package/dist/{chunk-SE6EGQSD.js → chunk-KF6K7TGH.js} +38 -66
- package/dist/chunk-KF6K7TGH.js.map +1 -0
- package/dist/{chunk-ZHNXLS3C.js → chunk-NACVVDWB.js} +208 -8
- package/dist/chunk-NACVVDWB.js.map +1 -0
- package/dist/{chunk-M35DF33T.js → chunk-OD4SSY2U.js} +29 -16
- package/dist/chunk-OD4SSY2U.js.map +1 -0
- package/dist/{chunk-U5EDAVOJ.cjs → chunk-OTUPEF2W.cjs} +54 -49
- package/dist/chunk-OTUPEF2W.cjs.map +1 -0
- package/dist/{chunk-BCQ76AXA.cjs → chunk-PFBRJBUL.cjs} +107 -94
- package/dist/chunk-PFBRJBUL.cjs.map +1 -0
- package/dist/{chunk-AVGUJWVX.js → chunk-S5TERQVW.js} +15 -132
- package/dist/chunk-S5TERQVW.js.map +1 -0
- package/dist/chunk-SIT26LAZ.cjs +614 -0
- package/dist/chunk-SIT26LAZ.cjs.map +1 -0
- package/dist/{chunk-BR7SHKGM.cjs → chunk-SR725PWF.cjs} +548 -507
- package/dist/chunk-SR725PWF.cjs.map +1 -0
- package/dist/{chunk-5FBRVORR.cjs → chunk-TKZXMWQF.cjs} +8 -7
- package/dist/chunk-TKZXMWQF.cjs.map +1 -0
- package/dist/{chunk-425IZOQ5.cjs → chunk-TQHGE7UC.cjs} +20 -2
- package/dist/chunk-TQHGE7UC.cjs.map +1 -0
- package/dist/{chunk-GYUJZARH.cjs → chunk-TUNPBZY3.cjs} +4 -4
- package/dist/{chunk-GYUJZARH.cjs.map → chunk-TUNPBZY3.cjs.map} +1 -1
- package/dist/chunk-UGHG7PGX.js +592 -0
- package/dist/chunk-UGHG7PGX.js.map +1 -0
- package/dist/{chunk-KABFHAL7.cjs → chunk-UMGZDVOA.cjs} +213 -12
- package/dist/chunk-UMGZDVOA.cjs.map +1 -0
- package/dist/{chunk-UPAJHMW3.cjs → chunk-WCCATHMB.cjs} +54 -57
- package/dist/chunk-WCCATHMB.cjs.map +1 -0
- package/dist/{chunk-LEWHMOUY.js → chunk-YIURNGXI.js} +4 -4
- package/dist/{chunk-LEWHMOUY.js.map → chunk-YIURNGXI.js.map} +1 -1
- package/dist/{chunk-EP4RUYD6.js → chunk-YVF2EM7B.js} +3 -3
- package/dist/{chunk-EP4RUYD6.js.map → chunk-YVF2EM7B.js.map} +1 -1
- package/dist/{chunk-NNQ6A3RM.js → chunk-ZFMCDJGB.js} +7 -12
- package/dist/chunk-ZFMCDJGB.js.map +1 -0
- package/dist/core/index.cjs +6 -6
- package/dist/core/index.d.cts +4 -4
- package/dist/core/index.d.ts +4 -4
- package/dist/core/index.js +2 -2
- package/dist/ddl-BL1NZLMY.d.cts +78 -0
- package/dist/ddl-D_oW-EVO.d.ts +78 -0
- package/dist/graph-extension/index.d.cts +4 -4
- package/dist/graph-extension/index.d.ts +4 -4
- package/dist/graph-merge/index.cjs +334 -191
- package/dist/graph-merge/index.cjs.map +1 -1
- package/dist/graph-merge/index.d.cts +65 -15
- package/dist/graph-merge/index.d.ts +65 -15
- package/dist/graph-merge/index.js +174 -32
- package/dist/graph-merge/index.js.map +1 -1
- package/dist/{index-CHTv4XMZ.d.cts → index-COs_z6nV.d.cts} +2 -2
- package/dist/{index-CzoJ3MUw.d.ts → index-D7d1u2gr.d.ts} +2 -2
- package/dist/index.cjs +90 -86
- package/dist/index.d.cts +12 -12
- package/dist/index.d.ts +12 -12
- package/dist/index.js +13 -13
- package/dist/indexes/index.d.cts +4 -4
- package/dist/indexes/index.d.ts +4 -4
- package/dist/interchange/index.cjs +38 -38
- package/dist/interchange/index.d.cts +7 -7
- package/dist/interchange/index.d.ts +7 -7
- package/dist/interchange/index.js +10 -10
- package/dist/{manager-DlY1vlla.d.cts → manager-CYaff3n3.d.cts} +2 -2
- package/dist/{manager-B6sOQzcQ.d.ts → manager-D9eRT_ns.d.ts} +2 -2
- package/dist/{materialize-indexes-DQL4xcpf.d.ts → materialize-indexes-DJ3ykH59.d.ts} +1 -1
- package/dist/{materialize-indexes-sskhp-c_.d.cts → materialize-indexes-DTtAnvfY.d.cts} +1 -1
- package/dist/{postgres-BXy_nyMs.d.cts → postgres-CcL4bAHS.d.ts} +1 -1
- package/dist/{postgres-B6YOUcaK.d.ts → postgres-DMj39MEu.d.cts} +1 -1
- package/dist/profiler/index.d.cts +9 -9
- package/dist/profiler/index.d.ts +9 -9
- package/dist/provenance/index.cjs +25 -26
- package/dist/provenance/index.cjs.map +1 -1
- package/dist/provenance/index.d.cts +7 -7
- package/dist/provenance/index.d.ts +7 -7
- package/dist/provenance/index.js +9 -10
- package/dist/provenance/index.js.map +1 -1
- package/dist/repair-validity-windows-BFNZvd_H.d.cts +166 -0
- package/dist/repair-validity-windows-DlUSqwCg.d.ts +166 -0
- package/dist/schema/index.cjs +35 -35
- package/dist/schema/index.d.cts +6 -6
- package/dist/schema/index.d.ts +6 -6
- package/dist/schema/index.js +8 -8
- package/dist/{searchable-D9gMiwcS.d.ts → searchable-DHJMh_nj.d.cts} +1 -1
- package/dist/{searchable-0Cn_lY8U.d.cts → searchable-bpE1bBfc.d.ts} +1 -1
- package/dist/{sqlite-DioSxaPe.d.cts → sqlite-D7Oz0SQh.d.ts} +1 -1
- package/dist/{sqlite-ClXuBYAj.d.ts → sqlite-YppHrNFb.d.cts} +1 -1
- package/dist/{store-5j-w5onJ.d.ts → store-JUVvtmR4.d.cts} +113 -26
- package/dist/{store-CFedKGU5.d.cts → store-UzrGvZOo.d.ts} +113 -26
- package/dist/{temporal-CjO9FH1l.d.ts → temporal-5GqpYCk2.d.cts} +1 -1
- package/dist/{temporal-Ce1pG0S1.d.cts → temporal-CbnLzTmM.d.ts} +1 -1
- package/dist/{types-DKkMJZjR.d.cts → types-BqFZTQmV.d.cts} +29 -4
- package/dist/{types-DKkMJZjR.d.ts → types-BqFZTQmV.d.ts} +29 -4
- package/dist/{types-BrdOFu48.d.ts → types-Bx74kaTt.d.ts} +1 -1
- package/dist/{types-oj_OGAaZ.d.cts → types-CXAhpW-c.d.cts} +1 -1
- package/dist/{where-D1wKCJ4Q.d.cts → where-DI_Fqz-X.d.cts} +1 -1
- package/dist/{where-C8w2627G.d.ts → where-O-k2wgYm.d.ts} +1 -1
- package/package.json +1 -1
- package/dist/chunk-3HGRTCDU.cjs +0 -269
- package/dist/chunk-3HGRTCDU.cjs.map +0 -1
- package/dist/chunk-425IZOQ5.cjs.map +0 -1
- package/dist/chunk-5FBRVORR.cjs.map +0 -1
- package/dist/chunk-5FT3TLPK.js.map +0 -1
- package/dist/chunk-5UMTUOM5.js.map +0 -1
- package/dist/chunk-6FWSNSRE.js.map +0 -1
- package/dist/chunk-AVGUJWVX.js.map +0 -1
- package/dist/chunk-BCQ76AXA.cjs.map +0 -1
- package/dist/chunk-BR7SHKGM.cjs.map +0 -1
- package/dist/chunk-DJZTXBWY.js.map +0 -1
- package/dist/chunk-EMIB2RXD.cjs.map +0 -1
- package/dist/chunk-FNOMT74T.js.map +0 -1
- package/dist/chunk-I4G3SQPF.cjs.map +0 -1
- package/dist/chunk-JR6SX5RH.cjs +0 -268
- package/dist/chunk-JR6SX5RH.cjs.map +0 -1
- package/dist/chunk-KABFHAL7.cjs.map +0 -1
- package/dist/chunk-KH7XW7VV.js.map +0 -1
- package/dist/chunk-M35DF33T.js.map +0 -1
- package/dist/chunk-MFZR4QKM.cjs.map +0 -1
- package/dist/chunk-MX4DHSQP.cjs.map +0 -1
- package/dist/chunk-NAZ2RA4L.js +0 -254
- package/dist/chunk-NAZ2RA4L.js.map +0 -1
- package/dist/chunk-NG2RB5WL.js.map +0 -1
- package/dist/chunk-NNQ6A3RM.js.map +0 -1
- package/dist/chunk-OIFSOPSR.cjs.map +0 -1
- package/dist/chunk-QS3NQZVC.js.map +0 -1
- package/dist/chunk-SE6EGQSD.js.map +0 -1
- package/dist/chunk-SHSSRCFR.js +0 -246
- package/dist/chunk-SHSSRCFR.js.map +0 -1
- package/dist/chunk-U5EDAVOJ.cjs.map +0 -1
- package/dist/chunk-UPAJHMW3.cjs.map +0 -1
- package/dist/chunk-WGX7JH7E.cjs.map +0 -1
- package/dist/chunk-ZHNXLS3C.js.map +0 -1
- package/dist/ddl-CprnMXJ-.d.ts +0 -38
- package/dist/ddl-DJA7Lci5.d.cts +0 -38
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkEZEEWCFJ_cjs = require('./chunk-EZEEWCFJ.cjs');
|
|
4
|
+
var chunk5PRKMB24_cjs = require('./chunk-5PRKMB24.cjs');
|
|
4
5
|
var chunkFQPEMEWX_cjs = require('./chunk-FQPEMEWX.cjs');
|
|
5
6
|
var chunkEDN4Y4ZG_cjs = require('./chunk-EDN4Y4ZG.cjs');
|
|
6
7
|
var chunkHAHNRASW_cjs = require('./chunk-HAHNRASW.cjs');
|
|
@@ -301,6 +302,180 @@ async function deleteNodeFulltext(ctx, schema) {
|
|
|
301
302
|
function createUniquenessContext(graphId, registry, backend) {
|
|
302
303
|
return { graphId, registry, backend };
|
|
303
304
|
}
|
|
305
|
+
function nodeIdentityKey(reference) {
|
|
306
|
+
return chunkEZEEWCFJ_cjs.encodeTupleKey([reference.kind, reference.id]);
|
|
307
|
+
}
|
|
308
|
+
function proposedUniqueClaims(ctx, upserts) {
|
|
309
|
+
const claims = [];
|
|
310
|
+
const claimsByCheckedKind = /* @__PURE__ */ new Map();
|
|
311
|
+
const claimsByOwnKind = /* @__PURE__ */ new Map();
|
|
312
|
+
const orderedConstraints = [];
|
|
313
|
+
const seenConstraints = /* @__PURE__ */ new Set();
|
|
314
|
+
for (const upsert of upserts) {
|
|
315
|
+
for (const constraint of upsert.constraints) {
|
|
316
|
+
if (seenConstraints.has(constraint)) continue;
|
|
317
|
+
seenConstraints.add(constraint);
|
|
318
|
+
orderedConstraints.push(constraint);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
for (const constraint of orderedConstraints) {
|
|
322
|
+
for (const upsert of upserts) {
|
|
323
|
+
if (!upsert.constraints.includes(constraint)) continue;
|
|
324
|
+
if (!chunkFQPEMEWX_cjs.checkWherePredicate(constraint, upsert.props)) continue;
|
|
325
|
+
const claim = {
|
|
326
|
+
kind: upsert.kind,
|
|
327
|
+
id: upsert.id,
|
|
328
|
+
constraint,
|
|
329
|
+
key: chunkFQPEMEWX_cjs.computeUniqueKey(
|
|
330
|
+
upsert.props,
|
|
331
|
+
constraint.fields,
|
|
332
|
+
constraint.collation
|
|
333
|
+
),
|
|
334
|
+
kindsToCheck: chunkFQPEMEWX_cjs.getKindsForUniquenessCheck(
|
|
335
|
+
upsert.kind,
|
|
336
|
+
constraint.scope,
|
|
337
|
+
ctx.registry
|
|
338
|
+
)
|
|
339
|
+
};
|
|
340
|
+
const identity = nodeIdentityKey(claim);
|
|
341
|
+
const candidateGroups = [
|
|
342
|
+
claimsByCheckedKind.get(
|
|
343
|
+
chunkEZEEWCFJ_cjs.encodeTupleKey([constraint.name, claim.key, claim.kind])
|
|
344
|
+
) ?? [],
|
|
345
|
+
...claim.kindsToCheck.map(
|
|
346
|
+
(kind) => claimsByOwnKind.get(
|
|
347
|
+
chunkEZEEWCFJ_cjs.encodeTupleKey([constraint.name, claim.key, kind])
|
|
348
|
+
) ?? []
|
|
349
|
+
)
|
|
350
|
+
];
|
|
351
|
+
const collision = candidateGroups.flat().find((existing) => nodeIdentityKey(existing) !== identity);
|
|
352
|
+
if (collision !== void 0) {
|
|
353
|
+
throw new chunkMRDBBHIZ_cjs.UniquenessError({
|
|
354
|
+
constraintName: constraint.name,
|
|
355
|
+
kind: collision.kind,
|
|
356
|
+
existingId: collision.id,
|
|
357
|
+
newId: upsert.id,
|
|
358
|
+
fields: constraint.fields
|
|
359
|
+
});
|
|
360
|
+
}
|
|
361
|
+
claims.push(claim);
|
|
362
|
+
const ownKindKey = chunkEZEEWCFJ_cjs.encodeTupleKey([
|
|
363
|
+
constraint.name,
|
|
364
|
+
claim.key,
|
|
365
|
+
claim.kind
|
|
366
|
+
]);
|
|
367
|
+
const sameKindClaims = claimsByOwnKind.get(ownKindKey);
|
|
368
|
+
if (sameKindClaims === void 0) {
|
|
369
|
+
claimsByOwnKind.set(ownKindKey, [claim]);
|
|
370
|
+
} else {
|
|
371
|
+
sameKindClaims.push(claim);
|
|
372
|
+
}
|
|
373
|
+
for (const kind of claim.kindsToCheck) {
|
|
374
|
+
const checkedKindKey = chunkEZEEWCFJ_cjs.encodeTupleKey([
|
|
375
|
+
constraint.name,
|
|
376
|
+
claim.key,
|
|
377
|
+
kind
|
|
378
|
+
]);
|
|
379
|
+
const sameDomainClaims = claimsByCheckedKind.get(checkedKindKey);
|
|
380
|
+
if (sameDomainClaims === void 0) {
|
|
381
|
+
claimsByCheckedKind.set(checkedKindKey, [claim]);
|
|
382
|
+
} else {
|
|
383
|
+
sameDomainClaims.push(claim);
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
return claims;
|
|
389
|
+
}
|
|
390
|
+
function groupUniqueClaimsForBatchProbe(claims) {
|
|
391
|
+
const groups = /* @__PURE__ */ new Map();
|
|
392
|
+
for (const claim of claims) {
|
|
393
|
+
for (const nodeKind of claim.kindsToCheck) {
|
|
394
|
+
const groupKey = chunkEZEEWCFJ_cjs.encodeTupleKey([nodeKind, claim.constraint.name]);
|
|
395
|
+
const existing = groups.get(groupKey);
|
|
396
|
+
if (existing === void 0) {
|
|
397
|
+
groups.set(groupKey, {
|
|
398
|
+
nodeKind,
|
|
399
|
+
constraintName: claim.constraint.name,
|
|
400
|
+
claimsByKey: /* @__PURE__ */ new Map([[claim.key, claim]])
|
|
401
|
+
});
|
|
402
|
+
continue;
|
|
403
|
+
}
|
|
404
|
+
existing.claimsByKey.set(claim.key, claim);
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
return [...groups.values()];
|
|
408
|
+
}
|
|
409
|
+
async function validateResolvedNodeUniqueness(ctx, upserts, releases = []) {
|
|
410
|
+
const checkUniqueBatch = ctx.backend.checkUniqueBatch;
|
|
411
|
+
if (checkUniqueBatch === void 0) {
|
|
412
|
+
throw new chunkMRDBBHIZ_cjs.ConfigurationError(
|
|
413
|
+
"Resolved node writes require batched uniqueness probes",
|
|
414
|
+
{ code: "RESOLVED_NODE_UNIQUENESS_UNSUPPORTED" }
|
|
415
|
+
);
|
|
416
|
+
}
|
|
417
|
+
const claims = proposedUniqueClaims(ctx, upserts);
|
|
418
|
+
if (claims.length === 0) return;
|
|
419
|
+
const affectedOwners = new Set(
|
|
420
|
+
[...upserts, ...releases].map((reference) => nodeIdentityKey(reference))
|
|
421
|
+
);
|
|
422
|
+
for (const group of groupUniqueClaimsForBatchProbe(claims)) {
|
|
423
|
+
const existingRows = await checkUniqueBatch({
|
|
424
|
+
graphId: ctx.graphId,
|
|
425
|
+
nodeKind: group.nodeKind,
|
|
426
|
+
constraintName: group.constraintName,
|
|
427
|
+
keys: [...group.claimsByKey.keys()]
|
|
428
|
+
});
|
|
429
|
+
for (const existing of existingRows) {
|
|
430
|
+
if (affectedOwners.has(
|
|
431
|
+
nodeIdentityKey({
|
|
432
|
+
kind: existing.concrete_kind,
|
|
433
|
+
id: existing.node_id
|
|
434
|
+
})
|
|
435
|
+
)) {
|
|
436
|
+
continue;
|
|
437
|
+
}
|
|
438
|
+
const claim = group.claimsByKey.get(existing.key);
|
|
439
|
+
if (claim === void 0) continue;
|
|
440
|
+
throw new chunkMRDBBHIZ_cjs.UniquenessError({
|
|
441
|
+
constraintName: group.constraintName,
|
|
442
|
+
kind: group.nodeKind,
|
|
443
|
+
existingId: existing.node_id,
|
|
444
|
+
newId: claim.id,
|
|
445
|
+
fields: claim.constraint.fields
|
|
446
|
+
});
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
async function prepareResolvedNodeUniqueness(ctx, upserts, releases) {
|
|
451
|
+
const hardDeleteUniquesByNodeIds = ctx.backend.hardDeleteUniquesByNodeIds;
|
|
452
|
+
if (ctx.backend.checkUniqueBatch === void 0 || ctx.backend.insertUniqueBatch === void 0 || hardDeleteUniquesByNodeIds === void 0) {
|
|
453
|
+
throw new chunkMRDBBHIZ_cjs.ConfigurationError(
|
|
454
|
+
"Resolved node writes require batched uniqueness operations",
|
|
455
|
+
{ code: "RESOLVED_NODE_UNIQUENESS_UNSUPPORTED" }
|
|
456
|
+
);
|
|
457
|
+
}
|
|
458
|
+
await validateResolvedNodeUniqueness(ctx, upserts, releases);
|
|
459
|
+
const idsByKind = /* @__PURE__ */ new Map();
|
|
460
|
+
for (const reference of [...upserts, ...releases]) {
|
|
461
|
+
const ids = idsByKind.get(reference.kind) ?? /* @__PURE__ */ new Set();
|
|
462
|
+
ids.add(reference.id);
|
|
463
|
+
idsByKind.set(reference.kind, ids);
|
|
464
|
+
}
|
|
465
|
+
for (const [concreteKind, nodeIds] of idsByKind) {
|
|
466
|
+
await hardDeleteUniquesByNodeIds({
|
|
467
|
+
graphId: ctx.graphId,
|
|
468
|
+
concreteKind,
|
|
469
|
+
nodeIds: [...nodeIds]
|
|
470
|
+
});
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
async function applyResolvedNodeUniqueness(ctx, upserts, releases, apply) {
|
|
474
|
+
await prepareResolvedNodeUniqueness(ctx, upserts, releases);
|
|
475
|
+
const result = await apply();
|
|
476
|
+
await insertUniquenessEntriesBatch(ctx, upserts);
|
|
477
|
+
return result;
|
|
478
|
+
}
|
|
304
479
|
async function probeUniqueKey(ctx, kind, id, constraint, key) {
|
|
305
480
|
const kindsToCheck = chunkFQPEMEWX_cjs.getKindsForUniquenessCheck(
|
|
306
481
|
kind,
|
|
@@ -591,7 +766,7 @@ async function applyNodeInsertSideEffectsBatch(ctx, items, backend) {
|
|
|
591
766
|
);
|
|
592
767
|
}
|
|
593
768
|
function parseRowProps(row) {
|
|
594
|
-
return
|
|
769
|
+
return chunk5PRKMB24_cjs.rowPropsToObject(row.props);
|
|
595
770
|
}
|
|
596
771
|
async function planNodeUpdateUniqueness(ctx, args, backend) {
|
|
597
772
|
const { kind, id } = args.existing;
|
|
@@ -744,6 +919,7 @@ exports.applyNodeInsertSideEffectsBatch = applyNodeInsertSideEffectsBatch;
|
|
|
744
919
|
exports.applyNodeResurrect = applyNodeResurrect;
|
|
745
920
|
exports.applyNodeSoftDelete = applyNodeSoftDelete;
|
|
746
921
|
exports.applyNodeUpdate = applyNodeUpdate;
|
|
922
|
+
exports.applyResolvedNodeUniqueness = applyResolvedNodeUniqueness;
|
|
747
923
|
exports.checkUniquenessConstraints = checkUniquenessConstraints;
|
|
748
924
|
exports.computeFulltextContent = computeFulltextContent;
|
|
749
925
|
exports.createNodeWriteContext = createNodeWriteContext;
|
|
@@ -753,5 +929,6 @@ exports.storeBackend = storeBackend;
|
|
|
753
929
|
exports.storeRuntime = storeRuntime;
|
|
754
930
|
exports.transactionBackend = transactionBackend;
|
|
755
931
|
exports.transactionNodeOperationHookRunner = transactionNodeOperationHookRunner;
|
|
756
|
-
|
|
757
|
-
//# sourceMappingURL=chunk-
|
|
932
|
+
exports.validateResolvedNodeUniqueness = validateResolvedNodeUniqueness;
|
|
933
|
+
//# sourceMappingURL=chunk-3KOY4FH3.cjs.map
|
|
934
|
+
//# sourceMappingURL=chunk-3KOY4FH3.cjs.map
|