UNPKG

sca-tool

Version:

Universal static code analysis tool for calculating API operation costs across multiple frameworks (NestJS, Express, Fastify)

159 lines (158 loc) 4.02 kB
{ "operations": { "findMany": 1, "findUnique": 1, "findFirst": 1, "create": 1, "createMany": 2, "update": 1, "updateMany": 2, "upsert": 2, "delete": 1, "deleteMany": 2, "count": 1, "aggregate": 2, "groupBy": 2, "find": 1, "findOne": 1, "findOneBy": 1, "findAndCount": 2, "save": 1, "insert": 1, "remove": 1, "from": 1, "supabaseSelect": 0, "supabaseInsert": 1, "supabaseUpdate": 1, "supabaseUpsert": 1, "supabaseDelete": 1, "single": 0, "eq": 0, "in": 0, "signInWithPassword": 1, "signUp": 1, "signOut": 1, "refreshSession": 1, "updateUserById": 1, "sendOTPEmailFor2FA": 0, "sendOTPEmailForResettingPassword": 0, "fetchSpecificUserWithRole": 1, "fetchUsers": 1 }, "patterns": { "prisma": { "pattern": "prisma\\.(\\w+)\\.(findMany|findUnique|findFirst|create|createMany|update|updateMany|upsert|delete|deleteMany|count|aggregate|groupBy)", "description": "Prisma ORM operations" }, "typeorm": { "pattern": "(\\w+Repository|\\w+)\\.((find|findOne|findOneBy|findAndCount|save|insert|update|delete|remove|createQueryBuilder)\\(|getMany|getOne|getRawMany|getRawOne)", "description": "TypeORM operations" }, "mongoose": { "pattern": "(\\w+Model|\\w+)\\.(find|findById|findOne|findOneAndUpdate|findOneAndDelete|findByIdAndUpdate|findByIdAndDelete|save|create|insertMany|updateOne|updateMany|deleteOne|deleteMany|bulkWrite|populate)", "description": "Mongoose ODM operations" }, "supabase": { "pattern": "(SupabaseService\\.supabase|supabase)\\.(from\\(|auth\\.|storage\\.)", "description": "Supabase operations" }, "supabase_query": { "pattern": "\\.(select|insert|update|upsert|delete)\\(", "description": "Supabase query operations" }, "supabase_auth": { "pattern": "\\.(signInWithPassword|signUp|signOut|refreshSession|updateUserById)\\(", "description": "Supabase auth operations" }, "http_client": { "pattern": "(axios\\.|fetch\\(|httpclient\\.|\\.(get|post|put|patch|delete)\\()", "description": "HTTP client operations" }, "custom_service": { "pattern": "(await )?this\\.(\\w+Service|\\w+Repository)\\.", "description": "Custom service method calls" }, "email_service": { "pattern": "EmailService\\.(send|sendOTP)", "description": "Email service operations" } }, "parallelExecutionPatterns": [ "Promise.all", "Promise.allSettled", "Promise.race", "await Promise.all", "await Promise.allSettled" ], "ignorePatterns": [ "console.log", "console.error", "console.warn", "JSON.stringify", "JSON.parse", "Math.", "Date.", "new Date", "crypto.", "bcrypt.", "jwt.", "uuid.", "randomBytes", "throw new", "return {", "return new", "const ", "let ", "var ", "if (", "for (", "while (", "switch (", "try {", "catch (" ], "costMultipliers": { "loop": 2, "recursion": 3, "nested": 1.5, "conditional": 1 }, "methodCosts": { "login": { "paths": [ { "name": "Remember Me Token Valid", "conditions": ["rememberMeToken", "token.valid"], "expectedCost": 3 }, { "name": "Remember Me Token Expired", "conditions": ["rememberMeToken", "token.expired"], "expectedCost": 4 }, { "name": "No Remember Me Token", "conditions": ["!rememberMeToken"], "expectedCost": 2 } ] }, "createUser": { "expectedCost": 2 }, "updateUser": { "expectedCost": 1 }, "deleteUser": { "expectedCost": 1 } }, "editor": { "defaultEditor": "code", "openInEditor": false, "integration": { "generateVSCodeTasks": true, "generateEditorConfig": true } } }