function BrokeredMessage(e, t) { this.body = e; this.properties = t } function EventData(e) { this.body = e } function EventHubClient(e) { if (e.devicename != null) e.name = e.name + "/publishers/" + e.devicename; else e.name = e.name; var t = new QueueClient(e); this.sendMessage = function (e, n) { t.sendMessage(e, n) } } function SubscriptionClient(e) { e.name = e.name + "/subscriptions/" + e.subscription; if (e.subscription == null) throw "'supbsription' of specified configuration object property must not be emtpy!"; var t = new QueueClient(e); this.receiveMessage = function (e) { t.receiveMessage(e) }, this.peekLockMessage = function (e) { t.peekLockMessage(e) }, this.abandonMessage = function (e, n) { t.abandonMessage(e, n) }, this.completeMessage = function (e, n) { t.completeMessage(e, n) } } function TopicClient(e) { var t = new QueueClient(e); this.sendMessage = function (e, n) { t.sendMessage(e, n) } } function QueueClient(config) { function MessagingResult(e, t, n) { this.result = e; this.httpStatusCode = t; this.brokeredMessage = n } var m_EntityName = "Please provide the queue name. For example 'customer/orders'"; var m_Timeout = 60; var m_ServiceNamespace; var m_SasKey = "provide SAS key"; var m_SasKeyName = "provide the SAS key name."; m_ServiceNamespace = config.namespace; if (config.name != null) m_EntityName = config.name; if (config.sasKey != null) m_SasKey = config.sasKey; if (config.sasKeyName != null) m_SasKeyName = config.sasKeyName; if (config.timeOut != null) m_Timeout = config.timeOut; if (config.contentType == null) m_ContentType = "application/json"; var getUri = function (e, t) { var n = "https://" + m_ServiceNamespace + ".servicebus.windows.net/" + e; var r; if (t == null) r = n + "/messages/?timeout=" + m_Timeout; else r = n + "/messages/" + t + "/?timeout=" + m_Timeout; return r }; var getToken = function (e) { var t = "http://" + m_ServiceNamespace + ".servicebus.windows.net/" + e; var n = encodeURIComponent(t); var r = new Date(1970, 1, 1, 0, 0, 0, 0); var i = new Date; var s = s = Date.now() / 1e3 + 3600; var o = utf8Encode(n + "\n" + s); var u = CryptoJS.HmacSHA256(o, m_SasKey); var a = CryptoJS.enc.Base64.stringify(u); var f = "SharedAccessSignature sr=" + n + "&sig=" + encodeURIComponent(a) + "&se=" + s + "&skn=" + m_SasKeyName; return f }; var utf8Encode = function (e) { for (var t, n = -1, r = (e = e.split("")).length, i = String.fromCharCode; ++n < r; e[n] = (t = e[n].charCodeAt(0)) >= 127 ? i(192 | t >>> 6) + i(128 | t & 63) : e[n]); return e.join("") }; var utf8Decode = function (e) { for (var t, n, r = -1, i = (e = e.split("")).length, s = String.fromCharCode, o = "charCodeAt"; ++r < i; (t = e[r][o](0)) & 128 && (e[r] = (t & 252) == 192 && ((n = e[r + 1][o](0)) & 192) == 128 ? s(((t & 3) << 6) + (n & 63)) : s(128), e[++r] = "")); return e.join("") }; var getResponseHeaders = function (e) { var t = {}; if (!e) { return t } var n = e.split("\r\n"); for (var r = 0; r < n.length; r++) { var i = n[r]; var s = i.indexOf(": "); if (s > 0) { var o = i.substring(0, s); var u = i.substring(s + 2); t[o] = u } } return t }; this.sendMessage = function (e, t) { var n = JSON.stringify(e.body); var r = e.properties; var i = getToken(m_EntityName); var s = getUri(m_EntityName); var o = new XMLHttpRequest; o.open("POST", s, true); o.setRequestHeader("Content-Type", m_ContentType); o.setRequestHeader("Authorization", i); if (r != null) { for (var u = 0; u < r.length; u++) { if (r[u].Name == null || r[u].Value == null) { if (t != null) { messagingResult = new MessagingResult("The list of properties must contain pair values {'Name': ***, 'Value': ***}", this.status, null, this.response); t(messagingResult) } } else o.setRequestHeader(r[u].Name, r[u].Value) } } o.onreadystatechange = function () { if (this.readyState == 4) { var e; if (this.status == 201) { e = new MessagingResult("Success", this.status, null, this.response) } else { e = new MessagingResult("Failure", this.status, null, this.response) } if (t != null) t(e) } }; o.send(n) }, this.receiveMessage = function (callback) { var securityToken = getToken(m_EntityName); var xmlHttpRequest = new XMLHttpRequest; var receiveUri = getUri(m_EntityName, "head"); xmlHttpRequest.open("DELETE", receiveUri, true); xmlHttpRequest.setRequestHeader("Authorization", securityToken); xmlHttpRequest.onreadystatechange = function () { if (this.readyState == 4) { var messagingResult; if (this.status == 200) { var allHeaders = getResponseHeaders(this.getAllResponseHeaders()); allHeaders.brokerProperties = eval("(" + this.getResponseHeader("BrokerProperties") + ")"); messagingResult = new MessagingResult("Success", this.status, new BrokeredMessage(this.response, allHeaders)) } else if (this.status == 204) { messagingResult = new MessagingResult("Empty", this.status, new BrokeredMessage(this.response)) } else { messagingResult = new MessagingResult("Failure", this.status, new BrokeredMessage(this.response)) } callback(messagingResult) } }; xmlHttpRequest.send(null) }, this.peekLockMessage = function (callback) { var securityToken = getToken(m_EntityName); var uri = getUri(m_EntityName, "head"); var xmlHttpRequest = new XMLHttpRequest; xmlHttpRequest.open("POST", uri, true); xmlHttpRequest.setRequestHeader("Authorization", securityToken); xmlHttpRequest.onreadystatechange = function () { if (this.readyState == 4) { var messagingResult; if (this.status == 201) { var allHeaders = getResponseHeaders(this.getAllResponseHeaders()); allHeaders.brokerProperties = eval("(" + this.getResponseHeader("BrokerProperties") + ")"); messagingResult = new MessagingResult("Success", this.status, new BrokeredMessage(this.response, allHeaders)) } else if (this.status == 204) { messagingResult = new MessagingResult("Empty", this.status, new BrokeredMessage(this.response)) } else { messagingResult = new MessagingResult("Failure", this.status, new BrokeredMessage(this.response)) } if (callback != null) callback(messagingResult) } }; xmlHttpRequest.send(null) }, this.abandonMessage = function (e, t) { var n = new XMLHttpRequest; var r = getToken(m_EntityName); n.open("PUT", e, true); n.setRequestHeader("Authorization", r); n.onreadystatechange = function () { if (this.readyState == 4) { var e; if (this.status == 200) { e = new MessagingResult("Success", this.status, new BrokeredMessage(this.response)) } else { e = new MessagingResult("Failure", this.status, new BrokeredMessage(this.response)) } t(e) } }; n.send(null) }, this.completeMessage = function (e, t) { var n = getToken(m_EntityName); var r = new XMLHttpRequest; r.open("DELETE", e, true); r.setRequestHeader("Authorization", n); r.onreadystatechange = function () { if (this.readyState == 4) { var e; if (this.status == 200) { e = new MessagingResult("Success", this.status, new BrokeredMessage(this.response)) } else { e = new MessagingResult("Failure", this.status, new BrokeredMessage(this.response)) } t(e) } }; r.send(null) } } var CryptoJS = CryptoJS || function (e, t) { var n = {}, r = n.lib = {}, i = r.Base = function () { function e() { } return { extend: function (t) { e.prototype = this; var n = new e; t && n.mixIn(t); n.$super = this; return n }, create: function () { var e = this.extend(); e.init.apply(e, arguments); return e }, init: function () { }, mixIn: function (e) { for (var t in e) e.hasOwnProperty(t) && (this[t] = e[t]); e.hasOwnProperty("toString") && (this.toString = e.toString) }, clone: function () { return this.$super.extend(this) } } }(), s = r.WordArray = i.extend({ init: function (e, n) { e = this.words = e || []; this.sigBytes = n != t ? n : 4 * e.length }, toString: function (e) { return (e || u).stringify(this) }, concat: function (e) { var t = this.words, n = e.words, r = this.sigBytes, e = e.sigBytes; this.clamp(); if (r % 4) for (var i = 0; i < e; i++) t[r + i >>> 2] |= (n[i >>> 2] >>> 24 - 8 * (i % 4) & 255) << 24 - 8 * ((r + i) % 4); else if (65535 < n.length) for (i = 0; i < e; i += 4) t[r + i >>> 2] = n[i >>> 2]; else t.push.apply(t, n); this.sigBytes += e; return this }, clamp: function () { var t = this.words, n = this.sigBytes; t[n >>> 2] &= 4294967295 << 32 - 8 * (n % 4); t.length = e.ceil(n / 4) }, clone: function () { var e = i.clone.call(this); e.words = this.words.slice(0); return e }, random: function (t) { for (var n = [], r = 0; r < t; r += 4) n.push(4294967296 * e.random() | 0); return s.create(n, t) } }), o = n.enc = {}, u = o.Hex = { stringify: function (e) { for (var t = e.words, e = e.sigBytes, n = [], r = 0; r < e; r++) { var i = t[r >>> 2] >>> 24 - 8 * (r % 4) & 255; n.push((i >>> 4).toString(16)); n.push((i & 15).toString(16)) } return n.join("") }, parse: function (e) { for (var t = e.length, n = [], r = 0; r < t; r += 2) n[r >>> 3] |= parseInt(e.substr(r, 2), 16) << 24 - 4 * (r % 8); return s.create(n, t / 2) } }, a = o.Latin1 = { stringify: function (e) { for (var t = e.words, e = e.sigBytes, n = [], r = 0; r < e; r++) n.push(String.fromCharCode(t[r >>> 2] >>> 24 - 8 * (r % 4) & 255)); return n.join("") }, parse: function (e) { for (var t = e.length, n = [], r = 0; r < t; r++) n[r >>> 2] |= (e.charCodeAt(r) & 255) << 24 - 8 * (r % 4); return s.create(n, t) } }, f = o.Utf8 = { stringify: function (e) { try { return decodeURIComponent(escape(a.stringify(e))) } catch (t) { throw Error("Malformed UTF-8 data") } }, parse: function (e) { return a.parse(unescape(encodeURIComponent(e))) } }, l = r.BufferedBlockAlgorithm = i.extend({ reset: function () { this._data = s.create(); this._nDataBytes = 0 }, _append: function (e) { "string" == typeof e && (e = f.parse(e)); this._data.concat(e); this._nDataBytes += e.sigBytes }, _process: function (t) { var n = this._data, r = n.words, i = n.sigBytes, o = this.blockSize, u = i / (4 * o), u = t ? e.ceil(u) : e.max((u | 0) - this._minBufferSize, 0), t = u * o, i = e.min(4 * t, i); if (t) { for (var a = 0; a < t; a += o) this._doProcessBlock(r, a); a = r.splice(0, t); n.sigBytes -= i } return s.create(a, i) }, clone: function () { var e = i.clone.call(this); e._data = this._data.clone(); return e }, _minBufferSize: 0 }); r.Hasher = l.extend({ init: function () { this.reset() }, reset: function () { l.reset.call(this); this._doReset() }, update: function (e) { this._append(e); this._process(); return this }, finalize: function (e) { e && this._append(e); this._doFinalize(); return this._hash }, clone: function () { var e = l.clone.call(this); e._hash = this._hash.clone(); return e }, blockSize: 16, _createHelper: function (e) { return function (t, n) { return e.create(n).finalize(t) } }, _createHmacHelper: function (e) { return function (t, n) { return c.HMAC.create(e, n).finalize(t) } } }); var c = n.algo = {}; return n }(Math); (function (e) { var t = CryptoJS, n = t.lib, r = n.WordArray, n = n.Hasher, i = t.algo, s = [], o = []; (function () { function t(t) { for (var n = e.sqrt(t), r = 2; r <= n; r++) if (!(t % r)) return !1; return !0 } function n(e) { return 4294967296 * (e - (e | 0)) | 0 } for (var r = 2, i = 0; 64 > i;) t(r) && (8 > i && (s[i] = n(e.pow(r, .5))), o[i] = n(e.pow(r, 1 / 3)), i++), r++ })(); var u = [], i = i.SHA256 = n.extend({ _doReset: function () { this._hash = r.create(s.slice(0)) }, _doProcessBlock: function (e, t) { for (var n = this._hash.words, r = n[0], i = n[1], s = n[2], a = n[3], f = n[4], l = n[5], c = n[6], h = n[7], p = 0; 64 > p; p++) { if (16 > p) u[p] = e[t + p] | 0; else { var d = u[p - 15], v = u[p - 2]; u[p] = ((d << 25 | d >>> 7) ^ (d << 14 | d >>> 18) ^ d >>> 3) + u[p - 7] + ((v << 15 | v >>> 17) ^ (v << 13 | v >>> 19) ^ v >>> 10) + u[p - 16] } d = h + ((f << 26 | f >>> 6) ^ (f << 21 | f >>> 11) ^ (f << 7 | f >>> 25)) + (f & l ^ ~f & c) + o[p] + u[p]; v = ((r << 30 | r >>> 2) ^ (r << 19 | r >>> 13) ^ (r << 10 | r >>> 22)) + (r & i ^ r & s ^ i & s); h = c; c = l; l = f; f = a + d | 0; a = s; s = i; i = r; r = d + v | 0 } n[0] = n[0] + r | 0; n[1] = n[1] + i | 0; n[2] = n[2] + s | 0; n[3] = n[3] + a | 0; n[4] = n[4] + f | 0; n[5] = n[5] + l | 0; n[6] = n[6] + c | 0; n[7] = n[7] + h | 0 }, _doFinalize: function () { var e = this._data, t = e.words, n = 8 * this._nDataBytes, r = 8 * e.sigBytes; t[r >>> 5] |= 128 << 24 - r % 32; t[(r + 64 >>> 9 << 4) + 15] = n; e.sigBytes = 4 * t.length; this._process() } }); t.SHA256 = n._createHelper(i); t.HmacSHA256 = n._createHmacHelper(i) })(Math); (function () { var e = CryptoJS, t = e.enc.Utf8; e.algo.HMAC = e.lib.Base.extend({ init: function (e, n) { e = this._hasher = e.create(); "string" == typeof n && (n = t.parse(n)); var r = e.blockSize, s = 4 * r; n.sigBytes > s && (n = e.finalize(n)); for (var o = this._oKey = n.clone(), u = this._iKey = n.clone(), a = o.words, f = u.words, l = 0; l < r; l++) a[l] ^= 1549556828, f[l] ^= 909522486; o.sigBytes = u.sigBytes = s; this.reset() }, reset: function () { var e = this._hasher; e.reset(); e.update(this._iKey) }, update: function (e) { this._hasher.update(e); return this }, finalize: function (e) { var t = this._hasher, e = t.finalize(e); t.reset(); return t.finalize(this._oKey.clone().concat(e)) } }) })(); (function () { var e = CryptoJS, t = e.lib.WordArray; e.enc.Base64 = { stringify: function (e) { var t = e.words, n = e.sigBytes, r = this._map; e.clamp(); for (var e = [], i = 0; i < n; i += 3) for (var s = (t[i >>> 2] >>> 24 - 8 * (i % 4) & 255) << 16 | (t[i + 1 >>> 2] >>> 24 - 8 * ((i + 1) % 4) & 255) << 8 | t[i + 2 >>> 2] >>> 24 - 8 * ((i + 2) % 4) & 255, o = 0; 4 > o && i + .75 * o < n; o++) e.push(r.charAt(s >>> 6 * (3 - o) & 63)); if (t = r.charAt(64)) for (; e.length % 4;) e.push(t); return e.join("") }, parse: function (e) { var e = e.replace(/\s/g, ""), n = e.length, r = this._map, s = r.charAt(64); s && (s = e.indexOf(s), -1 != s && (n = s)); for (var s = [], o = 0, u = 0; u < n; u++) if (u % 4) { var a = r.indexOf(e.charAt(u - 1)) << 2 * (u % 4), f = r.indexOf(e.charAt(u)) >>> 6 - 2 * (u % 4); s[o >>> 2] |= (a | f) << 24 - 8 * (o % 4); o++ } return t.create(s, o) }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" } })()