{"version":3,"sources":["jsdelivr-header.js","/npm/js-webservices@0.1.3/dist/web_services.js"],"names":[],"mappings":"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","file":"/npm/js-webservices@0.1.3/dist/web_services.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/js-webservices@0.1.3/dist/web_services.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/*! js-webservices 0.1.3 | howerest 2018 - <davidvalin@howerest.com> | Apache 2.0 Licensed */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar util_1 = require(\"./util\");\nvar WebServices;\n(function (WebServices) {\n    var XHR = /** @class */ (function () {\n        function XHR() {\n            try {\n                return new XMLHttpRequest();\n            }\n            catch (e) { }\n            try {\n                return new ActiveXObject(\"Msxml3.XMLHTTP\");\n            }\n            catch (e) { }\n            try {\n                return new ActiveXObject(\"Msxml2.XMLHTTP.6.0\");\n            }\n            catch (e) { }\n            try {\n                return new ActiveXObject(\"Msxml2.XMLHTTP.3.0\");\n            }\n            catch (e) { }\n            try {\n                return new ActiveXObject(\"Msxml2.XMLHTTP\");\n            }\n            catch (e) { }\n            try {\n                return new ActiveXObject(\"Microsoft.XMLHTTP\");\n            }\n            catch (e) { }\n            return null;\n        }\n        return XHR;\n    }());\n    WebServices.XHR = XHR;\n    /*!\n     * Handles a Http Header\n     */\n    var HttpHeader = /** @class */ (function () {\n        function HttpHeader(header) {\n            this.name = Object.keys(header)[0];\n            this.value = header[Object.keys(header)[0]];\n        }\n        return HttpHeader;\n    }());\n    WebServices.HttpHeader = HttpHeader;\n    /*!\n     * Handles a Http Request\n     */\n    var HttpRequest = /** @class */ (function () {\n        function HttpRequest(httpQuery) {\n            this.response = null;\n            this.query = httpQuery;\n            var _this = this, data = null, keys;\n            var endpoint = this.query.endpoint;\n            if (util_1.Util.EnvChecker.isBrowser()) {\n                this.client = new XHR();\n            }\n            else if (util_1.Util.EnvChecker.isNode()) {\n                var XMLHttpRequest_1 = xhr2;\n                this.client = new XMLHttpRequest_1();\n            }\n            else {\n                return;\n            }\n            // Add query string to url\n            if (Object.keys(this.query.qsParams).length > 0) {\n                endpoint += '?';\n                var i = 0;\n                var keys_2 = Object.keys(this.query.qsParams);\n                for (var _i = 0, keys_1 = keys_2; _i < keys_1.length; _i++) {\n                    var key = keys_1[_i];\n                    if (i > 0) {\n                        endpoint += '&';\n                    }\n                    endpoint += key + \"=\" + this.query.qsParams[key];\n                    i++;\n                }\n            }\n            // Set method & url\n            this.client.open(this.query.httpMethod, endpoint);\n            // Use credentials\n            this.client.withCredentials = true;\n            // Set headers\n            for (var i = 0; i < this.query['headers'].length; i++) {\n                this.client.setRequestHeader(this.query.headers[i].name, this.query.headers[i].value);\n            }\n            if (!this.query.headers['Accept']) {\n                this.client.setRequestHeader('Accept', 'application/json');\n            }\n            if (!this.query.headers['Content-Type']) {\n                this.client.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\n            }\n            // Promise\n            this.promise = new Promise(function (resolve, reject) {\n                // Resolve a HttpResponse when success\n                _this.client.onreadystatechange = function (e) {\n                    if (e && e.target['readyState'] == 4) {\n                        if (e.target['status'] == 200 || e.target['status'] == 201 || e.target['status'] == 204) {\n                            _this.response = new HttpResponse(endpoint, {}, e.target['responseText'] ? e.target['responseText'] : null);\n                            resolve(_this.response);\n                        }\n                        else {\n                            reject(false);\n                        }\n                    }\n                };\n            });\n            if (typeof (this.query.data) === \"object\") {\n                keys = Object.keys(this.query.data);\n                if (keys.length > 0) {\n                    data = JSON.stringify(this.query.data);\n                }\n            }\n            this.client.send(data);\n        }\n        return HttpRequest;\n    }());\n    WebServices.HttpRequest = HttpRequest;\n    /*\n     * Handles a Http Response\n     */\n    var HttpResponse = /** @class */ (function () {\n        function HttpResponse(baseHost, headers, data, parseJSON) {\n            if (parseJSON === void 0) { parseJSON = true; }\n            if (data && parseJSON) {\n                try {\n                    this.data = JSON.parse(data);\n                }\n                catch (e) {\n                    console.log('sdkzer> error when parsing JSON response. The received data is malformed');\n                }\n            }\n            else {\n                this.data = data;\n            }\n        }\n        return HttpResponse;\n    }());\n    WebServices.HttpResponse = HttpResponse;\n    /*\n     *  Implements an API to build HTTP queries\n     *\n     *  Code sample:\n     *\n     *    let query = new HttpQuery();\n     *    query.where({ name: \"David\" });\n     *\n     *    if (loggedIn()) {\n     *      query.where({ include: ['author'] });\n     *    }\n     *\n     *    if (filters['category_id']) {\n     *      query.where({ category_id: filters['category_id'].join('|') });\n     *    }\n     *\n     *    Posts.fetchAll(query)\n     */\n    var HttpQuery = /** @class */ (function () {\n        function HttpQuery(querySettings) {\n            this.httpMethod = 'GET';\n            this.qsParams = {};\n            this.headers = [];\n            this.data = {};\n            this.endpoint = querySettings.endpoint;\n            this.httpMethod = querySettings.httpMethod;\n            this.qsParams = querySettings.qsParams;\n            this.headers = querySettings.headers;\n            this.data = querySettings.data;\n        }\n        /*!\n         *  Implements a Http Querier API to modify the query\n         *  Query String parameters are right way to query an restful http resource\n         */\n        HttpQuery.prototype.where = function (qsParams) {\n            // qs:\n            // headers:\n            // data:\n            if (qsParams === void 0) { qsParams = {}; }\n            for (var key in qsParams) {\n                if (qsParams.hasOwnProperty(key)) {\n                    this.qsParams[key] = qsParams[key];\n                }\n            }\n            return this;\n        };\n        /*!\n         *  Sets a list of HttpHeaders for the HttpQuery\n         */\n        HttpQuery.prototype.withHeaders = function (headers) {\n            if (headers === void 0) { headers = []; }\n            this.headers = headers;\n        };\n        /*!\n         *  Sets the data for the HttpQuery\n         */\n        HttpQuery.prototype.withData = function (data) {\n            if (data === void 0) { data = {}; }\n            this.data = data;\n        };\n        /*\n         *  Returns the HttpQuery query string in string format (URI encoded)\n         */\n        HttpQuery.prototype.qsParamsToString = function (qsParams) {\n            if (qsParams === void 0) { qsParams = this.qsParams; }\n            return this.serialize(qsParams);\n        };\n        /*\n         *  Serialize\n         */\n        HttpQuery.prototype.serialize = function (obj) {\n            var items = [];\n            for (var key in obj) {\n                var k = key, value = obj[key];\n                items.push(typeof (value) === \"object\" ? this.serialize(value) : encodeURIComponent(key) + \"=\" + encodeURIComponent(value));\n            }\n            return items.join(\"&\");\n        };\n        return HttpQuery;\n    }());\n    WebServices.HttpQuery = HttpQuery;\n    /*!\n     * Merges data\n     */\n    var Merger = /** @class */ (function () {\n        function Merger() {\n        }\n        /*\n         *  Merges a list of HttpQueries into a single HttpQuery\n         */\n        Merger.mergeHttpQueries = function (httpQueries) {\n            var queryAttrs = ['httpMethod', 'endpoint', 'headers', 'qsParams', 'data'];\n            var finalHttpQuery = new WebServices.HttpQuery({\n                endpoint: null,\n                httpMethod: null,\n                qsParams: {},\n                headers: [],\n                data: {},\n            });\n            for (var i = 0; i < httpQueries.length; i++) {\n                for (var i2 = 0; i2 < queryAttrs.length; i2++) {\n                    if (typeof (httpQueries[i][queryAttrs[i2]]) !== \"undefined\") {\n                        finalHttpQuery[queryAttrs[i2]] = httpQueries[i][queryAttrs[i2]];\n                    }\n                }\n            }\n            return finalHttpQuery;\n        };\n        return Merger;\n    }());\n    WebServices.Merger = Merger;\n})(WebServices = exports.WebServices || (exports.WebServices = {}));\n"]}