@prisma-idb/idb-client-generator 0.35.0 → 0.35.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.
@@ -15,31 +15,48 @@ exports.pushErrorTypes = {
15
15
  MAX_RETRIES: "MAX_RETRIES",
16
16
  CUSTOM_VALIDATION_FAILED: "CUSTOM_VALIDATION_FAILED",
17
17
  };
18
- function buildAuthorizationPath(targetModel, rootModel, models, dag) {
18
+ function buildAllAuthorizationPaths(targetModel, rootModel, models, dag) {
19
19
  if (targetModel === rootModel) {
20
20
  return [];
21
21
  }
22
- const path = [];
23
- const visited = new Set();
24
22
  const modelMap = new Map(models.map((m) => [m.name, m]));
25
- const dfs = (current) => {
26
- if (current === rootModel)
27
- return true;
23
+ const allPaths = [];
24
+ const dfs = (current, path, visited) => {
25
+ if (current === rootModel) {
26
+ allPaths.push([...path]);
27
+ return;
28
+ }
28
29
  visited.add(current);
29
30
  const model = modelMap.get(current);
30
31
  if (!model)
31
- return false;
32
+ return;
32
33
  const relationFields = model.fields.filter((f) => f.kind === "object" && !f.isList && dag[f.type]);
33
34
  for (const field of relationFields) {
34
- if (!visited.has(field.type) && dfs(field.type)) {
35
- path.unshift(field.name);
36
- return true;
35
+ if (!visited.has(field.type)) {
36
+ path.push(field.name);
37
+ dfs(field.type, path, new Set(visited));
38
+ path.pop();
37
39
  }
38
40
  }
39
- return false;
40
41
  };
41
- dfs(targetModel);
42
- return path;
42
+ dfs(targetModel, [], new Set());
43
+ allPaths.sort((a, b) => {
44
+ if (a.length !== b.length)
45
+ return a.length - b.length;
46
+ const targetModelObj = modelMap.get(targetModel);
47
+ if (targetModelObj) {
48
+ const fieldA = targetModelObj.fields.find((f) => f.name === a[0]);
49
+ const fieldB = targetModelObj.fields.find((f) => f.name === b[0]);
50
+ if (fieldA && fieldB) {
51
+ if (fieldA.isRequired && !fieldB.isRequired)
52
+ return -1;
53
+ if (!fieldA.isRequired && fieldB.isRequired)
54
+ return 1;
55
+ }
56
+ }
57
+ return 0;
58
+ });
59
+ return allPaths;
43
60
  }
44
61
  function createBatchProcessorFile(writer, options) {
45
62
  const { models, prismaClientImport, rootModel } = options;
@@ -220,7 +237,7 @@ function createBatchProcessorFile(writer, options) {
220
237
  const pk = (0, utils_1.getUniqueIdentifiers)(model)[0];
221
238
  const pkFields = JSON.parse(pk.keyPath);
222
239
  const isRootModel = model.name === rootModel.name;
223
- const authPath = buildAuthorizationPath(model.name, rootModel.name, models, dag);
240
+ const allAuthPaths = buildAllAuthorizationPaths(model.name, rootModel.name, models, dag);
224
241
  writer.writeLine(` case "${model.name}": {`);
225
242
  writer.writeLine(` const keyPathValidation = keyPathValidators.${model.name}.safeParse(log.keyPath);`);
226
243
  writer.writeLine(` if (!keyPathValidation.success) {`);
@@ -242,7 +259,7 @@ function createBatchProcessorFile(writer, options) {
242
259
  writer.writeLine(` });`);
243
260
  }
244
261
  else {
245
- const flatWhere = buildFlatWhereClause(pk.name, pkFields, authPath, rootModel);
262
+ const flatWhere = buildMultiPathFlatWhereClause(pk.name, pkFields, allAuthPaths, rootModel);
246
263
  writer.writeLine(` const record = await prisma.${modelNameLower}.findFirst({`);
247
264
  writer.writeLine(` where: ${flatWhere},`);
248
265
  writer.writeLine(` select: { ${selectFields} },`);
@@ -293,8 +310,10 @@ function generateModelSyncHandler(writer, model, allModels, rootModel, dag) {
293
310
  const modelNameLower = model.name.charAt(0).toLowerCase() + model.name.slice(1);
294
311
  const pk = (0, utils_1.getUniqueIdentifiers)(model)[0];
295
312
  const pkFields = JSON.parse(pk.keyPath);
296
- const authPath = buildAuthorizationPath(model.name, rootModel.name, allModels, dag);
313
+ const allAuthPaths = buildAllAuthorizationPaths(model.name, rootModel.name, allModels, dag);
314
+ const authPath = allAuthPaths[0] || [];
297
315
  const isRootModel = model.name === rootModel.name;
316
+ const hasMultiplePaths = allAuthPaths.length > 1;
298
317
  writer.writeLine(`async function sync${model.name}(event: OutboxEventRecord, data: z.infer<typeof validators.${model.name}>, scopeKey: string, prisma: PrismaClient): Promise<PushResult>`);
299
318
  writer.block(() => {
300
319
  writer.writeLine(`const { id, operation } = event;`);
@@ -321,67 +340,72 @@ function generateModelSyncHandler(writer, model, allModels, rootModel, dag) {
321
340
  writer.writeLine(` return { id, error: null, appliedChangelogId: existingLog.id };`);
322
341
  writer.writeLine(` }`);
323
342
  writer.blankLine();
324
- if (!isRootModel && authPath.length > 0) {
325
- const firstRelationFieldName = authPath[0];
326
- const relationField = model.fields.find((f) => f.name === firstRelationFieldName);
327
- if (!relationField) {
328
- throw new Error(`Failed to find relation field ${firstRelationFieldName} on model ${model.name}`);
329
- }
330
- if (!relationField.relationFromFields || relationField.relationFromFields.length === 0) {
331
- throw new Error(`Relation field ${firstRelationFieldName} on model ${model.name} does not have foreign key fields`);
343
+ if (!isRootModel && allAuthPaths.length > 0) {
344
+ if (hasMultiplePaths) {
345
+ emitMultiPathPayloadOwnershipCheck(writer, " ", allAuthPaths, model, allModels, rootModel, `Unauthorized: ${model.name} parent is not owned by authenticated scope`);
332
346
  }
333
- const foreignKeyFields = relationField.relationFromFields;
334
- const parentModel = allModels.find((m) => m.name === relationField.type);
335
- if (!parentModel || foreignKeyFields.length === 0) {
336
- throw new Error(`Failed to find parent model for ${model.name} via relation field ${firstRelationFieldName}`);
337
- }
338
- const parentModelLower = parentModel.name.charAt(0).toLowerCase() + parentModel.name.slice(1);
339
- const remainingPath = authPath.slice(1);
340
- if (remainingPath.length > 0) {
341
- const parentSelectObj = buildSelectObject(remainingPath, rootModel);
342
- const parentPk = (0, utils_1.getUniqueIdentifiers)(parentModel)[0];
343
- const parentPkFields = JSON.parse(parentPk.keyPath);
344
- const rootPkFieldName = (0, utils_1.getUniqueIdentifiers)(rootModel)[0].name;
345
- const accessChain = buildAccessChain(remainingPath, rootPkFieldName, parentModel, allModels);
346
- if (!relationField.isRequired) {
347
- emitOptionalFkGuard(writer, " ", foreignKeyFields, model.name);
348
- }
349
- writer.writeLine(` const parentRecord = await tx.${parentModelLower}.findUnique({`);
350
- if (parentPkFields.length === 1) {
351
- writer.writeLine(` where: { ${parentPkFields[0]}: data.${foreignKeyFields[0]} },`);
347
+ else {
348
+ const firstRelationFieldName = authPath[0];
349
+ const relationField = model.fields.find((f) => f.name === firstRelationFieldName);
350
+ if (!relationField) {
351
+ throw new Error(`Failed to find relation field ${firstRelationFieldName} on model ${model.name}`);
352
352
  }
353
- else {
354
- const compositeKey = parentPkFields.map((field, i) => `${field}: data.${foreignKeyFields[i]}`).join(", ");
355
- writer.writeLine(` where: { ${parentPk.name}: { ${compositeKey} } },`);
353
+ if (!relationField.relationFromFields || relationField.relationFromFields.length === 0) {
354
+ throw new Error(`Relation field ${firstRelationFieldName} on model ${model.name} does not have foreign key fields`);
356
355
  }
357
- writer.writeLine(` select: ${parentSelectObj},`);
358
- writer.writeLine(` });`);
359
- writer.blankLine();
360
- writer.writeLine(` if (!parentRecord || parentRecord${accessChain} !== scopeKey) {`);
361
- writer.writeLine(` throw new PermanentSyncError("${exports.pushErrorTypes.SCOPE_VIOLATION}", \`Unauthorized: ${model.name} parent is not owned by authenticated scope\`);`);
362
- writer.writeLine(` }`);
363
- }
364
- else {
365
- const parentPk = (0, utils_1.getUniqueIdentifiers)(parentModel)[0];
366
- const parentPkFields = JSON.parse(parentPk.keyPath);
367
- const parentPkFieldName = (0, utils_1.getUniqueIdentifiers)(parentModel)[0].name;
368
- if (!relationField.isRequired) {
369
- emitOptionalFkGuard(writer, " ", foreignKeyFields, model.name);
356
+ const foreignKeyFields = relationField.relationFromFields;
357
+ const parentModel = allModels.find((m) => m.name === relationField.type);
358
+ if (!parentModel || foreignKeyFields.length === 0) {
359
+ throw new Error(`Failed to find parent model for ${model.name} via relation field ${firstRelationFieldName}`);
370
360
  }
371
- writer.writeLine(` const parentRecord = await tx.${parentModelLower}.findUnique({`);
372
- if (parentPkFields.length === 1) {
373
- writer.writeLine(` where: { ${parentPkFields[0]}: data.${foreignKeyFields[0]} },`);
361
+ const parentModelLower = parentModel.name.charAt(0).toLowerCase() + parentModel.name.slice(1);
362
+ const remainingPath = authPath.slice(1);
363
+ if (remainingPath.length > 0) {
364
+ const parentSelectObj = buildSelectObject(remainingPath, rootModel);
365
+ const parentPk = (0, utils_1.getUniqueIdentifiers)(parentModel)[0];
366
+ const parentPkFields = JSON.parse(parentPk.keyPath);
367
+ const rootPkFieldName = (0, utils_1.getUniqueIdentifiers)(rootModel)[0].name;
368
+ const accessChain = buildAccessChain(remainingPath, rootPkFieldName, parentModel, allModels);
369
+ if (!relationField.isRequired) {
370
+ emitOptionalFkGuard(writer, " ", foreignKeyFields, model.name);
371
+ }
372
+ writer.writeLine(` const parentRecord = await tx.${parentModelLower}.findUnique({`);
373
+ if (parentPkFields.length === 1) {
374
+ writer.writeLine(` where: { ${parentPkFields[0]}: data.${foreignKeyFields[0]} },`);
375
+ }
376
+ else {
377
+ const compositeKey = parentPkFields.map((field, i) => `${field}: data.${foreignKeyFields[i]}`).join(", ");
378
+ writer.writeLine(` where: { ${parentPk.name}: { ${compositeKey} } },`);
379
+ }
380
+ writer.writeLine(` select: ${parentSelectObj},`);
381
+ writer.writeLine(` });`);
382
+ writer.blankLine();
383
+ writer.writeLine(` if (!parentRecord || parentRecord${accessChain} !== scopeKey) {`);
384
+ writer.writeLine(` throw new PermanentSyncError("${exports.pushErrorTypes.SCOPE_VIOLATION}", \`Unauthorized: ${model.name} parent is not owned by authenticated scope\`);`);
385
+ writer.writeLine(` }`);
374
386
  }
375
387
  else {
376
- const compositeKey = parentPkFields.map((field, i) => `${field}: data.${foreignKeyFields[i]}`).join(", ");
377
- writer.writeLine(` where: { ${parentPk.name}: { ${compositeKey} } },`);
388
+ const parentPk = (0, utils_1.getUniqueIdentifiers)(parentModel)[0];
389
+ const parentPkFields = JSON.parse(parentPk.keyPath);
390
+ const parentPkFieldName = (0, utils_1.getUniqueIdentifiers)(parentModel)[0].name;
391
+ if (!relationField.isRequired) {
392
+ emitOptionalFkGuard(writer, " ", foreignKeyFields, model.name);
393
+ }
394
+ writer.writeLine(` const parentRecord = await tx.${parentModelLower}.findUnique({`);
395
+ if (parentPkFields.length === 1) {
396
+ writer.writeLine(` where: { ${parentPkFields[0]}: data.${foreignKeyFields[0]} },`);
397
+ }
398
+ else {
399
+ const compositeKey = parentPkFields.map((field, i) => `${field}: data.${foreignKeyFields[i]}`).join(", ");
400
+ writer.writeLine(` where: { ${parentPk.name}: { ${compositeKey} } },`);
401
+ }
402
+ writer.writeLine(` select: { ${parentPkFieldName}: true },`);
403
+ writer.writeLine(` });`);
404
+ writer.blankLine();
405
+ writer.writeLine(` if (!parentRecord || parentRecord.${parentPkFieldName} !== scopeKey) {`);
406
+ writer.writeLine(` throw new PermanentSyncError("${exports.pushErrorTypes.SCOPE_VIOLATION}", \`Unauthorized: ${model.name} parent is not owned by authenticated scope\`);`);
407
+ writer.writeLine(` }`);
378
408
  }
379
- writer.writeLine(` select: { ${parentPkFieldName}: true },`);
380
- writer.writeLine(` });`);
381
- writer.blankLine();
382
- writer.writeLine(` if (!parentRecord || parentRecord.${parentPkFieldName} !== scopeKey) {`);
383
- writer.writeLine(` throw new PermanentSyncError("${exports.pushErrorTypes.SCOPE_VIOLATION}", \`Unauthorized: ${model.name} parent is not owned by authenticated scope\`);`);
384
- writer.writeLine(` }`);
385
409
  }
386
410
  writer.blankLine();
387
411
  }
@@ -422,7 +446,7 @@ function generateModelSyncHandler(writer, model, allModels, rootModel, dag) {
422
446
  writer.writeLine(` }`);
423
447
  }
424
448
  else {
425
- const selectObj = buildSelectObject(authPath, rootModel);
449
+ const selectObj = buildMultiPathSelectObject(allAuthPaths, rootModel);
426
450
  if (pkFields.length === 1) {
427
451
  writer.writeLine(` const record = await tx.${modelNameLower}.findUnique({`);
428
452
  writer.writeLine(` where: { ${pkFields[0]}: validKeyPath[0] },`);
@@ -440,11 +464,14 @@ function generateModelSyncHandler(writer, model, allModels, rootModel, dag) {
440
464
  writer.writeLine(` if (record) {`);
441
465
  writer.writeLine(` // Case A: Record exists - verify ownership from DB`);
442
466
  const rootPkFieldName = (0, utils_1.getUniqueIdentifiers)(rootModel)[0].name;
443
- const accessChain = buildAccessChain(authPath, rootPkFieldName, model, allModels);
444
- writer.writeLine(` if (record${accessChain} !== scopeKey) {`);
467
+ const ownershipCondition = buildMultiPathOwnershipCondition(allAuthPaths, rootPkFieldName, model, allModels);
468
+ writer.writeLine(` if (${ownershipCondition}) {`);
445
469
  writer.writeLine(` throw new PermanentSyncError("${exports.pushErrorTypes.SCOPE_VIOLATION}", \`Unauthorized: ${model.name} is not owned by the authenticated scope\`);`);
446
470
  writer.writeLine(` }`);
447
- if (authPath.length > 0) {
471
+ if (hasMultiplePaths) {
472
+ emitMultiPathPayloadOwnershipCheck(writer, " ", allAuthPaths, model, allModels, rootModel, `Cannot reassign ${model.name} to parent outside scope`);
473
+ }
474
+ else if (authPath.length > 0) {
448
475
  const firstRelationFieldName = authPath[0];
449
476
  const relationField = model.fields.find((f) => f.name === firstRelationFieldName);
450
477
  if (relationField && relationField.relationFromFields && relationField.relationFromFields.length > 0) {
@@ -489,42 +516,49 @@ function generateModelSyncHandler(writer, model, allModels, rootModel, dag) {
489
516
  }
490
517
  writer.writeLine(` } else {`);
491
518
  writer.writeLine(` // Case B: Record doesn't exist (resurrection) - verify ownership from payload`);
492
- const firstRelationFieldName = authPath[0];
493
- const relationField = model.fields.find((f) => f.name === firstRelationFieldName);
494
- if (relationField && relationField.relationFromFields && relationField.relationFromFields.length > 0) {
495
- const foreignKeyFields = relationField.relationFromFields;
496
- const parentModel = allModels.find((m) => m.name === relationField.type);
497
- if (parentModel) {
498
- const parentModelLower = parentModel.name.charAt(0).toLowerCase() + parentModel.name.slice(1);
499
- const remainingPath = authPath.slice(1);
500
- if (remainingPath.length > 0) {
501
- const parentSelectObj = buildSelectObject(remainingPath, rootModel);
502
- const parentPk = (0, utils_1.getUniqueIdentifiers)(parentModel)[0];
503
- const parentPkFields = JSON.parse(parentPk.keyPath);
504
- const rootPkFieldName2 = (0, utils_1.getUniqueIdentifiers)(rootModel)[0].name;
505
- const accessChainRemaining = buildAccessChain(remainingPath, rootPkFieldName2, parentModel, allModels);
506
- if (!relationField.isRequired) {
507
- emitOptionalFkGuard(writer, " ", foreignKeyFields, model.name);
508
- }
509
- writer.writeLine(` const parent = await tx.${parentModelLower}.findUnique({`);
510
- if (parentPkFields.length === 1) {
511
- writer.writeLine(` where: { ${parentPkFields[0]}: data.${foreignKeyFields[0]} },`);
519
+ if (hasMultiplePaths) {
520
+ emitMultiPathPayloadOwnershipCheck(writer, " ", allAuthPaths, model, allModels, rootModel, `Cannot resurrect ${model.name} into unauthorized scope`);
521
+ }
522
+ else {
523
+ const firstRelationFieldName = authPath[0];
524
+ const relationField = model.fields.find((f) => f.name === firstRelationFieldName);
525
+ if (relationField && relationField.relationFromFields && relationField.relationFromFields.length > 0) {
526
+ const foreignKeyFields = relationField.relationFromFields;
527
+ const parentModel = allModels.find((m) => m.name === relationField.type);
528
+ if (parentModel) {
529
+ const parentModelLower = parentModel.name.charAt(0).toLowerCase() + parentModel.name.slice(1);
530
+ const remainingPath = authPath.slice(1);
531
+ if (remainingPath.length > 0) {
532
+ const parentSelectObj = buildSelectObject(remainingPath, rootModel);
533
+ const parentPk = (0, utils_1.getUniqueIdentifiers)(parentModel)[0];
534
+ const parentPkFields = JSON.parse(parentPk.keyPath);
535
+ const rootPkFieldName2 = (0, utils_1.getUniqueIdentifiers)(rootModel)[0].name;
536
+ const accessChainRemaining = buildAccessChain(remainingPath, rootPkFieldName2, parentModel, allModels);
537
+ if (!relationField.isRequired) {
538
+ emitOptionalFkGuard(writer, " ", foreignKeyFields, model.name);
539
+ }
540
+ writer.writeLine(` const parent = await tx.${parentModelLower}.findUnique({`);
541
+ if (parentPkFields.length === 1) {
542
+ writer.writeLine(` where: { ${parentPkFields[0]}: data.${foreignKeyFields[0]} },`);
543
+ }
544
+ else {
545
+ const compositeKey = parentPkFields
546
+ .map((field, i) => `${field}: data.${foreignKeyFields[i]}`)
547
+ .join(", ");
548
+ writer.writeLine(` where: { ${parentPk.name}: { ${compositeKey} } },`);
549
+ }
550
+ writer.writeLine(` select: ${parentSelectObj},`);
551
+ writer.writeLine(` });`);
552
+ writer.blankLine();
553
+ writer.writeLine(` if (!parent || parent${accessChainRemaining} !== scopeKey) {`);
554
+ writer.writeLine(` throw new PermanentSyncError("${exports.pushErrorTypes.SCOPE_VIOLATION}", \`Cannot resurrect ${model.name} into unauthorized scope\`);`);
555
+ writer.writeLine(` }`);
512
556
  }
513
557
  else {
514
- const compositeKey = parentPkFields.map((field, i) => `${field}: data.${foreignKeyFields[i]}`).join(", ");
515
- writer.writeLine(` where: { ${parentPk.name}: { ${compositeKey} } },`);
558
+ writer.writeLine(` if (data.${foreignKeyFields[0]} !== scopeKey) {`);
559
+ writer.writeLine(` throw new PermanentSyncError("${exports.pushErrorTypes.SCOPE_VIOLATION}", \`Cannot resurrect ${model.name} into different ${parentModel.name}\`);`);
560
+ writer.writeLine(` }`);
516
561
  }
517
- writer.writeLine(` select: ${parentSelectObj},`);
518
- writer.writeLine(` });`);
519
- writer.blankLine();
520
- writer.writeLine(` if (!parent || parent${accessChainRemaining} !== scopeKey) {`);
521
- writer.writeLine(` throw new PermanentSyncError("${exports.pushErrorTypes.SCOPE_VIOLATION}", \`Cannot resurrect ${model.name} into unauthorized scope\`);`);
522
- writer.writeLine(` }`);
523
- }
524
- else {
525
- writer.writeLine(` if (data.${foreignKeyFields[0]} !== scopeKey) {`);
526
- writer.writeLine(` throw new PermanentSyncError("${exports.pushErrorTypes.SCOPE_VIOLATION}", \`Cannot resurrect ${model.name} into different ${parentModel.name}\`);`);
527
- writer.writeLine(` }`);
528
562
  }
529
563
  }
530
564
  }
@@ -565,7 +599,7 @@ function generateModelSyncHandler(writer, model, allModels, rootModel, dag) {
565
599
  writer.writeLine(` }`);
566
600
  }
567
601
  else {
568
- const selectObj = buildSelectObject(authPath, rootModel);
602
+ const selectObj = buildMultiPathSelectObject(allAuthPaths, rootModel);
569
603
  if (pkFields.length === 1) {
570
604
  writer.writeLine(` const record = await tx.${modelNameLower}.findUnique({`);
571
605
  writer.writeLine(` where: { ${pkFields[0]}: validKeyPath[0] },`);
@@ -582,8 +616,8 @@ function generateModelSyncHandler(writer, model, allModels, rootModel, dag) {
582
616
  writer.blankLine();
583
617
  writer.writeLine(` if (record) {`);
584
618
  const rootPkFieldName = (0, utils_1.getUniqueIdentifiers)(rootModel)[0].name;
585
- const accessChain = buildAccessChain(authPath, rootPkFieldName, model, allModels);
586
- writer.writeLine(` if (record${accessChain} !== scopeKey) {`);
619
+ const ownershipCondition = buildMultiPathOwnershipCondition(allAuthPaths, rootPkFieldName, model, allModels);
620
+ writer.writeLine(` if (${ownershipCondition}) {`);
587
621
  writer.writeLine(` throw new PermanentSyncError("${exports.pushErrorTypes.SCOPE_VIOLATION}", \`Unauthorized: ${model.name} is not owned by the authenticated scope\`);`);
588
622
  writer.writeLine(` }`);
589
623
  writer.writeLine(` }`);
@@ -612,16 +646,6 @@ function generateModelSyncHandler(writer, model, allModels, rootModel, dag) {
612
646
  });
613
647
  writer.blankLine();
614
648
  }
615
- function buildFlatWhereClause(pkName, pkFields, authPath, rootModel) {
616
- const whereWithScope = buildWhereWithScopeCondition(authPath, rootModel);
617
- if (pkFields.length === 1) {
618
- return `{ ${pkFields[0]}: validKeyPath[0], ${whereWithScope} }`;
619
- }
620
- else {
621
- const compositePkFields = pkFields.map((field, i) => `${field}: validKeyPath[${i}]`).join(", ");
622
- return `{ ${compositePkFields}, ${whereWithScope} }`;
623
- }
624
- }
625
649
  function buildSelectObject(authPath, rootModel) {
626
650
  if (authPath.length === 0)
627
651
  return "{}";
@@ -679,6 +703,151 @@ function emitOptionalFkGuard(writer, indent, foreignKeyFields, modelName) {
679
703
  writer.writeLine(`${indent} throw new PermanentSyncError("${exports.pushErrorTypes.SCOPE_VIOLATION}", \`Unauthorized: ${modelName} has null foreign key(s) in ownership path\`);`);
680
704
  writer.writeLine(`${indent}}`);
681
705
  }
706
+ function buildMultiPathSelectObject(allPaths, rootModel) {
707
+ if (allPaths.length === 0)
708
+ return "{}";
709
+ if (allPaths.length === 1)
710
+ return buildSelectObject(allPaths[0], rootModel);
711
+ const rootPkFieldName = (0, utils_1.getUniqueIdentifiers)(rootModel)[0].name;
712
+ function mergePathIntoTree(tree, path) {
713
+ if (path.length === 0)
714
+ return;
715
+ const [first, ...rest] = path;
716
+ if (rest.length === 0) {
717
+ if (!tree[first] || typeof tree[first] === "boolean") {
718
+ tree[first] = { [rootPkFieldName]: true };
719
+ }
720
+ else {
721
+ tree[first][rootPkFieldName] = true;
722
+ }
723
+ }
724
+ else {
725
+ if (!tree[first] || typeof tree[first] === "boolean") {
726
+ tree[first] = {};
727
+ }
728
+ mergePathIntoTree(tree[first], rest);
729
+ }
730
+ }
731
+ function serializeTree(tree) {
732
+ const parts = [];
733
+ for (const [key, value] of Object.entries(tree)) {
734
+ if (typeof value === "boolean") {
735
+ parts.push(`${key}: true`);
736
+ }
737
+ else {
738
+ parts.push(`${key}: { select: ${serializeTree(value)} }`);
739
+ }
740
+ }
741
+ return `{ ${parts.join(", ")} }`;
742
+ }
743
+ const tree = {};
744
+ for (const path of allPaths) {
745
+ mergePathIntoTree(tree, path);
746
+ }
747
+ return serializeTree(tree);
748
+ }
749
+ function buildMultiPathOwnershipCondition(allPaths, rootPkFieldName, model, allModels, varName = "record") {
750
+ const chains = allPaths.map((path) => {
751
+ const accessChain = buildAccessChain(path, rootPkFieldName, model, allModels);
752
+ return `${varName}${accessChain} !== scopeKey`;
753
+ });
754
+ return chains.join(" && ");
755
+ }
756
+ function buildMultiPathFlatWhereClause(pkName, pkFields, allPaths, rootModel) {
757
+ let pkCondition;
758
+ if (pkFields.length === 1) {
759
+ pkCondition = `${pkFields[0]}: validKeyPath[0]`;
760
+ }
761
+ else {
762
+ pkCondition = pkFields.map((field, i) => `${field}: validKeyPath[${i}]`).join(", ");
763
+ }
764
+ if (allPaths.length === 1) {
765
+ return `{ ${pkCondition}, ${buildWhereWithScopeCondition(allPaths[0], rootModel)} }`;
766
+ }
767
+ const scopeConditions = allPaths.map((path) => {
768
+ const whereWithScope = buildWhereWithScopeCondition(path, rootModel);
769
+ return `{ ${whereWithScope} }`;
770
+ });
771
+ return `{ ${pkCondition}, OR: [${scopeConditions.join(", ")}] }`;
772
+ }
773
+ function emitMultiPathPayloadOwnershipCheck(writer, indent, allPaths, model, allModels, rootModel, errorMessage) {
774
+ writer.setIndentationLevel(indent);
775
+ writer.writeLine("let ownershipVerified = false;");
776
+ allPaths.forEach((path, pathIndex) => {
777
+ const firstRelationFieldName = path[0];
778
+ const relationField = model.fields.find((f) => f.name === firstRelationFieldName);
779
+ if (!relationField || !relationField.relationFromFields?.length)
780
+ return;
781
+ const foreignKeyFields = relationField.relationFromFields;
782
+ const parentModel = allModels.find((m) => m.name === relationField.type);
783
+ if (!parentModel)
784
+ return;
785
+ const parentModelLower = parentModel.name.charAt(0).toLowerCase() + parentModel.name.slice(1);
786
+ const remainingPath = path.slice(1);
787
+ const varName = `p${pathIndex}`;
788
+ const emitLookupAndCheck = () => {
789
+ if (remainingPath.length > 0) {
790
+ const parentSelectObj = buildSelectObject(remainingPath, rootModel);
791
+ const parentPk = (0, utils_1.getUniqueIdentifiers)(parentModel)[0];
792
+ const parentPkFields = JSON.parse(parentPk.keyPath);
793
+ const rootPkFieldName = (0, utils_1.getUniqueIdentifiers)(rootModel)[0].name;
794
+ const accessChain = buildAccessChain(remainingPath, rootPkFieldName, parentModel, allModels);
795
+ writer.writeLine(`const ${varName} = await tx.${parentModelLower}.findUnique({`);
796
+ writer.indent(() => {
797
+ if (parentPkFields.length === 1) {
798
+ writer.writeLine(`where: { ${parentPkFields[0]}: data.${foreignKeyFields[0]} },`);
799
+ }
800
+ else {
801
+ const compositeKey = parentPkFields.map((field, i) => `${field}: data.${foreignKeyFields[i]}`).join(", ");
802
+ writer.writeLine(`where: { ${parentPk.name}: { ${compositeKey} } },`);
803
+ }
804
+ writer.writeLine(`select: ${parentSelectObj},`);
805
+ });
806
+ writer.writeLine("});");
807
+ writer.write(`if (!${varName} || ${varName}${accessChain} !== scopeKey) `).block(() => {
808
+ writer.writeLine(`throw new PermanentSyncError("${exports.pushErrorTypes.SCOPE_VIOLATION}", \`${errorMessage}\`);`);
809
+ });
810
+ writer.writeLine("ownershipVerified = true;");
811
+ }
812
+ else {
813
+ const parentPk = (0, utils_1.getUniqueIdentifiers)(parentModel)[0];
814
+ const parentPkFields = JSON.parse(parentPk.keyPath);
815
+ const parentPkFieldName = (0, utils_1.getUniqueIdentifiers)(parentModel)[0].name;
816
+ writer.writeLine(`const ${varName} = await tx.${parentModelLower}.findUnique({`);
817
+ writer.indent(() => {
818
+ if (parentPkFields.length === 1) {
819
+ writer.writeLine(`where: { ${parentPkFields[0]}: data.${foreignKeyFields[0]} },`);
820
+ }
821
+ else {
822
+ const compositeKey = parentPkFields.map((field, i) => `${field}: data.${foreignKeyFields[i]}`).join(", ");
823
+ writer.writeLine(`where: { ${parentPk.name}: { ${compositeKey} } },`);
824
+ }
825
+ writer.writeLine(`select: { ${parentPkFieldName}: true },`);
826
+ });
827
+ writer.writeLine("});");
828
+ writer.write(`if (!${varName} || ${varName}.${parentPkFieldName} !== scopeKey) `).block(() => {
829
+ writer.writeLine(`throw new PermanentSyncError("${exports.pushErrorTypes.SCOPE_VIOLATION}", \`${errorMessage}\`);`);
830
+ });
831
+ writer.writeLine("ownershipVerified = true;");
832
+ }
833
+ };
834
+ if (!relationField.isRequired) {
835
+ const nullCheck = foreignKeyFields.length === 1
836
+ ? `data.${foreignKeyFields[0]} !== null`
837
+ : foreignKeyFields.map((f) => `data.${f} !== null`).join(" && ");
838
+ writer.write(`if (${nullCheck}) `).block(() => {
839
+ emitLookupAndCheck();
840
+ });
841
+ }
842
+ else {
843
+ emitLookupAndCheck();
844
+ }
845
+ });
846
+ writer.write("if (!ownershipVerified) ").block(() => {
847
+ writer.writeLine(`throw new PermanentSyncError("${exports.pushErrorTypes.SCOPE_VIOLATION}", \`${errorMessage}\`);`);
848
+ });
849
+ writer.setIndentationLevel(0);
850
+ }
682
851
  function generateWhereClause(pkName, pkFields) {
683
852
  if (pkFields.length === 1) {
684
853
  return `{ ${pkFields[0]}: validKeyPath[0] }`;
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/fileCreators/batch-processor/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/fileCreators/batch-processor/create.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@prisma-idb/idb-client-generator",
3
3
  "description": "Generate types for idb from prisma schema",
4
- "version": "0.35.0",
4
+ "version": "0.35.1",
5
5
  "main": "dist/generator.js",
6
6
  "license": "MIT",
7
7
  "bin": {