prisma-guard 1.22.3 → 1.23.0

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.
@@ -236,6 +236,9 @@ type ScalarFields<TM extends TypeMapConst, M extends keyof TM> = {
236
236
  type RelationFields<TM extends TypeMapConst, M extends keyof TM> = {
237
237
  [K in keyof TM[M]]: TM[M][K]['isRelation'] extends true ? K : never;
238
238
  }[keyof TM[M]] & string;
239
+ type ListRelationFields<TM extends TypeMapConst, M extends keyof TM> = {
240
+ [K in keyof TM[M]]: TM[M][K]['isRelation'] extends true ? TM[M][K]['isList'] extends true ? K : never : never;
241
+ }[keyof TM[M]] & string;
239
242
  type WritableFields<TM extends TypeMapConst, M extends keyof TM> = {
240
243
  [K in keyof TM[M]]: TM[M][K]['isRelation'] extends true ? never : TM[M][K]['isUpdatedAt'] extends true ? never : K;
241
244
  }[keyof TM[M]] & string;
@@ -264,6 +267,14 @@ type LooseNestedArgs = {
264
267
  skip?: true;
265
268
  };
266
269
  type TypedWhere<TM extends TypeMapConst, M extends keyof TM> = Partial<Record<AllFields<TM, M> | 'AND' | 'OR' | 'NOT', unknown>>;
270
+ type TypedCountSelectInProjection<TM extends TypeMapConst, M extends keyof TM> = {
271
+ [K in ListRelationFields<TM, M>]?: true | {
272
+ where?: TypedWhere<TM, RelTarget<TM, M, K>>;
273
+ };
274
+ };
275
+ type TypedProjectionCount<TM extends TypeMapConst, M extends keyof TM> = true | {
276
+ select: TypedCountSelectInProjection<TM, M>;
277
+ };
267
278
  type TypedNestedRelArgs<TM extends TypeMapConst, T, D extends ShapeDepth> = T extends keyof TM ? D extends 0 ? LooseNestedArgs : {
268
279
  select?: TypedProjection<TM, T, DecDepth<D>>;
269
280
  include?: TypedInclude<TM, T, DecDepth<D>>;
@@ -278,9 +289,13 @@ type TypedNestedRelArgs<TM extends TypeMapConst, T, D extends ShapeDepth> = T ex
278
289
  } : LooseNestedArgs;
279
290
  type TypedProjection<TM extends TypeMapConst, M extends keyof TM, D extends ShapeDepth> = {
280
291
  [K in AllFields<TM, M>]?: K extends RelationFields<TM, M> ? true | TypedNestedRelArgs<TM, RelTarget<TM, M, K>, D> : true;
292
+ } & {
293
+ _count?: TypedProjectionCount<TM, M>;
281
294
  };
282
295
  type TypedInclude<TM extends TypeMapConst, M extends keyof TM, D extends ShapeDepth> = {
283
296
  [K in RelationFields<TM, M>]?: true | TypedNestedRelArgs<TM, RelTarget<TM, M, K>, D>;
297
+ } & {
298
+ _count?: TypedProjectionCount<TM, M>;
284
299
  };
285
300
  type TypedCountSelect<TM extends TypeMapConst, M extends keyof TM> = Partial<Record<ScalarFields<TM, M> | '_all', true>>;
286
301
  type TypedCountField<TM extends TypeMapConst, M extends keyof TM> = true | Partial<Record<ScalarFields<TM, M> | '_all', true>>;
@@ -236,6 +236,9 @@ type ScalarFields<TM extends TypeMapConst, M extends keyof TM> = {
236
236
  type RelationFields<TM extends TypeMapConst, M extends keyof TM> = {
237
237
  [K in keyof TM[M]]: TM[M][K]['isRelation'] extends true ? K : never;
238
238
  }[keyof TM[M]] & string;
239
+ type ListRelationFields<TM extends TypeMapConst, M extends keyof TM> = {
240
+ [K in keyof TM[M]]: TM[M][K]['isRelation'] extends true ? TM[M][K]['isList'] extends true ? K : never : never;
241
+ }[keyof TM[M]] & string;
239
242
  type WritableFields<TM extends TypeMapConst, M extends keyof TM> = {
240
243
  [K in keyof TM[M]]: TM[M][K]['isRelation'] extends true ? never : TM[M][K]['isUpdatedAt'] extends true ? never : K;
241
244
  }[keyof TM[M]] & string;
@@ -264,6 +267,14 @@ type LooseNestedArgs = {
264
267
  skip?: true;
265
268
  };
266
269
  type TypedWhere<TM extends TypeMapConst, M extends keyof TM> = Partial<Record<AllFields<TM, M> | 'AND' | 'OR' | 'NOT', unknown>>;
270
+ type TypedCountSelectInProjection<TM extends TypeMapConst, M extends keyof TM> = {
271
+ [K in ListRelationFields<TM, M>]?: true | {
272
+ where?: TypedWhere<TM, RelTarget<TM, M, K>>;
273
+ };
274
+ };
275
+ type TypedProjectionCount<TM extends TypeMapConst, M extends keyof TM> = true | {
276
+ select: TypedCountSelectInProjection<TM, M>;
277
+ };
267
278
  type TypedNestedRelArgs<TM extends TypeMapConst, T, D extends ShapeDepth> = T extends keyof TM ? D extends 0 ? LooseNestedArgs : {
268
279
  select?: TypedProjection<TM, T, DecDepth<D>>;
269
280
  include?: TypedInclude<TM, T, DecDepth<D>>;
@@ -278,9 +289,13 @@ type TypedNestedRelArgs<TM extends TypeMapConst, T, D extends ShapeDepth> = T ex
278
289
  } : LooseNestedArgs;
279
290
  type TypedProjection<TM extends TypeMapConst, M extends keyof TM, D extends ShapeDepth> = {
280
291
  [K in AllFields<TM, M>]?: K extends RelationFields<TM, M> ? true | TypedNestedRelArgs<TM, RelTarget<TM, M, K>, D> : true;
292
+ } & {
293
+ _count?: TypedProjectionCount<TM, M>;
281
294
  };
282
295
  type TypedInclude<TM extends TypeMapConst, M extends keyof TM, D extends ShapeDepth> = {
283
296
  [K in RelationFields<TM, M>]?: true | TypedNestedRelArgs<TM, RelTarget<TM, M, K>, D>;
297
+ } & {
298
+ _count?: TypedProjectionCount<TM, M>;
284
299
  };
285
300
  type TypedCountSelect<TM extends TypeMapConst, M extends keyof TM> = Partial<Record<ScalarFields<TM, M> | '_all', true>>;
286
301
  type TypedCountField<TM extends TypeMapConst, M extends keyof TM> = true | Partial<Record<ScalarFields<TM, M> | '_all', true>>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prisma-guard",
3
- "version": "1.22.3",
3
+ "version": "1.23.0",
4
4
  "description": "Prisma generator + runtime for input validation, query shape enforcement, and row-level tenant isolation",
5
5
  "license": "MIT",
6
6
  "type": "module",