prisma-flare 1.3.1 → 1.3.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.
@@ -232,11 +232,32 @@ function getPrismaProvider(rootDir) {
232
232
  }
233
233
  function parseModelRelations(schemaContent) {
234
234
  const models = [];
235
- const modelRegex = /model\s+(\w+)\s*\{([^}]+)\}/g;
235
+ const modelStartRegex = /model\s+(\w+)\s*\{/g;
236
236
  let modelMatch;
237
- while ((modelMatch = modelRegex.exec(schemaContent)) !== null) {
237
+ while ((modelMatch = modelStartRegex.exec(schemaContent)) !== null) {
238
238
  const modelName = modelMatch[1];
239
- const modelBody = modelMatch[2];
239
+ const bodyStart = modelMatch.index + modelMatch[0].length;
240
+ let depth = 1;
241
+ let i = bodyStart;
242
+ let inString = false;
243
+ let stringChar = "";
244
+ while (i < schemaContent.length && depth > 0) {
245
+ const ch = schemaContent[i];
246
+ if (inString) {
247
+ if (ch === stringChar && schemaContent[i - 1] !== "\\") inString = false;
248
+ } else {
249
+ if (ch === '"' || ch === "'") {
250
+ inString = true;
251
+ stringChar = ch;
252
+ } else if (ch === "{") {
253
+ depth++;
254
+ } else if (ch === "}") {
255
+ depth--;
256
+ }
257
+ }
258
+ i++;
259
+ }
260
+ const modelBody = schemaContent.slice(bodyStart, i - 1);
240
261
  const relations = [];
241
262
  const lines = modelBody.split("\n");
242
263
  for (const line of lines) {
@@ -296,13 +317,33 @@ ${entries.join(",\n")}
296
317
  };`;
297
318
  }
298
319
  function getRelationModelMap(rootDir) {
320
+ const dmmfResult = getRelationModelMapFromDMMF(rootDir);
321
+ if (dmmfResult) return dmmfResult;
299
322
  const resolution = resolveSchemaPath(rootDir);
300
- if (!resolution) {
301
- return null;
302
- }
323
+ if (!resolution) return null;
303
324
  const models = parseModelRelations(resolution.content);
304
325
  return generateRelationModelMap(models);
305
326
  }
327
+ function getRelationModelMapFromDMMF(rootDir) {
328
+ try {
329
+ const clientPath = getPrismaClientPath(rootDir);
330
+ const resolvedPath = clientPath.startsWith("/") ? clientPath : require.resolve(clientPath, { paths: [rootDir] });
331
+ const prismaModule = require(resolvedPath);
332
+ const dmmf = prismaModule?.Prisma?.dmmf ?? prismaModule?.dmmf;
333
+ if (!dmmf?.datamodel?.models) return null;
334
+ const models = dmmf.datamodel.models.map((model) => ({
335
+ name: model.name,
336
+ relations: model.fields.filter((f) => f.kind === "object").map((f) => ({
337
+ fieldName: f.name,
338
+ targetModel: f.type,
339
+ isArray: f.isList
340
+ }))
341
+ }));
342
+ return generateRelationModelMap(models);
343
+ } catch {
344
+ return null;
345
+ }
346
+ }
306
347
 
307
348
  // src/cli/templates/type-helpers.ts
308
349
  function generateTypeHelpers(options = {}) {
@@ -548,6 +589,11 @@ ${exportKeyword}type ColumnChangeCallback<T extends ModelName = ModelName> = (
548
589
  /**
549
590
  * Options for column change hooks (afterChange)
550
591
  */
592
+ ${exportKeyword}interface HookOptions {
593
+ /** Tag to group hooks. Tagged hooks can be disabled/enabled via hookRegistry.disable(tag)/enable(tag). */
594
+ tag?: string;
595
+ }
596
+
551
597
  ${exportKeyword}interface ColumnChangeOptions<T extends ModelName = ModelName> {
552
598
  /**
553
599
  * Additional fields to include when fetching records for this hook.
@@ -555,6 +601,8 @@ ${exportKeyword}interface ColumnChangeOptions<T extends ModelName = ModelName> {
555
601
  * Use this when your callback needs access to other fields.
556
602
  */
557
603
  includeFields?: FieldName<T>[];
604
+ /** Tag to group hooks. Tagged hooks can be disabled/enabled via hookRegistry.disable(tag)/enable(tag). */
605
+ tag?: string;
558
606
  }
559
607
  `.trimStart();
560
608
  }
@@ -722,7 +770,7 @@ var FLARE_BUILDER_METHODS = {
722
770
  pagination: [
723
771
  {
724
772
  name: "paginate",
725
- signature: "(page?: number, perPage?: number): Promise<PaginatedResult<RecordType<T>>>"
773
+ signature: (ns, useFlareResult) => useFlareResult ? `(page?: number, perPage?: number): Promise<PaginatedResult<FlareResult<T, Args>>>` : `(page?: number, perPage?: number): Promise<PaginatedResult<${ns}.Result<ModelDelegate<T>, Args, 'findFirstOrThrow'>>>`
726
774
  }
727
775
  ],
728
776
  existence: [
@@ -738,7 +786,7 @@ var FLARE_BUILDER_METHODS = {
738
786
  },
739
787
  {
740
788
  name: "chunk",
741
- signature: "(size: number, callback: (results: RecordType<T>[]) => Promise<void> | void): Promise<void>"
789
+ signature: (ns, useFlareResult) => useFlareResult ? `(size: number, callback: (results: FlareResultMany<T, Args>) => Promise<void> | void): Promise<void>` : `(size: number, callback: (results: ${ns}.Result<ModelDelegate<T>, Args, 'findMany'>) => Promise<void> | void): Promise<void>`
742
790
  },
743
791
  {
744
792
  name: "clone",
@@ -937,9 +985,10 @@ import {
937
985
  */
938
986
  export function beforeCreate<T extends ModelName>(
939
987
  model: T,
940
- callback: BeforeHookCallback<T>
988
+ callback: BeforeHookCallback<T>,
989
+ options?: HookOptions
941
990
  ): void {
942
- _beforeCreate(model as any, callback as any);
991
+ _beforeCreate(model as any, callback as any, options);
943
992
  }
944
993
 
945
994
  /**
@@ -947,9 +996,10 @@ export function beforeCreate<T extends ModelName>(
947
996
  */
948
997
  export function afterCreate<T extends ModelName>(
949
998
  model: T,
950
- callback: AfterHookCallback<T>
999
+ callback: AfterHookCallback<T>,
1000
+ options?: HookOptions
951
1001
  ): void {
952
- _afterCreate(model as any, callback as any);
1002
+ _afterCreate(model as any, callback as any, options);
953
1003
  }
954
1004
 
955
1005
  /**
@@ -957,9 +1007,10 @@ export function afterCreate<T extends ModelName>(
957
1007
  */
958
1008
  export function beforeUpdate<T extends ModelName>(
959
1009
  model: T,
960
- callback: BeforeHookCallback<T>
1010
+ callback: BeforeHookCallback<T>,
1011
+ options?: HookOptions
961
1012
  ): void {
962
- _beforeUpdate(model as any, callback as any);
1013
+ _beforeUpdate(model as any, callback as any, options);
963
1014
  }
964
1015
 
965
1016
  /**
@@ -967,9 +1018,10 @@ export function beforeUpdate<T extends ModelName>(
967
1018
  */
968
1019
  export function afterUpdate<T extends ModelName>(
969
1020
  model: T,
970
- callback: AfterHookCallback<T>
1021
+ callback: AfterHookCallback<T>,
1022
+ options?: HookOptions
971
1023
  ): void {
972
- _afterUpdate(model as any, callback as any);
1024
+ _afterUpdate(model as any, callback as any, options);
973
1025
  }
974
1026
 
975
1027
  /**
@@ -977,9 +1029,10 @@ export function afterUpdate<T extends ModelName>(
977
1029
  */
978
1030
  export function beforeDelete<T extends ModelName>(
979
1031
  model: T,
980
- callback: BeforeHookCallback<T>
1032
+ callback: BeforeHookCallback<T>,
1033
+ options?: HookOptions
981
1034
  ): void {
982
- _beforeDelete(model as any, callback as any);
1035
+ _beforeDelete(model as any, callback as any, options);
983
1036
  }
984
1037
 
985
1038
  /**
@@ -987,9 +1040,10 @@ export function beforeDelete<T extends ModelName>(
987
1040
  */
988
1041
  export function afterDelete<T extends ModelName>(
989
1042
  model: T,
990
- callback: AfterHookCallback<T>
1043
+ callback: AfterHookCallback<T>,
1044
+ options?: HookOptions
991
1045
  ): void {
992
- _afterDelete(model as any, callback as any);
1046
+ _afterDelete(model as any, callback as any, options);
993
1047
  }
994
1048
 
995
1049
  /**
@@ -1009,9 +1063,10 @@ export function afterChange<T extends ModelName>(
1009
1063
  */
1010
1064
  export function afterUpsert<T extends ModelName>(
1011
1065
  model: T,
1012
- callback: AfterHookCallback<T>
1066
+ callback: AfterHookCallback<T>,
1067
+ options?: HookOptions
1013
1068
  ): void {
1014
- _afterUpsert(model as any, callback as any);
1069
+ _afterUpsert(model as any, callback as any, options);
1015
1070
  }
1016
1071
 
1017
1072
  // Re-export hookRegistry for advanced use cases
@@ -1091,7 +1146,8 @@ import {
1091
1146
  */
1092
1147
  export declare function beforeCreate<T extends ModelName>(
1093
1148
  model: T,
1094
- callback: BeforeHookCallback<T>
1149
+ callback: BeforeHookCallback<T>,
1150
+ options?: HookOptions
1095
1151
  ): void;
1096
1152
 
1097
1153
  /**
@@ -1099,7 +1155,8 @@ export declare function beforeCreate<T extends ModelName>(
1099
1155
  */
1100
1156
  export declare function afterCreate<T extends ModelName>(
1101
1157
  model: T,
1102
- callback: AfterHookCallback<T>
1158
+ callback: AfterHookCallback<T>,
1159
+ options?: HookOptions
1103
1160
  ): void;
1104
1161
 
1105
1162
  /**
@@ -1107,7 +1164,8 @@ export declare function afterCreate<T extends ModelName>(
1107
1164
  */
1108
1165
  export declare function beforeUpdate<T extends ModelName>(
1109
1166
  model: T,
1110
- callback: BeforeHookCallback<T>
1167
+ callback: BeforeHookCallback<T>,
1168
+ options?: HookOptions
1111
1169
  ): void;
1112
1170
 
1113
1171
  /**
@@ -1115,7 +1173,8 @@ export declare function beforeUpdate<T extends ModelName>(
1115
1173
  */
1116
1174
  export declare function afterUpdate<T extends ModelName>(
1117
1175
  model: T,
1118
- callback: AfterHookCallback<T>
1176
+ callback: AfterHookCallback<T>,
1177
+ options?: HookOptions
1119
1178
  ): void;
1120
1179
 
1121
1180
  /**
@@ -1123,7 +1182,8 @@ export declare function afterUpdate<T extends ModelName>(
1123
1182
  */
1124
1183
  export declare function beforeDelete<T extends ModelName>(
1125
1184
  model: T,
1126
- callback: BeforeHookCallback<T>
1185
+ callback: BeforeHookCallback<T>,
1186
+ options?: HookOptions
1127
1187
  ): void;
1128
1188
 
1129
1189
  /**
@@ -1131,7 +1191,8 @@ export declare function beforeDelete<T extends ModelName>(
1131
1191
  */
1132
1192
  export declare function afterDelete<T extends ModelName>(
1133
1193
  model: T,
1134
- callback: AfterHookCallback<T>
1194
+ callback: AfterHookCallback<T>,
1195
+ options?: HookOptions
1135
1196
  ): void;
1136
1197
 
1137
1198
  /**
@@ -1149,7 +1210,8 @@ export declare function afterChange<T extends ModelName>(
1149
1210
  */
1150
1211
  export declare function afterUpsert<T extends ModelName>(
1151
1212
  model: T,
1152
- callback: AfterHookCallback<T>
1213
+ callback: AfterHookCallback<T>,
1214
+ options?: HookOptions
1153
1215
  ): void;
1154
1216
 
1155
1217
  // Re-export hookRegistry for advanced use cases
@@ -1273,6 +1335,7 @@ import type {
1273
1335
  AfterHookCallback,
1274
1336
  ColumnChangeCallback,
1275
1337
  ColumnChangeOptions,
1338
+ HookOptions,
1276
1339
  FieldName,
1277
1340
  HookConfig
1278
1341
  } from 'prisma-flare';
@@ -1321,7 +1384,8 @@ export declare class FlareClient extends BasePrismaClient {
1321
1384
  */
1322
1385
  export declare function beforeCreate<T extends ModelName>(
1323
1386
  model: T,
1324
- callback: BeforeHookCallback<T>
1387
+ callback: BeforeHookCallback<T>,
1388
+ options?: HookOptions
1325
1389
  ): void;
1326
1390
 
1327
1391
  /**
@@ -1329,7 +1393,8 @@ export declare function beforeCreate<T extends ModelName>(
1329
1393
  */
1330
1394
  export declare function afterCreate<T extends ModelName>(
1331
1395
  model: T,
1332
- callback: AfterHookCallback<T>
1396
+ callback: AfterHookCallback<T>,
1397
+ options?: HookOptions
1333
1398
  ): void;
1334
1399
 
1335
1400
  /**
@@ -1337,7 +1402,8 @@ export declare function afterCreate<T extends ModelName>(
1337
1402
  */
1338
1403
  export declare function beforeUpdate<T extends ModelName>(
1339
1404
  model: T,
1340
- callback: BeforeHookCallback<T>
1405
+ callback: BeforeHookCallback<T>,
1406
+ options?: HookOptions
1341
1407
  ): void;
1342
1408
 
1343
1409
  /**
@@ -1345,7 +1411,8 @@ export declare function beforeUpdate<T extends ModelName>(
1345
1411
  */
1346
1412
  export declare function afterUpdate<T extends ModelName>(
1347
1413
  model: T,
1348
- callback: AfterHookCallback<T>
1414
+ callback: AfterHookCallback<T>,
1415
+ options?: HookOptions
1349
1416
  ): void;
1350
1417
 
1351
1418
  /**
@@ -1353,7 +1420,8 @@ export declare function afterUpdate<T extends ModelName>(
1353
1420
  */
1354
1421
  export declare function beforeDelete<T extends ModelName>(
1355
1422
  model: T,
1356
- callback: BeforeHookCallback<T>
1423
+ callback: BeforeHookCallback<T>,
1424
+ options?: HookOptions
1357
1425
  ): void;
1358
1426
 
1359
1427
  /**
@@ -1361,7 +1429,8 @@ export declare function beforeDelete<T extends ModelName>(
1361
1429
  */
1362
1430
  export declare function afterDelete<T extends ModelName>(
1363
1431
  model: T,
1364
- callback: AfterHookCallback<T>
1432
+ callback: AfterHookCallback<T>,
1433
+ options?: HookOptions
1365
1434
  ): void;
1366
1435
 
1367
1436
  /**
@@ -1379,7 +1448,8 @@ export declare function afterChange<T extends ModelName>(
1379
1448
  */
1380
1449
  export declare function afterUpsert<T extends ModelName>(
1381
1450
  model: T,
1382
- callback: AfterHookCallback<T>
1451
+ callback: AfterHookCallback<T>,
1452
+ options?: HookOptions
1383
1453
  ): void;
1384
1454
 
1385
1455
  // Re-export hookRegistry for advanced use cases
@@ -1,4 +1,10 @@
1
1
  #!/usr/bin/env node
2
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
3
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
4
+ }) : x)(function(x) {
5
+ if (typeof require !== "undefined") return require.apply(this, arguments);
6
+ throw Error('Dynamic require of "' + x + '" is not supported');
7
+ });
2
8
 
3
9
  // src/cli/db-migrate.ts
4
10
  import { execSync } from "child_process";
@@ -209,11 +215,32 @@ function getPrismaProvider(rootDir) {
209
215
  }
210
216
  function parseModelRelations(schemaContent) {
211
217
  const models = [];
212
- const modelRegex = /model\s+(\w+)\s*\{([^}]+)\}/g;
218
+ const modelStartRegex = /model\s+(\w+)\s*\{/g;
213
219
  let modelMatch;
214
- while ((modelMatch = modelRegex.exec(schemaContent)) !== null) {
220
+ while ((modelMatch = modelStartRegex.exec(schemaContent)) !== null) {
215
221
  const modelName = modelMatch[1];
216
- const modelBody = modelMatch[2];
222
+ const bodyStart = modelMatch.index + modelMatch[0].length;
223
+ let depth = 1;
224
+ let i = bodyStart;
225
+ let inString = false;
226
+ let stringChar = "";
227
+ while (i < schemaContent.length && depth > 0) {
228
+ const ch = schemaContent[i];
229
+ if (inString) {
230
+ if (ch === stringChar && schemaContent[i - 1] !== "\\") inString = false;
231
+ } else {
232
+ if (ch === '"' || ch === "'") {
233
+ inString = true;
234
+ stringChar = ch;
235
+ } else if (ch === "{") {
236
+ depth++;
237
+ } else if (ch === "}") {
238
+ depth--;
239
+ }
240
+ }
241
+ i++;
242
+ }
243
+ const modelBody = schemaContent.slice(bodyStart, i - 1);
217
244
  const relations = [];
218
245
  const lines = modelBody.split("\n");
219
246
  for (const line of lines) {
@@ -273,13 +300,33 @@ ${entries.join(",\n")}
273
300
  };`;
274
301
  }
275
302
  function getRelationModelMap(rootDir) {
303
+ const dmmfResult = getRelationModelMapFromDMMF(rootDir);
304
+ if (dmmfResult) return dmmfResult;
276
305
  const resolution = resolveSchemaPath(rootDir);
277
- if (!resolution) {
278
- return null;
279
- }
306
+ if (!resolution) return null;
280
307
  const models = parseModelRelations(resolution.content);
281
308
  return generateRelationModelMap(models);
282
309
  }
310
+ function getRelationModelMapFromDMMF(rootDir) {
311
+ try {
312
+ const clientPath = getPrismaClientPath(rootDir);
313
+ const resolvedPath = clientPath.startsWith("/") ? clientPath : __require.resolve(clientPath, { paths: [rootDir] });
314
+ const prismaModule = __require(resolvedPath);
315
+ const dmmf = prismaModule?.Prisma?.dmmf ?? prismaModule?.dmmf;
316
+ if (!dmmf?.datamodel?.models) return null;
317
+ const models = dmmf.datamodel.models.map((model) => ({
318
+ name: model.name,
319
+ relations: model.fields.filter((f) => f.kind === "object").map((f) => ({
320
+ fieldName: f.name,
321
+ targetModel: f.type,
322
+ isArray: f.isList
323
+ }))
324
+ }));
325
+ return generateRelationModelMap(models);
326
+ } catch {
327
+ return null;
328
+ }
329
+ }
283
330
 
284
331
  // src/cli/templates/type-helpers.ts
285
332
  function generateTypeHelpers(options = {}) {
@@ -525,6 +572,11 @@ ${exportKeyword}type ColumnChangeCallback<T extends ModelName = ModelName> = (
525
572
  /**
526
573
  * Options for column change hooks (afterChange)
527
574
  */
575
+ ${exportKeyword}interface HookOptions {
576
+ /** Tag to group hooks. Tagged hooks can be disabled/enabled via hookRegistry.disable(tag)/enable(tag). */
577
+ tag?: string;
578
+ }
579
+
528
580
  ${exportKeyword}interface ColumnChangeOptions<T extends ModelName = ModelName> {
529
581
  /**
530
582
  * Additional fields to include when fetching records for this hook.
@@ -532,6 +584,8 @@ ${exportKeyword}interface ColumnChangeOptions<T extends ModelName = ModelName> {
532
584
  * Use this when your callback needs access to other fields.
533
585
  */
534
586
  includeFields?: FieldName<T>[];
587
+ /** Tag to group hooks. Tagged hooks can be disabled/enabled via hookRegistry.disable(tag)/enable(tag). */
588
+ tag?: string;
535
589
  }
536
590
  `.trimStart();
537
591
  }
@@ -699,7 +753,7 @@ var FLARE_BUILDER_METHODS = {
699
753
  pagination: [
700
754
  {
701
755
  name: "paginate",
702
- signature: "(page?: number, perPage?: number): Promise<PaginatedResult<RecordType<T>>>"
756
+ signature: (ns, useFlareResult) => useFlareResult ? `(page?: number, perPage?: number): Promise<PaginatedResult<FlareResult<T, Args>>>` : `(page?: number, perPage?: number): Promise<PaginatedResult<${ns}.Result<ModelDelegate<T>, Args, 'findFirstOrThrow'>>>`
703
757
  }
704
758
  ],
705
759
  existence: [
@@ -715,7 +769,7 @@ var FLARE_BUILDER_METHODS = {
715
769
  },
716
770
  {
717
771
  name: "chunk",
718
- signature: "(size: number, callback: (results: RecordType<T>[]) => Promise<void> | void): Promise<void>"
772
+ signature: (ns, useFlareResult) => useFlareResult ? `(size: number, callback: (results: FlareResultMany<T, Args>) => Promise<void> | void): Promise<void>` : `(size: number, callback: (results: ${ns}.Result<ModelDelegate<T>, Args, 'findMany'>) => Promise<void> | void): Promise<void>`
719
773
  },
720
774
  {
721
775
  name: "clone",
@@ -914,9 +968,10 @@ import {
914
968
  */
915
969
  export function beforeCreate<T extends ModelName>(
916
970
  model: T,
917
- callback: BeforeHookCallback<T>
971
+ callback: BeforeHookCallback<T>,
972
+ options?: HookOptions
918
973
  ): void {
919
- _beforeCreate(model as any, callback as any);
974
+ _beforeCreate(model as any, callback as any, options);
920
975
  }
921
976
 
922
977
  /**
@@ -924,9 +979,10 @@ export function beforeCreate<T extends ModelName>(
924
979
  */
925
980
  export function afterCreate<T extends ModelName>(
926
981
  model: T,
927
- callback: AfterHookCallback<T>
982
+ callback: AfterHookCallback<T>,
983
+ options?: HookOptions
928
984
  ): void {
929
- _afterCreate(model as any, callback as any);
985
+ _afterCreate(model as any, callback as any, options);
930
986
  }
931
987
 
932
988
  /**
@@ -934,9 +990,10 @@ export function afterCreate<T extends ModelName>(
934
990
  */
935
991
  export function beforeUpdate<T extends ModelName>(
936
992
  model: T,
937
- callback: BeforeHookCallback<T>
993
+ callback: BeforeHookCallback<T>,
994
+ options?: HookOptions
938
995
  ): void {
939
- _beforeUpdate(model as any, callback as any);
996
+ _beforeUpdate(model as any, callback as any, options);
940
997
  }
941
998
 
942
999
  /**
@@ -944,9 +1001,10 @@ export function beforeUpdate<T extends ModelName>(
944
1001
  */
945
1002
  export function afterUpdate<T extends ModelName>(
946
1003
  model: T,
947
- callback: AfterHookCallback<T>
1004
+ callback: AfterHookCallback<T>,
1005
+ options?: HookOptions
948
1006
  ): void {
949
- _afterUpdate(model as any, callback as any);
1007
+ _afterUpdate(model as any, callback as any, options);
950
1008
  }
951
1009
 
952
1010
  /**
@@ -954,9 +1012,10 @@ export function afterUpdate<T extends ModelName>(
954
1012
  */
955
1013
  export function beforeDelete<T extends ModelName>(
956
1014
  model: T,
957
- callback: BeforeHookCallback<T>
1015
+ callback: BeforeHookCallback<T>,
1016
+ options?: HookOptions
958
1017
  ): void {
959
- _beforeDelete(model as any, callback as any);
1018
+ _beforeDelete(model as any, callback as any, options);
960
1019
  }
961
1020
 
962
1021
  /**
@@ -964,9 +1023,10 @@ export function beforeDelete<T extends ModelName>(
964
1023
  */
965
1024
  export function afterDelete<T extends ModelName>(
966
1025
  model: T,
967
- callback: AfterHookCallback<T>
1026
+ callback: AfterHookCallback<T>,
1027
+ options?: HookOptions
968
1028
  ): void {
969
- _afterDelete(model as any, callback as any);
1029
+ _afterDelete(model as any, callback as any, options);
970
1030
  }
971
1031
 
972
1032
  /**
@@ -986,9 +1046,10 @@ export function afterChange<T extends ModelName>(
986
1046
  */
987
1047
  export function afterUpsert<T extends ModelName>(
988
1048
  model: T,
989
- callback: AfterHookCallback<T>
1049
+ callback: AfterHookCallback<T>,
1050
+ options?: HookOptions
990
1051
  ): void {
991
- _afterUpsert(model as any, callback as any);
1052
+ _afterUpsert(model as any, callback as any, options);
992
1053
  }
993
1054
 
994
1055
  // Re-export hookRegistry for advanced use cases
@@ -1068,7 +1129,8 @@ import {
1068
1129
  */
1069
1130
  export declare function beforeCreate<T extends ModelName>(
1070
1131
  model: T,
1071
- callback: BeforeHookCallback<T>
1132
+ callback: BeforeHookCallback<T>,
1133
+ options?: HookOptions
1072
1134
  ): void;
1073
1135
 
1074
1136
  /**
@@ -1076,7 +1138,8 @@ export declare function beforeCreate<T extends ModelName>(
1076
1138
  */
1077
1139
  export declare function afterCreate<T extends ModelName>(
1078
1140
  model: T,
1079
- callback: AfterHookCallback<T>
1141
+ callback: AfterHookCallback<T>,
1142
+ options?: HookOptions
1080
1143
  ): void;
1081
1144
 
1082
1145
  /**
@@ -1084,7 +1147,8 @@ export declare function afterCreate<T extends ModelName>(
1084
1147
  */
1085
1148
  export declare function beforeUpdate<T extends ModelName>(
1086
1149
  model: T,
1087
- callback: BeforeHookCallback<T>
1150
+ callback: BeforeHookCallback<T>,
1151
+ options?: HookOptions
1088
1152
  ): void;
1089
1153
 
1090
1154
  /**
@@ -1092,7 +1156,8 @@ export declare function beforeUpdate<T extends ModelName>(
1092
1156
  */
1093
1157
  export declare function afterUpdate<T extends ModelName>(
1094
1158
  model: T,
1095
- callback: AfterHookCallback<T>
1159
+ callback: AfterHookCallback<T>,
1160
+ options?: HookOptions
1096
1161
  ): void;
1097
1162
 
1098
1163
  /**
@@ -1100,7 +1165,8 @@ export declare function afterUpdate<T extends ModelName>(
1100
1165
  */
1101
1166
  export declare function beforeDelete<T extends ModelName>(
1102
1167
  model: T,
1103
- callback: BeforeHookCallback<T>
1168
+ callback: BeforeHookCallback<T>,
1169
+ options?: HookOptions
1104
1170
  ): void;
1105
1171
 
1106
1172
  /**
@@ -1108,7 +1174,8 @@ export declare function beforeDelete<T extends ModelName>(
1108
1174
  */
1109
1175
  export declare function afterDelete<T extends ModelName>(
1110
1176
  model: T,
1111
- callback: AfterHookCallback<T>
1177
+ callback: AfterHookCallback<T>,
1178
+ options?: HookOptions
1112
1179
  ): void;
1113
1180
 
1114
1181
  /**
@@ -1126,7 +1193,8 @@ export declare function afterChange<T extends ModelName>(
1126
1193
  */
1127
1194
  export declare function afterUpsert<T extends ModelName>(
1128
1195
  model: T,
1129
- callback: AfterHookCallback<T>
1196
+ callback: AfterHookCallback<T>,
1197
+ options?: HookOptions
1130
1198
  ): void;
1131
1199
 
1132
1200
  // Re-export hookRegistry for advanced use cases
@@ -1250,6 +1318,7 @@ import type {
1250
1318
  AfterHookCallback,
1251
1319
  ColumnChangeCallback,
1252
1320
  ColumnChangeOptions,
1321
+ HookOptions,
1253
1322
  FieldName,
1254
1323
  HookConfig
1255
1324
  } from 'prisma-flare';
@@ -1298,7 +1367,8 @@ export declare class FlareClient extends BasePrismaClient {
1298
1367
  */
1299
1368
  export declare function beforeCreate<T extends ModelName>(
1300
1369
  model: T,
1301
- callback: BeforeHookCallback<T>
1370
+ callback: BeforeHookCallback<T>,
1371
+ options?: HookOptions
1302
1372
  ): void;
1303
1373
 
1304
1374
  /**
@@ -1306,7 +1376,8 @@ export declare function beforeCreate<T extends ModelName>(
1306
1376
  */
1307
1377
  export declare function afterCreate<T extends ModelName>(
1308
1378
  model: T,
1309
- callback: AfterHookCallback<T>
1379
+ callback: AfterHookCallback<T>,
1380
+ options?: HookOptions
1310
1381
  ): void;
1311
1382
 
1312
1383
  /**
@@ -1314,7 +1385,8 @@ export declare function afterCreate<T extends ModelName>(
1314
1385
  */
1315
1386
  export declare function beforeUpdate<T extends ModelName>(
1316
1387
  model: T,
1317
- callback: BeforeHookCallback<T>
1388
+ callback: BeforeHookCallback<T>,
1389
+ options?: HookOptions
1318
1390
  ): void;
1319
1391
 
1320
1392
  /**
@@ -1322,7 +1394,8 @@ export declare function beforeUpdate<T extends ModelName>(
1322
1394
  */
1323
1395
  export declare function afterUpdate<T extends ModelName>(
1324
1396
  model: T,
1325
- callback: AfterHookCallback<T>
1397
+ callback: AfterHookCallback<T>,
1398
+ options?: HookOptions
1326
1399
  ): void;
1327
1400
 
1328
1401
  /**
@@ -1330,7 +1403,8 @@ export declare function afterUpdate<T extends ModelName>(
1330
1403
  */
1331
1404
  export declare function beforeDelete<T extends ModelName>(
1332
1405
  model: T,
1333
- callback: BeforeHookCallback<T>
1406
+ callback: BeforeHookCallback<T>,
1407
+ options?: HookOptions
1334
1408
  ): void;
1335
1409
 
1336
1410
  /**
@@ -1338,7 +1412,8 @@ export declare function beforeDelete<T extends ModelName>(
1338
1412
  */
1339
1413
  export declare function afterDelete<T extends ModelName>(
1340
1414
  model: T,
1341
- callback: AfterHookCallback<T>
1415
+ callback: AfterHookCallback<T>,
1416
+ options?: HookOptions
1342
1417
  ): void;
1343
1418
 
1344
1419
  /**
@@ -1356,7 +1431,8 @@ export declare function afterChange<T extends ModelName>(
1356
1431
  */
1357
1432
  export declare function afterUpsert<T extends ModelName>(
1358
1433
  model: T,
1359
- callback: AfterHookCallback<T>
1434
+ callback: AfterHookCallback<T>,
1435
+ options?: HookOptions
1360
1436
  ): void;
1361
1437
 
1362
1438
  // Re-export hookRegistry for advanced use cases