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