Created
March 31, 2014 14:33
-
-
Save theterg/9893688 to your computer and use it in GitHub Desktop.
Nike Plus Javascript SDK unminified
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /*! Nike+ Javascript SDK - v2.0.0 - Build 67 - 2014-03-24 */ | |
| var NIKEPLUS = NIKEPLUS || {}; | |
| ! function (a) { | |
| "use strict"; | |
| var b = {}; | |
| b.config = {}; | |
| var c; | |
| /** | |
| * @license | |
| * Q - v1.0 | |
| * https://github.com/kriskowal/q | |
| * | |
| * Copyright 2009-2012 Kris Kowal under the terms of the MIT | |
| * license found at http://github.com/kriskowal/q/raw/master/LICENSE | |
| * | |
| * With parts by Tyler Close | |
| * Copyright 2007-2009 Tyler Close under the terms of the MIT X license found | |
| * at http://www.opensource.org/licenses/mit-license.html | |
| * Forked at ref_send.js version: 2009-05-11 | |
| * | |
| * With parts by Mark Miller | |
| * Copyright (C) 2011 Google Inc. | |
| * | |
| * Licensed under the Apache License, Version 2.0 (the "License"); | |
| * you may not use this file except in compliance with the License. | |
| * You may obtain a copy of the License at | |
| * | |
| * http://www.apache.org/licenses/LICENSE-2.0 | |
| * | |
| * Unless required by applicable law or agreed to in writing, software | |
| * distributed under the License is distributed on an "AS IS" BASIS, | |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| * See the License for the specific language governing permissions and | |
| * limitations under the License. | |
| * | |
| */ | |
| ! function (a) { | |
| if ("function" == typeof bootstrap) bootstrap("promise", a); | |
| else if ("object" == typeof exports) module.exports = a(); | |
| else if ("function" == typeof define && define.amd) define(a); | |
| else if ("undefined" != typeof ses) { | |
| if (!ses.ok()) return; | |
| ses.makeQ = a | |
| } else c = a() | |
| }(function () { | |
| function a(a) { | |
| return function () { | |
| return X.apply(a, arguments) | |
| } | |
| } | |
| function b(a) { | |
| return a === Object(a) | |
| } | |
| function c(a) { | |
| return "[object StopIteration]" === db(a) || a instanceof T | |
| } | |
| function d(a, b) { | |
| if (Q && b.stack && "object" == typeof a && null !== a && a.stack && -1 === a.stack.indexOf(fb)) { | |
| for (var c = [], d = b; d; d = d.source) d.stack && c.unshift(d.stack); | |
| c.unshift(a.stack); | |
| var f = c.join("\n" + fb + "\n"); | |
| a.stack = e(f) | |
| } | |
| } | |
| function e(a) { | |
| for (var b = a.split("\n"), c = [], d = 0; d < b.length; ++d) { | |
| var e = b[d]; | |
| h(e) || f(e) || !e || c.push(e) | |
| } | |
| return c.join("\n") | |
| } | |
| function f(a) { | |
| return -1 !== a.indexOf("(module.js:") || -1 !== a.indexOf("(node.js:") | |
| } | |
| function g(a) { | |
| var b = /at .+ \((.+):(\d+):(?:\d+)\)$/.exec(a); | |
| if (b) return [b[1], Number(b[2])]; | |
| var c = /at ([^ ]+):(\d+):(?:\d+)$/.exec(a); | |
| if (c) return [c[1], Number(c[2])]; | |
| var d = /.*@(.+):(\d+)$/.exec(a); | |
| return d ? [d[1], Number(d[2])] : void 0 | |
| } | |
| function h(a) { | |
| var b = g(a); | |
| if (!b) return !1; | |
| var c = b[0], | |
| d = b[1]; | |
| return c === S && d >= U && kb >= d | |
| } | |
| function i() { | |
| if (Q) try { | |
| throw new Error | |
| } catch (a) { | |
| var b = a.stack.split("\n"), | |
| c = b[0].indexOf("@") > 0 ? b[1] : b[2], | |
| d = g(c); | |
| if (!d) return; | |
| return S = d[0], d[1] | |
| } | |
| } | |
| function j(a, b, c) { | |
| return function () { | |
| return "undefined" != typeof console && "function" == typeof console.warn && console.warn(b + " is deprecated, use " + c + " instead.", new Error("").stack), a.apply(a, arguments) | |
| } | |
| } | |
| function k(a) { | |
| return r(a) ? a : s(a) ? D(a) : C(a) | |
| } | |
| function l() { | |
| function a(a) { | |
| b = a, f.source = a, Z(c, function (b, c) { | |
| W(function () { | |
| a.promiseDispatch.apply(a, c) | |
| }) | |
| }, void 0), c = void 0, d = void 0 | |
| } | |
| var b, c = [], | |
| d = [], | |
| e = ab(l.prototype), | |
| f = ab(o.prototype); | |
| if (f.promiseDispatch = function (a, e, f) { | |
| var g = Y(arguments); | |
| c ? (c.push(g), "when" === e && f[1] && d.push(f[1])) : W(function () { | |
| b.promiseDispatch.apply(b, g) | |
| }) | |
| }, f.valueOf = function () { | |
| if (c) return f; | |
| var a = q(b); | |
| return r(a) && (b = a), a | |
| }, f.inspect = function () { | |
| return b ? b.inspect() : { | |
| state: "pending" | |
| } | |
| }, k.longStackSupport && Q) try { | |
| throw new Error | |
| } catch (g) { | |
| f.stack = g.stack.substring(g.stack.indexOf("\n") + 1) | |
| } | |
| return e.promise = f, e.resolve = function (c) { | |
| b || a(k(c)) | |
| }, e.fulfill = function (c) { | |
| b || a(C(c)) | |
| }, e.reject = function (c) { | |
| b || a(B(c)) | |
| }, e.notify = function (a) { | |
| b || Z(d, function (b, c) { | |
| W(function () { | |
| c(a) | |
| }) | |
| }, void 0) | |
| }, e | |
| } | |
| function m(a) { | |
| if ("function" != typeof a) throw new TypeError("resolver must be a function."); | |
| var b = l(); | |
| try { | |
| a(b.resolve, b.reject, b.notify) | |
| } catch (c) { | |
| b.reject(c) | |
| } | |
| return b.promise | |
| } | |
| function n(a) { | |
| return m(function (b, c) { | |
| for (var d = 0, e = a.length; e > d; d++) k(a[d]).then(b, c) | |
| }) | |
| } | |
| function o(a, b, c) { | |
| void 0 === b && (b = function (a) { | |
| return B(new Error("Promise does not support operation: " + a)) | |
| }), void 0 === c && (c = function () { | |
| return { | |
| state: "unknown" | |
| } | |
| }); | |
| var d = ab(o.prototype); | |
| if (d.promiseDispatch = function (c, e, f) { | |
| var g; | |
| try { | |
| g = a[e] ? a[e].apply(d, f) : b.call(d, e, f) | |
| } catch (h) { | |
| g = B(h) | |
| } | |
| c && c(g) | |
| }, d.inspect = c, c) { | |
| var e = c(); | |
| "rejected" === e.state && (d.exception = e.reason), d.valueOf = function () { | |
| var a = c(); | |
| return "pending" === a.state || "rejected" === a.state ? d : a.value | |
| } | |
| } | |
| return d | |
| } | |
| function p(a, b, c, d) { | |
| return k(a).then(b, c, d) | |
| } | |
| function q(a) { | |
| if (r(a)) { | |
| var b = a.inspect(); | |
| if ("fulfilled" === b.state) return b.value | |
| } | |
| return a | |
| } | |
| function r(a) { | |
| return b(a) && "function" == typeof a.promiseDispatch && "function" == typeof a.inspect | |
| } | |
| function s(a) { | |
| return b(a) && "function" == typeof a.then | |
| } | |
| function t(a) { | |
| return r(a) && "pending" === a.inspect().state | |
| } | |
| function u(a) { | |
| return !r(a) || "fulfilled" === a.inspect().state | |
| } | |
| function v(a) { | |
| return r(a) && "rejected" === a.inspect().state | |
| } | |
| function w() { | |
| !ib && "undefined" != typeof window && window.console && console.warn("[Q] Unhandled rejection reasons (should be empty):", gb), ib = !0 | |
| } | |
| function x() { | |
| for (var a = 0; a < gb.length; a++) { | |
| var b = gb[a]; | |
| console.warn("Unhandled rejection reason:", b) | |
| } | |
| } | |
| function y() { | |
| gb.length = 0, hb.length = 0, ib = !1, jb || (jb = !0, "undefined" != typeof process && process.on && process.on("exit", x)) | |
| } | |
| function z(a, b) { | |
| jb && (hb.push(a), gb.push(b && "undefined" != typeof b.stack ? b.stack : "(no stack) " + b), w()) | |
| } | |
| function A(a) { | |
| if (jb) { | |
| var b = $(hb, a); - 1 !== b && (hb.splice(b, 1), gb.splice(b, 1)) | |
| } | |
| } | |
| function B(a) { | |
| var b = o({ | |
| when: function (b) { | |
| return b && A(this), b ? b(a) : this | |
| } | |
| }, function () { | |
| return this | |
| }, function () { | |
| return { | |
| state: "rejected", | |
| reason: a | |
| } | |
| }); | |
| return z(b, a), b | |
| } | |
| function C(a) { | |
| return o({ | |
| when: function () { | |
| return a | |
| }, | |
| get: function (b) { | |
| return a[b] | |
| }, | |
| set: function (b, c) { | |
| a[b] = c | |
| }, | |
| "delete": function (b) { | |
| delete a[b] | |
| }, | |
| post: function (b, c) { | |
| return null === b || void 0 === b ? a.apply(void 0, c) : a[b].apply(a, c) | |
| }, | |
| apply: function (b, c) { | |
| return a.apply(b, c) | |
| }, | |
| keys: function () { | |
| return cb(a) | |
| } | |
| }, void 0, function () { | |
| return { | |
| state: "fulfilled", | |
| value: a | |
| } | |
| }) | |
| } | |
| function D(a) { | |
| var b = l(); | |
| return W(function () { | |
| try { | |
| a.then(b.resolve, b.reject, b.notify) | |
| } catch (c) { | |
| b.reject(c) | |
| } | |
| }), b.promise | |
| } | |
| function E(a) { | |
| return o({ | |
| isDef: function () {} | |
| }, function (b, c) { | |
| return K(a, b, c) | |
| }, function () { | |
| return k(a).inspect() | |
| }) | |
| } | |
| function F(a, b, c) { | |
| return k(a).spread(b, c) | |
| } | |
| function G(a) { | |
| return function () { | |
| function b(a, b) { | |
| var g; | |
| if (eb) { | |
| try { | |
| g = d[a](b) | |
| } catch (h) { | |
| return B(h) | |
| } | |
| return g.done ? g.value : p(g.value, e, f) | |
| } | |
| try { | |
| g = d[a](b) | |
| } catch (h) { | |
| return c(h) ? h.value : B(h) | |
| } | |
| return p(g, e, f) | |
| } | |
| var d = a.apply(this, arguments), | |
| e = b.bind(b, "next"), | |
| f = b.bind(b, "throw"); | |
| return e() | |
| } | |
| } | |
| function H(a) { | |
| k.done(k.async(a)()) | |
| } | |
| function I(a) { | |
| throw new T(a) | |
| } | |
| function J(a) { | |
| return function () { | |
| return F([this, L(arguments)], function (b, c) { | |
| return a.apply(b, c) | |
| }) | |
| } | |
| } | |
| function K(a, b, c) { | |
| return k(a).dispatch(b, c) | |
| } | |
| function L(a) { | |
| return p(a, function (a) { | |
| var b = 0, | |
| c = l(); | |
| return Z(a, function (d, e, f) { | |
| var g; | |
| r(e) && "fulfilled" === (g = e.inspect()).state ? a[f] = g.value : (++b, p(e, function (d) { | |
| a[f] = d, 0 === --b && c.resolve(a) | |
| }, c.reject, function (a) { | |
| c.notify({ | |
| index: f, | |
| value: a | |
| }) | |
| })) | |
| }, void 0), 0 === b && c.resolve(a), c.promise | |
| }) | |
| } | |
| function M(a) { | |
| return p(a, function (a) { | |
| return a = _(a, k), p(L(_(a, function (a) { | |
| return p(a, V, V) | |
| })), function () { | |
| return a | |
| }) | |
| }) | |
| } | |
| function N(a) { | |
| return k(a).allSettled() | |
| } | |
| function O(a, b) { | |
| return k(a).then(void 0, void 0, b) | |
| } | |
| function P(a, b) { | |
| return k(a).nodeify(b) | |
| } | |
| var Q = !1; | |
| try { | |
| throw new Error | |
| } catch (R) { | |
| Q = !! R.stack | |
| } | |
| var S, T, U = i(), | |
| V = function () {}, W = function () { | |
| function a() { | |
| for (; b.next;) { | |
| b = b.next; | |
| var c = b.task; | |
| b.task = void 0; | |
| var e = b.domain; | |
| e && (b.domain = void 0, e.enter()); | |
| try { | |
| c() | |
| } catch (g) { | |
| if (f) throw e && e.exit(), setTimeout(a, 0), e && e.enter(), g; | |
| setTimeout(function () { | |
| throw g | |
| }, 0) | |
| } | |
| e && e.exit() | |
| } | |
| d = !1 | |
| } | |
| var b = { | |
| task: void 0, | |
| next: null | |
| }, c = b, | |
| d = !1, | |
| e = void 0, | |
| f = !1; | |
| if (W = function (a) { | |
| c = c.next = { | |
| task: a, | |
| domain: f && process.domain, | |
| next: null | |
| }, d || (d = !0, e()) | |
| }, "undefined" != typeof process && process.nextTick) f = !0, e = function () { | |
| process.nextTick(a) | |
| }; | |
| else if ("function" == typeof setImmediate) e = "undefined" != typeof window ? setImmediate.bind(window, a) : function () { | |
| setImmediate(a) | |
| }; | |
| else if ("undefined" != typeof MessageChannel) { | |
| var g = new MessageChannel; | |
| g.port1.onmessage = function () { | |
| e = h, g.port1.onmessage = a, a() | |
| }; | |
| var h = function () { | |
| g.port2.postMessage(0) | |
| }; | |
| e = function () { | |
| setTimeout(a, 0), h() | |
| } | |
| } else e = function () { | |
| setTimeout(a, 0) | |
| }; | |
| return W | |
| }(), | |
| X = Function.call, | |
| Y = a(Array.prototype.slice), | |
| Z = a(Array.prototype.reduce || function (a, b) { | |
| var c = 0, | |
| d = this.length; | |
| if (1 === arguments.length) | |
| for (;;) { | |
| if (c in this) { | |
| b = this[c++]; | |
| break | |
| } | |
| if (++c >= d) throw new TypeError | |
| } | |
| for (; d > c; c++) c in this && (b = a(b, this[c], c)); | |
| return b | |
| }), | |
| $ = a(Array.prototype.indexOf || function (a) { | |
| for (var b = 0; b < this.length; b++) | |
| if (this[b] === a) return b; | |
| return -1 | |
| }), | |
| _ = a(Array.prototype.map || function (a, b) { | |
| var c = this, | |
| d = []; | |
| return Z(c, function (e, f, g) { | |
| d.push(a.call(b, f, g, c)) | |
| }, void 0), d | |
| }), | |
| ab = Object.create || function (a) { | |
| function b() {} | |
| return b.prototype = a, new b | |
| }, bb = a(Object.prototype.hasOwnProperty), | |
| cb = Object.keys || function (a) { | |
| var b = []; | |
| for (var c in a) bb(a, c) && b.push(c); | |
| return b | |
| }, db = a(Object.prototype.toString); | |
| T = "undefined" != typeof ReturnValue ? ReturnValue : function (a) { | |
| this.value = a | |
| }; | |
| var eb; | |
| try { | |
| new Function("(function* (){ yield 1; })"), eb = !0 | |
| } catch (R) { | |
| eb = !1 | |
| } | |
| var fb = "From previous event:"; | |
| k.resolve = k, k.nextTick = W, k.longStackSupport = !1, k.defer = l, l.prototype.makeNodeResolver = function () { | |
| var a = this; | |
| return function (b, c) { | |
| b ? a.reject(b) : a.resolve(arguments.length > 2 ? Y(arguments, 1) : c) | |
| } | |
| }, k.promise = m, k.passByCopy = function (a) { | |
| return a | |
| }, o.prototype.passByCopy = function () { | |
| return this | |
| }, k.join = function (a, b) { | |
| return k(a).join(b) | |
| }, o.prototype.join = function (a) { | |
| return k([this, a]).spread(function (a, b) { | |
| if (a === b) return a; | |
| throw new Error("Can't join: not the same: " + a + " " + b) | |
| }) | |
| }, k.race = n, o.prototype.race = function () { | |
| return this.then(k.race) | |
| }, k.makePromise = o, o.prototype.toString = function () { | |
| return "[object Promise]" | |
| }, o.prototype.then = function (a, b, c) { | |
| function e(b) { | |
| try { | |
| return "function" == typeof a ? a(b) : b | |
| } catch (c) { | |
| return B(c) | |
| } | |
| } | |
| function f(a) { | |
| if ("function" == typeof b) { | |
| d(a, h); | |
| try { | |
| return b(a) | |
| } catch (c) { | |
| return B(c) | |
| } | |
| } | |
| return B(a) | |
| } | |
| function g(a) { | |
| return "function" == typeof c ? c(a) : a | |
| } | |
| var h = this, | |
| i = l(), | |
| j = !1; | |
| return W(function () { | |
| h.promiseDispatch(function (a) { | |
| j || (j = !0, i.resolve(e(a))) | |
| }, "when", [ | |
| function (a) { | |
| j || (j = !0, i.resolve(f(a))) | |
| } | |
| ]) | |
| }), h.promiseDispatch(void 0, "when", [void 0, | |
| function (a) { | |
| var b, c = !1; | |
| try { | |
| b = g(a) | |
| } catch (d) { | |
| if (c = !0, !k.onerror) throw d; | |
| k.onerror(d) | |
| } | |
| c || i.notify(b) | |
| } | |
| ]), i.promise | |
| }, k.when = p, o.prototype.thenResolve = function (a) { | |
| return this.then(function () { | |
| return a | |
| }) | |
| }, k.thenResolve = function (a, b) { | |
| return k(a).thenResolve(b) | |
| }, o.prototype.thenReject = function (a) { | |
| return this.then(function () { | |
| throw a | |
| }) | |
| }, k.thenReject = function (a, b) { | |
| return k(a).thenReject(b) | |
| }, k.nearer = q, k.isPromise = r, k.isPromiseAlike = s, k.isPending = t, o.prototype.isPending = function () { | |
| return "pending" === this.inspect().state | |
| }, k.isFulfilled = u, o.prototype.isFulfilled = function () { | |
| return "fulfilled" === this.inspect().state | |
| }, k.isRejected = v, o.prototype.isRejected = function () { | |
| return "rejected" === this.inspect().state | |
| }; | |
| var gb = [], | |
| hb = [], | |
| ib = !1, | |
| jb = !0; | |
| k.resetUnhandledRejections = y, k.getUnhandledReasons = function () { | |
| return gb.slice() | |
| }, k.stopUnhandledRejectionTracking = function () { | |
| y(), "undefined" != typeof process && process.on && process.removeListener("exit", x), jb = !1 | |
| }, y(), k.reject = B, k.fulfill = C, k.master = E, k.spread = F, o.prototype.spread = function (a, b) { | |
| return this.all().then(function (b) { | |
| return a.apply(void 0, b) | |
| }, b) | |
| }, k.async = G, k.spawn = H, k["return"] = I, k.promised = J, k.dispatch = K, o.prototype.dispatch = function (a, b) { | |
| var c = this, | |
| d = l(); | |
| return W(function () { | |
| c.promiseDispatch(d.resolve, a, b) | |
| }), d.promise | |
| }, k.get = function (a, b) { | |
| return k(a).dispatch("get", [b]) | |
| }, o.prototype.get = function (a) { | |
| return this.dispatch("get", [a]) | |
| }, k.set = function (a, b, c) { | |
| return k(a).dispatch("set", [b, c]) | |
| }, o.prototype.set = function (a, b) { | |
| return this.dispatch("set", [a, b]) | |
| }, k.del = k["delete"] = function (a, b) { | |
| return k(a).dispatch("delete", [b]) | |
| }, o.prototype.del = o.prototype["delete"] = function (a) { | |
| return this.dispatch("delete", [a]) | |
| }, k.mapply = k.post = function (a, b, c) { | |
| return k(a).dispatch("post", [b, c]) | |
| }, o.prototype.mapply = o.prototype.post = function (a, b) { | |
| return this.dispatch("post", [a, b]) | |
| }, k.send = k.mcall = k.invoke = function (a, b) { | |
| return k(a).dispatch("post", [b, Y(arguments, 2)]) | |
| }, o.prototype.send = o.prototype.mcall = o.prototype.invoke = function (a) { | |
| return this.dispatch("post", [a, Y(arguments, 1)]) | |
| }, k.fapply = function (a, b) { | |
| return k(a).dispatch("apply", [void 0, b]) | |
| }, o.prototype.fapply = function (a) { | |
| return this.dispatch("apply", [void 0, a]) | |
| }, k["try"] = k.fcall = function (a) { | |
| return k(a).dispatch("apply", [void 0, Y(arguments, 1)]) | |
| }, o.prototype.fcall = function () { | |
| return this.dispatch("apply", [void 0, Y(arguments)]) | |
| }, k.fbind = function (a) { | |
| var b = k(a), | |
| c = Y(arguments, 1); | |
| return function () { | |
| return b.dispatch("apply", [this, c.concat(Y(arguments))]) | |
| } | |
| }, o.prototype.fbind = function () { | |
| var a = this, | |
| b = Y(arguments); | |
| return function () { | |
| return a.dispatch("apply", [this, b.concat(Y(arguments))]) | |
| } | |
| }, k.keys = function (a) { | |
| return k(a).dispatch("keys", []) | |
| }, o.prototype.keys = function () { | |
| return this.dispatch("keys", []) | |
| }, k.all = L, o.prototype.all = function () { | |
| return L(this) | |
| }, k.allResolved = j(M, "allResolved", "allSettled"), o.prototype.allResolved = function () { | |
| return M(this) | |
| }, k.allSettled = N, o.prototype.allSettled = function () { | |
| return this.then(function (a) { | |
| return L(_(a, function (a) { | |
| function b() { | |
| return a.inspect() | |
| } | |
| return a = k(a), a.then(b, b) | |
| })) | |
| }) | |
| }, k.fail = k["catch"] = function (a, b) { | |
| return k(a).then(void 0, b) | |
| }, o.prototype.fail = o.prototype["catch"] = function (a) { | |
| return this.then(void 0, a) | |
| }, k.progress = O, o.prototype.progress = function (a) { | |
| return this.then(void 0, void 0, a) | |
| }, k.fin = k["finally"] = function (a, b) { | |
| return k(a)["finally"](b) | |
| }, o.prototype.fin = o.prototype["finally"] = function (a) { | |
| return a = k(a), this.then(function (b) { | |
| return a.fcall().then(function () { | |
| return b | |
| }) | |
| }, function (b) { | |
| return a.fcall().then(function () { | |
| throw b | |
| }) | |
| }) | |
| }, k.done = function (a, b, c, d) { | |
| return k(a).done(b, c, d) | |
| }, o.prototype.done = function (a, b, c) { | |
| var e = function (a) { | |
| W(function () { | |
| if (d(a, f), !k.onerror) throw a; | |
| k.onerror(a) | |
| }) | |
| }, f = a || b || c ? this.then(a, b, c) : this; | |
| "object" == typeof process && process && process.domain && (e = process.domain.bind(e)), f.then(void 0, e) | |
| }, k.timeout = function (a, b, c) { | |
| return k(a).timeout(b, c) | |
| }, o.prototype.timeout = function (a, b) { | |
| var c = l(), | |
| d = setTimeout(function () { | |
| c.reject(new Error(b || "Timed out after " + a + " ms")) | |
| }, a); | |
| return this.then(function (a) { | |
| clearTimeout(d), c.resolve(a) | |
| }, function (a) { | |
| clearTimeout(d), c.reject(a) | |
| }, c.notify), c.promise | |
| }, k.delay = function (a, b) { | |
| return void 0 === b && (b = a, a = void 0), k(a).delay(b) | |
| }, o.prototype.delay = function (a) { | |
| return this.then(function (b) { | |
| var c = l(); | |
| return setTimeout(function () { | |
| c.resolve(b) | |
| }, a), c.promise | |
| }) | |
| }, k.nfapply = function (a, b) { | |
| return k(a).nfapply(b) | |
| }, o.prototype.nfapply = function (a) { | |
| var b = l(), | |
| c = Y(a); | |
| return c.push(b.makeNodeResolver()), this.fapply(c).fail(b.reject), b.promise | |
| }, k.nfcall = function (a) { | |
| var b = Y(arguments, 1); | |
| return k(a).nfapply(b) | |
| }, o.prototype.nfcall = function () { | |
| var a = Y(arguments), | |
| b = l(); | |
| return a.push(b.makeNodeResolver()), this.fapply(a).fail(b.reject), b.promise | |
| }, k.nfbind = k.denodeify = function (a) { | |
| var b = Y(arguments, 1); | |
| return function () { | |
| var c = b.concat(Y(arguments)), | |
| d = l(); | |
| return c.push(d.makeNodeResolver()), k(a).fapply(c).fail(d.reject), d.promise | |
| } | |
| }, o.prototype.nfbind = o.prototype.denodeify = function () { | |
| var a = Y(arguments); | |
| return a.unshift(this), k.denodeify.apply(void 0, a) | |
| }, k.nbind = function (a, b) { | |
| var c = Y(arguments, 2); | |
| return function () { | |
| function d() { | |
| return a.apply(b, arguments) | |
| } | |
| var e = c.concat(Y(arguments)), | |
| f = l(); | |
| return e.push(f.makeNodeResolver()), k(d).fapply(e).fail(f.reject), f.promise | |
| } | |
| }, o.prototype.nbind = function () { | |
| var a = Y(arguments, 0); | |
| return a.unshift(this), k.nbind.apply(void 0, a) | |
| }, k.nmapply = k.npost = function (a, b, c) { | |
| return k(a).npost(b, c) | |
| }, o.prototype.nmapply = o.prototype.npost = function (a, b) { | |
| var c = Y(b || []), | |
| d = l(); | |
| return c.push(d.makeNodeResolver()), this.dispatch("post", [a, c]).fail(d.reject), d.promise | |
| }, k.nsend = k.nmcall = k.ninvoke = function (a, b) { | |
| var c = Y(arguments, 2), | |
| d = l(); | |
| return c.push(d.makeNodeResolver()), k(a).dispatch("post", [b, c]).fail(d.reject), d.promise | |
| }, o.prototype.nsend = o.prototype.nmcall = o.prototype.ninvoke = function (a) { | |
| var b = Y(arguments, 1), | |
| c = l(); | |
| return b.push(c.makeNodeResolver()), this.dispatch("post", [a, b]).fail(c.reject), c.promise | |
| }, k.nodeify = P, o.prototype.nodeify = function (a) { | |
| return a ? void this.then(function (b) { | |
| W(function () { | |
| a(null, b) | |
| }) | |
| }, function (b) { | |
| W(function () { | |
| a(b) | |
| }) | |
| }) : this | |
| }; | |
| var kb = i(); | |
| return k | |
| }), c.stopUnhandledRejectionTracking(), b.utils = function () { | |
| function a(a) { | |
| return x.hasOwnProperty(a) ? x[a] : x.unknown | |
| } | |
| function d(a, b) { | |
| var c = !1, | |
| d = a || navigator.appName, | |
| e = b || navigator.userAgent, | |
| f = new RegExp("MSIE ([0-9]{1,}[\\.0-9]{0,})"); | |
| return "Microsoft Internet Explorer" === d && null !== f.exec(e) && (c = parseFloat(RegExp.$1)), c | |
| } | |
| function e(a) { | |
| return "[object Date]" === Object.prototype.toString.call(a) || a instanceof Date | |
| } | |
| function f(a) { | |
| return "[object Array]" === Object.prototype.toString.call(a) | |
| } | |
| function g(a) { | |
| return !!a && "[object Object]" === Object.prototype.toString.call(a) | |
| } | |
| function h(a, b) { | |
| return l(a, b) > -1 | |
| } | |
| function i(a, b, c) { | |
| return a ? void("object" == typeof window.attachEvent ? a.attachEvent("on" + b, c) : a.addEventListener(b, c, !1)) : !1 | |
| } | |
| function j(a, b, c) { | |
| "object" == typeof window.detachEvent ? a.detachEvent("on" + b, c) : a.removeEventListener(b, c, !1) | |
| } | |
| function k(a, b, c) { | |
| var d, e, f = c ? b : b.slice(0), | |
| g = /\{\}/; | |
| return f.length ? (e = f.shift(), d = a.replace(g, e), k(d, f, !0)) : a | |
| } | |
| function l(a, b, c) { | |
| var d, e = 0; | |
| if (!a) return -1; | |
| if (d = a.length, Array.prototype.indexOf && a.indexOf === Array.prototype.indexOf) return a.indexOf(b, c); | |
| for ("number" == typeof c && (e = 0 > c ? Math.max(0, d + c) : c); d > e; e++) | |
| if (a[e] === b) return e; | |
| return -1 | |
| } | |
| function m(a, b) { | |
| var c; | |
| if (g(a)) | |
| for (var d in a) | |
| if (a.hasOwnProperty(d) && (c = b.call(a[d], d, a[d]), c === !1)) break; | |
| if (f(a)) | |
| for (var e = 0, h = a.length; h > e && (c = b.call(a[e], e, a[e]), c !== !1); e++); | |
| return a | |
| } | |
| function n(a, b) { | |
| var d, e = !1, | |
| f = c.defer(); | |
| if (document.getElementById(a)) return f.reject(new Error("iFrame with that ID already exists.")), f.promise; | |
| if (y) { | |
| var g = "", | |
| h = document.createElement("div"); | |
| g += "<iframe ", g += 'name="' + a + '" ', g += 'id="' + a + '" ', g += 'src="' + b + '" ', g += 'style="display: none;"></iframe>', h.innerHTML = g, document.body && document.body.appendChild(h), d = document.getElementById(a) | |
| } else d = document.createElement("iframe"), d.setAttribute("name", a), d.id = a, d.setAttribute("src", b), d.style.display = "none", document.body && document.body.appendChild(d); | |
| return i(d, "load", function () { | |
| e = !0, f.resolve(d) | |
| }), o(function () { | |
| return e | |
| }, 100, 20).then(function () {}, function () { | |
| f.reject() | |
| }), f.promise | |
| } | |
| function o(a, b, d) { | |
| function e() { | |
| if (g++, g > d) return h.reject(), !1; | |
| var c = a(); | |
| c ? (clearTimeout(f), h.resolve(c)) : f = setTimeout(e, b) | |
| } | |
| var f, g = 0, | |
| h = c.defer(); | |
| return e(), h.promise | |
| } | |
| function p(a) { | |
| for (var b = "", c = 0, d = "abcdefghijklmnopqrstuvwxyz0123456789".split(""), e = d.length; a > c;) b += d[Math.floor(Math.random() * e)], c++; | |
| return b | |
| } | |
| function q(a) { | |
| var c = a || window.location.search || "", | |
| d = c.replace("?", ""); | |
| return b.utils.deserialize(d) | |
| } | |
| function r(a, c) { | |
| return b.utils.getQueryParams(c)[a] | |
| } | |
| function s(a) { | |
| var c = a || window.location.hash || "", | |
| d = c.replace("#", ""); | |
| return b.utils.deserialize(d) | |
| } | |
| function t(a, c) { | |
| return b.utils.getHashParams(c)[a] | |
| } | |
| function u(a) { | |
| if ("string" != typeof a) throw new Error("Deserialize only accepts string arguments"); | |
| var c = a.split("&"), | |
| d = {}; | |
| return b.utils.each(c, function (a, b) { | |
| var c = b.split("="), | |
| e = c.length > 0 ? decodeURIComponent(c[0]) : "", | |
| f = c.length > 1 ? decodeURIComponent(c[1]) : ""; | |
| d[e] = f | |
| }), d | |
| } | |
| function v(a) { | |
| var c, d = ""; | |
| if ("string" == typeof a) d = a; | |
| else if (b.utils.isObject(a)) { | |
| for (c in a)!a.hasOwnProperty(c) || "string" != typeof a[c] && "number" != typeof a[c] || (d += "&" + encodeURIComponent(c) + "=" + encodeURIComponent(a[c])); | |
| d.length && (d = d.substring(1)) | |
| } | |
| return d.length ? d : null | |
| } | |
| function w(a, c) { | |
| var d = b.utils.serialize(c), | |
| e = a.indexOf("?") > -1 ? "&" : "?"; | |
| return d ? a + e + d : a | |
| } | |
| var x = { | |
| noToken: { | |
| requestId: "sdk", | |
| errors: [{ | |
| code: 1001, | |
| message: "There is no access token" | |
| }] | |
| }, | |
| expiredToken: { | |
| requestId: "sdk", | |
| errors: [{ | |
| code: 1002, | |
| message: "The access token expired" | |
| }] | |
| }, | |
| timeout: { | |
| requestId: "sdk", | |
| errors: [{ | |
| code: 1010, | |
| message: "Cross domain communications timed out" | |
| }] | |
| }, | |
| unknown: { | |
| requestId: "sdk", | |
| errors: [{ | |
| code: 1099, | |
| message: "undefined error" | |
| }] | |
| } | |
| }, y = d(); | |
| return { | |
| getErrorObject: a, | |
| isDate: e, | |
| isArray: f, | |
| isObject: g, | |
| inArray: h, | |
| addListener: i, | |
| removeListener: j, | |
| each: m, | |
| buildUrl: w, | |
| indexOf: l, | |
| replaceTokensInTextFromArray: k, | |
| isIE: function () { | |
| return y | |
| }, | |
| createIFrame: n, | |
| generateRandomString: p, | |
| pollCondition: o, | |
| getQueryParams: q, | |
| getQueryParam: r, | |
| getHashParams: s, | |
| getHashParam: t, | |
| deserialize: u, | |
| serialize: v | |
| } | |
| }(), b.logging = function () { | |
| function a() { | |
| if (window.console && window.console.log) { | |
| var a = Array.prototype.slice.call(arguments), | |
| c = b.utils.inArray(n, a[0]) && console[a[0]] ? a[0] : "log", | |
| d = a; | |
| (b.utils.inArray(n, c) || "debug" === a[0]) && (d = d.slice(1)), d = 1 === d.length ? d[0] : d, console[c](d) | |
| } | |
| } | |
| function c(a) { | |
| var b = {}; | |
| if (!a.length) throw { | |
| name: "InvalidArgumentError", | |
| message: "An invalid argument was passed." | |
| }; | |
| if ("string" != typeof a[0]) throw { | |
| name: "InvalidArgumentError", | |
| message: "An invalid argument was passed." | |
| }; | |
| return b.message = a.shift(), b.values = a, b | |
| } | |
| function d(a, c) { | |
| if ("string" != typeof a || "string" != typeof c) throw { | |
| name: "InvalidArgumentError", | |
| message: "An invalid argument was passed." | |
| }; | |
| switch (o.push({ | |
| level: a, | |
| message: c | |
| }), a) { | |
| case "error": | |
| b.logging.consoleLog(a, a + " - " + c); | |
| break; | |
| case "warn": | |
| b.logging.consoleLog(a, a + " - " + c); | |
| break; | |
| case "info": | |
| m && b.logging.consoleLog(a, a + " - " + c); | |
| break; | |
| case "debug": | |
| m && b.logging.consoleLog(a, a + " - " + c) | |
| } | |
| } | |
| function e() { | |
| var a = c(Array.prototype.slice.call(arguments)), | |
| d = b.utils.replaceTokensInTextFromArray(a.message, a.values); | |
| b.logging.log("error", d) | |
| } | |
| function f() { | |
| var a = c(Array.prototype.slice.call(arguments)), | |
| d = b.utils.replaceTokensInTextFromArray(a.message, a.values); | |
| b.logging.log("warn", d) | |
| } | |
| function g() { | |
| var a = c(Array.prototype.slice.call(arguments)), | |
| d = b.utils.replaceTokensInTextFromArray(a.message, a.values); | |
| b.logging.log("info", d) | |
| } | |
| function h() { | |
| var a = c(Array.prototype.slice.call(arguments)), | |
| d = b.utils.replaceTokensInTextFromArray(a.message, a.values); | |
| b.logging.log("debug", d) | |
| } | |
| function i() { | |
| return o.slice(0) | |
| } | |
| function j() { | |
| o = [] | |
| } | |
| function k(a) { | |
| m = a | |
| } | |
| function l() { | |
| return m | |
| } | |
| var m = !1, | |
| n = ["error", "warn", "info"], | |
| o = []; | |
| return { | |
| log: d, | |
| consoleLog: a, | |
| error: e, | |
| warn: f, | |
| info: g, | |
| debug: h, | |
| getHistory: i, | |
| clearHistory: j, | |
| setDebug: k, | |
| getDebug: l, | |
| parseLogArguments: c | |
| } | |
| }(), b.storage = function () { | |
| function a() { | |
| var a = "nike"; | |
| try { | |
| return localStorage.setItem(a, a), localStorage.removeItem(a), !0 | |
| } catch (b) { | |
| return !1 | |
| } | |
| } | |
| function c() { | |
| b.logging.error("This browser does not support local storage.") | |
| } | |
| function d(a, b) { | |
| i = "", a && (i += a + "_"), b && (i += b + "_") | |
| } | |
| function e(a, b) { | |
| return h ? window.localStorage.setItem(i + a, b) : void c() | |
| } | |
| function f(a) { | |
| return h ? window.localStorage.getItem(i + a) : void c() | |
| } | |
| function g(a) { | |
| return h ? window.localStorage.removeItem(i + a) : void c() | |
| } | |
| var h = a(), | |
| i = ""; | |
| return { | |
| setSitePrefix: d, | |
| set: e, | |
| remove: g, | |
| get: f | |
| } | |
| }(), b.xhr = function () { | |
| function a() { | |
| if (window.ActiveXObject) try { | |
| return new window.ActiveXObject("Microsoft.XMLHTTP") | |
| } catch (a) {} else try { | |
| return new window.XMLHttpRequest | |
| } catch (a) {} | |
| } | |
| function d(d) { | |
| d = d && b.utils.isObject(d) ? d : {}; | |
| var e = c.defer(), | |
| f = d.url, | |
| g = d.method || "GET", | |
| h = !/^(?:GET|HEAD)$/.test(g), | |
| i = d.data && b.utils.isObject(d.data) ? d.data : {}, j = d.headers && b.utils.isObject(d.headers) ? d.headers : {}, k = "boolean" == typeof d.cache ? d.cache : !0, | |
| l = a(); | |
| return l ? (h || (k || (i._ = (new Date).getTime()), f = b.utils.buildUrl(f, i)), l.open(g, f, !0), b.utils.each(j, function (a, b) { | |
| l.setRequestHeader(a, b) | |
| }), "POST" !== g.toUpperCase() || j["Content-Type"] || l.setRequestHeader("Content-Type", "application/json; charset=UTF-8"), l.onreadystatechange = function () { | |
| 4 === l.readyState && (/^2\d\d$/.test(l.status) || 304 === l.status ? e.resolve(JSON.parse(l.responseText)) : e.reject(JSON.parse(l.responseText)), l.onreadystatechange = function () {}) | |
| }, l.send(h && b.utils.serialize(i) || null), e.promise) : void b.logging.error("This browser does not support XMLHttpRequest.") | |
| } | |
| return { | |
| send: d | |
| } | |
| }(), b.session = function () { | |
| function a(a) { | |
| if (b.utils.isObject(a)) { | |
| if (a.data.access_token && !a.data.expires_in) return void b.logging.error("Can not provide an access token without an expires_in property."); | |
| if (a.data.access_token && a.data.expires_in && isNaN(a.data.expires_in)) return void b.logging.error("Can not provide an access token with a non numeric expires_in property."); | |
| if (a.data.access_token && a.data.expires_in && parseInt(a.data.expires_in, 10) > 10800) return void b.logging.error("Can not provide an access token with an expires_in value greater than 10800 seconds."); | |
| var c, d = {}; | |
| return b.utils.each(g, function (e, f) { | |
| var g = a.data[f]; | |
| g ? ("expires_in" === f && (g = parseInt(g, 10), c = g > 10800 ? 10800 : g, b.storage.set("token_expires", 1e3 * parseInt(c, 10) + (new Date).getTime())), b.storage.set(f, g)) : b.storage.set(f, ""), d[f] = b.storage.get(f) | |
| }), a.data.state && (d.state = a.data.state), d | |
| } | |
| } | |
| function c() { | |
| var a, c = {}, d = b.session.validateToken(); | |
| switch (c.status = d, d) { | |
| case "validToken": | |
| c.authData = {}, b.utils.each(g, function (d, e) { | |
| a = b.storage.get(e), a && ("expires_in" === e ? c.authData.expires_in = parseInt(b.session.resetExpiresTime() / 1e3, 10) : c.authData[e] = a) | |
| }) | |
| } | |
| return c | |
| } | |
| function d() { | |
| if ("validToken" !== b.session.validateToken()) return !1; | |
| var a, c = parseInt(b.storage.get("token_expires"), 10), | |
| d = (new Date).getTime(); | |
| return c ? (a = c - d, b.storage.set("expires_in", a), a) : !1 | |
| } | |
| function e() { | |
| var a = b.storage.get("access_token"), | |
| c = b.storage.get("token_expires"), | |
| d = (new Date).getTime(); | |
| return a ? d > parseInt(c, 10) ? (b.session.clear(), "expiredToken") : "validToken" : "noToken" | |
| } | |
| function f() { | |
| b.utils.each(g, function (a, c) { | |
| b.storage.remove(c) | |
| }), b.storage.remove("token_expires") | |
| } | |
| var g = ["access_token", "expires_in", "profile_img_url", "token_type", "user_id"]; | |
| return { | |
| setupAuth: a, | |
| clear: f, | |
| getAuthData: c, | |
| resetExpiresTime: d, | |
| validateToken: e | |
| } | |
| }(), b.events = function () { | |
| function a() { | |
| this.listeners = {} | |
| } | |
| return a.prototype = { | |
| addListener: function (a, c) { | |
| if ("function" != typeof c) return void b.logging.warn("You did not provide a callback to subscribe to {}.", a); | |
| var d = this.listeners; | |
| "undefined" == typeof d[a] && (d[a] = []), d[a].push(c) | |
| }, | |
| removeListener: function (a, c) { | |
| var d = this.listeners; | |
| if ("undefined" === d[a] || !b.utils.isArray(d[a])) return b.logging.warn("There are no listeners registered for {}.", a), this; | |
| if ("undefined" != typeof c) { | |
| var e = b.utils.indexOf(d[a], c); | |
| e > -1 && d[a].splice(e, 1) | |
| } else delete this.listeners[a]; | |
| return this | |
| }, | |
| getListeners: function (a) { | |
| return this.listeners[a] || [] | |
| }, | |
| trigger: function (a, c) { | |
| var d = this.listeners[a] || [], | |
| e = this; | |
| b.utils.each(d, function (a, b) { | |
| "function" == typeof b && b.apply(e, c || []) | |
| }) | |
| } | |
| }, { | |
| Events: a | |
| } | |
| }(), b.internalEvents = new b.events.Events, b.externalEvents = new b.events.Events, b.auth = function () { | |
| function a(a) { | |
| var c, d = a || document.getElementsByTagName("body")[0] || document.createElement("div"), | |
| e = document.createElement("img"); | |
| e.setAttribute("src", "https://www.nike.com/profile/assets/oauth/img/nikeoauth.png"), e.setAttribute("id", "nikeoauth-button"), e.style.cursor = "pointer", b.init.getConfig("oauthPopup") ? (d.appendChild(e), b.utils.addListener(e, "click", b.auth.launch)) : (c = document.createElement("a"), c.setAttribute("href", b.auth.getOauthUrl()), c.appendChild(e), d.appendChild(c)) | |
| } | |
| function c() { | |
| var a = { | |
| client_id: b.init.getConfig("client_id"), | |
| response_type: b.init.getConfig("response_type") | |
| }; | |
| return b.init.getConfig("redirect_uri") && (a.redirect_uri = b.init.getConfig("redirect_uri")), b.init.getConfig("state") && (a.state = b.init.getConfig("state")), b.init.getConfig("locale") && (a.locale = b.init.getConfig("locale")), b.utils.buildUrl(b.init.getConfig("oauthEndpoint"), a) | |
| } | |
| function d() { | |
| var a = b.utils.getHashParams(); | |
| return a && a.error && a.errorDescription && "token" === b.init.getConfig("response_type") ? "error" : a && a.access_token && "token" === b.init.getConfig("response_type") ? "success" : null | |
| } | |
| function e() { | |
| var a = b.auth.getOauthUrl(), | |
| c = window.open(a, "nikeoauth", "status=1,width=664,height=750,scrollbars=1"); | |
| return c | |
| } | |
| function f() { | |
| b.xdcomms.send({ | |
| action: "logout" | |
| }) | |
| } | |
| function g(a) { | |
| a = "function" == typeof a ? a : function () {}, b.xdcomms.send({ | |
| action: "getAuthData", | |
| callback: a | |
| }) | |
| } | |
| function h(a, c) { | |
| c = "function" == typeof c ? c : function () {}, b.xdcomms.send({ | |
| action: "setupAuth", | |
| data: a, | |
| callback: c | |
| }) | |
| } | |
| function i() { | |
| var a = b.utils.getHashParams(); | |
| b.xdcomms.send({ | |
| action: "setupAuth", | |
| data: a, | |
| callback: b.init.getConfig("authSuccess") | |
| }) | |
| } | |
| function j() { | |
| var a = b.utils.getHashParams(); | |
| b.init.getConfig("authError")(a) | |
| } | |
| function k(a) { | |
| switch (a) { | |
| case "noToken": | |
| b.externalEvents.trigger("auth.noToken", [{ | |
| reason: "no token" | |
| }]); | |
| break; | |
| case "expiredToken": | |
| b.externalEvents.trigger("auth.expiredToken"), b.externalEvents.trigger("auth.noToken", [{ | |
| reason: "expired token" | |
| }]) | |
| } | |
| } | |
| return { | |
| launch: e, | |
| login: a, | |
| logout: f, | |
| getOauthRedirect: d, | |
| getOauthUrl: c, | |
| getAuthData: g, | |
| setAuthData: h, | |
| finishSuccessfulAuth: i, | |
| finishErrorAuth: j, | |
| fireNoTokenEvents: k | |
| } | |
| }(), b.xdcomms = function () { | |
| function a(a, c) { | |
| r = a, "sender" === a && (b.utils.addListener(window, "message", b.xdcomms.senderMessageHandler), t = c, t || b.logging.error("Cross domain communications are not set up correctly.")), "receiver" === a && b.utils.addListener(window, "message", b.xdcomms.receiverMessageHandler) | |
| } | |
| function d() { | |
| return r | |
| } | |
| function e(a) { | |
| return 0 === a.indexOf(u) | |
| } | |
| function f(a) { | |
| return JSON.parse(a.replace(u, "")) | |
| } | |
| function g(a, b, c) { | |
| var d = { | |
| action: a, | |
| messageId: b, | |
| data: c | |
| }; | |
| return u + JSON.stringify(d) | |
| } | |
| function h(a) { | |
| var c, d, e = a.messageId || b.utils.generateRandomString(40); | |
| c = b.utils.isObject(a.data) ? a.data : {}, c.clientIdPrefix = b.init.getConfig("client_id"), c.sitePrefix = b.init.getConfig("sitePrefix"), d = b.xdcomms.createMessage(a.action, e, c), b.xdcomms.establishCommunications().then(function () { | |
| b.xdcomms.postMessage(t.contentWindow, d, b.init.getConfig("xdCommDomain")), b.utils.pollCondition(function () { | |
| return b.xdcomms.getResponse(e) | |
| }, 100, 200).then(function (b) { | |
| b.apiError ? (delete b.apiError, "function" == typeof a.error && a.error(b)) : "function" == typeof a.callback && a.callback(b) | |
| }, function () { | |
| "function" == typeof a.error && a.error(b.utils.getErrorObject("timeout")) | |
| }) | |
| }, function () { | |
| b.logging.error("SDK communication failed.") | |
| }) | |
| } | |
| function i(a) { | |
| var c = a.data; | |
| e(c) && (c = f(c), c && b.xdcomms.processMessageResponse(c).then(function (a) { | |
| b.xdcomms.setResponse(c.messageId, a) | |
| }, function () {})) | |
| } | |
| function j(a) { | |
| var d = c.defer(); | |
| switch (a.action) { | |
| case "apiCall": | |
| d.resolve(a.data), b.externalEvents.trigger("api.response", [a.data]); | |
| break; | |
| case "apiCall_error": | |
| b.externalEvents.trigger("api.error", [a.data]), a.data.error && b.auth.fireNoTokenEvents(a.data.error), a.data.apiError = !0, d.resolve(a.data); | |
| break; | |
| case "setupSDK": | |
| b.xdcomms.setSDKReady(), d.resolve(a); | |
| break; | |
| case "setupAuth": | |
| d.resolve(a.data); | |
| break; | |
| case "logout": | |
| b.externalEvents.trigger("auth.logout"), d.resolve(a); | |
| break; | |
| case "getAuthData": | |
| b.auth.fireNoTokenEvents(a.data.status), d.resolve(a.data); | |
| break; | |
| default: | |
| d.reject(new Error("unrecognized action")) | |
| } | |
| return d.promise | |
| } | |
| function k(a) { | |
| var c = a.data, | |
| d = b.utils.isIE(); | |
| e(c) && (c = f(c), c && b.xdcomms.processReceivedMessage(c).then(function (c) { | |
| var e = b.xdcomms.createMessage(c.action, c.messageId, c.data); | |
| d && 9 > d ? b.xdcomms.postMessage(window.parent, e, "*") : b.xdcomms.postMessage(a.source, e, a.origin) | |
| }, function (c) { | |
| var e = b.xdcomms.createMessage(c.action + "_error", c.messageId, c.data); | |
| d && 9 > d ? b.xdcomms.postMessage(window.parent, e, "*") : b.xdcomms.postMessage(a.source, e, a.origin) | |
| })) | |
| } | |
| function l(a) { | |
| var d = c.defer(), | |
| e = { | |
| action: a.action, | |
| messageId: a.messageId | |
| }; | |
| switch (a.data && (a.data.clientIdPrefix || a.data.sitePrefix) && b.storage.setSitePrefix(a.data.sitePrefix, a.data.clientIdPrefix), a.action) { | |
| case "apiCall": | |
| b.api.request(a.data).then(function (a) { | |
| e.data = a, d.resolve(e) | |
| }, function (a) { | |
| e.data = a, d.reject(e) | |
| }); | |
| break; | |
| case "setupSDK": | |
| b.logging.setDebug(a.data.debug), d.resolve(a); | |
| break; | |
| case "setupAuth": | |
| e.data = b.session.setupAuth(a), d.resolve(e); | |
| break; | |
| case "logout": | |
| e.data = b.session.clear(), d.resolve(e); | |
| break; | |
| case "getAuthData": | |
| e.data = b.session.getAuthData(), d.resolve(e); | |
| break; | |
| default: | |
| d.reject(new Error("unrecognized action")) | |
| } | |
| return d.promise | |
| } | |
| function m(a, b, c) { | |
| window.setTimeout(function () { | |
| a.postMessage(b, c) | |
| }, 0) | |
| } | |
| function n() { | |
| return b.utils.pollCondition(function () { | |
| if (s) return s; | |
| if (t) { | |
| var a = b.utils.generateRandomString(40), | |
| c = g("setupSDK", a, { | |
| debug: b.init.getConfig("debug") | |
| }); | |
| b.xdcomms.postMessage(t.contentWindow, c, b.init.getConfig("xdCommDomain")) | |
| } | |
| return s | |
| }, 100, 20) | |
| } | |
| function o(a) { | |
| "dev" === b.environment && "undefined" != typeof a ? s = a : s || (s = !0) | |
| } | |
| function p(a) { | |
| return v[a] | |
| } | |
| function q(a, b) { | |
| v[a] = b | |
| } | |
| var r, s, t, u = "NIKEPLUSJSSDK:", | |
| v = {}; | |
| return { | |
| setSDKReady: o, | |
| getResponse: p, | |
| setResponse: q, | |
| setCommRole: a, | |
| getCommRole: d, | |
| send: h, | |
| senderMessageHandler: i, | |
| receiverMessageHandler: k, | |
| validateMessage: e, | |
| createMessage: g, | |
| parseMessage: f, | |
| processMessageResponse: j, | |
| processReceivedMessage: l, | |
| postMessage: m, | |
| establishCommunications: n | |
| } | |
| }(), b.api = function () { | |
| function a(a, c) { | |
| var d, e, f, g = ["method", "cache"]; | |
| c = b.utils.isObject(c) ? c : {}, f = b.utils.isObject(c.data) ? c.data : {}, f.endpoint = a, b.utils.each(g, function (a, b) { | |
| "undefined" != typeof c[b] && (f[b] = c[b]) | |
| }), e = "function" == typeof c.success ? c.success : function () {}, d = "function" == typeof c.error ? c.error : function () {}, b.xdcomms.send({ | |
| action: "apiCall", | |
| data: f, | |
| callback: e, | |
| error: d | |
| }) | |
| } | |
| function d(a) { | |
| var d = a.endpoint, | |
| e = ["clientIdPrefix", "endpoint", "method", "sitePrefix", "cache", "access_token"], | |
| f = a.method || "GET", | |
| g = "boolean" == typeof a.cache ? a.cache : !0, | |
| h = c.defer(), | |
| i = b.session.validateToken(); | |
| switch (i) { | |
| case "noToken": | |
| h.reject(b.utils.getErrorObject("noToken")); | |
| break; | |
| case "expiredToken": | |
| h.reject(b.utils.getErrorObject("expiredToken")); | |
| break; | |
| case "validToken": | |
| b.utils.each(e, function (b, c) { | |
| "undefined" != typeof a[c] && delete a[c] | |
| }), a.access_token = b.storage.get("access_token"), b.xhr.send({ | |
| url: d, | |
| cache: g, | |
| data: a, | |
| method: f, | |
| headers: { | |
| Accept: "application/json" | |
| } | |
| }).then(h.resolve, h.reject) | |
| } | |
| return h.promise | |
| } | |
| return { | |
| request: d, | |
| api: a | |
| } | |
| }(), b.sdkinit = function () { | |
| function a() { | |
| b.xdcomms.setCommRole("receiver") | |
| } | |
| return { | |
| handleDOMReady: a | |
| } | |
| }(), b.init = function () { | |
| function a(a) { | |
| var c = a || {}, d = !0; | |
| return b.environment = c.environment && "dev" === c.environment ? "dev" : "prod", c.mode && "receiver" === c.mode ? void b.sdkinit.handleDOMReady() : (b.utils.each(i, function (a, e) { | |
| j[a] = e.devOnlyChange ? "dev" === b.environment && c[a] ? c[a] : e.value : c[a] || e.value, "" === j[a] && e.required && (b.logging.error("Please enter a value for the {} setting.", a), d = !1), e.type && typeof j[a] !== e.type && b.logging.warn("The {} setting has a type of {}, but it should be a {}.", a, typeof j[a], e.type) | |
| }), void(d && (b.logging.setDebug(j.debug), b.utils.createIFrame("nike_jssdk_xdm", j.sdkFrameUrl).then(function (a) { | |
| j.commIFrameLoaded = !0, h = a, b.xdcomms.setCommRole("sender", h) | |
| }), b.logging.debug("API Init has succeeded with the following config: {}", JSON.stringify(j))))) | |
| } | |
| function c() { | |
| "undefined" != typeof window.nikeplusSDKAsyncInit && setTimeout(function () { | |
| window.nikeplusSDKAsyncInit(); | |
| var a = b.auth.getOauthRedirect(); | |
| switch (a) { | |
| case "success": | |
| b.auth.finishSuccessfulAuth(); | |
| break; | |
| case "error": | |
| b.auth.finishErrorAuth() | |
| } | |
| }, 0) | |
| } | |
| function d(a) { | |
| return j[a] | |
| } | |
| function e(a, b) { | |
| j[a] = b | |
| } | |
| function f() { | |
| b.utils.removeListener(document, "DOMContentLoaded", f), b.utils.removeListener(window, "load", f), c() | |
| } | |
| function g() { | |
| "complete" === document.readyState ? c() : (b.utils.addListener(document, "DOMContentLoaded", f), b.utils.addListener(window, "load", f)) | |
| } | |
| var h, i = { | |
| sitePrefix: { | |
| value: "" | |
| }, | |
| client_id: { | |
| value: "", | |
| required: !0 | |
| }, | |
| locale: { | |
| value: "en_US", | |
| required: !0 | |
| }, | |
| oauthEndpoint: { | |
| value: "https://api.nike.com/oauth/2.0/authorize", | |
| devOnlyChange: !0 | |
| }, | |
| sdkFrameUrl: { | |
| value: "https://api.nike.com/nikeplus/js/v2/iframe.html", | |
| devOnlyChange: !0 | |
| }, | |
| xdCommDomain: { | |
| value: "https://api.nike.com", | |
| devOnlyChange: !0 | |
| }, | |
| debug: { | |
| value: !1, | |
| type: "boolean", | |
| devOnlyChange: !0 | |
| }, | |
| oauthPopup: { | |
| value: !1 | |
| }, | |
| state: { | |
| value: "" | |
| }, | |
| response_type: { | |
| value: "token" | |
| }, | |
| redirect_uri: { | |
| value: "", | |
| required: !0 | |
| }, | |
| authSuccess: { | |
| value: function () {}, | |
| type: "function" | |
| }, | |
| authError: { | |
| value: function () {}, | |
| type: "function" | |
| } | |
| }, j = {}; | |
| return { | |
| init: a, | |
| getConfig: d, | |
| setConfig: e, | |
| handleDOMReady: g | |
| } | |
| }(), b.init.handleDOMReady(), a.api = function (a, c) { | |
| b.api.api(a, c) | |
| }, a.login = function (a) { | |
| b.auth.login(a) | |
| }, a.logout = function () { | |
| b.auth.logout() | |
| }, a.getAuthData = function (a) { | |
| b.auth.getAuthData(a) | |
| }, a.setAuthData = function (a, c) { | |
| b.auth.setAuthData(a, c) | |
| }, a.events = { | |
| subscribe: function (a, c) { | |
| b.externalEvents.addListener(a, c) | |
| }, | |
| unsubscribe: function (a, c) { | |
| b.externalEvents.removeListener(a, c) | |
| } | |
| }, a.init = function (a) { | |
| b.init.init(a) | |
| } | |
| }(NIKEPLUS); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment