@smartive/graphql-magic 19.1.1 → 19.1.2

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/CHANGELOG.md CHANGED
@@ -1,6 +1,6 @@
1
- ## [19.1.1](https://github.com/smartive/graphql-magic/compare/v19.1.0...v19.1.1) (2025-06-04)
1
+ ## [19.1.2](https://github.com/smartive/graphql-magic/compare/v19.1.1...v19.1.2) (2025-06-04)
2
2
 
3
3
 
4
4
  ### Bug Fixes
5
5
 
6
- * Move permission generation to bin ([#304](https://github.com/smartive/graphql-magic/issues/304)) ([e7368ec](https://github.com/smartive/graphql-magic/commit/e7368eca9a61a8b0000c37ef3e7563c83e65aba5))
6
+ * Cascade delete to all relevant entities ([#305](https://github.com/smartive/graphql-magic/issues/305)) ([7e63721](https://github.com/smartive/graphql-magic/commit/7e6372154ccbba5499f670262409ea98e04db849))
@@ -2825,60 +2825,58 @@ var del = async (model, { where, dryRun }, ctx) => {
2825
2825
  field: { name: name2, foreignKey, onDelete }
2826
2826
  } of currentModel.reverseRelations.filter((reverseRelation) => !reverseRelation.field.inherited)) {
2827
2827
  const query = ctx.knex(descendantModel.name).where({ [foreignKey]: currentEntity.id, deleted: false });
2828
- switch (onDelete) {
2829
- case "set-null": {
2830
- const descendants = await query;
2831
- for (const descendant of descendants) {
2832
- if (dryRun) {
2833
- if (!toUnlink[descendantModel.name]) {
2834
- toUnlink[descendantModel.name] = {};
2835
- }
2836
- if (!toUnlink[descendantModel.name][descendant.id]) {
2837
- toUnlink[descendantModel.name][descendant.id] = {
2838
- display: await fetchDisplay(ctx.knex, descendantModel, descendant),
2839
- fields: []
2840
- };
2841
- }
2842
- toUnlink[descendantModel.name][descendant.id].fields.push(name2);
2843
- } else {
2844
- const normalizedInput = { [`${name2}Id`]: null };
2845
- const next = { ...descendant, ...normalizedInput };
2846
- const data = { prev: descendant, input: {}, normalizedInput, next };
2847
- if (mutationHook) {
2848
- beforeHooks.push(async () => {
2849
- await mutationHook({
2850
- model: descendantModel,
2851
- action: "update",
2852
- trigger: "set-null",
2853
- when: "before",
2854
- data,
2855
- ctx
2828
+ const descendants = await query;
2829
+ if (descendants.length) {
2830
+ switch (onDelete) {
2831
+ case "set-null":
2832
+ for (const descendant of descendants) {
2833
+ if (dryRun) {
2834
+ if (!toUnlink[descendantModel.name]) {
2835
+ toUnlink[descendantModel.name] = {};
2836
+ }
2837
+ if (!toUnlink[descendantModel.name][descendant.id]) {
2838
+ toUnlink[descendantModel.name][descendant.id] = {
2839
+ display: await fetchDisplay(ctx.knex, descendantModel, descendant),
2840
+ fields: []
2841
+ };
2842
+ }
2843
+ toUnlink[descendantModel.name][descendant.id].fields.push(name2);
2844
+ } else {
2845
+ const normalizedInput = { [`${name2}Id`]: null };
2846
+ const next = { ...descendant, ...normalizedInput };
2847
+ const data = { prev: descendant, input: {}, normalizedInput, next };
2848
+ if (mutationHook) {
2849
+ beforeHooks.push(async () => {
2850
+ await mutationHook({
2851
+ model: descendantModel,
2852
+ action: "update",
2853
+ trigger: "set-null",
2854
+ when: "before",
2855
+ data,
2856
+ ctx
2857
+ });
2856
2858
  });
2859
+ }
2860
+ mutations.push(async () => {
2861
+ await ctx.knex(descendantModel.name).where({ id: descendant.id }).update(normalizedInput);
2862
+ await createRevision(descendantModel, next, ctx);
2857
2863
  });
2858
- }
2859
- mutations.push(async () => {
2860
- await ctx.knex(descendantModel.name).where({ id: descendant.id }).update(normalizedInput);
2861
- await createRevision(descendantModel, next, ctx);
2862
- });
2863
- if (mutationHook) {
2864
- afterHooks.push(async () => {
2865
- await mutationHook({
2866
- model: descendantModel,
2867
- action: "update",
2868
- trigger: "set-null",
2869
- when: "after",
2870
- data,
2871
- ctx
2864
+ if (mutationHook) {
2865
+ afterHooks.push(async () => {
2866
+ await mutationHook({
2867
+ model: descendantModel,
2868
+ action: "update",
2869
+ trigger: "set-null",
2870
+ when: "after",
2871
+ data,
2872
+ ctx
2873
+ });
2872
2874
  });
2873
- });
2875
+ }
2874
2876
  }
2875
2877
  }
2876
- }
2877
- break;
2878
- }
2879
- case "restrict": {
2880
- const descendants = await query;
2881
- if (descendants.length) {
2878
+ break;
2879
+ case "restrict":
2882
2880
  if (dryRun) {
2883
2881
  if (!restricted[descendantModel.name]) {
2884
2882
  restricted[descendantModel.name] = {};
@@ -2897,22 +2895,28 @@ var del = async (model, { where, dryRun }, ctx) => {
2897
2895
  `${getTechnicalDisplay(model, entity)} cannot be deleted because it has ${getTechnicalDisplay(descendantModel, descendants[0])}${descendants.length > 1 ? ` (among others)` : ""}.`
2898
2896
  );
2899
2897
  }
2900
- }
2901
- break;
2902
- }
2903
- case "cascade":
2904
- default: {
2905
- applyPermissions(ctx, descendantModel.name, descendantModel.name, query, "DELETE");
2906
- const descendants = await query;
2907
- if (descendants.length && !descendantModel.deletable) {
2908
- throw new ForbiddenError(
2909
- `${getTechnicalDisplay(model, entity)} depends on ${getTechnicalDisplay(descendantModel, descendants[0])}${descendants.length > 1 ? ` (among others)` : ""} which cannot be deleted.`
2898
+ break;
2899
+ case "cascade":
2900
+ default:
2901
+ if (!descendantModel.deletable) {
2902
+ throw new ForbiddenError(
2903
+ `${getTechnicalDisplay(model, entity)} depends on ${getTechnicalDisplay(descendantModel, descendants[0])}${descendants.length > 1 ? ` (among others)` : ""} which cannot be deleted.`
2904
+ );
2905
+ }
2906
+ applyPermissions(ctx, descendantModel.name, descendantModel.name, query, "DELETE");
2907
+ const deletableDescendants = await query;
2908
+ const notDeletableDescendants = descendants.filter(
2909
+ (descendant) => !deletableDescendants.some((d) => d.id === descendant.id)
2910
2910
  );
2911
- }
2912
- for (const descendant of descendants) {
2913
- await deleteCascade(descendantModel, descendant);
2914
- }
2915
- break;
2911
+ if (notDeletableDescendants.length) {
2912
+ throw new ForbiddenError(
2913
+ `${getTechnicalDisplay(model, entity)} depends on ${descendantModel.labelPlural} which you have no permissions to delete.`
2914
+ );
2915
+ }
2916
+ for (const descendant of descendants) {
2917
+ await deleteCascade(descendantModel, descendant);
2918
+ }
2919
+ break;
2916
2920
  }
2917
2921
  }
2918
2922
  }
@@ -173,61 +173,59 @@ const del = async (model, { where, dryRun }, ctx) => {
173
173
  }
174
174
  for (const { targetModel: descendantModel, field: { name, foreignKey, onDelete }, } of currentModel.reverseRelations.filter((reverseRelation) => !reverseRelation.field.inherited)) {
175
175
  const query = ctx.knex(descendantModel.name).where({ [foreignKey]: currentEntity.id, deleted: false });
176
- switch (onDelete) {
177
- case 'set-null': {
178
- const descendants = await query;
179
- for (const descendant of descendants) {
180
- if (dryRun) {
181
- if (!toUnlink[descendantModel.name]) {
182
- toUnlink[descendantModel.name] = {};
183
- }
184
- if (!toUnlink[descendantModel.name][descendant.id]) {
185
- toUnlink[descendantModel.name][descendant.id] = {
186
- display: await fetchDisplay(ctx.knex, descendantModel, descendant),
187
- fields: [],
188
- };
176
+ const descendants = await query;
177
+ if (descendants.length) {
178
+ switch (onDelete) {
179
+ case 'set-null':
180
+ for (const descendant of descendants) {
181
+ if (dryRun) {
182
+ if (!toUnlink[descendantModel.name]) {
183
+ toUnlink[descendantModel.name] = {};
184
+ }
185
+ if (!toUnlink[descendantModel.name][descendant.id]) {
186
+ toUnlink[descendantModel.name][descendant.id] = {
187
+ display: await fetchDisplay(ctx.knex, descendantModel, descendant),
188
+ fields: [],
189
+ };
190
+ }
191
+ toUnlink[descendantModel.name][descendant.id].fields.push(name);
189
192
  }
190
- toUnlink[descendantModel.name][descendant.id].fields.push(name);
191
- }
192
- else {
193
- const normalizedInput = { [`${name}Id`]: null };
194
- const next = { ...descendant, ...normalizedInput };
195
- const data = { prev: descendant, input: {}, normalizedInput, next };
196
- if (mutationHook) {
197
- beforeHooks.push(async () => {
198
- await mutationHook({
199
- model: descendantModel,
200
- action: 'update',
201
- trigger: 'set-null',
202
- when: 'before',
203
- data,
204
- ctx,
193
+ else {
194
+ const normalizedInput = { [`${name}Id`]: null };
195
+ const next = { ...descendant, ...normalizedInput };
196
+ const data = { prev: descendant, input: {}, normalizedInput, next };
197
+ if (mutationHook) {
198
+ beforeHooks.push(async () => {
199
+ await mutationHook({
200
+ model: descendantModel,
201
+ action: 'update',
202
+ trigger: 'set-null',
203
+ when: 'before',
204
+ data,
205
+ ctx,
206
+ });
205
207
  });
208
+ }
209
+ mutations.push(async () => {
210
+ await ctx.knex(descendantModel.name).where({ id: descendant.id }).update(normalizedInput);
211
+ await createRevision(descendantModel, next, ctx);
206
212
  });
207
- }
208
- mutations.push(async () => {
209
- await ctx.knex(descendantModel.name).where({ id: descendant.id }).update(normalizedInput);
210
- await createRevision(descendantModel, next, ctx);
211
- });
212
- if (mutationHook) {
213
- afterHooks.push(async () => {
214
- await mutationHook({
215
- model: descendantModel,
216
- action: 'update',
217
- trigger: 'set-null',
218
- when: 'after',
219
- data,
220
- ctx,
213
+ if (mutationHook) {
214
+ afterHooks.push(async () => {
215
+ await mutationHook({
216
+ model: descendantModel,
217
+ action: 'update',
218
+ trigger: 'set-null',
219
+ when: 'after',
220
+ data,
221
+ ctx,
222
+ });
221
223
  });
222
- });
224
+ }
223
225
  }
224
226
  }
225
- }
226
- break;
227
- }
228
- case 'restrict': {
229
- const descendants = await query;
230
- if (descendants.length) {
227
+ break;
228
+ case 'restrict':
231
229
  if (dryRun) {
232
230
  if (!restricted[descendantModel.name]) {
233
231
  restricted[descendantModel.name] = {};
@@ -245,20 +243,22 @@ const del = async (model, { where, dryRun }, ctx) => {
245
243
  else {
246
244
  throw new ForbiddenError(`${getTechnicalDisplay(model, entity)} cannot be deleted because it has ${getTechnicalDisplay(descendantModel, descendants[0])}${descendants.length > 1 ? ` (among others)` : ''}.`);
247
245
  }
248
- }
249
- break;
250
- }
251
- case 'cascade':
252
- default: {
253
- applyPermissions(ctx, descendantModel.name, descendantModel.name, query, 'DELETE');
254
- const descendants = await query;
255
- if (descendants.length && !descendantModel.deletable) {
256
- throw new ForbiddenError(`${getTechnicalDisplay(model, entity)} depends on ${getTechnicalDisplay(descendantModel, descendants[0])}${descendants.length > 1 ? ` (among others)` : ''} which cannot be deleted.`);
257
- }
258
- for (const descendant of descendants) {
259
- await deleteCascade(descendantModel, descendant);
260
- }
261
- break;
246
+ break;
247
+ case 'cascade':
248
+ default:
249
+ if (!descendantModel.deletable) {
250
+ throw new ForbiddenError(`${getTechnicalDisplay(model, entity)} depends on ${getTechnicalDisplay(descendantModel, descendants[0])}${descendants.length > 1 ? ` (among others)` : ''} which cannot be deleted.`);
251
+ }
252
+ applyPermissions(ctx, descendantModel.name, descendantModel.name, query, 'DELETE');
253
+ const deletableDescendants = await query;
254
+ const notDeletableDescendants = descendants.filter((descendant) => !deletableDescendants.some((d) => d.id === descendant.id));
255
+ if (notDeletableDescendants.length) {
256
+ throw new ForbiddenError(`${getTechnicalDisplay(model, entity)} depends on ${descendantModel.labelPlural} which you have no permissions to delete.`);
257
+ }
258
+ for (const descendant of descendants) {
259
+ await deleteCascade(descendantModel, descendant);
260
+ }
261
+ break;
262
262
  }
263
263
  }
264
264
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mutations.js","sourceRoot":"","sources":["../../../src/resolvers/mutations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mutations.js","sourceRoot":"","sources":["../../../src/resolvers/mutations.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smartive/graphql-magic",
3
- "version": "19.1.1",
3
+ "version": "19.1.2",
4
4
  "description": "",
5
5
  "source": "src/index.ts",
6
6
  "type": "module",
@@ -219,60 +219,58 @@ const del = async (model: EntityModel, { where, dryRun }: { where: any; dryRun:
219
219
  field: { name, foreignKey, onDelete },
220
220
  } of currentModel.reverseRelations.filter((reverseRelation) => !reverseRelation.field.inherited)) {
221
221
  const query = ctx.knex(descendantModel.name).where({ [foreignKey]: currentEntity.id, deleted: false });
222
- switch (onDelete) {
223
- case 'set-null': {
224
- const descendants = await query;
225
- for (const descendant of descendants) {
226
- if (dryRun) {
227
- if (!toUnlink[descendantModel.name]) {
228
- toUnlink[descendantModel.name] = {};
229
- }
230
- if (!toUnlink[descendantModel.name][descendant.id]) {
231
- toUnlink[descendantModel.name][descendant.id] = {
232
- display: await fetchDisplay(ctx.knex, descendantModel, descendant),
233
- fields: [],
234
- };
235
- }
236
- toUnlink[descendantModel.name][descendant.id].fields.push(name);
237
- } else {
238
- const normalizedInput = { [`${name}Id`]: null };
239
- const next = { ...descendant, ...normalizedInput };
240
- const data = { prev: descendant, input: {}, normalizedInput, next };
241
- if (mutationHook) {
242
- beforeHooks.push(async () => {
243
- await mutationHook({
244
- model: descendantModel,
245
- action: 'update',
246
- trigger: 'set-null',
247
- when: 'before',
248
- data,
249
- ctx,
222
+ const descendants = await query;
223
+ if (descendants.length) {
224
+ switch (onDelete) {
225
+ case 'set-null':
226
+ for (const descendant of descendants) {
227
+ if (dryRun) {
228
+ if (!toUnlink[descendantModel.name]) {
229
+ toUnlink[descendantModel.name] = {};
230
+ }
231
+ if (!toUnlink[descendantModel.name][descendant.id]) {
232
+ toUnlink[descendantModel.name][descendant.id] = {
233
+ display: await fetchDisplay(ctx.knex, descendantModel, descendant),
234
+ fields: [],
235
+ };
236
+ }
237
+ toUnlink[descendantModel.name][descendant.id].fields.push(name);
238
+ } else {
239
+ const normalizedInput = { [`${name}Id`]: null };
240
+ const next = { ...descendant, ...normalizedInput };
241
+ const data = { prev: descendant, input: {}, normalizedInput, next };
242
+ if (mutationHook) {
243
+ beforeHooks.push(async () => {
244
+ await mutationHook({
245
+ model: descendantModel,
246
+ action: 'update',
247
+ trigger: 'set-null',
248
+ when: 'before',
249
+ data,
250
+ ctx,
251
+ });
250
252
  });
253
+ }
254
+ mutations.push(async () => {
255
+ await ctx.knex(descendantModel.name).where({ id: descendant.id }).update(normalizedInput);
256
+ await createRevision(descendantModel, next, ctx);
251
257
  });
252
- }
253
- mutations.push(async () => {
254
- await ctx.knex(descendantModel.name).where({ id: descendant.id }).update(normalizedInput);
255
- await createRevision(descendantModel, next, ctx);
256
- });
257
- if (mutationHook) {
258
- afterHooks.push(async () => {
259
- await mutationHook({
260
- model: descendantModel,
261
- action: 'update',
262
- trigger: 'set-null',
263
- when: 'after',
264
- data,
265
- ctx,
258
+ if (mutationHook) {
259
+ afterHooks.push(async () => {
260
+ await mutationHook({
261
+ model: descendantModel,
262
+ action: 'update',
263
+ trigger: 'set-null',
264
+ when: 'after',
265
+ data,
266
+ ctx,
267
+ });
266
268
  });
267
- });
269
+ }
268
270
  }
269
271
  }
270
- }
271
- break;
272
- }
273
- case 'restrict': {
274
- const descendants = await query;
275
- if (descendants.length) {
272
+ break;
273
+ case 'restrict':
276
274
  if (dryRun) {
277
275
  if (!restricted[descendantModel.name]) {
278
276
  restricted[descendantModel.name] = {};
@@ -291,22 +289,28 @@ const del = async (model: EntityModel, { where, dryRun }: { where: any; dryRun:
291
289
  `${getTechnicalDisplay(model, entity)} cannot be deleted because it has ${getTechnicalDisplay(descendantModel, descendants[0])}${descendants.length > 1 ? ` (among others)` : ''}.`,
292
290
  );
293
291
  }
294
- }
295
- break;
296
- }
297
- case 'cascade':
298
- default: {
299
- applyPermissions(ctx, descendantModel.name, descendantModel.name, query, 'DELETE');
300
- const descendants = await query;
301
- if (descendants.length && !descendantModel.deletable) {
302
- throw new ForbiddenError(
303
- `${getTechnicalDisplay(model, entity)} depends on ${getTechnicalDisplay(descendantModel, descendants[0])}${descendants.length > 1 ? ` (among others)` : ''} which cannot be deleted.`,
292
+ break;
293
+ case 'cascade':
294
+ default:
295
+ if (!descendantModel.deletable) {
296
+ throw new ForbiddenError(
297
+ `${getTechnicalDisplay(model, entity)} depends on ${getTechnicalDisplay(descendantModel, descendants[0])}${descendants.length > 1 ? ` (among others)` : ''} which cannot be deleted.`,
298
+ );
299
+ }
300
+ applyPermissions(ctx, descendantModel.name, descendantModel.name, query, 'DELETE');
301
+ const deletableDescendants = await query;
302
+ const notDeletableDescendants = descendants.filter(
303
+ (descendant) => !deletableDescendants.some((d) => d.id === descendant.id),
304
304
  );
305
- }
306
- for (const descendant of descendants) {
307
- await deleteCascade(descendantModel, descendant);
308
- }
309
- break;
305
+ if (notDeletableDescendants.length) {
306
+ throw new ForbiddenError(
307
+ `${getTechnicalDisplay(model, entity)} depends on ${descendantModel.labelPlural} which you have no permissions to delete.`,
308
+ );
309
+ }
310
+ for (const descendant of descendants) {
311
+ await deleteCascade(descendantModel, descendant);
312
+ }
313
+ break;
310
314
  }
311
315
  }
312
316
  }