{"version":3,"sources":["jsdelivr-header.js","/npm/eslint-plugin-prisma-soft-delete-alt@0.0.1/dist/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aAGA,IAAI,kBAAoB,iIACpB,qBAAuB,sEAGvB,aAAe,QAAQ,4BACvB,iBAAmB,aAAa,YAAY,aAC7C,GAAa,IAIZ,UAAY,mBACZ,eAAiB,iBAAiB,CACpC,KAAM,UACN,KAAM,CACJ,KAAM,UACN,KAAM,CACJ,YAAa,qDACb,YAAa,SAEf,OAAQ,GACR,SAAU,CACR,0BAA2B,iHAE7B,QAAS,QAEX,eAAgB,GAChB,OAAS,IACA,CACL,CAAC,mBAAmB,GAClB,IAAI,EACJ,MAAM,EAAmC,OAArB,EAAK,EAAK,aAAkB,EAAS,EAAG,OAC5D,GAAI,EAAY,CACd,MAEM,EAFiB,EACc,UAAU,GACX,WAAW,MAC5C,IACC,MACM,EADW,EACI,IACrB,MAA6C,WAA9B,MAAP,OAAc,EAAS,EAAI,KAAiB,IAGxD,GAAI,EAAe,CACjB,MAAM,EAAmB,EACM,EAAiB,MACD,WAAW,MACxD,CAAC,EAAM,KACL,MACM,EADW,EACI,IACrB,MAAoB,YAAb,EAAI,MAAmC,cAAb,EAAI,IAAoB,KAI3D,EAAQ,OAAO,CACb,UAAW,4BACX,IAAK,EAAK,IACV,IAAM,IACJ,MAAM,EAAa,GACZ,EAAY,GAAY,EAAW,MAAM,MAC1C,EAAW,CAAC,EAAa,EAAG,GAIlC,MAHe,CACb,EAAM,sBAAsB,EAAU,mBAE3B,GAIrB,CACF,CACF,MAIF,yBAA2B,eAG3B,cAAgB,QAAQ,4BACxB,WAAa,iBACb,aAAe,iBAAiB,CAClC,KAAM,WACN,KAAM,CACJ,KAAM,UACN,KAAM,CACJ,YAAa,oDACb,YAAa,SAEf,OAAQ,GACR,SAAU,CACR,wBAAyB,yFAE3B,QAAS,QAEX,eAAgB,GAChB,OAAS,IACA,CACL,CAAC,sBAAsB,GACjB,EAAK,OAAS,cAAc,eAAe,YAAc,CAAC,aAAc,qBAAqB,SAAS,EAAK,OAC7G,EAAQ,OAAO,CACb,UAAW,0BACX,IAAK,EAAK,IACV,IAAM,GACW,CACb,EAAM,iBAAiB,EAAK,MAAO,eAM7C,MAIF,uBAAyB,aAG7B,OAAO,QAAU,CACf,MAAO,CACL,mBAAoB,yBACpB,iBAAkB","file":"/npm/eslint-plugin-prisma-soft-delete-alt@0.0.1/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/eslint-plugin-prisma-soft-delete-alt@0.0.1/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\n\n// src/utils/selectors.ts\nvar ANY_FIND_SELECTOR = 'Identifier:matches([name=\"findFirst\"], [name=\"findMany\"], [name=\"updateMany\"], [name=\"deleteMany\"], [name=\"findFirstOrThrow\"])';\nvar FIND_UNIQUE_SELECTOR = 'Identifier:matches([name=\"findUnique\"], [name=\"findUniqueOrThrow\"])';\n\n// src/utils/create-eslint-rule.ts\nvar import_utils = require(\"@typescript-eslint/utils\");\nvar createEslintRule = import_utils.ESLintUtils.RuleCreator(\n  (ruleName) => ruleName\n);\n\n// src/rules/use-deleted-null.ts\nvar RULE_NAME = \"use-deleted-null\";\nvar useDeletedNull = createEslintRule({\n  name: RULE_NAME,\n  meta: {\n    type: \"problem\",\n    docs: {\n      description: \"force to use deleted=null or deletedAt=null filter\",\n      recommended: \"error\"\n    },\n    schema: [],\n    messages: {\n      deletedNullFilterRequired: \"The where property should have deleted:null or deletedAt:null filter to get records that are not soft-deleted\"\n    },\n    fixable: \"code\"\n  },\n  defaultOptions: [],\n  create: (context) => {\n    return {\n      [ANY_FIND_SELECTOR](node) {\n        var _a;\n        const expression = (_a = node.parent) == null ? void 0 : _a.parent;\n        if (expression) {\n          const callExpression = expression;\n          const firstArgument = callExpression.arguments[0];\n          const whereProperty = firstArgument.properties.find(\n            (prop) => {\n              const property = prop;\n              const key = property.key;\n              return (key == null ? void 0 : key.name) === \"where\";\n            }\n          );\n          if (whereProperty) {\n            const wherePropertyObj = whereProperty;\n            const wherePropertyObjValues = wherePropertyObj.value;\n            const deletedProperty = wherePropertyObjValues.properties.find(\n              (prop, index) => {\n                const property = prop;\n                const key = property.key;\n                return key.name === \"deleted\" || key.name === \"deletedAt\";\n              }\n            );\n            if (!deletedProperty) {\n              context.report({\n                messageId: \"deletedNullFilterRequired\",\n                loc: node.loc,\n                fix: (fixer) => {\n                  const identifier = wherePropertyObj;\n                  const [startRange, endRange] = identifier.value.range;\n                  const newRange = [startRange + 1, endRange];\n                  const fixers = [\n                    fixer.insertTextBeforeRange(newRange, \" deleted: null,\")\n                  ];\n                  return fixers;\n                }\n              });\n            }\n          }\n        }\n      }\n    };\n  }\n});\nvar use_deleted_null_default = useDeletedNull;\n\n// src/rules/use-find-first.ts\nvar import_utils2 = require(\"@typescript-eslint/utils\");\nvar RULE_NAME2 = \"use-find-first\";\nvar useFindFirst = createEslintRule({\n  name: RULE_NAME2,\n  meta: {\n    type: \"problem\",\n    docs: {\n      description: \"force to use findFirst or findFirstOrThrow filter\",\n      recommended: \"error\"\n    },\n    schema: [],\n    messages: {\n      findFirstFilterRequired: \"FindFirst or FindFirstOrThrow must be used instead of FindUnique or FindUniqueOrThrow\"\n    },\n    fixable: \"code\"\n  },\n  defaultOptions: [],\n  create: (context) => {\n    return {\n      [FIND_UNIQUE_SELECTOR](node) {\n        if (node.type === import_utils2.AST_NODE_TYPES.Identifier && [\"findUnique\", \"findUniqueOrThrow\"].includes(node.name)) {\n          context.report({\n            messageId: \"findFirstFilterRequired\",\n            loc: node.loc,\n            fix: (fixer) => {\n              const fixers = [\n                fixer.replaceTextRange(node.range, \"findFirst\")\n              ];\n              return fixers;\n            }\n          });\n        }\n      }\n    };\n  }\n});\nvar use_find_first_default = useFindFirst;\n\n// src/index.ts\nmodule.exports = {\n  rules: {\n    \"use-deleted-null\": use_deleted_null_default,\n    \"use-find-first\": use_find_first_default\n  }\n};\n"]}