{"version":3,"sources":["jsdelivr-header.js","/npm/angular5-odoo-jsonrpc@1.1.1/odoorpc.service.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,IAAI,WAAc,MAAQ,KAAK,YAAe,SAAU,EAAY,EAAQ,EAAK,GAC7E,IAA2H,EAAvH,EAAI,UAAU,OAAQ,EAAI,EAAI,EAAI,EAAkB,OAAT,EAAgB,EAAO,OAAO,yBAAyB,EAAQ,GAAO,EACrH,GAAuB,iBAAZ,SAAoD,mBAArB,QAAQ,SAAyB,EAAI,QAAQ,SAAS,EAAY,EAAQ,EAAK,QACpH,IAAK,IAAI,EAAI,EAAW,OAAS,EAAG,GAAK,EAAG,KAAS,EAAI,EAAW,MAAI,GAAK,EAAI,EAAI,EAAE,GAAK,EAAI,EAAI,EAAE,EAAQ,EAAK,GAAK,EAAE,EAAQ,KAAS,GAChJ,OAAO,EAAI,GAAK,GAAK,OAAO,eAAe,EAAQ,EAAK,GAAI,CAChE,EACI,WAAc,MAAQ,KAAK,YAAe,SAAU,EAAG,GACvD,GAAuB,iBAAZ,SAAoD,mBAArB,QAAQ,SAAyB,OAAO,QAAQ,SAAS,EAAG,EAC1G,EACI,QAAW,MAAQ,KAAK,SAAY,SAAU,EAAY,GAC1D,OAAO,SAAU,EAAQ,GAAO,EAAU,EAAQ,EAAK,EAAa,CACxE,SACS,WAAY,WAAc,uBAC1B,WAAY,gBAAmB,6BACjC,8BACP,IAAI,QAAyB,WACzB,SAAS,IACL,KAAK,WAAa,IACtB,CAgBA,OAfA,EAAQ,UAAU,iBAAmB,WACjC,KAAK,WAAa,KAClB,SAAS,OAAS,oDACtB,EACA,EAAQ,UAAU,cAAgB,WAC9B,OAAO,SACF,OAAO,MAAM,MACb,QAAO,SAAU,GAAK,OAAmC,IAA5B,EAAE,QAAQ,aAAqB,IAC5D,KAAI,SAAU,GAAK,OAAO,EAAE,MAAM,KAAK,EAAI,IAC3C,OAAS,KAAK,YAAc,EACrC,EACA,EAAQ,UAAU,cAAgB,SAAU,GACxC,SAAS,OAAS,cAAgB,EAClC,KAAK,WAAa,CACtB,EACO,CACX,CApB4B,GAqBxB,eAAgC,WAChC,SAAS,EAAe,GACpB,KAAK,KAAO,EACZ,KAAK,gBAAkB,EACvB,KAAK,uBAAwB,EAC7B,KAAK,QAAU,KAAK,MAAM,aAAa,QAAQ,kBAAoB,CAAE,KAAQ,SAC7E,KAAK,QAAU,IAAI,OACvB,CAqLA,OApLA,EAAe,UAAU,aAAe,SAAU,EAAK,GAUnD,OATA,KAAK,iBAAmB,EACpB,KAAK,wBACL,EAAO,WAAa,KAAK,QAAQ,iBAErC,KAAK,QAAU,IAAI,YAAY,CAC3B,eAAgB,mBAChB,uBAAwB,KAAK,QAAQ,gBACrC,cAAiB,SAAW,KAAK,GAAK,KAAK,aAExC,KAAK,UAAU,CAClB,QAAS,MACT,OAAQ,OACR,OAAQ,GAEhB,EACA,EAAe,UAAU,iBAAmB,SAAU,GAClD,IAAK,EAAS,MACV,OAAO,EAAS,OAEpB,IAAI,EAAQ,EAAS,MACjB,EAAW,CACX,MAAO,OACP,QAAS,GACT,UAAW,GAEf,GAAmB,MAAf,EAAM,MAAkC,sBAAlB,EAAM,SAAuD,iCAApB,EAAM,KAAK,KAC1E,EAAS,MAAQ,iBACjB,EAAS,QAAU,kBAElB,GAAoB,MAAf,EAAM,MAAkC,yBAAlB,EAAM,SAClB,MAAf,EAAM,MAAkC,4BAAlB,EAAM,SAAyC,EAAM,KAAK,MAAM,MAAM,2BAE7F,EAAS,MAAQ,kBACjB,KAAK,QAAQ,wBAEZ,GAAuB,sBAAlB,EAAM,SAAmC,yCAAyC,KAAK,EAAM,KAAK,SACxG,EAAS,MAAQ,qBACjB,EAAS,QAAU,EAAM,KAAK,aAE7B,GAAyB,mCAApB,EAAM,KAAK,KACjB,EAAS,MAAQ,cACjB,EAAS,QAAU,EAAM,KAAK,YAE7B,CACD,IAAI,GAAS,GAAK,EAAM,KAAK,YAAY,MAAM,MAAM,GAAG,MAAM,QAC1D,EAAM,OAAS,IACf,EAAM,KAAO,EAAM,QACnB,EAAM,KAAK,WAAa,EAAM,KAAK,WAAW,OAAO,EAAM,KAAK,OAAS,IAE1D,MAAf,EAAM,MAAgB,EAAM,MAC5B,EAAS,MAAQ,EAAM,KACvB,EAAS,QAAU,EAAM,KAAK,WAAW,QAAQ,MAAO,YAGxD,EAAS,MAAQ,EAAM,QACvB,EAAS,QAAU,EAAM,KAAK,MAAM,QAAQ,MAAO,UAE3D,CACA,OAAO,QAAQ,OAAO,EAC1B,EACA,EAAe,UAAU,iBAAmB,SAAU,GAClD,OAAO,QAAQ,OAAO,EAAM,SAAW,EAC3C,EACA,EAAe,UAAU,KAAO,SAAU,GACtC,KAAK,YAAc,EAAQ,YAC3B,KAAK,UAAY,EAAQ,WAAa,IAC1C,EACA,EAAe,UAAU,cAAgB,SAAU,GAC/C,KAAK,YAAc,CACvB,EACA,EAAe,UAAU,YAAc,SAAU,GAC7C,KAAK,UAAY,CACrB,EACA,EAAe,UAAU,YAAc,SAAU,EAAK,GAClD,IAAI,EAAO,KAAK,aAAa,EAAK,GAClC,OAAO,KAAK,KAAK,KAAK,KAAK,YAAc,EAAK,EAAM,CAAE,QAAS,KAAK,UAC/D,YACA,KAAK,KAAK,kBACV,MAAM,KAAK,iBACpB,EACA,EAAe,UAAU,cAAgB,WACrC,OAAO,KAAK,YAAY,8BAA+B,CAAC,EAC5D,EACA,EAAe,UAAU,eAAiB,WACtC,OAAO,KAAK,YAAY,gCAAiC,CAAC,EAC9D,EACA,EAAe,UAAU,MAAQ,SAAU,EAAI,EAAO,GAClD,IAAI,EAAS,CACT,GAAI,EACJ,MAAO,EACP,SAAU,GAEV,EAAQ,KACZ,OAAO,KAAK,YAAY,4BAA6B,GAAQ,MAAK,SAAU,GACxE,OAAK,EAAO,KAQZ,EAAM,QAAU,EAAO,aACvB,aAAa,QAAQ,eAAgB,KAAK,UAAU,EAAM,UAC1D,EAAM,QAAQ,cAAc,EAAO,YAC5B,IAVH,EAAM,QAAQ,mBACP,QAAQ,OAAO,CAClB,MAAO,cACP,QAAS,oCACT,UAAW,IAOvB,GACJ,EACA,EAAe,UAAU,WAAa,SAAU,GAC5C,IAAI,EAAQ,KAEZ,YADc,IAAV,IAAoB,GAAQ,GAC3B,EAGE,KAAK,iBAAiB,MAAK,SAAU,GAExC,OADA,EAAM,QAAQ,cAAc,EAAO,cACzB,EAAU,GACxB,IALW,QAAQ,QAAQ,KAAK,QAAQ,gBAAgB,OAAS,EAMrE,EACA,EAAe,UAAU,OAAS,SAAU,GACxC,IAAI,EAAQ,KAGZ,YAFc,IAAV,IAAoB,GAAQ,GAChC,KAAK,QAAQ,mBACT,EACO,KAAK,iBAAiB,MAAK,SAAU,GACxC,GAAI,EAAE,GACF,OAAO,EAAM,MAAM,EAAE,GAAI,GAAI,GACrC,IAGO,QAAQ,SAEvB,EACA,EAAe,UAAU,UAAY,WACjC,OAAO,KAAK,YAAY,yBAA0B,CAAC,EACvD,EACA,EAAe,UAAU,WAAa,SAAU,EAAO,EAAQ,EAAQ,EAAO,EAAQ,QAClE,IAAZ,IAAsB,EAAU,CAAC,GACrC,IAAI,EAAS,CACT,MAAO,EACP,OAAQ,EACR,OAAQ,EACR,MAAO,EACP,OAAQ,EACR,QAAS,GAAW,KAAK,SAE7B,OAAO,KAAK,YAAY,2BAA4B,EACxD,EACA,EAAe,UAAU,cAAgB,SAAU,GAC/C,IAAI,EAAQ,KACZ,aAAa,QAAQ,eAAgB,KAAK,UAAU,IACpD,IAAI,EAAO,CAAC,CAAC,KAAK,QAAQ,KAAM,GAChC,KAAK,KAAK,YAAa,QAAS,EAAM,CAAC,GAClC,MAAK,WAAc,OAAO,EAAM,QAAU,CAAS,IACnD,OAAM,SAAU,GAAO,OAAO,EAAM,QAAU,CAAS,GAChE,EACA,EAAe,UAAU,WAAa,WAClC,OAAO,KAAK,OAChB,EACA,EAAe,UAAU,UAAY,WACjC,OAAO,KAAK,WAChB,EACA,EAAe,UAAU,KAAO,SAAU,EAAO,EAAQ,EAAM,IAC3D,EAAS,GAAU,CAAC,GACb,QAAU,EAAO,SAAW,CAAC,EACpC,OAAO,OAAO,EAAO,QAAS,KAAK,SACnC,IAAI,EAAS,CACT,MAAO,EACP,OAAQ,EACR,KAAM,EACN,OAAQ,GAEZ,OAAO,KAAK,YAAY,uBAAwB,EACpD,EACA,EAAiB,WAAW,CACxB,aACA,QAAQ,EAAG,OAAO,aAClB,WAAW,oBAAqB,CAAC,cAClC,EAEP,CA7LmC,UA8L1B","file":"/npm/angular5-odoo-jsonrpc@1.1.1/odoorpc.service.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/angular5-odoo-jsonrpc@1.1.1/odoorpc.service.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { Injectable, Inject } from \"@angular/core\";\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport \"rxjs/add/operator/toPromise\";\nvar Cookies = /** @class */ (function () {\n    function Cookies() {\n        this.session_id = null;\n    }\n    Cookies.prototype.delete_sessionId = function () {\n        this.session_id = null;\n        document.cookie = \"session_id=; expires=Wed, 29 Jun 2016 00:00:00 UTC\";\n    };\n    Cookies.prototype.get_sessionId = function () {\n        return document\n            .cookie.split(\"; \")\n            .filter(function (x) { return x.indexOf(\"session_id\") === 0; })\n            .map(function (x) { return x.split(\"=\")[1]; })\n            .pop() || this.session_id || \"\";\n    };\n    Cookies.prototype.set_sessionId = function (val) {\n        document.cookie = \"session_id=\" + val;\n        this.session_id = val;\n    };\n    return Cookies;\n}());\nvar OdooRPCService = /** @class */ (function () {\n    function OdooRPCService(http) {\n        this.http = http;\n        this.uniq_id_counter = 0;\n        this.shouldManageSessionId = false; // try without first\n        this.context = JSON.parse(localStorage.getItem(\"user_context\")) || { \"lang\": \"en_US\" };\n        this.cookies = new Cookies();\n    }\n    OdooRPCService.prototype.buildRequest = function (url, params) {\n        this.uniq_id_counter += 1;\n        if (this.shouldManageSessionId) {\n            params.session_id = this.cookies.get_sessionId();\n        }\n        this.headers = new HttpHeaders({\n            \"Content-Type\": \"application/json\",\n            \"X-Openerp-Session-Id\": this.cookies.get_sessionId(),\n            \"Authorization\": \"Basic \" + btoa(\"\" + this.http_auth)\n        });\n        return JSON.stringify({\n            jsonrpc: \"2.0\",\n            method: \"call\",\n            params: params,\n        });\n    };\n    OdooRPCService.prototype.handleOdooErrors = function (response) {\n        if (!response.error) {\n            return response.result;\n        }\n        var error = response.error;\n        var errorObj = {\n            title: \"    \",\n            message: \"\",\n            fullTrace: error\n        };\n        if (error.code === 200 && error.message === \"Odoo Server Error\" && error.data.name === \"werkzeug.exceptions.NotFound\") {\n            errorObj.title = \"page_not_found\";\n            errorObj.message = \"HTTP Error\";\n        }\n        else if ((error.code === 100 && error.message === \"Odoo Session Expired\") || // v8\n            (error.code === 300 && error.message === \"OpenERP WebClient Error\" && error.data.debug.match(\"SessionExpiredException\")) // v7\n        ) {\n            errorObj.title = \"session_expired\";\n            this.cookies.delete_sessionId();\n        }\n        else if ((error.message === \"Odoo Server Error\" && /FATAL:  database \"(.+)\" does not exist/.test(error.data.message))) {\n            errorObj.title = \"database_not_found\";\n            errorObj.message = error.data.message;\n        }\n        else if ((error.data.name === \"openerp.exceptions.AccessError\")) {\n            errorObj.title = \"AccessError\";\n            errorObj.message = error.data.message;\n        }\n        else {\n            var split = (\"\" + error.data.fault_code).split(\"\\n\")[0].split(\" -- \");\n            if (split.length > 1) {\n                error.type = split.shift();\n                error.data.fault_code = error.data.fault_code.substr(error.type.length + 4);\n            }\n            if (error.code === 200 && error.type) {\n                errorObj.title = error.type;\n                errorObj.message = error.data.fault_code.replace(/\\n/g, \"<br />\");\n            }\n            else {\n                errorObj.title = error.message;\n                errorObj.message = error.data.debug.replace(/\\n/g, \"<br />\");\n            }\n        }\n        return Promise.reject(errorObj);\n    };\n    OdooRPCService.prototype.handleHttpErrors = function (error) {\n        return Promise.reject(error.message || error);\n    };\n    OdooRPCService.prototype.init = function (configs) {\n        this.odoo_server = configs.odoo_server;\n        this.http_auth = configs.http_auth || null;\n    };\n    OdooRPCService.prototype.setOdooServer = function (odoo_server) {\n        this.odoo_server = odoo_server;\n    };\n    OdooRPCService.prototype.setHttpAuth = function (http_auth) {\n        this.http_auth = http_auth;\n    };\n    OdooRPCService.prototype.sendRequest = function (url, params) {\n        var body = this.buildRequest(url, params);\n        return this.http.post(this.odoo_server + url, body, { headers: this.headers })\n            .toPromise()\n            .then(this.handleOdooErrors)\n            .catch(this.handleHttpErrors);\n    };\n    OdooRPCService.prototype.getServerInfo = function () {\n        return this.sendRequest(\"/web/webclient/version_info\", {});\n    };\n    OdooRPCService.prototype.getSessionInfo = function () {\n        return this.sendRequest(\"/web/session/get_session_info\", {});\n    };\n    OdooRPCService.prototype.login = function (db, login, password) {\n        var params = {\n            db: db,\n            login: login,\n            password: password\n        };\n        var $this = this;\n        return this.sendRequest(\"/web/session/authenticate\", params).then(function (result) {\n            if (!result.uid) {\n                $this.cookies.delete_sessionId();\n                return Promise.reject({\n                    title: \"wrong_login\",\n                    message: \"Username and password don't match\",\n                    fullTrace: result\n                });\n            }\n            $this.context = result.user_context;\n            localStorage.setItem(\"user_context\", JSON.stringify($this.context));\n            $this.cookies.set_sessionId(result.session_id);\n            return result;\n        });\n    };\n    OdooRPCService.prototype.isLoggedIn = function (force) {\n        var _this = this;\n        if (force === void 0) { force = true; }\n        if (!force) {\n            return Promise.resolve(this.cookies.get_sessionId().length > 0);\n        }\n        return this.getSessionInfo().then(function (result) {\n            _this.cookies.set_sessionId(result.session_id);\n            return !!(result.uid);\n        });\n    };\n    OdooRPCService.prototype.logout = function (force) {\n        var _this = this;\n        if (force === void 0) { force = true; }\n        this.cookies.delete_sessionId();\n        if (force) {\n            return this.getSessionInfo().then(function (r) {\n                if (r.db)\n                    return _this.login(r.db, \"\", \"\");\n            });\n        }\n        else {\n            return Promise.resolve();\n        }\n    };\n    OdooRPCService.prototype.getDbList = function () {\n        return this.sendRequest(\"/web/database/get_list\", {});\n    };\n    OdooRPCService.prototype.searchRead = function (model, domain, fields, limit, offset, context) {\n        if (context === void 0) { context = {}; }\n        var params = {\n            model: model,\n            domain: domain,\n            fields: fields,\n            limit: limit,\n            offset: offset,\n            context: context || this.context\n        };\n        return this.sendRequest(\"/web/dataset/search_read\", params);\n    };\n    OdooRPCService.prototype.updateContext = function (context) {\n        var _this = this;\n        localStorage.setItem(\"user_context\", JSON.stringify(context));\n        var args = [[this.context.uid], context];\n        this.call(\"res.users\", \"write\", args, {})\n            .then(function () { return _this.context = context; })\n            .catch(function (err) { return _this.context = context; });\n    };\n    OdooRPCService.prototype.getContext = function () {\n        return this.context;\n    };\n    OdooRPCService.prototype.getServer = function () {\n        return this.odoo_server;\n    };\n    OdooRPCService.prototype.call = function (model, method, args, kwargs) {\n        kwargs = kwargs || {};\n        kwargs.context = kwargs.context || {};\n        Object.assign(kwargs.context, this.context);\n        var params = {\n            model: model,\n            method: method,\n            args: args,\n            kwargs: kwargs,\n        };\n        return this.sendRequest(\"/web/dataset/call_kw\", params);\n    };\n    OdooRPCService = __decorate([\n        Injectable(),\n        __param(0, Inject(HttpClient)),\n        __metadata(\"design:paramtypes\", [HttpClient])\n    ], OdooRPCService);\n    return OdooRPCService;\n}());\nexport { OdooRPCService };\n"]}