{"version":3,"sources":["jsdelivr-header.js","/npm/@hamta/adonis-orm@1.0.14/build/providers/HamtaOrmProvider.js"],"names":[],"mappings":"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","file":"/npm/@hamta/adonis-orm@1.0.14/build/providers/HamtaOrmProvider.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@hamta/adonis-orm@1.0.14/build/providers/HamtaOrmProvider.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\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Decorator_1 = __importDefault(require(\"../src/Decorator\"));\nconst Developer_1 = __importDefault(require(\"../src/DeveloperMode/Developer\"));\n/**\n * Provider to register lucid uuid with the IoC container\n */\nclass HamtaOrmProvider {\n    constructor(app) {\n        this.app = app;\n        this.pageSize = 15;\n        this.sort = { created_at: 'desc' };\n        this.operators = {\n            $eq: ['=', '{value}'],\n            $ne: ['!=', '{value}'],\n            $gt: ['>', '{value}'],\n            $gte: ['>=', '{value}'],\n            $lt: ['<', '{value}'],\n            $lte: ['<=', '{value}'],\n            $in: ['IN', '{value}'],\n            $notIn: ['NOT IN', '{value}'],\n            $substring: ['LIKE', '%{value}%'],\n            $startWith: ['LIKE', '{value}%'],\n            $notStartWith: ['NOT LIKE', '{value}%'],\n            $endWith: ['LIKE', '%{value}'],\n            $notEndWith: ['NOT LIKE', '%{value}'],\n            $between: ['BETWEEN', '{value}'],\n            $notBetween: ['NOT BETWEEN', '{value}'],\n            $contains: ['LIKE', '{value}'],\n            $notContains: ['NOT LIKE', '{value}'], //Does not contain\n        };\n    }\n    register() {\n        this.app.container.singleton('Hamta/Helper', () => {\n            return new Developer_1.default(this.app);\n        });\n        this.app.container.singleton('Hamta/Lucid/Signature', () => ({\n            withSignature: Decorator_1.default,\n        }));\n        const self = this;\n        const { ModelQueryBuilder } = this.app.container.resolveBinding('Adonis/Lucid/Database');\n        // @ts-ignore\n        ModelQueryBuilder.macro('whereFilterPaginate', async function (request) {\n            const page = request.input('page') > 0 ? request.input('page') : 1;\n            const pageSize = request.input('pageSize') > 0 ? request.input('pageSize') : self.pageSize;\n            const filters = request.input('filters', {});\n            const sort = request.input('sort', null) || self.sort;\n            /* set sort */\n            if (sort && typeof sort === 'object' && Object.keys(sort).length) {\n                for (const key of Object.keys(sort)) {\n                    this.orderBy(key, sort[key]);\n                }\n            }\n            /* set filters */\n            if (filters && typeof filters === 'object' && Object.keys(filters).length) {\n                for (const field of Object.keys(filters)) {\n                    const operator = Object.keys(filters[field])[0];\n                    const value = filters[field][operator];\n                    if (typeof self.operators[operator] !== 'undefined') {\n                        if (Object.keys(filters).indexOf(field) === 0) {\n                            this.where(field, self.operators[operator][0], self.operators[operator][1].replace('{value}', value));\n                        }\n                        if (Object.keys(filters).indexOf(field) > 0) {\n                            this.andWhere(field, self.operators[operator][0], self.operators[operator][1].replace('{value}', value));\n                        }\n                    }\n                }\n            }\n            return await this.paginate(page, pageSize);\n        });\n        ModelQueryBuilder.macro('andWhereFilterPaginate', async function (request) {\n            const page = request.input('page') > 0 ? request.input('page') : 1;\n            const pageSize = request.input('pageSize') > 0 ? request.input('pageSize') : self.pageSize;\n            const filters = request.input('filters', {});\n            const sort = request.input('sort', null) || self.sort;\n            /* set sort */\n            if (sort && typeof sort === 'object' && Object.keys(sort).length) {\n                for (const key of Object.keys(sort)) {\n                    this.orderBy(key, sort[key]);\n                }\n            }\n            /* set filters */\n            if (filters && typeof filters === 'object' && Object.keys(filters).length) {\n                for (const field of Object.keys(filters)) {\n                    const operator = Object.keys(filters[field])[0];\n                    const value = filters[field][operator];\n                    if (typeof self.operators[operator] !== 'undefined') {\n                        if (Object.keys(filters).indexOf(field) === 0) {\n                            this.andWhere(field, self.operators[operator][0], self.operators[operator][1].replace('{value}', value));\n                        }\n                        if (Object.keys(filters).indexOf(field) > 0) {\n                            this.andWhere(field, self.operators[operator][0], self.operators[operator][1].replace('{value}', value));\n                        }\n                    }\n                }\n            }\n            return await this.paginate(page, pageSize);\n        });\n    }\n}\nHamtaOrmProvider.needsApplication = true;\nexports.default = HamtaOrmProvider;\n"]}