@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
|
|
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
|
|
26
|
-
|
|
27
|
-
|
|
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
|
|
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)
|
|
35
|
-
path.
|
|
36
|
-
|
|
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
|
-
|
|
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
|
|
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 =
|
|
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
|
|
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 &&
|
|
325
|
-
|
|
326
|
-
|
|
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
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
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
|
-
|
|
354
|
-
|
|
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
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
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
|
-
|
|
372
|
-
|
|
373
|
-
|
|
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
|
|
377
|
-
|
|
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 =
|
|
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
|
|
444
|
-
writer.writeLine(` if (
|
|
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 (
|
|
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
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
const
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
const
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
const
|
|
503
|
-
const
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
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
|
-
|
|
515
|
-
writer.writeLine(`
|
|
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 =
|
|
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
|
|
586
|
-
writer.writeLine(` if (
|
|
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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"}
|