@casl/prisma
Version:
Allows to query accessible records using Prisma client based on CASL rules
1 lines • 1.89 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../src/index.ts"],"sourcesContent":["import { AbilityOptions, AbilityTuple, fieldPatternMatcher, PureAbility, RawRuleFrom } from '@casl/ability';\nimport { createAbilityFactory, createAccessibleByFactory, prismaQuery } from './runtime';\nimport type { WhereInputPerModel, ModelName, PrismaQuery } from './prismaClientBoundTypes';\n\nexport type { PrismaQuery, WhereInput } from './prismaClientBoundTypes';\nexport type { Model, Subjects } from './runtime';\nexport { prismaQuery, ParsingQueryError } from './runtime';\n\nconst createPrismaAbility = createAbilityFactory<ModelName, PrismaQuery>();\nconst accessibleBy = createAccessibleByFactory<WhereInputPerModel, PrismaQuery>();\n\nexport {\n createPrismaAbility,\n accessibleBy,\n};\n\n/**\n * Uses conditional type to support union distribution\n */\ntype ExtendedAbilityTuple<T extends AbilityTuple> = T extends AbilityTuple\n ? [T[0], 'all' | T[1]]\n : never;\n\n/**\n * @deprecated use createPrismaAbility instead\n */\nexport class PrismaAbility<\n A extends AbilityTuple = [string, ModelName],\n C extends PrismaQuery = PrismaQuery\n> extends PureAbility<ExtendedAbilityTuple<A>, C> {\n constructor(\n rules?: RawRuleFrom<ExtendedAbilityTuple<A>, C>[],\n options?: AbilityOptions<ExtendedAbilityTuple<A>, C>\n ) {\n super(rules, {\n conditionsMatcher: prismaQuery,\n fieldMatcher: fieldPatternMatcher,\n ...options,\n });\n }\n}\n"],"names":["createPrismaAbility","createAbilityFactory","accessibleBy","createAccessibleByFactory","PrismaAbility","PureAbility","constructor","rules","options","super","Object","assign","conditionsMatcher","prismaQuery","fieldMatcher","fieldPatternMatcher"],"mappings":"mOAQA,MAAMA,EAAsBC,IAC5B,MAAMC,EAAeC,IAiBd,MAAMC,sBAGHC,EACRC,WAAAA,CACEC,EACAC,GAEAC,MAAMF,EAAKG,OAAAC,OAAA,CACTC,kBAAmBC,EACnBC,aAAcC,GACXP,GAEP"}