")
+ .append(b.parseHTML(e))
+ .find(i)
+ : e
+ );
+ })
+ .complete(
+ r &&
+ function(e, t) {
+ s.each(r, o || [e.responseText, t, e]);
+ }
+ ),
+ this
+ );
+ }),
+ b.each(
+ [
+ "ajaxStart",
+ "ajaxStop",
+ "ajaxComplete",
+ "ajaxError",
+ "ajaxSuccess",
+ "ajaxSend"
+ ],
+ function(e, t) {
+ b.fn[t] = function(e) {
+ return this.on(t, e);
+ };
+ }
+ ),
+ b.each(["get", "post"], function(e, n) {
+ b[n] = function(e, r, i, o) {
+ return (
+ b.isFunction(r) && ((o = o || i), (i = r), (r = t)),
+ b.ajax({ url: e, type: n, dataType: o, data: r, success: i })
+ );
+ };
+ }),
+ b.extend({
+ active: 0,
+ lastModified: {},
+ etag: {},
+ ajaxSettings: {
+ url: yn,
+ type: "GET",
+ isLocal: Nn.test(mn[1]),
+ global: !0,
+ processData: !0,
+ async: !0,
+ contentType: "application/x-www-form-urlencoded; charset=UTF-8",
+ accepts: {
+ "*": Dn,
+ text: "text/plain",
+ html: "text/html",
+ xml: "application/xml, text/xml",
+ json: "application/json, text/javascript"
+ },
+ contents: { xml: /xml/, html: /html/, json: /json/ },
+ responseFields: { xml: "responseXML", text: "responseText" },
+ converters: {
+ "* text": e.String,
+ "text html": !0,
+ "text json": b.parseJSON,
+ "text xml": b.parseXML
+ },
+ flatOptions: { url: !0, context: !0 }
+ },
+ ajaxSetup: function(e, t) {
+ return t ? Mn(Mn(e, b.ajaxSettings), t) : Mn(b.ajaxSettings, e);
+ },
+ ajaxPrefilter: Hn(An),
+ ajaxTransport: Hn(jn),
+ ajax: function(e, n) {
+ "object" == typeof e && ((n = e), (e = t)), (n = n || {});
+ var r,
+ i,
+ o,
+ a,
+ s,
+ u,
+ l,
+ c,
+ p = b.ajaxSetup({}, n),
+ f = p.context || p,
+ d = p.context && (f.nodeType || f.jquery) ? b(f) : b.event,
+ h = b.Deferred(),
+ g = b.Callbacks("once memory"),
+ m = p.statusCode || {},
+ y = {},
+ v = {},
+ x = 0,
+ T = "canceled",
+ N = {
+ readyState: 0,
+ getResponseHeader: function(e) {
+ var t;
+ if (2 === x) {
+ if (!c) {
+ c = {};
+ while ((t = Tn.exec(a))) c[t[1].toLowerCase()] = t[2];
+ }
+ t = c[e.toLowerCase()];
+ }
+ return null == t ? null : t;
+ },
+ getAllResponseHeaders: function() {
+ return 2 === x ? a : null;
+ },
+ setRequestHeader: function(e, t) {
+ var n = e.toLowerCase();
+ return x || ((e = v[n] = v[n] || e), (y[e] = t)), this;
+ },
+ overrideMimeType: function(e) {
+ return x || (p.mimeType = e), this;
+ },
+ statusCode: function(e) {
+ var t;
+ if (e)
+ if (2 > x) for (t in e) m[t] = [m[t], e[t]];
+ else N.always(e[N.status]);
+ return this;
+ },
+ abort: function(e) {
+ var t = e || T;
+ return l && l.abort(t), k(0, t), this;
+ }
+ };
+ if (
+ ((h.promise(N).complete = g.add),
+ (N.success = N.done),
+ (N.error = N.fail),
+ (p.url = ((e || p.url || yn) + "")
+ .replace(xn, "")
+ .replace(kn, mn[1] + "//")),
+ (p.type = n.method || n.type || p.method || p.type),
+ (p.dataTypes = b
+ .trim(p.dataType || "*")
+ .toLowerCase()
+ .match(w) || [""]),
+ null == p.crossDomain &&
+ ((r = En.exec(p.url.toLowerCase())),
+ (p.crossDomain = !(
+ !r ||
+ (r[1] === mn[1] &&
+ r[2] === mn[2] &&
+ (r[3] || ("http:" === r[1] ? 80 : 443)) ==
+ (mn[3] || ("http:" === mn[1] ? 80 : 443)))
+ ))),
+ p.data &&
+ p.processData &&
+ "string" != typeof p.data &&
+ (p.data = b.param(p.data, p.traditional)),
+ qn(An, p, n, N),
+ 2 === x)
+ )
+ return N;
+ (u = p.global),
+ u && 0 === b.active++ && b.event.trigger("ajaxStart"),
+ (p.type = p.type.toUpperCase()),
+ (p.hasContent = !Cn.test(p.type)),
+ (o = p.url),
+ p.hasContent ||
+ (p.data &&
+ ((o = p.url += (bn.test(o) ? "&" : "?") + p.data), delete p.data),
+ p.cache === !1 &&
+ (p.url = wn.test(o)
+ ? o.replace(wn, "$1_=" + vn++)
+ : o + (bn.test(o) ? "&" : "?") + "_=" + vn++)),
+ p.ifModified &&
+ (b.lastModified[o] &&
+ N.setRequestHeader("If-Modified-Since", b.lastModified[o]),
+ b.etag[o] && N.setRequestHeader("If-None-Match", b.etag[o])),
+ ((p.data && p.hasContent && p.contentType !== !1) || n.contentType) &&
+ N.setRequestHeader("Content-Type", p.contentType),
+ N.setRequestHeader(
+ "Accept",
+ p.dataTypes[0] && p.accepts[p.dataTypes[0]]
+ ? p.accepts[p.dataTypes[0]] +
+ ("*" !== p.dataTypes[0] ? ", " + Dn + "; q=0.01" : "")
+ : p.accepts["*"]
+ );
+ for (i in p.headers) N.setRequestHeader(i, p.headers[i]);
+ if (p.beforeSend && (p.beforeSend.call(f, N, p) === !1 || 2 === x))
+ return N.abort();
+ T = "abort";
+ for (i in { success: 1, error: 1, complete: 1 }) N[i](p[i]);
+ if ((l = qn(jn, p, n, N))) {
+ (N.readyState = 1),
+ u && d.trigger("ajaxSend", [N, p]),
+ p.async &&
+ p.timeout > 0 &&
+ (s = setTimeout(function() {
+ N.abort("timeout");
+ }, p.timeout));
+ try {
+ (x = 1), l.send(y, k);
+ } catch (C) {
+ if (!(2 > x)) throw C;
+ k(-1, C);
+ }
+ } else k(-1, "No Transport");
+ function k(e, n, r, i) {
+ var c,
+ y,
+ v,
+ w,
+ T,
+ C = n;
+ 2 !== x &&
+ ((x = 2),
+ s && clearTimeout(s),
+ (l = t),
+ (a = i || ""),
+ (N.readyState = e > 0 ? 4 : 0),
+ r && (w = _n(p, N, r)),
+ (e >= 200 && 300 > e) || 304 === e
+ ? (p.ifModified &&
+ ((T = N.getResponseHeader("Last-Modified")),
+ T && (b.lastModified[o] = T),
+ (T = N.getResponseHeader("etag")),
+ T && (b.etag[o] = T)),
+ 204 === e
+ ? ((c = !0), (C = "nocontent"))
+ : 304 === e
+ ? ((c = !0), (C = "notmodified"))
+ : ((c = Fn(p, w)),
+ (C = c.state),
+ (y = c.data),
+ (v = c.error),
+ (c = !v)))
+ : ((v = C), (e || !C) && ((C = "error"), 0 > e && (e = 0))),
+ (N.status = e),
+ (N.statusText = (n || C) + ""),
+ c ? h.resolveWith(f, [y, C, N]) : h.rejectWith(f, [N, C, v]),
+ N.statusCode(m),
+ (m = t),
+ u && d.trigger(c ? "ajaxSuccess" : "ajaxError", [N, p, c ? y : v]),
+ g.fireWith(f, [N, C]),
+ u &&
+ (d.trigger("ajaxComplete", [N, p]),
+ --b.active || b.event.trigger("ajaxStop")));
+ }
+ return N;
+ },
+ getScript: function(e, n) {
+ return b.get(e, t, n, "script");
+ },
+ getJSON: function(e, t, n) {
+ return b.get(e, t, n, "json");
+ }
+ });
+ function _n(e, n, r) {
+ var i,
+ o,
+ a,
+ s,
+ u = e.contents,
+ l = e.dataTypes,
+ c = e.responseFields;
+ for (s in c) s in r && (n[c[s]] = r[s]);
+ while ("*" === l[0])
+ l.shift(),
+ o === t && (o = e.mimeType || n.getResponseHeader("Content-Type"));
+ if (o)
+ for (s in u)
+ if (u[s] && u[s].test(o)) {
+ l.unshift(s);
+ break;
+ }
+ if (l[0] in r) a = l[0];
+ else {
+ for (s in r) {
+ if (!l[0] || e.converters[s + " " + l[0]]) {
+ a = s;
+ break;
+ }
+ i || (i = s);
+ }
+ a = a || i;
+ }
+ return a ? (a !== l[0] && l.unshift(a), r[a]) : t;
+ }
+ function Fn(e, t) {
+ var n,
+ r,
+ i,
+ o,
+ a = {},
+ s = 0,
+ u = e.dataTypes.slice(),
+ l = u[0];
+ if ((e.dataFilter && (t = e.dataFilter(t, e.dataType)), u[1]))
+ for (i in e.converters) a[i.toLowerCase()] = e.converters[i];
+ for (; (r = u[++s]); )
+ if ("*" !== r) {
+ if ("*" !== l && l !== r) {
+ if (((i = a[l + " " + r] || a["* " + r]), !i))
+ for (n in a)
+ if (
+ ((o = n.split(" ")),
+ o[1] === r && (i = a[l + " " + o[0]] || a["* " + o[0]]))
+ ) {
+ i === !0
+ ? (i = a[n])
+ : a[n] !== !0 && ((r = o[0]), u.splice(s--, 0, r));
+ break;
+ }
+ if (i !== !0)
+ if (i && e["throws"]) t = i(t);
+ else
+ try {
+ t = i(t);
+ } catch (c) {
+ return {
+ state: "parsererror",
+ error: i ? c : "No conversion from " + l + " to " + r
+ };
+ }
+ }
+ l = r;
+ }
+ return { state: "success", data: t };
+ }
+ b.ajaxSetup({
+ accepts: {
+ script:
+ "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
+ },
+ contents: { script: /(?:java|ecma)script/ },
+ converters: {
+ "text script": function(e) {
+ return b.globalEval(e), e;
+ }
+ }
+ }),
+ b.ajaxPrefilter("script", function(e) {
+ e.cache === t && (e.cache = !1),
+ e.crossDomain && ((e.type = "GET"), (e.global = !1));
+ }),
+ b.ajaxTransport("script", function(e) {
+ if (e.crossDomain) {
+ var n,
+ r = o.head || b("head")[0] || o.documentElement;
+ return {
+ send: function(t, i) {
+ (n = o.createElement("script")),
+ (n.async = !0),
+ e.scriptCharset && (n.charset = e.scriptCharset),
+ (n.src = e.url),
+ (n.onload = n.onreadystatechange = function(e, t) {
+ (t || !n.readyState || /loaded|complete/.test(n.readyState)) &&
+ ((n.onload = n.onreadystatechange = null),
+ n.parentNode && n.parentNode.removeChild(n),
+ (n = null),
+ t || i(200, "success"));
+ }),
+ r.insertBefore(n, r.firstChild);
+ },
+ abort: function() {
+ n && n.onload(t, !0);
+ }
+ };
+ }
+ });
+ var On = [],
+ Bn = /(=)\?(?=&|$)|\?\?/;
+ b.ajaxSetup({
+ jsonp: "callback",
+ jsonpCallback: function() {
+ var e = On.pop() || b.expando + "_" + vn++;
+ return (this[e] = !0), e;
+ }
+ }),
+ b.ajaxPrefilter("json jsonp", function(n, r, i) {
+ var o,
+ a,
+ s,
+ u =
+ n.jsonp !== !1 &&
+ (Bn.test(n.url)
+ ? "url"
+ : "string" == typeof n.data &&
+ !(n.contentType || "").indexOf(
+ "application/x-www-form-urlencoded"
+ ) &&
+ Bn.test(n.data) &&
+ "data");
+ return u || "jsonp" === n.dataTypes[0]
+ ? ((o = n.jsonpCallback = b.isFunction(n.jsonpCallback)
+ ? n.jsonpCallback()
+ : n.jsonpCallback),
+ u
+ ? (n[u] = n[u].replace(Bn, "$1" + o))
+ : n.jsonp !== !1 &&
+ (n.url += (bn.test(n.url) ? "&" : "?") + n.jsonp + "=" + o),
+ (n.converters["script json"] = function() {
+ return s || b.error(o + " was not called"), s[0];
+ }),
+ (n.dataTypes[0] = "json"),
+ (a = e[o]),
+ (e[o] = function() {
+ s = arguments;
+ }),
+ i.always(function() {
+ (e[o] = a),
+ n[o] && ((n.jsonpCallback = r.jsonpCallback), On.push(o)),
+ s && b.isFunction(a) && a(s[0]),
+ (s = a = t);
+ }),
+ "script")
+ : t;
+ });
+ var Pn,
+ Rn,
+ Wn = 0,
+ $n =
+ e.ActiveXObject &&
+ function() {
+ var e;
+ for (e in Pn) Pn[e](t, !0);
+ };
+ function In() {
+ try {
+ return new e.XMLHttpRequest();
+ } catch (t) {}
+ }
+ function zn() {
+ try {
+ return new e.ActiveXObject("Microsoft.XMLHTTP");
+ } catch (t) {}
+ }
+ (b.ajaxSettings.xhr = e.ActiveXObject
+ ? function() {
+ return (!this.isLocal && In()) || zn();
+ }
+ : In),
+ (Rn = b.ajaxSettings.xhr()),
+ (b.support.cors = !!Rn && "withCredentials" in Rn),
+ (Rn = b.support.ajax = !!Rn),
+ Rn &&
+ b.ajaxTransport(function(n) {
+ if (!n.crossDomain || b.support.cors) {
+ var r;
+ return {
+ send: function(i, o) {
+ var a,
+ s,
+ u = n.xhr();
+ if (
+ (n.username
+ ? u.open(n.type, n.url, n.async, n.username, n.password)
+ : u.open(n.type, n.url, n.async),
+ n.xhrFields)
+ )
+ for (s in n.xhrFields) u[s] = n.xhrFields[s];
+ n.mimeType &&
+ u.overrideMimeType &&
+ u.overrideMimeType(n.mimeType),
+ n.crossDomain ||
+ i["X-Requested-With"] ||
+ (i["X-Requested-With"] = "XMLHttpRequest");
+ try {
+ for (s in i) u.setRequestHeader(s, i[s]);
+ } catch (l) {}
+ u.send((n.hasContent && n.data) || null),
+ (r = function(e, i) {
+ var s, l, c, p;
+ try {
+ if (r && (i || 4 === u.readyState))
+ if (
+ ((r = t),
+ a &&
+ ((u.onreadystatechange = b.noop), $n && delete Pn[a]),
+ i)
+ )
+ 4 !== u.readyState && u.abort();
+ else {
+ (p = {}),
+ (s = u.status),
+ (l = u.getAllResponseHeaders()),
+ "string" == typeof u.responseText &&
+ (p.text = u.responseText);
+ try {
+ c = u.statusText;
+ } catch (f) {
+ c = "";
+ }
+ s || !n.isLocal || n.crossDomain
+ ? 1223 === s && (s = 204)
+ : (s = p.text ? 200 : 404);
+ }
+ } catch (d) {
+ i || o(-1, d);
+ }
+ p && o(s, c, p, l);
+ }),
+ n.async
+ ? 4 === u.readyState
+ ? setTimeout(r)
+ : ((a = ++Wn),
+ $n && (Pn || ((Pn = {}), b(e).unload($n)), (Pn[a] = r)),
+ (u.onreadystatechange = r))
+ : r();
+ },
+ abort: function() {
+ r && r(t, !0);
+ }
+ };
+ }
+ });
+ var Xn,
+ Un,
+ Vn = /^(?:toggle|show|hide)$/,
+ Yn = RegExp("^(?:([+-])=|)(" + x + ")([a-z%]*)$", "i"),
+ Jn = /queueHooks$/,
+ Gn = [nr],
+ Qn = {
+ "*": [
+ function(e, t) {
+ var n,
+ r,
+ i = this.createTween(e, t),
+ o = Yn.exec(t),
+ a = i.cur(),
+ s = +a || 0,
+ u = 1,
+ l = 20;
+ if (o) {
+ if (
+ ((n = +o[2]),
+ (r = o[3] || (b.cssNumber[e] ? "" : "px")),
+ "px" !== r && s)
+ ) {
+ s = b.css(i.elem, e, !0) || n || 1;
+ do (u = u || ".5"), (s /= u), b.style(i.elem, e, s + r);
+ while (u !== (u = i.cur() / a) && 1 !== u && --l);
+ }
+ (i.unit = r),
+ (i.start = s),
+ (i.end = o[1] ? s + (o[1] + 1) * n : n);
+ }
+ return i;
+ }
+ ]
+ };
+ function Kn() {
+ return (
+ setTimeout(function() {
+ Xn = t;
+ }),
+ (Xn = b.now())
+ );
+ }
+ function Zn(e, t) {
+ b.each(t, function(t, n) {
+ var r = (Qn[t] || []).concat(Qn["*"]),
+ i = 0,
+ o = r.length;
+ for (; o > i; i++) if (r[i].call(e, t, n)) return;
+ });
+ }
+ function er(e, t, n) {
+ var r,
+ i,
+ o = 0,
+ a = Gn.length,
+ s = b.Deferred().always(function() {
+ delete u.elem;
+ }),
+ u = function() {
+ if (i) return !1;
+ var t = Xn || Kn(),
+ n = Math.max(0, l.startTime + l.duration - t),
+ r = n / l.duration || 0,
+ o = 1 - r,
+ a = 0,
+ u = l.tweens.length;
+ for (; u > a; a++) l.tweens[a].run(o);
+ return (
+ s.notifyWith(e, [l, o, n]),
+ 1 > o && u ? n : (s.resolveWith(e, [l]), !1)
+ );
+ },
+ l = s.promise({
+ elem: e,
+ props: b.extend({}, t),
+ opts: b.extend(!0, { specialEasing: {} }, n),
+ originalProperties: t,
+ originalOptions: n,
+ startTime: Xn || Kn(),
+ duration: n.duration,
+ tweens: [],
+ createTween: function(t, n) {
+ var r = b.Tween(
+ e,
+ l.opts,
+ t,
+ n,
+ l.opts.specialEasing[t] || l.opts.easing
+ );
+ return l.tweens.push(r), r;
+ },
+ stop: function(t) {
+ var n = 0,
+ r = t ? l.tweens.length : 0;
+ if (i) return this;
+ for (i = !0; r > n; n++) l.tweens[n].run(1);
+ return t ? s.resolveWith(e, [l, t]) : s.rejectWith(e, [l, t]), this;
+ }
+ }),
+ c = l.props;
+ for (tr(c, l.opts.specialEasing); a > o; o++)
+ if ((r = Gn[o].call(l, e, c, l.opts))) return r;
+ return (
+ Zn(l, c),
+ b.isFunction(l.opts.start) && l.opts.start.call(e, l),
+ b.fx.timer(b.extend(u, { elem: e, anim: l, queue: l.opts.queue })),
+ l
+ .progress(l.opts.progress)
+ .done(l.opts.done, l.opts.complete)
+ .fail(l.opts.fail)
+ .always(l.opts.always)
+ );
+ }
+ function tr(e, t) {
+ var n, r, i, o, a;
+ for (i in e)
+ if (
+ ((r = b.camelCase(i)),
+ (o = t[r]),
+ (n = e[i]),
+ b.isArray(n) && ((o = n[1]), (n = e[i] = n[0])),
+ i !== r && ((e[r] = n), delete e[i]),
+ (a = b.cssHooks[r]),
+ a && "expand" in a)
+ ) {
+ (n = a.expand(n)), delete e[r];
+ for (i in n) i in e || ((e[i] = n[i]), (t[i] = o));
+ } else t[r] = o;
+ }
+ b.Animation = b.extend(er, {
+ tweener: function(e, t) {
+ b.isFunction(e) ? ((t = e), (e = ["*"])) : (e = e.split(" "));
+ var n,
+ r = 0,
+ i = e.length;
+ for (; i > r; r++) (n = e[r]), (Qn[n] = Qn[n] || []), Qn[n].unshift(t);
+ },
+ prefilter: function(e, t) {
+ t ? Gn.unshift(e) : Gn.push(e);
+ }
+ });
+ function nr(e, t, n) {
+ var r,
+ i,
+ o,
+ a,
+ s,
+ u,
+ l,
+ c,
+ p,
+ f = this,
+ d = e.style,
+ h = {},
+ g = [],
+ m = e.nodeType && nn(e);
+ n.queue ||
+ ((c = b._queueHooks(e, "fx")),
+ null == c.unqueued &&
+ ((c.unqueued = 0),
+ (p = c.empty.fire),
+ (c.empty.fire = function() {
+ c.unqueued || p();
+ })),
+ c.unqueued++,
+ f.always(function() {
+ f.always(function() {
+ c.unqueued--, b.queue(e, "fx").length || c.empty.fire();
+ });
+ })),
+ 1 === e.nodeType &&
+ ("height" in t || "width" in t) &&
+ ((n.overflow = [d.overflow, d.overflowX, d.overflowY]),
+ "inline" === b.css(e, "display") &&
+ "none" === b.css(e, "float") &&
+ (b.support.inlineBlockNeedsLayout && "inline" !== un(e.nodeName)
+ ? (d.zoom = 1)
+ : (d.display = "inline-block"))),
+ n.overflow &&
+ ((d.overflow = "hidden"),
+ b.support.shrinkWrapBlocks ||
+ f.always(function() {
+ (d.overflow = n.overflow[0]),
+ (d.overflowX = n.overflow[1]),
+ (d.overflowY = n.overflow[2]);
+ }));
+ for (i in t)
+ if (((a = t[i]), Vn.exec(a))) {
+ if (
+ (delete t[i], (u = u || "toggle" === a), a === (m ? "hide" : "show"))
+ )
+ continue;
+ g.push(i);
+ }
+ if ((o = g.length)) {
+ (s = b._data(e, "fxshow") || b._data(e, "fxshow", {})),
+ "hidden" in s && (m = s.hidden),
+ u && (s.hidden = !m),
+ m
+ ? b(e).show()
+ : f.done(function() {
+ b(e).hide();
+ }),
+ f.done(function() {
+ var t;
+ b._removeData(e, "fxshow");
+ for (t in h) b.style(e, t, h[t]);
+ });
+ for (i = 0; o > i; i++)
+ (r = g[i]),
+ (l = f.createTween(r, m ? s[r] : 0)),
+ (h[r] = s[r] || b.style(e, r)),
+ r in s ||
+ ((s[r] = l.start),
+ m &&
+ ((l.end = l.start),
+ (l.start = "width" === r || "height" === r ? 1 : 0)));
+ }
+ }
+ function rr(e, t, n, r, i) {
+ return new rr.prototype.init(e, t, n, r, i);
+ }
+ (b.Tween = rr),
+ (rr.prototype = {
+ constructor: rr,
+ init: function(e, t, n, r, i, o) {
+ (this.elem = e),
+ (this.prop = n),
+ (this.easing = i || "swing"),
+ (this.options = t),
+ (this.start = this.now = this.cur()),
+ (this.end = r),
+ (this.unit = o || (b.cssNumber[n] ? "" : "px"));
+ },
+ cur: function() {
+ var e = rr.propHooks[this.prop];
+ return e && e.get ? e.get(this) : rr.propHooks._default.get(this);
+ },
+ run: function(e) {
+ var t,
+ n = rr.propHooks[this.prop];
+ return (
+ (this.pos = t = this.options.duration
+ ? b.easing[this.easing](
+ e,
+ this.options.duration * e,
+ 0,
+ 1,
+ this.options.duration
+ )
+ : e),
+ (this.now = (this.end - this.start) * t + this.start),
+ this.options.step &&
+ this.options.step.call(this.elem, this.now, this),
+ n && n.set ? n.set(this) : rr.propHooks._default.set(this),
+ this
+ );
+ }
+ }),
+ (rr.prototype.init.prototype = rr.prototype),
+ (rr.propHooks = {
+ _default: {
+ get: function(e) {
+ var t;
+ return null == e.elem[e.prop] ||
+ (e.elem.style && null != e.elem.style[e.prop])
+ ? ((t = b.css(e.elem, e.prop, "")), t && "auto" !== t ? t : 0)
+ : e.elem[e.prop];
+ },
+ set: function(e) {
+ b.fx.step[e.prop]
+ ? b.fx.step[e.prop](e)
+ : e.elem.style &&
+ (null != e.elem.style[b.cssProps[e.prop]] || b.cssHooks[e.prop])
+ ? b.style(e.elem, e.prop, e.now + e.unit)
+ : (e.elem[e.prop] = e.now);
+ }
+ }
+ }),
+ (rr.propHooks.scrollTop = rr.propHooks.scrollLeft = {
+ set: function(e) {
+ e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now);
+ }
+ }),
+ b.each(["toggle", "show", "hide"], function(e, t) {
+ var n = b.fn[t];
+ b.fn[t] = function(e, r, i) {
+ return null == e || "boolean" == typeof e
+ ? n.apply(this, arguments)
+ : this.animate(ir(t, !0), e, r, i);
+ };
+ }),
+ b.fn.extend({
+ fadeTo: function(e, t, n, r) {
+ return this.filter(nn)
+ .css("opacity", 0)
+ .show()
+ .end()
+ .animate({ opacity: t }, e, n, r);
+ },
+ animate: function(e, t, n, r) {
+ var i = b.isEmptyObject(e),
+ o = b.speed(t, n, r),
+ a = function() {
+ var t = er(this, b.extend({}, e), o);
+ (a.finish = function() {
+ t.stop(!0);
+ }),
+ (i || b._data(this, "finish")) && t.stop(!0);
+ };
+ return (
+ (a.finish = a),
+ i || o.queue === !1 ? this.each(a) : this.queue(o.queue, a)
+ );
+ },
+ stop: function(e, n, r) {
+ var i = function(e) {
+ var t = e.stop;
+ delete e.stop, t(r);
+ };
+ return (
+ "string" != typeof e && ((r = n), (n = e), (e = t)),
+ n && e !== !1 && this.queue(e || "fx", []),
+ this.each(function() {
+ var t = !0,
+ n = null != e && e + "queueHooks",
+ o = b.timers,
+ a = b._data(this);
+ if (n) a[n] && a[n].stop && i(a[n]);
+ else for (n in a) a[n] && a[n].stop && Jn.test(n) && i(a[n]);
+ for (n = o.length; n--; )
+ o[n].elem !== this ||
+ (null != e && o[n].queue !== e) ||
+ (o[n].anim.stop(r), (t = !1), o.splice(n, 1));
+ (t || !r) && b.dequeue(this, e);
+ })
+ );
+ },
+ finish: function(e) {
+ return (
+ e !== !1 && (e = e || "fx"),
+ this.each(function() {
+ var t,
+ n = b._data(this),
+ r = n[e + "queue"],
+ i = n[e + "queueHooks"],
+ o = b.timers,
+ a = r ? r.length : 0;
+ for (
+ n.finish = !0,
+ b.queue(this, e, []),
+ i && i.cur && i.cur.finish && i.cur.finish.call(this),
+ t = o.length;
+ t--;
+
+ )
+ o[t].elem === this &&
+ o[t].queue === e &&
+ (o[t].anim.stop(!0), o.splice(t, 1));
+ for (t = 0; a > t; t++)
+ r[t] && r[t].finish && r[t].finish.call(this);
+ delete n.finish;
+ })
+ );
+ }
+ });
+ function ir(e, t) {
+ var n,
+ r = { height: e },
+ i = 0;
+ for (t = t ? 1 : 0; 4 > i; i += 2 - t)
+ (n = Zt[i]), (r["margin" + n] = r["padding" + n] = e);
+ return t && (r.opacity = r.width = e), r;
+ }
+ b.each(
+ {
+ slideDown: ir("show"),
+ slideUp: ir("hide"),
+ slideToggle: ir("toggle"),
+ fadeIn: { opacity: "show" },
+ fadeOut: { opacity: "hide" },
+ fadeToggle: { opacity: "toggle" }
+ },
+ function(e, t) {
+ b.fn[e] = function(e, n, r) {
+ return this.animate(t, e, n, r);
+ };
+ }
+ ),
+ (b.speed = function(e, t, n) {
+ var r =
+ e && "object" == typeof e
+ ? b.extend({}, e)
+ : {
+ complete: n || (!n && t) || (b.isFunction(e) && e),
+ duration: e,
+ easing: (n && t) || (t && !b.isFunction(t) && t)
+ };
+ return (
+ (r.duration = b.fx.off
+ ? 0
+ : "number" == typeof r.duration
+ ? r.duration
+ : r.duration in b.fx.speeds
+ ? b.fx.speeds[r.duration]
+ : b.fx.speeds._default),
+ (null == r.queue || r.queue === !0) && (r.queue = "fx"),
+ (r.old = r.complete),
+ (r.complete = function() {
+ b.isFunction(r.old) && r.old.call(this),
+ r.queue && b.dequeue(this, r.queue);
+ }),
+ r
+ );
+ }),
+ (b.easing = {
+ linear: function(e) {
+ return e;
+ },
+ swing: function(e) {
+ return 0.5 - Math.cos(e * Math.PI) / 2;
+ }
+ }),
+ (b.timers = []),
+ (b.fx = rr.prototype.init),
+ (b.fx.tick = function() {
+ var e,
+ n = b.timers,
+ r = 0;
+ for (Xn = b.now(); n.length > r; r++)
+ (e = n[r]), e() || n[r] !== e || n.splice(r--, 1);
+ n.length || b.fx.stop(), (Xn = t);
+ }),
+ (b.fx.timer = function(e) {
+ e() && b.timers.push(e) && b.fx.start();
+ }),
+ (b.fx.interval = 13),
+ (b.fx.start = function() {
+ Un || (Un = setInterval(b.fx.tick, b.fx.interval));
+ }),
+ (b.fx.stop = function() {
+ clearInterval(Un), (Un = null);
+ }),
+ (b.fx.speeds = { slow: 600, fast: 200, _default: 400 }),
+ (b.fx.step = {}),
+ b.expr &&
+ b.expr.filters &&
+ (b.expr.filters.animated = function(e) {
+ return b.grep(b.timers, function(t) {
+ return e === t.elem;
+ }).length;
+ }),
+ (b.fn.offset = function(e) {
+ if (arguments.length)
+ return e === t
+ ? this
+ : this.each(function(t) {
+ b.offset.setOffset(this, e, t);
+ });
+ var n,
+ r,
+ o = { top: 0, left: 0 },
+ a = this[0],
+ s = a && a.ownerDocument;
+ if (s)
+ return (
+ (n = s.documentElement),
+ b.contains(n, a)
+ ? (typeof a.getBoundingClientRect !== i &&
+ (o = a.getBoundingClientRect()),
+ (r = or(s)),
+ {
+ top:
+ o.top + (r.pageYOffset || n.scrollTop) - (n.clientTop || 0),
+ left:
+ o.left + (r.pageXOffset || n.scrollLeft) - (n.clientLeft || 0)
+ })
+ : o
+ );
+ }),
+ (b.offset = {
+ setOffset: function(e, t, n) {
+ var r = b.css(e, "position");
+ "static" === r && (e.style.position = "relative");
+ var i = b(e),
+ o = i.offset(),
+ a = b.css(e, "top"),
+ s = b.css(e, "left"),
+ u =
+ ("absolute" === r || "fixed" === r) &&
+ b.inArray("auto", [a, s]) > -1,
+ l = {},
+ c = {},
+ p,
+ f;
+ u
+ ? ((c = i.position()), (p = c.top), (f = c.left))
+ : ((p = parseFloat(a) || 0), (f = parseFloat(s) || 0)),
+ b.isFunction(t) && (t = t.call(e, n, o)),
+ null != t.top && (l.top = t.top - o.top + p),
+ null != t.left && (l.left = t.left - o.left + f),
+ "using" in t ? t.using.call(e, l) : i.css(l);
+ }
+ }),
+ b.fn.extend({
+ position: function() {
+ if (this[0]) {
+ var e,
+ t,
+ n = { top: 0, left: 0 },
+ r = this[0];
+ return (
+ "fixed" === b.css(r, "position")
+ ? (t = r.getBoundingClientRect())
+ : ((e = this.offsetParent()),
+ (t = this.offset()),
+ b.nodeName(e[0], "html") || (n = e.offset()),
+ (n.top += b.css(e[0], "borderTopWidth", !0)),
+ (n.left += b.css(e[0], "borderLeftWidth", !0))),
+ {
+ top: t.top - n.top - b.css(r, "marginTop", !0),
+ left: t.left - n.left - b.css(r, "marginLeft", !0)
+ }
+ );
+ }
+ },
+ offsetParent: function() {
+ return this.map(function() {
+ var e = this.offsetParent || o.documentElement;
+ while (
+ e &&
+ !b.nodeName(e, "html") &&
+ "static" === b.css(e, "position")
+ )
+ e = e.offsetParent;
+ return e || o.documentElement;
+ });
+ }
+ }),
+ b.each({ scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function(
+ e,
+ n
+ ) {
+ var r = /Y/.test(n);
+ b.fn[e] = function(i) {
+ return b.access(
+ this,
+ function(e, i, o) {
+ var a = or(e);
+ return o === t
+ ? a ? (n in a ? a[n] : a.document.documentElement[i]) : e[i]
+ : (a
+ ? a.scrollTo(
+ r ? b(a).scrollLeft() : o,
+ r ? o : b(a).scrollTop()
+ )
+ : (e[i] = o),
+ t);
+ },
+ e,
+ i,
+ arguments.length,
+ null
+ );
+ };
+ });
+ function or(e) {
+ return b.isWindow(e)
+ ? e
+ : 9 === e.nodeType ? e.defaultView || e.parentWindow : !1;
+ }
+ b.each({ Height: "height", Width: "width" }, function(e, n) {
+ b.each({ padding: "inner" + e, content: n, "": "outer" + e }, function(
+ r,
+ i
+ ) {
+ b.fn[i] = function(i, o) {
+ var a = arguments.length && (r || "boolean" != typeof i),
+ s = r || (i === !0 || o === !0 ? "margin" : "border");
+ return b.access(
+ this,
+ function(n, r, i) {
+ var o;
+ return b.isWindow(n)
+ ? n.document.documentElement["client" + e]
+ : 9 === n.nodeType
+ ? ((o = n.documentElement),
+ Math.max(
+ n.body["scroll" + e],
+ o["scroll" + e],
+ n.body["offset" + e],
+ o["offset" + e],
+ o["client" + e]
+ ))
+ : i === t ? b.css(n, r, s) : b.style(n, r, i, s);
+ },
+ n,
+ a ? i : t,
+ a,
+ null
+ );
+ };
+ });
+ }),
+ (e.jQuery = e.$ = b),
+ "function" == typeof define &&
+ define.amd &&
+ define.amd.jQuery &&
+ define("jquery", [], function() {
+ return b;
+ });
+})(window);
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..e633d51
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,5150 @@
+{
+ "name": "coveo-search-ui-tests",
+ "version": "0.0.1",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "@material/animation": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/@material/animation/-/animation-0.4.1.tgz",
+ "integrity": "sha1-v4tQrtrUz/zopbQo/cqPGruvF24=",
+ "dev": true
+ },
+ "@material/base": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/@material/base/-/base-0.2.6.tgz",
+ "integrity": "sha1-MAPz3ywG0XIVHUFguMiy5sZefAE=",
+ "dev": true
+ },
+ "@material/elevation": {
+ "version": "0.1.13",
+ "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-0.1.13.tgz",
+ "integrity": "sha1-o4iF88r0OYymp0aMMIiH1wvUYFs=",
+ "dev": true,
+ "requires": {
+ "@material/animation": "0.4.1"
+ }
+ },
+ "@material/list": {
+ "version": "0.2.20",
+ "resolved": "https://registry.npmjs.org/@material/list/-/list-0.2.20.tgz",
+ "integrity": "sha1-XtSzG+OxnBrFwvRbi9iIW7VzdDQ=",
+ "dev": true,
+ "requires": {
+ "@material/ripple": "0.8.8",
+ "@material/rtl": "0.1.8",
+ "@material/theme": "0.4.0",
+ "@material/typography": "0.3.0"
+ }
+ },
+ "@material/menu": {
+ "version": "0.4.8",
+ "resolved": "https://registry.npmjs.org/@material/menu/-/menu-0.4.8.tgz",
+ "integrity": "sha1-YDtABdlpcOFUdPnSgj9MfKD1KHs=",
+ "dev": true,
+ "requires": {
+ "@material/animation": "0.4.1",
+ "@material/base": "0.2.6",
+ "@material/elevation": "0.1.13",
+ "@material/theme": "0.4.0",
+ "@material/typography": "0.3.0"
+ }
+ },
+ "@material/ripple": {
+ "version": "0.8.8",
+ "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-0.8.8.tgz",
+ "integrity": "sha1-Irie2eY4g/F/pPANEjcOMuDEWbc=",
+ "dev": true,
+ "requires": {
+ "@material/base": "0.2.6",
+ "@material/theme": "0.4.0"
+ }
+ },
+ "@material/rtl": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.1.8.tgz",
+ "integrity": "sha512-NzBobwxvhJg+dch99pVO+Z9HL1DM+esuIy5WYXgM7trfOVh8n9DkVo5vD/NKnDy6F5wCaRnJOI5T19Tev6c9Zw==",
+ "dev": true
+ },
+ "@material/select": {
+ "version": "0.3.18",
+ "resolved": "https://registry.npmjs.org/@material/select/-/select-0.3.18.tgz",
+ "integrity": "sha1-YwHePHeudJ7e7bl90ja1WzDAozI=",
+ "dev": true,
+ "requires": {
+ "@material/animation": "0.4.1",
+ "@material/base": "0.2.6",
+ "@material/list": "0.2.20",
+ "@material/menu": "0.4.8",
+ "@material/rtl": "0.1.8",
+ "@material/theme": "0.4.0",
+ "@material/typography": "0.3.0"
+ }
+ },
+ "@material/theme": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@material/theme/-/theme-0.4.0.tgz",
+ "integrity": "sha1-Cu8aAnm2XBWZBYT7i47KCVxzRkE=",
+ "dev": true
+ },
+ "@material/typography": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@material/typography/-/typography-0.3.0.tgz",
+ "integrity": "sha1-+CjC0yFb/WbFgHJwm0JgxkElOQo=",
+ "dev": true
+ },
+ "@types/detect-indent": {
+ "version": "0.1.30",
+ "resolved": "https://registry.npmjs.org/@types/detect-indent/-/detect-indent-0.1.30.tgz",
+ "integrity": "sha1-3GgrtBK05lugmOcO2tc7SDP7kQ0=",
+ "dev": true
+ },
+ "@types/glob": {
+ "version": "5.0.30",
+ "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.30.tgz",
+ "integrity": "sha1-ECZAnFYlqGiQdGAoCNCCsoZ7ilE=",
+ "dev": true,
+ "requires": {
+ "@types/minimatch": "3.0.1",
+ "@types/node": "8.0.0"
+ }
+ },
+ "@types/jasmine": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.6.0.tgz",
+ "integrity": "sha512-1ZZdFvYA5zARDXPj5+VF0bwDZWH/o0QQWJVDc5srdC/DngcCZXskR33eR/4PielGvBjLQpQOd6KiQbmtqVkeZA==",
+ "dev": true
+ },
+ "@types/minimatch": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.1.tgz",
+ "integrity": "sha512-rUO/jz10KRSyA9SHoCWQ8WX9BICyj5jZYu1/ucKEJKb4KzLZCKMURdYbadP157Q6Zl1x0vHsrU+Z/O0XlhYQDw==",
+ "dev": true
+ },
+ "@types/mkdirp": {
+ "version": "0.3.29",
+ "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.3.29.tgz",
+ "integrity": "sha1-fyrX7FX5FEgvybHsS7GuYCjUYGY=",
+ "dev": true
+ },
+ "@types/node": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-8.0.0.tgz",
+ "integrity": "sha512-j2tekvJCO7j22cs+LO6i0kRPhmQ9MXaPZ55TzOc1lzkN5b6BWqq4AFjl04s1oRRQ1v5rSe+KEvnLUSTonuls/A==",
+ "dev": true
+ },
+ "acorn": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.2.tgz",
+ "integrity": "sha512-o96FZLJBPY1lvTuJylGA9Bk3t/GKPPJG8H0ydQQl01crzwJgspa4AEIq/pVTXigmK0PHVQhiAtn8WMBLL9D2WA==",
+ "dev": true
+ },
+ "acorn-dynamic-import": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz",
+ "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=",
+ "dev": true,
+ "requires": {
+ "acorn": "4.0.13"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "4.0.13",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
+ "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
+ "dev": true
+ }
+ }
+ },
+ "ajv": {
+ "version": "5.2.3",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.3.tgz",
+ "integrity": "sha1-wG9Zh3jETGsWGrr+NGa4GtGBTtI=",
+ "dev": true,
+ "requires": {
+ "co": "4.6.0",
+ "fast-deep-equal": "1.0.0",
+ "json-schema-traverse": "0.3.1",
+ "json-stable-stringify": "1.0.1"
+ }
+ },
+ "ajv-keywords": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.0.tgz",
+ "integrity": "sha1-opbhf3v658HOT34N5T0pyzIWLfA=",
+ "dev": true
+ },
+ "align-text": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
+ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
+ "dev": true,
+ "requires": {
+ "kind-of": "3.2.2",
+ "longest": "1.0.1",
+ "repeat-string": "1.6.1"
+ }
+ },
+ "ansi-escapes": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
+ "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "anymatch": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz",
+ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==",
+ "dev": true,
+ "requires": {
+ "micromatch": "2.3.11",
+ "normalize-path": "2.1.1"
+ }
+ },
+ "app-root-path": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.0.1.tgz",
+ "integrity": "sha1-zWLc+OT9WkF+/GZNLlsQZTxlG0Y=",
+ "dev": true
+ },
+ "argparse": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
+ "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "1.0.3"
+ }
+ },
+ "arr-diff": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
+ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
+ "dev": true,
+ "requires": {
+ "arr-flatten": "1.1.0"
+ }
+ },
+ "arr-flatten": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
+ "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
+ "dev": true
+ },
+ "asn1": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
+ "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
+ "dev": true
+ },
+ "asn1.js": {
+ "version": "4.9.1",
+ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz",
+ "integrity": "sha1-SLokC0WpKA6UdImQull9IWYX/UA=",
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "inherits": "2.0.3",
+ "minimalistic-assert": "1.0.0"
+ }
+ },
+ "assert": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
+ "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=",
+ "dev": true,
+ "requires": {
+ "util": "0.10.3"
+ }
+ },
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
+ },
+ "assertion-error": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.0.tgz",
+ "integrity": "sha1-x/hUOP3UZrx8oWq5DIFRN5el0js=",
+ "dev": true
+ },
+ "async": {
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
+ "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=",
+ "dev": true
+ },
+ "async-each": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
+ "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=",
+ "dev": true
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
+ "dev": true
+ },
+ "aws-sign2": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
+ "dev": true
+ },
+ "aws4": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
+ "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=",
+ "dev": true
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "dev": true
+ },
+ "base64-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz",
+ "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==",
+ "dev": true
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
+ "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tweetnacl": "0.14.5"
+ }
+ },
+ "big.js": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
+ "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
+ "dev": true
+ },
+ "binary-extensions": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.10.0.tgz",
+ "integrity": "sha1-muuabF6IY4qtFx4Wf1kAq+JINdA=",
+ "dev": true
+ },
+ "bl": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz",
+ "integrity": "sha1-wGt5evCF6gC8Unr8jvzxHeIjIFQ=",
+ "dev": true,
+ "requires": {
+ "readable-stream": "1.0.34"
+ }
+ },
+ "block-stream": {
+ "version": "0.0.9",
+ "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
+ "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3"
+ }
+ },
+ "bluebird": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-1.2.4.tgz",
+ "integrity": "sha1-WYXsI8tv8aWDTMZEezxe8BD9Mho=",
+ "dev": true
+ },
+ "bn.js": {
+ "version": "4.11.8",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
+ "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
+ "dev": true
+ },
+ "boom": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz",
+ "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=",
+ "dev": true,
+ "requires": {
+ "hoek": "4.2.0"
+ },
+ "dependencies": {
+ "hoek": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz",
+ "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==",
+ "dev": true
+ }
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
+ "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
+ "dev": true,
+ "requires": {
+ "balanced-match": "1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
+ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
+ "dev": true,
+ "requires": {
+ "expand-range": "1.8.2",
+ "preserve": "0.2.0",
+ "repeat-element": "1.1.2"
+ }
+ },
+ "brorand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+ "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
+ "dev": true
+ },
+ "browserify-aes": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.0.tgz",
+ "integrity": "sha512-W2bIMLYoZ9oow7TyePpMJk9l9LY7O3R61a/68bVCDOtnJynnwe3ZeW2IzzSkrQnPKNdJrxVDn3ALZNisSBwb7g==",
+ "dev": true,
+ "requires": {
+ "buffer-xor": "1.0.3",
+ "cipher-base": "1.0.4",
+ "create-hash": "1.1.3",
+ "evp_bytestokey": "1.0.3",
+ "inherits": "2.0.3",
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "browserify-cipher": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz",
+ "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=",
+ "dev": true,
+ "requires": {
+ "browserify-aes": "1.1.0",
+ "browserify-des": "1.0.0",
+ "evp_bytestokey": "1.0.3"
+ }
+ },
+ "browserify-des": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz",
+ "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=",
+ "dev": true,
+ "requires": {
+ "cipher-base": "1.0.4",
+ "des.js": "1.0.0",
+ "inherits": "2.0.3"
+ }
+ },
+ "browserify-rsa": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
+ "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "randombytes": "2.0.5"
+ }
+ },
+ "browserify-sign": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz",
+ "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "browserify-rsa": "4.0.1",
+ "create-hash": "1.1.3",
+ "create-hmac": "1.1.6",
+ "elliptic": "6.4.0",
+ "inherits": "2.0.3",
+ "parse-asn1": "5.1.0"
+ }
+ },
+ "browserify-zlib": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz",
+ "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=",
+ "dev": true,
+ "requires": {
+ "pako": "0.2.9"
+ }
+ },
+ "buffer": {
+ "version": "4.9.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
+ "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
+ "dev": true,
+ "requires": {
+ "base64-js": "1.2.1",
+ "ieee754": "1.1.8",
+ "isarray": "1.0.0"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ }
+ }
+ },
+ "buffer-xor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+ "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
+ "dev": true
+ },
+ "builtin-modules": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
+ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
+ "dev": true
+ },
+ "builtin-status-codes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
+ "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
+ "dev": true
+ },
+ "camelcase": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
+ "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
+ "dev": true
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
+ "dev": true
+ },
+ "center-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
+ "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
+ "dev": true,
+ "requires": {
+ "align-text": "0.1.4",
+ "lazy-cache": "1.0.4"
+ }
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ }
+ },
+ "child-process-promise": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/child-process-promise/-/child-process-promise-2.2.1.tgz",
+ "integrity": "sha1-RzChHvYQ+tRQuPIjx50x172tgHQ=",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "4.0.2",
+ "node-version": "1.1.0",
+ "promise-polyfill": "6.0.2"
+ },
+ "dependencies": {
+ "cross-spawn": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz",
+ "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "4.1.1",
+ "which": "1.3.0"
+ }
+ },
+ "lru-cache": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz",
+ "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==",
+ "dev": true,
+ "requires": {
+ "pseudomap": "1.0.2",
+ "yallist": "2.1.2"
+ }
+ }
+ }
+ },
+ "chokidar": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
+ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
+ "dev": true,
+ "requires": {
+ "anymatch": "1.3.2",
+ "async-each": "1.0.1",
+ "glob-parent": "2.0.0",
+ "inherits": "2.0.3",
+ "is-binary-path": "1.0.1",
+ "is-glob": "2.0.1",
+ "path-is-absolute": "1.0.1",
+ "readdirp": "2.1.0"
+ }
+ },
+ "chosen-npm": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/chosen-npm/-/chosen-npm-1.4.2.tgz",
+ "integrity": "sha1-7Ghq55ZRNHPbwXGxpjcC5tfhUV8=",
+ "dev": true
+ },
+ "cipher-base": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
+ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "circular-json": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz",
+ "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==",
+ "dev": true
+ },
+ "cli-cursor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
+ "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
+ "dev": true,
+ "requires": {
+ "restore-cursor": "1.0.1"
+ }
+ },
+ "cli-spinners": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz",
+ "integrity": "sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw=",
+ "dev": true
+ },
+ "cli-truncate": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz",
+ "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=",
+ "dev": true,
+ "requires": {
+ "slice-ansi": "0.0.4",
+ "string-width": "1.0.2"
+ },
+ "dependencies": {
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ }
+ }
+ },
+ "cliui": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
+ "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
+ "dev": true,
+ "requires": {
+ "center-align": "0.1.3",
+ "right-align": "0.1.3",
+ "wordwrap": "0.0.2"
+ }
+ },
+ "co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
+ "dev": true
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
+ "dev": true
+ },
+ "color-convert": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz",
+ "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "colors": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
+ "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
+ "dev": true
+ },
+ "combined-stream": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
+ "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
+ "dev": true,
+ "requires": {
+ "delayed-stream": "1.0.0"
+ }
+ },
+ "commander": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
+ "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
+ "dev": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "configstore": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/configstore/-/configstore-0.3.2.tgz",
+ "integrity": "sha1-JeTBbDdoq/dcWmW8YXYfSVBVtFk=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "3.0.11",
+ "js-yaml": "3.10.0",
+ "mkdirp": "0.5.1",
+ "object-assign": "2.1.1",
+ "osenv": "0.1.4",
+ "user-home": "1.1.1",
+ "uuid": "2.0.3",
+ "xdg-basedir": "1.0.1"
+ }
+ },
+ "console-browserify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
+ "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
+ "dev": true,
+ "requires": {
+ "date-now": "0.1.4"
+ }
+ },
+ "constants-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
+ "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
+ "dev": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+ "dev": true
+ },
+ "cosmiconfig": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-1.1.0.tgz",
+ "integrity": "sha1-DeoPmATv37kp+7GxiOJVU+oFPTc=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "js-yaml": "3.10.0",
+ "minimist": "1.2.0",
+ "object-assign": "4.1.1",
+ "os-homedir": "1.0.2",
+ "parse-json": "2.2.0",
+ "pinkie-promise": "2.0.1",
+ "require-from-string": "1.2.1"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ }
+ }
+ },
+ "coveo-search-ui": {
+ "version": "2.3477.1",
+ "resolved": "https://registry.npmjs.org/coveo-search-ui/-/coveo-search-ui-2.3477.1.tgz",
+ "integrity": "sha512-JKODLucM98x02pCdvk5PXKR2Oy8L4HwY07OauGQAk3Uutjyp7w6+wnJWy+kETMzsi3WwdyYU4KTd6xRMEGZdIA==",
+ "dev": true,
+ "requires": {
+ "@material/select": "0.3.18",
+ "circular-json": "0.3.3",
+ "coveo-styleguide": "1.13.4",
+ "coveo.analytics": "0.7.1",
+ "coveomagicbox": "1.0.33",
+ "d3": "4.11.0",
+ "d3-scale": "1.0.6",
+ "es6-promise": "4.1.1",
+ "fastclick": "1.0.6",
+ "jstimezonedetect": "1.0.6",
+ "latinize": "0.4.0",
+ "modal-box": "2.0.7",
+ "pikaday": "1.6.1",
+ "underscore": "1.8.3"
+ }
+ },
+ "coveo-slider": {
+ "version": "0.9.8",
+ "resolved": "https://registry.npmjs.org/coveo-slider/-/coveo-slider-0.9.8.tgz",
+ "integrity": "sha1-YOd7f1QN1wTWHgSH8/rNbgEVaYE=",
+ "dev": true,
+ "requires": {
+ "tsd": "0.6.5"
+ }
+ },
+ "coveo-styleguide": {
+ "version": "1.13.4",
+ "resolved": "https://registry.npmjs.org/coveo-styleguide/-/coveo-styleguide-1.13.4.tgz",
+ "integrity": "sha1-64lpGVAu78U5Y3JrkJw3EjlN76o=",
+ "dev": true,
+ "requires": {
+ "chosen-npm": "1.4.2",
+ "coveo-slider": "0.9.8",
+ "materialize-css": "0.98.1"
+ }
+ },
+ "coveo.analytics": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/coveo.analytics/-/coveo.analytics-0.7.1.tgz",
+ "integrity": "sha1-aBK0YKnurITduwWhSTfMQSdFXXM=",
+ "dev": true,
+ "requires": {
+ "whatwg-fetch": "2.0.3"
+ }
+ },
+ "coveomagicbox": {
+ "version": "1.0.33",
+ "resolved": "https://registry.npmjs.org/coveomagicbox/-/coveomagicbox-1.0.33.tgz",
+ "integrity": "sha1-Owjk2AdtYYwHDjlkgAZYbgA4uBA=",
+ "dev": true
+ },
+ "create-ecdh": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz",
+ "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=",
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "elliptic": "6.4.0"
+ }
+ },
+ "create-hash": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz",
+ "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=",
+ "dev": true,
+ "requires": {
+ "cipher-base": "1.0.4",
+ "inherits": "2.0.3",
+ "ripemd160": "2.0.1",
+ "sha.js": "2.4.9"
+ }
+ },
+ "create-hmac": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz",
+ "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=",
+ "dev": true,
+ "requires": {
+ "cipher-base": "1.0.4",
+ "create-hash": "1.1.3",
+ "inherits": "2.0.3",
+ "ripemd160": "2.0.1",
+ "safe-buffer": "5.1.1",
+ "sha.js": "2.4.9"
+ }
+ },
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "4.1.1",
+ "shebang-command": "1.2.0",
+ "which": "1.3.0"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz",
+ "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==",
+ "dev": true,
+ "requires": {
+ "pseudomap": "1.0.2",
+ "yallist": "2.1.2"
+ }
+ }
+ }
+ },
+ "cryptiles": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz",
+ "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=",
+ "dev": true,
+ "requires": {
+ "boom": "5.2.0"
+ },
+ "dependencies": {
+ "boom": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz",
+ "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==",
+ "dev": true,
+ "requires": {
+ "hoek": "4.2.0"
+ }
+ },
+ "hoek": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz",
+ "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==",
+ "dev": true
+ }
+ }
+ },
+ "crypto-browserify": {
+ "version": "3.11.1",
+ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.1.tgz",
+ "integrity": "sha512-Na7ZlwCOqoaW5RwUK1WpXws2kv8mNhWdTlzob0UXulk6G9BDbyiJaGTYBIX61Ozn9l1EPPJpICZb4DaOpT9NlQ==",
+ "dev": true,
+ "requires": {
+ "browserify-cipher": "1.0.0",
+ "browserify-sign": "4.0.4",
+ "create-ecdh": "4.0.0",
+ "create-hash": "1.1.3",
+ "create-hmac": "1.1.6",
+ "diffie-hellman": "5.0.2",
+ "inherits": "2.0.3",
+ "pbkdf2": "3.0.14",
+ "public-encrypt": "4.0.0",
+ "randombytes": "2.0.5"
+ }
+ },
+ "d": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
+ "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
+ "dev": true,
+ "requires": {
+ "es5-ext": "0.10.35"
+ }
+ },
+ "d3": {
+ "version": "4.11.0",
+ "resolved": "https://registry.npmjs.org/d3/-/d3-4.11.0.tgz",
+ "integrity": "sha512-o048nfmydnbt0ciIvCUDTq9p62rZYOXzl8cKps0XVzk+5nHgeXmAS7jU4nh+3v82pUyH7t/GFm1bJRX4oIAlPw==",
+ "dev": true,
+ "requires": {
+ "d3-array": "1.2.1",
+ "d3-axis": "1.0.8",
+ "d3-brush": "1.0.4",
+ "d3-chord": "1.0.4",
+ "d3-collection": "1.0.4",
+ "d3-color": "1.0.3",
+ "d3-dispatch": "1.0.3",
+ "d3-drag": "1.2.1",
+ "d3-dsv": "1.0.7",
+ "d3-ease": "1.0.3",
+ "d3-force": "1.1.0",
+ "d3-format": "1.2.0",
+ "d3-geo": "1.8.1",
+ "d3-hierarchy": "1.1.5",
+ "d3-interpolate": "1.1.5",
+ "d3-path": "1.0.5",
+ "d3-polygon": "1.0.3",
+ "d3-quadtree": "1.0.3",
+ "d3-queue": "3.0.7",
+ "d3-random": "1.1.0",
+ "d3-request": "1.0.6",
+ "d3-scale": "1.0.6",
+ "d3-selection": "1.1.0",
+ "d3-shape": "1.2.0",
+ "d3-time": "1.0.7",
+ "d3-time-format": "2.0.5",
+ "d3-timer": "1.0.7",
+ "d3-transition": "1.1.0",
+ "d3-voronoi": "1.1.2",
+ "d3-zoom": "1.6.0"
+ }
+ },
+ "d3-array": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.1.tgz",
+ "integrity": "sha512-CyINJQ0SOUHojDdFDH4JEM0552vCR1utGyLHegJHyYH0JyCpSeTPxi4OBqHMA2jJZq4NH782LtaJWBImqI/HBw==",
+ "dev": true
+ },
+ "d3-axis": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-1.0.8.tgz",
+ "integrity": "sha1-MacFoLU15ldZ3hQXOjGTMTfxjvo=",
+ "dev": true
+ },
+ "d3-brush": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-1.0.4.tgz",
+ "integrity": "sha1-AMLyOAGfJPbAoZSibUGhUw/+e8Q=",
+ "dev": true,
+ "requires": {
+ "d3-dispatch": "1.0.3",
+ "d3-drag": "1.2.1",
+ "d3-interpolate": "1.1.5",
+ "d3-selection": "1.1.0",
+ "d3-transition": "1.1.0"
+ }
+ },
+ "d3-chord": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-1.0.4.tgz",
+ "integrity": "sha1-fexPC6iG9xP+ERxF92NBT290yiw=",
+ "dev": true,
+ "requires": {
+ "d3-array": "1.2.1",
+ "d3-path": "1.0.5"
+ }
+ },
+ "d3-collection": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.4.tgz",
+ "integrity": "sha1-NC39EoN8kJdPM/HMCnha6lcNzcI=",
+ "dev": true
+ },
+ "d3-color": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.0.3.tgz",
+ "integrity": "sha1-vHZD/KjlOoNH4vva/6I2eWtYUJs=",
+ "dev": true
+ },
+ "d3-dispatch": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.3.tgz",
+ "integrity": "sha1-RuFJHqqbWMNY/OW+TovtYm54cfg=",
+ "dev": true
+ },
+ "d3-drag": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-1.2.1.tgz",
+ "integrity": "sha512-Cg8/K2rTtzxzrb0fmnYOUeZHvwa4PHzwXOLZZPwtEs2SKLLKLXeYwZKBB+DlOxUvFmarOnmt//cU4+3US2lyyQ==",
+ "dev": true,
+ "requires": {
+ "d3-dispatch": "1.0.3",
+ "d3-selection": "1.1.0"
+ }
+ },
+ "d3-dsv": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.0.7.tgz",
+ "integrity": "sha512-12szKhDhM/tM5U/Ch3hyJ7sMdcwPqMRmrUWitLLdPBMKO9Wuox95ezKZvemy/fxFbefLF/HIPKUmJMBLLuFDaQ==",
+ "dev": true,
+ "requires": {
+ "commander": "2.11.0",
+ "iconv-lite": "0.4.19",
+ "rw": "1.3.3"
+ }
+ },
+ "d3-ease": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.3.tgz",
+ "integrity": "sha1-aL+8NJM4o4DETYrMT7wzBKotjA4=",
+ "dev": true
+ },
+ "d3-force": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.1.0.tgz",
+ "integrity": "sha512-2HVQz3/VCQs0QeRNZTYb7GxoUCeb6bOzMp/cGcLa87awY9ZsPvXOGeZm0iaGBjXic6I1ysKwMn+g+5jSAdzwcg==",
+ "dev": true,
+ "requires": {
+ "d3-collection": "1.0.4",
+ "d3-dispatch": "1.0.3",
+ "d3-quadtree": "1.0.3",
+ "d3-timer": "1.0.7"
+ }
+ },
+ "d3-format": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.2.0.tgz",
+ "integrity": "sha1-a0gLqohohdRlHcJIqPSsnaFtsHo=",
+ "dev": true
+ },
+ "d3-geo": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.8.1.tgz",
+ "integrity": "sha512-PuvmWl1A1UXuaxcH55EGNhvMNAUBS0RQN2PAnxrZbDvDX56Xwkd+Yp1t1+ECkaJO3my+dnhxAyqAKMyyK+IFPQ==",
+ "dev": true,
+ "requires": {
+ "d3-array": "1.2.1"
+ }
+ },
+ "d3-hierarchy": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.5.tgz",
+ "integrity": "sha1-ochFxC+Eoga88cAcAQmOpN2qeiY=",
+ "dev": true
+ },
+ "d3-interpolate": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.1.5.tgz",
+ "integrity": "sha1-aeCZ/zkhRxblY8muw+qdHqS4p58=",
+ "dev": true,
+ "requires": {
+ "d3-color": "1.0.3"
+ }
+ },
+ "d3-path": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.5.tgz",
+ "integrity": "sha1-JB6xhJvZ6egCHA0KeZ+KDo5EF2Q=",
+ "dev": true
+ },
+ "d3-polygon": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-1.0.3.tgz",
+ "integrity": "sha1-FoiOkCZGCTPysXllKtN4Ik04LGI=",
+ "dev": true
+ },
+ "d3-quadtree": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.3.tgz",
+ "integrity": "sha1-rHmH4+I/6AWpkPKOG1DTj8uCJDg=",
+ "dev": true
+ },
+ "d3-queue": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/d3-queue/-/d3-queue-3.0.7.tgz",
+ "integrity": "sha1-yTouVLQXwJWRKdfXP2z31Ckudhg=",
+ "dev": true
+ },
+ "d3-random": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-1.1.0.tgz",
+ "integrity": "sha1-ZkLlBsb6OmSFldKyRpeIqNElKdM=",
+ "dev": true
+ },
+ "d3-request": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/d3-request/-/d3-request-1.0.6.tgz",
+ "integrity": "sha512-FJj8ySY6GYuAJHZMaCQ83xEYE4KbkPkmxZ3Hu6zA1xxG2GD+z6P+Lyp+zjdsHf0xEbp2xcluDI50rCS855EQ6w==",
+ "dev": true,
+ "requires": {
+ "d3-collection": "1.0.4",
+ "d3-dispatch": "1.0.3",
+ "d3-dsv": "1.0.7",
+ "xmlhttprequest": "1.8.0"
+ }
+ },
+ "d3-scale": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-1.0.6.tgz",
+ "integrity": "sha1-vOGdqA06DPQiyVQ64zIghiILNO0=",
+ "dev": true,
+ "requires": {
+ "d3-array": "1.2.1",
+ "d3-collection": "1.0.4",
+ "d3-color": "1.0.3",
+ "d3-format": "1.2.0",
+ "d3-interpolate": "1.1.5",
+ "d3-time": "1.0.7",
+ "d3-time-format": "2.0.5"
+ }
+ },
+ "d3-selection": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.1.0.tgz",
+ "integrity": "sha1-GZhoSJZIj4OcoDchI9o08dMYgJw=",
+ "dev": true
+ },
+ "d3-shape": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.2.0.tgz",
+ "integrity": "sha1-RdAVOPBkuv0F6j1tLLdI/YxB93c=",
+ "dev": true,
+ "requires": {
+ "d3-path": "1.0.5"
+ }
+ },
+ "d3-time": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.0.7.tgz",
+ "integrity": "sha1-lMr27bt4ebuAnQ0fdXK8SEgvcnA=",
+ "dev": true
+ },
+ "d3-time-format": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.0.5.tgz",
+ "integrity": "sha1-nXeAIE98kRnJFwsaVttN6aivly4=",
+ "dev": true,
+ "requires": {
+ "d3-time": "1.0.7"
+ }
+ },
+ "d3-timer": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.7.tgz",
+ "integrity": "sha512-vMZXR88XujmG/L5oB96NNKH5lCWwiLM/S2HyyAQLcjWJCloK5shxta4CwOFYLZoY3AWX73v8Lgv4cCAdWtRmOA==",
+ "dev": true
+ },
+ "d3-transition": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.1.0.tgz",
+ "integrity": "sha1-z8hcdOUjkyQpBUZiNXKZBWDDlm8=",
+ "dev": true,
+ "requires": {
+ "d3-color": "1.0.3",
+ "d3-dispatch": "1.0.3",
+ "d3-ease": "1.0.3",
+ "d3-interpolate": "1.1.5",
+ "d3-selection": "1.1.0",
+ "d3-timer": "1.0.7"
+ }
+ },
+ "d3-voronoi": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.2.tgz",
+ "integrity": "sha1-Fodmfo8TotFYyAwUgMWinLDYlzw=",
+ "dev": true
+ },
+ "d3-zoom": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-1.6.0.tgz",
+ "integrity": "sha512-viq+6rXA9JQY1wD+gpDEdlOtCeJ6IfcsNT2aVr31VTjIAIhYlO0YurQ80yDRZeMJw5P/e6nVPhGJF9D9Ade5Og==",
+ "dev": true,
+ "requires": {
+ "d3-dispatch": "1.0.3",
+ "d3-drag": "1.2.1",
+ "d3-interpolate": "1.1.5",
+ "d3-selection": "1.1.0",
+ "d3-transition": "1.1.0"
+ }
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "1.0.0"
+ }
+ },
+ "date-fns": {
+ "version": "1.29.0",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.29.0.tgz",
+ "integrity": "sha512-lbTXWZ6M20cWH8N9S6afb0SBm6tMk+uUg6z3MqHPKE9atmsY3kJkTm8vKe93izJ2B2+q5MV990sM2CHgtAZaOw==",
+ "dev": true
+ },
+ "date-now": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
+ "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=",
+ "dev": true
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "dev": true
+ },
+ "deep-extend": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz",
+ "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=",
+ "dev": true
+ },
+ "deep-freeze": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz",
+ "integrity": "sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ=",
+ "dev": true
+ },
+ "definition-header": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/definition-header/-/definition-header-0.1.0.tgz",
+ "integrity": "sha1-AURf9MpmMRTL8sWhEx8Tu1ROtd0=",
+ "dev": true,
+ "requires": {
+ "joi": "4.9.0",
+ "joi-assert": "0.0.3",
+ "parsimmon": "0.5.1",
+ "xregexp": "2.0.0"
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+ "dev": true
+ },
+ "des.js": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
+ "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "minimalistic-assert": "1.0.0"
+ }
+ },
+ "detect-indent": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-0.2.0.tgz",
+ "integrity": "sha1-BCkUSYl5rC2fPHPk/z5od9O8krY=",
+ "dev": true,
+ "requires": {
+ "get-stdin": "0.1.0",
+ "minimist": "0.1.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.1.0.tgz",
+ "integrity": "sha1-md9lelJXTCHJBXSX33QnkLK0wN4=",
+ "dev": true
+ }
+ }
+ },
+ "diff": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz",
+ "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=",
+ "dev": true
+ },
+ "diffie-hellman": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz",
+ "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=",
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "miller-rabin": "4.0.1",
+ "randombytes": "2.0.5"
+ }
+ },
+ "domain-browser": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz",
+ "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=",
+ "dev": true
+ },
+ "dts-bundle": {
+ "version": "0.7.3",
+ "resolved": "https://registry.npmjs.org/dts-bundle/-/dts-bundle-0.7.3.tgz",
+ "integrity": "sha1-Nyt7tpyCB4LmOC9ABzmmnc7T1Zo=",
+ "dev": true,
+ "requires": {
+ "@types/detect-indent": "0.1.30",
+ "@types/glob": "5.0.30",
+ "@types/mkdirp": "0.3.29",
+ "@types/node": "8.0.0",
+ "commander": "2.11.0",
+ "detect-indent": "0.2.0",
+ "glob": "6.0.4",
+ "mkdirp": "0.5.1"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
+ "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
+ "dev": true,
+ "requires": {
+ "inflight": "1.0.6",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "1.1.8"
+ }
+ }
+ }
+ },
+ "dts-webpack-plugin": {
+ "version": "0.0.9",
+ "resolved": "https://registry.npmjs.org/dts-webpack-plugin/-/dts-webpack-plugin-0.0.9.tgz",
+ "integrity": "sha512-/TyyDSVsrunaAn7uiWUN5aRgPYdfd7KU/1Y6PAhrLp9InK8CFOPoRLyQwljt8srffE1RBHgihp2j4s2/8hUKgA==",
+ "dev": true,
+ "requires": {
+ "dts-bundle": "0.7.3",
+ "webpack": "3.8.1"
+ }
+ },
+ "duplexer": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
+ "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
+ "dev": true
+ },
+ "duplexify": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.1.tgz",
+ "integrity": "sha512-j5goxHTwVED1Fpe5hh3q9R93Kip0Bg2KVAt4f8CEYM3UEwYcPSvWbXaUQOzdX/HtiNomipv+gU7ASQPDbV7pGQ==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "1.4.0",
+ "inherits": "2.0.3",
+ "readable-stream": "2.3.3",
+ "stream-shift": "1.0.0"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
+ "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "1.0.7",
+ "safe-buffer": "5.1.1",
+ "string_decoder": "1.0.3",
+ "util-deprecate": "1.0.2"
+ }
+ },
+ "string_decoder": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
+ "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.1"
+ }
+ }
+ }
+ },
+ "ecc-jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
+ "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "jsbn": "0.1.1"
+ }
+ },
+ "elegant-spinner": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz",
+ "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=",
+ "dev": true
+ },
+ "elliptic": {
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz",
+ "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=",
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "brorand": "1.1.0",
+ "hash.js": "1.1.3",
+ "hmac-drbg": "1.0.1",
+ "inherits": "2.0.3",
+ "minimalistic-assert": "1.0.0",
+ "minimalistic-crypto-utils": "1.0.1"
+ }
+ },
+ "emojis-list": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
+ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
+ "dev": true
+ },
+ "end-of-stream": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz",
+ "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=",
+ "dev": true,
+ "requires": {
+ "once": "1.4.0"
+ }
+ },
+ "enhanced-resolve": {
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz",
+ "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "memory-fs": "0.4.1",
+ "object-assign": "4.1.1",
+ "tapable": "0.2.8"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ }
+ }
+ },
+ "errno": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz",
+ "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=",
+ "dev": true,
+ "requires": {
+ "prr": "0.0.0"
+ }
+ },
+ "error-ex": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz",
+ "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "0.2.1"
+ }
+ },
+ "es5-ext": {
+ "version": "0.10.35",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.35.tgz",
+ "integrity": "sha1-GO6FjOajxFx9eekcFfzKnsVoSU8=",
+ "dev": true,
+ "requires": {
+ "es6-iterator": "2.0.3",
+ "es6-symbol": "3.1.1"
+ }
+ },
+ "es6-iterator": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
+ "dev": true,
+ "requires": {
+ "d": "1.0.0",
+ "es5-ext": "0.10.35",
+ "es6-symbol": "3.1.1"
+ }
+ },
+ "es6-map": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz",
+ "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=",
+ "dev": true,
+ "requires": {
+ "d": "1.0.0",
+ "es5-ext": "0.10.35",
+ "es6-iterator": "2.0.3",
+ "es6-set": "0.1.5",
+ "es6-symbol": "3.1.1",
+ "event-emitter": "0.3.5"
+ }
+ },
+ "es6-promise": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.1.1.tgz",
+ "integrity": "sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==",
+ "dev": true
+ },
+ "es6-set": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
+ "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=",
+ "dev": true,
+ "requires": {
+ "d": "1.0.0",
+ "es5-ext": "0.10.35",
+ "es6-iterator": "2.0.3",
+ "es6-symbol": "3.1.1",
+ "event-emitter": "0.3.5"
+ }
+ },
+ "es6-symbol": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
+ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
+ "dev": true,
+ "requires": {
+ "d": "1.0.0",
+ "es5-ext": "0.10.35"
+ }
+ },
+ "es6-weak-map": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
+ "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
+ "dev": true,
+ "requires": {
+ "d": "1.0.0",
+ "es5-ext": "0.10.35",
+ "es6-iterator": "2.0.3",
+ "es6-symbol": "3.1.1"
+ }
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
+ "escope": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz",
+ "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=",
+ "dev": true,
+ "requires": {
+ "es6-map": "0.1.5",
+ "es6-weak-map": "2.0.2",
+ "esrecurse": "4.2.0",
+ "estraverse": "4.2.0"
+ }
+ },
+ "esprima": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz",
+ "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==",
+ "dev": true
+ },
+ "esrecurse": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz",
+ "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=",
+ "dev": true,
+ "requires": {
+ "estraverse": "4.2.0",
+ "object-assign": "4.1.1"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ }
+ }
+ },
+ "estraverse": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
+ "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
+ "dev": true
+ },
+ "event-emitter": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
+ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
+ "dev": true,
+ "requires": {
+ "d": "1.0.0",
+ "es5-ext": "0.10.35"
+ }
+ },
+ "event-stream": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.1.7.tgz",
+ "integrity": "sha1-tMVAAS0P4UmEIPPYlGAI22OTw3o=",
+ "dev": true,
+ "requires": {
+ "duplexer": "0.1.1",
+ "from": "0.1.7",
+ "map-stream": "0.1.0",
+ "pause-stream": "0.0.11",
+ "split": "0.2.10",
+ "stream-combiner": "0.0.4",
+ "through": "2.3.8"
+ }
+ },
+ "events": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
+ "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=",
+ "dev": true
+ },
+ "evp_bytestokey": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
+ "dev": true,
+ "requires": {
+ "md5.js": "1.3.4",
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "execa": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "5.1.0",
+ "get-stream": "3.0.0",
+ "is-stream": "1.1.0",
+ "npm-run-path": "2.0.2",
+ "p-finally": "1.0.0",
+ "signal-exit": "3.0.2",
+ "strip-eof": "1.0.0"
+ }
+ },
+ "exit": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
+ "dev": true
+ },
+ "exit-hook": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz",
+ "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=",
+ "dev": true
+ },
+ "expand-brackets": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
+ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
+ "dev": true,
+ "requires": {
+ "is-posix-bracket": "0.1.1"
+ }
+ },
+ "expand-range": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
+ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
+ "dev": true,
+ "requires": {
+ "fill-range": "2.2.3"
+ }
+ },
+ "exports-loader": {
+ "version": "0.6.4",
+ "resolved": "https://registry.npmjs.org/exports-loader/-/exports-loader-0.6.4.tgz",
+ "integrity": "sha1-1w/GEhl1s1/BKDDPUnVL4nQPyIY=",
+ "dev": true,
+ "requires": {
+ "loader-utils": "1.1.0",
+ "source-map": "0.5.7"
+ }
+ },
+ "extend": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
+ "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=",
+ "dev": true
+ },
+ "extglob": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
+ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "1.0.0"
+ }
+ },
+ "extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
+ "dev": true
+ },
+ "fast-deep-equal": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz",
+ "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=",
+ "dev": true
+ },
+ "fastclick": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/fastclick/-/fastclick-1.0.6.tgz",
+ "integrity": "sha1-FhYlsnsaWAZAWTa9qaLBkm0Gvmo=",
+ "dev": true
+ },
+ "figures": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
+ "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "1.0.5",
+ "object-assign": "4.1.1"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ }
+ }
+ },
+ "filename-regex": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
+ "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
+ "dev": true
+ },
+ "fill-range": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz",
+ "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=",
+ "dev": true,
+ "requires": {
+ "is-number": "2.1.0",
+ "isobject": "2.1.0",
+ "randomatic": "1.1.7",
+ "repeat-element": "1.1.2",
+ "repeat-string": "1.6.1"
+ }
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "requires": {
+ "locate-path": "2.0.0"
+ }
+ },
+ "for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
+ "dev": true
+ },
+ "for-own": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
+ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
+ "dev": true,
+ "requires": {
+ "for-in": "1.0.2"
+ }
+ },
+ "foreach": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
+ "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=",
+ "dev": true
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
+ "dev": true
+ },
+ "form-data": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz",
+ "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=",
+ "dev": true,
+ "requires": {
+ "asynckit": "0.4.0",
+ "combined-stream": "1.0.5",
+ "mime-types": "2.1.17"
+ }
+ },
+ "from": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz",
+ "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=",
+ "dev": true
+ },
+ "fstream": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
+ "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "inherits": "2.0.3",
+ "mkdirp": "0.5.1",
+ "rimraf": "2.2.8"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true
+ }
+ }
+ },
+ "get-caller-file": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz",
+ "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=",
+ "dev": true
+ },
+ "get-own-enumerable-property-symbols": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-2.0.1.tgz",
+ "integrity": "sha512-TtY/sbOemiMKPRUDDanGCSgBYe7Mf0vbRsWnBZ+9yghpZ1MvcpSpuZFjHdEeY/LZjZy0vdLjS77L6HosisFiug==",
+ "dev": true
+ },
+ "get-stdin": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-0.1.0.tgz",
+ "integrity": "sha1-WZivJKr8gC0VyCxoVlfuuLENSpE=",
+ "dev": true
+ },
+ "get-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
+ "dev": true
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "1.0.0"
+ }
+ },
+ "glob": {
+ "version": "4.5.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz",
+ "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=",
+ "dev": true,
+ "requires": {
+ "inflight": "1.0.6",
+ "inherits": "2.0.3",
+ "minimatch": "2.0.10",
+ "once": "1.4.0"
+ },
+ "dependencies": {
+ "minimatch": {
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz",
+ "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "1.1.8"
+ }
+ }
+ }
+ },
+ "glob-base": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
+ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
+ "dev": true,
+ "requires": {
+ "glob-parent": "2.0.0",
+ "is-glob": "2.0.1"
+ }
+ },
+ "glob-parent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
+ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
+ "dev": true,
+ "requires": {
+ "is-glob": "2.0.1"
+ }
+ },
+ "got": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/got/-/got-3.3.1.tgz",
+ "integrity": "sha1-5dDtSvVfw+701WAHdp2YGSvLLso=",
+ "dev": true,
+ "requires": {
+ "duplexify": "3.5.1",
+ "infinity-agent": "2.0.3",
+ "is-redirect": "1.0.0",
+ "is-stream": "1.1.0",
+ "lowercase-keys": "1.0.0",
+ "nested-error-stacks": "1.0.2",
+ "object-assign": "3.0.0",
+ "prepend-http": "1.0.4",
+ "read-all-stream": "3.1.0",
+ "timed-out": "2.0.0"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
+ "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=",
+ "dev": true
+ }
+ }
+ },
+ "graceful-fs": {
+ "version": "3.0.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz",
+ "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=",
+ "dev": true,
+ "requires": {
+ "natives": "1.1.0"
+ }
+ },
+ "hammerjs": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz",
+ "integrity": "sha1-BO93hiz/K7edMPdpIJWTAiK/YPE=",
+ "dev": true
+ },
+ "har-schema": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
+ "dev": true
+ },
+ "har-validator": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
+ "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
+ "dev": true,
+ "requires": {
+ "ajv": "5.2.3",
+ "har-schema": "2.0.0"
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
+ "has-flag": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
+ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
+ "dev": true
+ },
+ "hash-base": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz",
+ "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3"
+ }
+ },
+ "hash.js": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz",
+ "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "minimalistic-assert": "1.0.0"
+ }
+ },
+ "hawk": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz",
+ "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==",
+ "dev": true,
+ "requires": {
+ "boom": "4.3.1",
+ "cryptiles": "3.1.2",
+ "hoek": "4.2.0",
+ "sntp": "2.0.2"
+ },
+ "dependencies": {
+ "hoek": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz",
+ "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==",
+ "dev": true
+ }
+ }
+ },
+ "hmac-drbg": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
+ "dev": true,
+ "requires": {
+ "hash.js": "1.1.3",
+ "minimalistic-assert": "1.0.0",
+ "minimalistic-crypto-utils": "1.0.1"
+ }
+ },
+ "hoek": {
+ "version": "2.16.3",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
+ "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
+ "dev": true
+ },
+ "hosted-git-info": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz",
+ "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==",
+ "dev": true
+ },
+ "http-signature": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "jsprim": "1.4.1",
+ "sshpk": "1.13.1"
+ }
+ },
+ "https-browserify": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz",
+ "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=",
+ "dev": true
+ },
+ "iconv-lite": {
+ "version": "0.4.19",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
+ "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==",
+ "dev": true
+ },
+ "ieee754": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz",
+ "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=",
+ "dev": true
+ },
+ "indent-string": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+ "dev": true,
+ "requires": {
+ "repeating": "2.0.1"
+ }
+ },
+ "indexof": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
+ "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=",
+ "dev": true
+ },
+ "infinity-agent": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/infinity-agent/-/infinity-agent-2.0.3.tgz",
+ "integrity": "sha1-ReDi/3qesDCyfWK3SzdEt6esQhY=",
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "requires": {
+ "once": "1.4.0",
+ "wrappy": "1.0.2"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ },
+ "ini": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz",
+ "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=",
+ "dev": true
+ },
+ "interpret": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.4.tgz",
+ "integrity": "sha1-ggzdWIuGj/sZGoCVBtbJyPISsbA=",
+ "dev": true
+ },
+ "invert-kv": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
+ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
+ "dev": true
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "dev": true
+ },
+ "is-binary-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+ "dev": true,
+ "requires": {
+ "binary-extensions": "1.10.0"
+ }
+ },
+ "is-buffer": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz",
+ "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=",
+ "dev": true
+ },
+ "is-builtin-module": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
+ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
+ "dev": true,
+ "requires": {
+ "builtin-modules": "1.1.1"
+ }
+ },
+ "is-dotfile": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
+ "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=",
+ "dev": true
+ },
+ "is-equal-shallow": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
+ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
+ "dev": true,
+ "requires": {
+ "is-primitive": "2.0.0"
+ }
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "dev": true
+ },
+ "is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+ "dev": true
+ },
+ "is-finite": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
+ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "1.0.0"
+ }
+ },
+ "is-npm": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz",
+ "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=",
+ "dev": true
+ },
+ "is-number": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
+ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
+ "dev": true,
+ "requires": {
+ "kind-of": "3.2.2"
+ }
+ },
+ "is-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
+ "dev": true
+ },
+ "is-posix-bracket": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
+ "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
+ "dev": true
+ },
+ "is-primitive": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
+ "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
+ "dev": true
+ },
+ "is-promise": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
+ "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
+ "dev": true
+ },
+ "is-redirect": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
+ "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=",
+ "dev": true
+ },
+ "is-regexp": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz",
+ "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=",
+ "dev": true
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+ "dev": true
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
+ "dev": true
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
+ },
+ "isemail": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/isemail/-/isemail-1.2.0.tgz",
+ "integrity": "sha1-vgPfjMPineTSxd9lASY/H6RZXpo=",
+ "dev": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "dev": true,
+ "requires": {
+ "isarray": "1.0.0"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ }
+ }
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
+ "dev": true
+ },
+ "jest-get-type": {
+ "version": "21.2.0",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-21.2.0.tgz",
+ "integrity": "sha512-y2fFw3C+D0yjNSDp7ab1kcd6NUYfy3waPTlD8yWkAtiocJdBRQqNoRqVfMNxgj+IjT0V5cBIHJO0z9vuSSZ43Q==",
+ "dev": true
+ },
+ "jest-validate": {
+ "version": "21.2.1",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-21.2.1.tgz",
+ "integrity": "sha512-k4HLI1rZQjlU+EC682RlQ6oZvLrE5SCh3brseQc24vbZTxzT/k/3urar5QMCVgjadmSO7lECeGdc6YxnM3yEGg==",
+ "dev": true,
+ "requires": {
+ "chalk": "2.2.0",
+ "jest-get-type": "21.2.0",
+ "leven": "2.1.0",
+ "pretty-format": "21.2.1"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
+ "dev": true,
+ "requires": {
+ "color-convert": "1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.0.tgz",
+ "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "3.2.0",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "4.5.0"
+ }
+ },
+ "supports-color": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
+ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
+ "dev": true,
+ "requires": {
+ "has-flag": "2.0.0"
+ }
+ }
+ }
+ },
+ "joi": {
+ "version": "4.9.0",
+ "resolved": "https://registry.npmjs.org/joi/-/joi-4.9.0.tgz",
+ "integrity": "sha1-I1UCM2MInKAbwf0HnnKUn5d7qto=",
+ "dev": true,
+ "requires": {
+ "hoek": "2.16.3",
+ "isemail": "1.2.0",
+ "moment": "2.19.1",
+ "topo": "1.1.0"
+ }
+ },
+ "joi-assert": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/joi-assert/-/joi-assert-0.0.3.tgz",
+ "integrity": "sha1-dykTdqw/CxJPQz+Y23S08g9ob9Y=",
+ "dev": true,
+ "requires": {
+ "assertion-error": "1.0.0"
+ }
+ },
+ "jquery": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.2.1.tgz",
+ "integrity": "sha1-XE2d5lKvbNCncBVKYxu6ErAVx4c="
+ },
+ "js-yaml": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz",
+ "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==",
+ "dev": true,
+ "requires": {
+ "argparse": "1.0.9",
+ "esprima": "4.0.0"
+ }
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+ "dev": true,
+ "optional": true
+ },
+ "jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+ "dev": true
+ },
+ "json-loader": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz",
+ "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==",
+ "dev": true
+ },
+ "json-pointer": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.2.2.tgz",
+ "integrity": "sha1-GngoXUZQxQsQR19/WZGamduKFks=",
+ "dev": true,
+ "requires": {
+ "foreach": "2.0.5"
+ }
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
+ "dev": true
+ },
+ "json-schema-traverse": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
+ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
+ "dev": true
+ },
+ "json-stable-stringify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
+ "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
+ "dev": true,
+ "requires": {
+ "jsonify": "0.0.0"
+ }
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
+ "dev": true
+ },
+ "json5": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
+ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
+ "dev": true
+ },
+ "jsonify": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
+ "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
+ "dev": true
+ },
+ "jsprim": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+ "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.2.3",
+ "verror": "1.10.0"
+ },
+ "dependencies": {
+ "verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "1.3.0"
+ }
+ }
+ }
+ },
+ "jstimezonedetect": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/jstimezonedetect/-/jstimezonedetect-1.0.6.tgz",
+ "integrity": "sha1-YNMfus2/V69xsGSIfuBA8Vla21I=",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "1.1.5"
+ }
+ },
+ "latest-version": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-1.0.1.tgz",
+ "integrity": "sha1-cs/Ebj6NG+ZR4eu1Tqn26pbzdLs=",
+ "dev": true,
+ "requires": {
+ "package-json": "1.2.0"
+ }
+ },
+ "latinize": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/latinize/-/latinize-0.4.0.tgz",
+ "integrity": "sha1-J0ObIeTrdQbDdxe2OPHfLEkHWkg=",
+ "dev": true
+ },
+ "lazy-cache": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
+ "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
+ "dev": true
+ },
+ "lazy.js": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/lazy.js/-/lazy.js-0.3.2.tgz",
+ "integrity": "sha1-fMEQfl+AmucEmPUR3RgOH4C076k=",
+ "dev": true
+ },
+ "lcid": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
+ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
+ "dev": true,
+ "requires": {
+ "invert-kv": "1.0.0"
+ }
+ },
+ "leven": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz",
+ "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=",
+ "dev": true
+ },
+ "lint-staged": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-4.2.3.tgz",
+ "integrity": "sha512-Ks1vMyVpp3ldeFDN9sIcHcFDh0v3X6Y6LOdT0Wl86/BSDM2R8PVcuFODkh0Dav7Ni/asUPKONfXRWZM9YO85IQ==",
+ "dev": true,
+ "requires": {
+ "app-root-path": "2.0.1",
+ "chalk": "2.2.0",
+ "cosmiconfig": "1.1.0",
+ "execa": "0.8.0",
+ "is-glob": "4.0.0",
+ "jest-validate": "21.2.1",
+ "listr": "0.12.0",
+ "lodash": "4.17.4",
+ "log-symbols": "2.1.0",
+ "minimatch": "3.0.4",
+ "npm-which": "3.0.1",
+ "p-map": "1.2.0",
+ "staged-git-files": "0.0.4",
+ "stringify-object": "3.2.1"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
+ "dev": true,
+ "requires": {
+ "color-convert": "1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.0.tgz",
+ "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "3.2.0",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "4.5.0"
+ }
+ },
+ "execa": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz",
+ "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "5.1.0",
+ "get-stream": "3.0.0",
+ "is-stream": "1.1.0",
+ "npm-run-path": "2.0.2",
+ "p-finally": "1.0.0",
+ "signal-exit": "3.0.2",
+ "strip-eof": "1.0.0"
+ }
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
+ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "2.1.1"
+ }
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "1.1.8"
+ }
+ },
+ "supports-color": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
+ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
+ "dev": true,
+ "requires": {
+ "has-flag": "2.0.0"
+ }
+ }
+ }
+ },
+ "listr": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/listr/-/listr-0.12.0.tgz",
+ "integrity": "sha1-a84sD1YD+klYDqF81qAMwOX6RRo=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "cli-truncate": "0.2.1",
+ "figures": "1.7.0",
+ "indent-string": "2.1.0",
+ "is-promise": "2.1.0",
+ "is-stream": "1.1.0",
+ "listr-silent-renderer": "1.1.1",
+ "listr-update-renderer": "0.2.0",
+ "listr-verbose-renderer": "0.4.0",
+ "log-symbols": "1.0.2",
+ "log-update": "1.0.2",
+ "ora": "0.2.3",
+ "p-map": "1.2.0",
+ "rxjs": "5.4.3",
+ "stream-to-observable": "0.1.0",
+ "strip-ansi": "3.0.1"
+ },
+ "dependencies": {
+ "log-symbols": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz",
+ "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3"
+ }
+ }
+ }
+ },
+ "listr-silent-renderer": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz",
+ "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=",
+ "dev": true
+ },
+ "listr-update-renderer": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.2.0.tgz",
+ "integrity": "sha1-yoDhd5tOcCZoB+ju0a1qvjmFUPk=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "cli-truncate": "0.2.1",
+ "elegant-spinner": "1.0.1",
+ "figures": "1.7.0",
+ "indent-string": "3.2.0",
+ "log-symbols": "1.0.2",
+ "log-update": "1.0.2",
+ "strip-ansi": "3.0.1"
+ },
+ "dependencies": {
+ "indent-string": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
+ "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=",
+ "dev": true
+ },
+ "log-symbols": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz",
+ "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3"
+ }
+ }
+ }
+ },
+ "listr-verbose-renderer": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.4.0.tgz",
+ "integrity": "sha1-RNwBuww0oDxXIVTU0Izemx3FYg8=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "cli-cursor": "1.0.2",
+ "date-fns": "1.29.0",
+ "figures": "1.7.0"
+ }
+ },
+ "load-json-file": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "parse-json": "2.2.0",
+ "pify": "2.3.0",
+ "strip-bom": "3.0.0"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true
+ }
+ }
+ },
+ "loader-runner": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz",
+ "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=",
+ "dev": true
+ },
+ "loader-utils": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
+ "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
+ "dev": true,
+ "requires": {
+ "big.js": "3.2.0",
+ "emojis-list": "2.1.0",
+ "json5": "0.5.1"
+ }
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "dev": true,
+ "requires": {
+ "p-locate": "2.0.0",
+ "path-exists": "3.0.0"
+ }
+ },
+ "lodash": {
+ "version": "4.17.4",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
+ "dev": true
+ },
+ "log-symbols": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.1.0.tgz",
+ "integrity": "sha512-zLeLrzMA1A2vRF1e/0Mo+LNINzi6jzBylHj5WqvQ/WK/5WCZt8si9SyN4p9llr/HRYvVR1AoXHRHl4WTHyQAzQ==",
+ "dev": true,
+ "requires": {
+ "chalk": "2.2.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
+ "dev": true,
+ "requires": {
+ "color-convert": "1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.0.tgz",
+ "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "3.2.0",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "4.5.0"
+ }
+ },
+ "supports-color": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
+ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
+ "dev": true,
+ "requires": {
+ "has-flag": "2.0.0"
+ }
+ }
+ }
+ },
+ "log-update": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/log-update/-/log-update-1.0.2.tgz",
+ "integrity": "sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "1.4.0",
+ "cli-cursor": "1.0.2"
+ }
+ },
+ "longest": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
+ "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
+ "dev": true
+ },
+ "lowercase-keys": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz",
+ "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=",
+ "dev": true
+ },
+ "lru-cache": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.2.tgz",
+ "integrity": "sha1-H92tk4quEmPOE4aAvhs/WRwKtBw=",
+ "dev": true
+ },
+ "map-stream": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz",
+ "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=",
+ "dev": true
+ },
+ "materialize-css": {
+ "version": "0.98.1",
+ "resolved": "https://registry.npmjs.org/materialize-css/-/materialize-css-0.98.1.tgz",
+ "integrity": "sha1-cnaJWyyZi1PibeqgwjoEhMCFHZk=",
+ "dev": true,
+ "requires": {
+ "hammerjs": "2.0.8",
+ "jquery": "2.2.4",
+ "node-archiver": "0.3.0"
+ },
+ "dependencies": {
+ "jquery": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/jquery/-/jquery-2.2.4.tgz",
+ "integrity": "sha1-LInWiJterFIqfuoywUUhVZxsvwI=",
+ "dev": true
+ }
+ }
+ },
+ "md5.js": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz",
+ "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=",
+ "dev": true,
+ "requires": {
+ "hash-base": "3.0.4",
+ "inherits": "2.0.3"
+ },
+ "dependencies": {
+ "hash-base": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
+ "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "safe-buffer": "5.1.1"
+ }
+ }
+ }
+ },
+ "mem": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
+ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "1.1.0"
+ }
+ },
+ "memory-fs": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
+ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
+ "dev": true,
+ "requires": {
+ "errno": "0.1.4",
+ "readable-stream": "2.3.3"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
+ "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "1.0.7",
+ "safe-buffer": "5.1.1",
+ "string_decoder": "1.0.3",
+ "util-deprecate": "1.0.2"
+ }
+ },
+ "string_decoder": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
+ "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.1"
+ }
+ }
+ }
+ },
+ "micromatch": {
+ "version": "2.3.11",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
+ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
+ "dev": true,
+ "requires": {
+ "arr-diff": "2.0.0",
+ "array-unique": "0.2.1",
+ "braces": "1.8.5",
+ "expand-brackets": "0.1.5",
+ "extglob": "0.3.2",
+ "filename-regex": "2.0.1",
+ "is-extglob": "1.0.0",
+ "is-glob": "2.0.1",
+ "kind-of": "3.2.2",
+ "normalize-path": "2.1.1",
+ "object.omit": "2.0.1",
+ "parse-glob": "3.0.4",
+ "regex-cache": "0.4.4"
+ }
+ },
+ "miller-rabin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
+ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "brorand": "1.1.0"
+ }
+ },
+ "mime-db": {
+ "version": "1.30.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz",
+ "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=",
+ "dev": true
+ },
+ "mime-types": {
+ "version": "2.1.17",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz",
+ "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=",
+ "dev": true,
+ "requires": {
+ "mime-db": "1.30.0"
+ }
+ },
+ "mimic-fn": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz",
+ "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=",
+ "dev": true
+ },
+ "minichain": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/minichain/-/minichain-0.0.1.tgz",
+ "integrity": "sha1-C65Jd0Fw2JMUAcJxu27W05kqn1I=",
+ "dev": true,
+ "requires": {
+ "ministyle": "0.1.4",
+ "miniwrite": "0.1.4"
+ }
+ },
+ "minimalistic-assert": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz",
+ "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=",
+ "dev": true
+ },
+ "minimalistic-crypto-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+ "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz",
+ "integrity": "sha1-4N0hILSeG3JM6NcUxSCCKpQ4V20=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "2.5.2",
+ "sigmund": "1.0.1"
+ }
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ },
+ "ministyle": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/ministyle/-/ministyle-0.1.4.tgz",
+ "integrity": "sha1-sQSB6xaqj3ts2YOBc5OkTaDloM0=",
+ "dev": true
+ },
+ "minitable": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/minitable/-/minitable-0.0.4.tgz",
+ "integrity": "sha1-jWHLePrm83HYBRznfop4Mc49U5Y=",
+ "dev": true,
+ "requires": {
+ "minichain": "0.0.1",
+ "ministyle": "0.1.4",
+ "miniwrite": "0.1.4"
+ }
+ },
+ "miniwrite": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/miniwrite/-/miniwrite-0.1.4.tgz",
+ "integrity": "sha1-cvAjhcCsN9VC7+J9xnZLMZCHJc4=",
+ "dev": true,
+ "requires": {
+ "mkdirp": "0.3.5"
+ },
+ "dependencies": {
+ "mkdirp": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz",
+ "integrity": "sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc=",
+ "dev": true
+ }
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "dev": true
+ }
+ }
+ },
+ "modal-box": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/modal-box/-/modal-box-2.0.7.tgz",
+ "integrity": "sha1-KBmktjuG1iYxRqZH8tYNfmVW5J0=",
+ "dev": true
+ },
+ "moment": {
+ "version": "2.19.1",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.19.1.tgz",
+ "integrity": "sha1-VtoaLRy/AdOLfhr8McELz6GSkWc=",
+ "dev": true
+ },
+ "natives": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.0.tgz",
+ "integrity": "sha1-6f+EFBimsux6SV6TmYT3jxY+bjE=",
+ "dev": true
+ },
+ "nested-error-stacks": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz",
+ "integrity": "sha1-GfYZWRUZ8JZ2mlupqG5u7sgjw88=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3"
+ }
+ },
+ "node-archiver": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/node-archiver/-/node-archiver-0.3.0.tgz",
+ "integrity": "sha1-ufGv5QBtC98pJgGBgzoHCXi8aUc=",
+ "dev": true,
+ "requires": {
+ "fstream": "1.0.11",
+ "tar": "2.2.1"
+ }
+ },
+ "node-libs-browser": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.0.0.tgz",
+ "integrity": "sha1-o6WeyXAkmFtG6Vg3lkb5bEthZkY=",
+ "dev": true,
+ "requires": {
+ "assert": "1.4.1",
+ "browserify-zlib": "0.1.4",
+ "buffer": "4.9.1",
+ "console-browserify": "1.1.0",
+ "constants-browserify": "1.0.0",
+ "crypto-browserify": "3.11.1",
+ "domain-browser": "1.1.7",
+ "events": "1.1.1",
+ "https-browserify": "0.0.1",
+ "os-browserify": "0.2.1",
+ "path-browserify": "0.0.0",
+ "process": "0.11.10",
+ "punycode": "1.4.1",
+ "querystring-es3": "0.2.1",
+ "readable-stream": "2.3.3",
+ "stream-browserify": "2.0.1",
+ "stream-http": "2.7.2",
+ "string_decoder": "0.10.31",
+ "timers-browserify": "2.0.4",
+ "tty-browserify": "0.0.0",
+ "url": "0.11.0",
+ "util": "0.10.3",
+ "vm-browserify": "0.0.4"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
+ "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "1.0.7",
+ "safe-buffer": "5.1.1",
+ "string_decoder": "1.0.3",
+ "util-deprecate": "1.0.2"
+ },
+ "dependencies": {
+ "string_decoder": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
+ "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.1"
+ }
+ }
+ }
+ }
+ }
+ },
+ "node-uuid": {
+ "version": "1.4.8",
+ "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz",
+ "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=",
+ "dev": true
+ },
+ "node-version": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/node-version/-/node-version-1.1.0.tgz",
+ "integrity": "sha512-t1V2RFiaTavaW3jtQO0A2nok6k7/Gghuvx2rjvICuT0B0dYaObBQ4U0xHL+ZTPFZodt1LMYG2Vi2nypfz4/AJg==",
+ "dev": true
+ },
+ "normalize-package-data": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
+ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "2.5.0",
+ "is-builtin-module": "1.0.0",
+ "semver": "4.3.6",
+ "validate-npm-package-license": "3.0.1"
+ }
+ },
+ "normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "dev": true,
+ "requires": {
+ "remove-trailing-separator": "1.1.0"
+ }
+ },
+ "npm-path": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/npm-path/-/npm-path-2.0.3.tgz",
+ "integrity": "sha1-Fc/04ciaONp39W9gVbJPl137K74=",
+ "dev": true,
+ "requires": {
+ "which": "1.3.0"
+ }
+ },
+ "npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+ "dev": true,
+ "requires": {
+ "path-key": "2.0.1"
+ }
+ },
+ "npm-which": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/npm-which/-/npm-which-3.0.1.tgz",
+ "integrity": "sha1-kiXybsOihcIJyuZ8OxGmtKtxQKo=",
+ "dev": true,
+ "requires": {
+ "commander": "2.11.0",
+ "npm-path": "2.0.3",
+ "which": "1.3.0"
+ }
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+ "dev": true
+ },
+ "oauth-sign": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
+ "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
+ "dev": true
+ },
+ "object-assign": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz",
+ "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=",
+ "dev": true
+ },
+ "object.omit": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
+ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
+ "dev": true,
+ "requires": {
+ "for-own": "0.1.5",
+ "is-extendable": "0.1.1"
+ }
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "requires": {
+ "wrappy": "1.0.2"
+ }
+ },
+ "onetime": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
+ "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
+ "dev": true
+ },
+ "open": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/open/-/open-0.0.5.tgz",
+ "integrity": "sha1-QsPhjslUZra/DcQvOilFw/DK2Pw=",
+ "dev": true
+ },
+ "ora": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-0.2.3.tgz",
+ "integrity": "sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "cli-cursor": "1.0.2",
+ "cli-spinners": "0.1.2",
+ "object-assign": "4.1.1"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ }
+ }
+ },
+ "os-browserify": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz",
+ "integrity": "sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8=",
+ "dev": true
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+ "dev": true
+ },
+ "os-locale": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
+ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
+ "dev": true,
+ "requires": {
+ "execa": "0.7.0",
+ "lcid": "1.0.0",
+ "mem": "1.1.0"
+ }
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+ "dev": true
+ },
+ "osenv": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz",
+ "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=",
+ "dev": true,
+ "requires": {
+ "os-homedir": "1.0.2",
+ "os-tmpdir": "1.0.2"
+ }
+ },
+ "p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+ "dev": true
+ },
+ "p-limit": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz",
+ "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=",
+ "dev": true
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "dev": true,
+ "requires": {
+ "p-limit": "1.1.0"
+ }
+ },
+ "p-map": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz",
+ "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==",
+ "dev": true
+ },
+ "package-json": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/package-json/-/package-json-1.2.0.tgz",
+ "integrity": "sha1-yOysCUInzfdqMWh07QXifMk5oOA=",
+ "dev": true,
+ "requires": {
+ "got": "3.3.1",
+ "registry-url": "3.1.0"
+ }
+ },
+ "pako": {
+ "version": "0.2.9",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
+ "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=",
+ "dev": true
+ },
+ "parse-asn1": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz",
+ "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=",
+ "dev": true,
+ "requires": {
+ "asn1.js": "4.9.1",
+ "browserify-aes": "1.1.0",
+ "create-hash": "1.1.3",
+ "evp_bytestokey": "1.0.3",
+ "pbkdf2": "3.0.14"
+ }
+ },
+ "parse-glob": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
+ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
+ "dev": true,
+ "requires": {
+ "glob-base": "0.3.0",
+ "is-dotfile": "1.0.3",
+ "is-extglob": "1.0.0",
+ "is-glob": "2.0.1"
+ }
+ },
+ "parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "dev": true,
+ "requires": {
+ "error-ex": "1.3.1"
+ }
+ },
+ "parsimmon": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/parsimmon/-/parsimmon-0.5.1.tgz",
+ "integrity": "sha1-JHyXDX1emaURFbFqEG3pbw65MDs=",
+ "dev": true,
+ "requires": {
+ "pjs": "5.1.1"
+ }
+ },
+ "path-browserify": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz",
+ "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+ "dev": true
+ },
+ "path-type": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
+ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
+ "dev": true,
+ "requires": {
+ "pify": "2.3.0"
+ }
+ },
+ "pause-stream": {
+ "version": "0.0.11",
+ "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
+ "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=",
+ "dev": true,
+ "requires": {
+ "through": "2.3.8"
+ }
+ },
+ "pbkdf2": {
+ "version": "3.0.14",
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz",
+ "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==",
+ "dev": true,
+ "requires": {
+ "create-hash": "1.1.3",
+ "create-hmac": "1.1.6",
+ "ripemd160": "2.0.1",
+ "safe-buffer": "5.1.1",
+ "sha.js": "2.4.9"
+ }
+ },
+ "performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
+ "dev": true
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ },
+ "pikaday": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/pikaday/-/pikaday-1.6.1.tgz",
+ "integrity": "sha512-B+pxVcSGuzLblMe4dnhCF3dnI2zkyj5GAqanGX9cVcOk90fp2ULo1OZFUPRXQXUE5tmcimnk1tPOFs8tUHQetQ==",
+ "dev": true,
+ "requires": {
+ "moment": "2.19.1"
+ }
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+ "dev": true
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "dev": true,
+ "requires": {
+ "pinkie": "2.0.4"
+ }
+ },
+ "pjs": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/pjs/-/pjs-5.1.1.tgz",
+ "integrity": "sha1-nfxGc7sB3v/WkV+x3sdYJ6ukKr8=",
+ "dev": true
+ },
+ "prepend-http": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
+ "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
+ "dev": true
+ },
+ "preserve": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
+ "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
+ "dev": true
+ },
+ "pretty-format": {
+ "version": "21.2.1",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-21.2.1.tgz",
+ "integrity": "sha512-ZdWPGYAnYfcVP8yKA3zFjCn8s4/17TeYH28MXuC8vTp0o21eXjbFGcOAXZEaDaOFJjc3h2qa7HQNHNshhvoh2A==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "3.0.0",
+ "ansi-styles": "3.2.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
+ "dev": true,
+ "requires": {
+ "color-convert": "1.9.0"
+ }
+ }
+ }
+ },
+ "process": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
+ "dev": true
+ },
+ "process-nextick-args": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+ "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
+ "dev": true
+ },
+ "promise-polyfill": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-6.0.2.tgz",
+ "integrity": "sha1-2chtPcTcLfkBboiUbe/Wm0m0EWI=",
+ "dev": true
+ },
+ "prr": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz",
+ "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=",
+ "dev": true
+ },
+ "pseudomap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
+ "dev": true
+ },
+ "public-encrypt": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz",
+ "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=",
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "browserify-rsa": "4.0.1",
+ "create-hash": "1.1.3",
+ "parse-asn1": "5.1.0",
+ "randombytes": "2.0.5"
+ }
+ },
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+ "dev": true
+ },
+ "qs": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
+ "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==",
+ "dev": true
+ },
+ "querystring": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
+ "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
+ "dev": true
+ },
+ "querystring-es3": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
+ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
+ "dev": true
+ },
+ "randomatic": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz",
+ "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==",
+ "dev": true,
+ "requires": {
+ "is-number": "3.0.0",
+ "kind-of": "4.0.0"
+ },
+ "dependencies": {
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "1.1.5"
+ }
+ }
+ }
+ },
+ "kind-of": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "1.1.5"
+ }
+ }
+ }
+ },
+ "randombytes": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz",
+ "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "rc": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.2.tgz",
+ "integrity": "sha1-2M6ctX6NZNnHut2YdsfDTL48cHc=",
+ "dev": true,
+ "requires": {
+ "deep-extend": "0.4.2",
+ "ini": "1.3.4",
+ "minimist": "1.2.0",
+ "strip-json-comments": "2.0.1"
+ }
+ },
+ "read-all-stream": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz",
+ "integrity": "sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po=",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "2.0.1",
+ "readable-stream": "2.3.3"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
+ "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "1.0.7",
+ "safe-buffer": "5.1.1",
+ "string_decoder": "1.0.3",
+ "util-deprecate": "1.0.2"
+ }
+ },
+ "string_decoder": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
+ "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.1"
+ }
+ }
+ }
+ },
+ "read-pkg": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
+ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "2.0.0",
+ "normalize-package-data": "2.4.0",
+ "path-type": "2.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
+ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
+ "dev": true,
+ "requires": {
+ "find-up": "2.1.0",
+ "read-pkg": "2.0.0"
+ }
+ },
+ "readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "0.0.1",
+ "string_decoder": "0.10.31"
+ }
+ },
+ "readdirp": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz",
+ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "minimatch": "3.0.4",
+ "readable-stream": "2.3.3",
+ "set-immediate-shim": "1.0.1"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "1.1.8"
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
+ "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "1.0.7",
+ "safe-buffer": "5.1.1",
+ "string_decoder": "1.0.3",
+ "util-deprecate": "1.0.2"
+ }
+ },
+ "string_decoder": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
+ "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.1"
+ }
+ }
+ }
+ },
+ "regex-cache": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
+ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
+ "dev": true,
+ "requires": {
+ "is-equal-shallow": "0.1.3"
+ }
+ },
+ "registry-url": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz",
+ "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=",
+ "dev": true,
+ "requires": {
+ "rc": "1.2.2"
+ }
+ },
+ "remove-trailing-separator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
+ "dev": true
+ },
+ "repeat-element": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
+ "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=",
+ "dev": true
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+ "dev": true
+ },
+ "repeating": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+ "dev": true,
+ "requires": {
+ "is-finite": "1.0.2"
+ }
+ },
+ "request": {
+ "version": "2.83.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz",
+ "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==",
+ "dev": true,
+ "requires": {
+ "aws-sign2": "0.7.0",
+ "aws4": "1.6.0",
+ "caseless": "0.12.0",
+ "combined-stream": "1.0.5",
+ "extend": "3.0.1",
+ "forever-agent": "0.6.1",
+ "form-data": "2.3.1",
+ "har-validator": "5.0.3",
+ "hawk": "6.0.2",
+ "http-signature": "1.2.0",
+ "is-typedarray": "1.0.0",
+ "isstream": "0.1.2",
+ "json-stringify-safe": "5.0.1",
+ "mime-types": "2.1.17",
+ "oauth-sign": "0.8.2",
+ "performance-now": "2.1.0",
+ "qs": "6.5.1",
+ "safe-buffer": "5.1.1",
+ "stringstream": "0.0.5",
+ "tough-cookie": "2.3.3",
+ "tunnel-agent": "0.6.0",
+ "uuid": "3.1.0"
+ },
+ "dependencies": {
+ "uuid": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz",
+ "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==",
+ "dev": true
+ }
+ }
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+ "dev": true
+ },
+ "require-from-string": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz",
+ "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=",
+ "dev": true
+ },
+ "require-main-filename": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
+ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
+ "dev": true
+ },
+ "restore-cursor": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
+ "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
+ "dev": true,
+ "requires": {
+ "exit-hook": "1.1.1",
+ "onetime": "1.1.0"
+ }
+ },
+ "right-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
+ "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
+ "dev": true,
+ "requires": {
+ "align-text": "0.1.4"
+ }
+ },
+ "rimraf": {
+ "version": "2.2.8",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
+ "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=",
+ "dev": true
+ },
+ "ripemd160": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz",
+ "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=",
+ "dev": true,
+ "requires": {
+ "hash-base": "2.0.2",
+ "inherits": "2.0.3"
+ }
+ },
+ "rw": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
+ "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=",
+ "dev": true
+ },
+ "rxjs": {
+ "version": "5.4.3",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.4.3.tgz",
+ "integrity": "sha512-fSNi+y+P9ss+EZuV0GcIIqPUK07DEaMRUtLJvdcvMyFjc9dizuDjere+A4V7JrLGnm9iCc+nagV/4QdMTkqC4A==",
+ "dev": true,
+ "requires": {
+ "symbol-observable": "1.0.4"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
+ "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
+ "dev": true
+ },
+ "semver": {
+ "version": "4.3.6",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
+ "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=",
+ "dev": true
+ },
+ "semver-diff": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz",
+ "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=",
+ "dev": true,
+ "requires": {
+ "semver": "5.4.1"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
+ "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==",
+ "dev": true
+ }
+ }
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+ "dev": true
+ },
+ "set-immediate-shim": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
+ "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=",
+ "dev": true
+ },
+ "setimmediate": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
+ "dev": true
+ },
+ "sha.js": {
+ "version": "2.4.9",
+ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.9.tgz",
+ "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+ "dev": true
+ },
+ "sigmund": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
+ "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
+ "dev": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
+ "dev": true
+ },
+ "slice-ansi": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz",
+ "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=",
+ "dev": true
+ },
+ "sntp": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.0.2.tgz",
+ "integrity": "sha1-UGQRDwr4X3z9t9a2ekACjOUrSys=",
+ "dev": true,
+ "requires": {
+ "hoek": "4.2.0"
+ },
+ "dependencies": {
+ "hoek": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz",
+ "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==",
+ "dev": true
+ }
+ }
+ },
+ "source-list-map": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz",
+ "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "spdx-correct": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
+ "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
+ "dev": true,
+ "requires": {
+ "spdx-license-ids": "1.2.2"
+ }
+ },
+ "spdx-expression-parse": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
+ "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=",
+ "dev": true
+ },
+ "spdx-license-ids": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
+ "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=",
+ "dev": true
+ },
+ "split": {
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/split/-/split-0.2.10.tgz",
+ "integrity": "sha1-Zwl8YB1pfOE2j0GPBs0gHPBSGlc=",
+ "dev": true,
+ "requires": {
+ "through": "2.3.8"
+ }
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
+ },
+ "sshpk": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz",
+ "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=",
+ "dev": true,
+ "requires": {
+ "asn1": "0.2.3",
+ "assert-plus": "1.0.0",
+ "bcrypt-pbkdf": "1.0.1",
+ "dashdash": "1.14.1",
+ "ecc-jsbn": "0.1.1",
+ "getpass": "0.1.7",
+ "jsbn": "0.1.1",
+ "tweetnacl": "0.14.5"
+ }
+ },
+ "staged-git-files": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/staged-git-files/-/staged-git-files-0.0.4.tgz",
+ "integrity": "sha1-15fhtVHKemOd7AI33G60u5vhfTU=",
+ "dev": true
+ },
+ "stream-browserify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
+ "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "readable-stream": "2.3.3"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
+ "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "1.0.7",
+ "safe-buffer": "5.1.1",
+ "string_decoder": "1.0.3",
+ "util-deprecate": "1.0.2"
+ }
+ },
+ "string_decoder": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
+ "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.1"
+ }
+ }
+ }
+ },
+ "stream-combiner": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz",
+ "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=",
+ "dev": true,
+ "requires": {
+ "duplexer": "0.1.1"
+ }
+ },
+ "stream-http": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz",
+ "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==",
+ "dev": true,
+ "requires": {
+ "builtin-status-codes": "3.0.0",
+ "inherits": "2.0.3",
+ "readable-stream": "2.3.3",
+ "to-arraybuffer": "1.0.1",
+ "xtend": "4.0.1"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
+ "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "1.0.7",
+ "safe-buffer": "5.1.1",
+ "string_decoder": "1.0.3",
+ "util-deprecate": "1.0.2"
+ }
+ },
+ "string_decoder": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
+ "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.1"
+ }
+ }
+ }
+ },
+ "stream-shift": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
+ "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
+ "dev": true
+ },
+ "stream-to-observable": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/stream-to-observable/-/stream-to-observable-0.1.0.tgz",
+ "integrity": "sha1-Rb8dny19wJvtgfHDB8Qw5ouEz/4=",
+ "dev": true
+ },
+ "string-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz",
+ "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=",
+ "dev": true,
+ "requires": {
+ "strip-ansi": "3.0.1"
+ }
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "2.0.0",
+ "strip-ansi": "4.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "3.0.0"
+ }
+ }
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "dev": true
+ },
+ "stringify-object": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.2.1.tgz",
+ "integrity": "sha512-jPcQYw/52HUPP8uOE4kkjxl5bB9LfHkKCTptIk3qw7ozP5XMIMlHMLjt00GGSwW6DJAf/njY5EU6Vpwl4LlBKQ==",
+ "dev": true,
+ "requires": {
+ "get-own-enumerable-property-symbols": "2.0.1",
+ "is-obj": "1.0.1",
+ "is-regexp": "1.0.0"
+ }
+ },
+ "stringstream": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
+ "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ },
+ "strip-eof": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
+ "dev": true
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ },
+ "symbol-observable": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz",
+ "integrity": "sha1-Kb9hXUqnEhvdiYsi1LP5vE4qoD0=",
+ "dev": true
+ },
+ "tapable": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz",
+ "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=",
+ "dev": true
+ },
+ "tar": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
+ "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
+ "dev": true,
+ "requires": {
+ "block-stream": "0.0.9",
+ "fstream": "1.0.11",
+ "inherits": "2.0.3"
+ }
+ },
+ "through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+ "dev": true
+ },
+ "timed-out": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-2.0.0.tgz",
+ "integrity": "sha1-84sK6B03R9YoAB9B2vxlKs5nHAo=",
+ "dev": true
+ },
+ "timers-browserify": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz",
+ "integrity": "sha512-uZYhyU3EX8O7HQP+J9fTVYwsq90Vr68xPEFo7yrVImIxYvHgukBEgOB/SgGoorWVTzGM/3Z+wUNnboA4M8jWrg==",
+ "dev": true,
+ "requires": {
+ "setimmediate": "1.0.5"
+ }
+ },
+ "to-arraybuffer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
+ "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=",
+ "dev": true
+ },
+ "topo": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/topo/-/topo-1.1.0.tgz",
+ "integrity": "sha1-6ddRYV0buH3IZdsYL6HKCl71NtU=",
+ "dev": true,
+ "requires": {
+ "hoek": "2.16.3"
+ }
+ },
+ "tough-cookie": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz",
+ "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=",
+ "dev": true,
+ "requires": {
+ "punycode": "1.4.1"
+ }
+ },
+ "ts-loader": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-3.0.2.tgz",
+ "integrity": "sha512-dy82zfGOAZtF2LRsmryU1aKebtcdIS+diswWoMjFx0wY+knHLENVI2vOvmjB7fy8i4kWRuUPK2FAxjMB4CDmCA==",
+ "dev": true,
+ "requires": {
+ "chalk": "2.1.0",
+ "enhanced-resolve": "3.4.1",
+ "loader-utils": "1.1.0",
+ "semver": "5.4.1"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
+ "dev": true,
+ "requires": {
+ "color-convert": "1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz",
+ "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "3.2.0",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "4.4.0"
+ }
+ },
+ "semver": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
+ "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
+ "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
+ "dev": true,
+ "requires": {
+ "has-flag": "2.0.0"
+ }
+ }
+ }
+ },
+ "tsd": {
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/tsd/-/tsd-0.6.5.tgz",
+ "integrity": "sha1-NKC2TB22pws4YP5PVXHZ0TV0Ia0=",
+ "dev": true,
+ "requires": {
+ "assertion-error": "1.0.0",
+ "bl": "0.9.5",
+ "bluebird": "1.2.4",
+ "chalk": "1.1.3",
+ "colors": "1.1.2",
+ "deep-freeze": "0.0.1",
+ "definition-header": "0.1.0",
+ "detect-indent": "0.2.0",
+ "diff": "1.4.0",
+ "event-stream": "3.1.7",
+ "exit": "0.1.2",
+ "glob": "4.5.3",
+ "joi": "4.9.0",
+ "joi-assert": "0.0.3",
+ "jsesc": "0.5.0",
+ "json-pointer": "0.2.2",
+ "lazy.js": "0.3.2",
+ "lru-cache": "2.5.2",
+ "minimatch": "1.0.0",
+ "minimist": "1.2.0",
+ "ministyle": "0.1.4",
+ "minitable": "0.0.4",
+ "miniwrite": "0.1.4",
+ "mkdirp": "0.5.1",
+ "open": "0.0.5",
+ "request": "2.83.0",
+ "rimraf": "2.2.8",
+ "semver": "4.3.6",
+ "type-detect": "0.1.2",
+ "universal-analytics": "0.3.11",
+ "update-notifier": "0.2.2",
+ "uri-templates": "0.1.9",
+ "uuid": "2.0.3",
+ "verror": "1.4.0"
+ }
+ },
+ "tty-browserify": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
+ "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
+ "dev": true
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+ "dev": true,
+ "optional": true
+ },
+ "type-detect": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.2.tgz",
+ "integrity": "sha1-yI6FPlTlq9iPG/MZS0d8hTyU+FQ=",
+ "dev": true
+ },
+ "typescript": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.5.3.tgz",
+ "integrity": "sha512-ptLSQs2S4QuS6/OD1eAKG+S5G8QQtrU5RT32JULdZQtM1L3WTi34Wsu48Yndzi8xsObRAB9RPt/KhA9wlpEF6w==",
+ "dev": true
+ },
+ "uglify-js": {
+ "version": "2.8.29",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
+ "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
+ "dev": true,
+ "requires": {
+ "source-map": "0.5.7",
+ "uglify-to-browserify": "1.0.2",
+ "yargs": "3.10.0"
+ },
+ "dependencies": {
+ "yargs": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
+ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
+ "dev": true,
+ "requires": {
+ "camelcase": "1.2.1",
+ "cliui": "2.1.0",
+ "decamelize": "1.2.0",
+ "window-size": "0.1.0"
+ }
+ }
+ }
+ },
+ "uglify-to-browserify": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
+ "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
+ "dev": true,
+ "optional": true
+ },
+ "uglifyjs-webpack-plugin": {
+ "version": "0.4.6",
+ "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz",
+ "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=",
+ "dev": true,
+ "requires": {
+ "source-map": "0.5.7",
+ "uglify-js": "2.8.29",
+ "webpack-sources": "1.0.1"
+ }
+ },
+ "underscore": {
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz",
+ "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI="
+ },
+ "universal-analytics": {
+ "version": "0.3.11",
+ "resolved": "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.3.11.tgz",
+ "integrity": "sha1-USh5GToSpm3L2RhRITibq5E81LY=",
+ "dev": true,
+ "requires": {
+ "async": "0.2.10",
+ "node-uuid": "1.4.8",
+ "request": "2.83.0",
+ "underscore": "1.8.3"
+ }
+ },
+ "update-notifier": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-0.2.2.tgz",
+ "integrity": "sha1-5ps6eEtOaGoqzZj15mlEWRmW4Yc=",
+ "dev": true,
+ "requires": {
+ "chalk": "0.5.1",
+ "configstore": "0.3.2",
+ "is-npm": "1.0.0",
+ "latest-version": "1.0.1",
+ "semver-diff": "2.1.0",
+ "string-length": "1.0.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz",
+ "integrity": "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz",
+ "integrity": "sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz",
+ "integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "1.1.0",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "0.1.0",
+ "strip-ansi": "0.3.0",
+ "supports-color": "0.2.0"
+ }
+ },
+ "has-ansi": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz",
+ "integrity": "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "0.2.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz",
+ "integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "0.2.1"
+ }
+ },
+ "supports-color": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz",
+ "integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=",
+ "dev": true
+ }
+ }
+ },
+ "uri-templates": {
+ "version": "0.1.9",
+ "resolved": "https://registry.npmjs.org/uri-templates/-/uri-templates-0.1.9.tgz",
+ "integrity": "sha1-xW96VzGzoxAiZpX25WORgP0aokk=",
+ "dev": true
+ },
+ "url": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
+ "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
+ "dev": true,
+ "requires": {
+ "punycode": "1.3.2",
+ "querystring": "0.2.0"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
+ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
+ "dev": true
+ }
+ }
+ },
+ "user-home": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz",
+ "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=",
+ "dev": true
+ },
+ "util": {
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+ "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.1"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
+ "dev": true
+ }
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "dev": true
+ },
+ "uuid": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
+ "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=",
+ "dev": true
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
+ "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
+ "dev": true,
+ "requires": {
+ "spdx-correct": "1.0.2",
+ "spdx-expression-parse": "1.0.4"
+ }
+ },
+ "verror": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.4.0.tgz",
+ "integrity": "sha1-XY/fWHUUHDGDt8a8I6CqPj5spOI=",
+ "dev": true,
+ "requires": {
+ "extsprintf": "1.0.3"
+ },
+ "dependencies": {
+ "extsprintf": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.3.tgz",
+ "integrity": "sha1-MxDKjO1SBeUjR2awsnROpbJ4jWc=",
+ "dev": true
+ }
+ }
+ },
+ "vm-browserify": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz",
+ "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=",
+ "dev": true,
+ "requires": {
+ "indexof": "0.0.1"
+ }
+ },
+ "watchpack": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz",
+ "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=",
+ "dev": true,
+ "requires": {
+ "async": "2.5.0",
+ "chokidar": "1.7.0",
+ "graceful-fs": "4.1.11"
+ },
+ "dependencies": {
+ "async": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz",
+ "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==",
+ "dev": true,
+ "requires": {
+ "lodash": "4.17.4"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true
+ }
+ }
+ },
+ "webpack": {
+ "version": "3.8.1",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.8.1.tgz",
+ "integrity": "sha512-5ZXLWWsMqHKFr5y0N3Eo5IIisxeEeRAajNq4mELb/WELOR7srdbQk2N5XiyNy2A/AgvlR3AmeBCZJW8lHrolbw==",
+ "dev": true,
+ "requires": {
+ "acorn": "5.1.2",
+ "acorn-dynamic-import": "2.0.2",
+ "ajv": "5.2.3",
+ "ajv-keywords": "2.1.0",
+ "async": "2.5.0",
+ "enhanced-resolve": "3.4.1",
+ "escope": "3.6.0",
+ "interpret": "1.0.4",
+ "json-loader": "0.5.7",
+ "json5": "0.5.1",
+ "loader-runner": "2.3.0",
+ "loader-utils": "1.1.0",
+ "memory-fs": "0.4.1",
+ "mkdirp": "0.5.1",
+ "node-libs-browser": "2.0.0",
+ "source-map": "0.5.7",
+ "supports-color": "4.4.0",
+ "tapable": "0.2.8",
+ "uglifyjs-webpack-plugin": "0.4.6",
+ "watchpack": "1.4.0",
+ "webpack-sources": "1.0.1",
+ "yargs": "8.0.2"
+ },
+ "dependencies": {
+ "async": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz",
+ "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==",
+ "dev": true,
+ "requires": {
+ "lodash": "4.17.4"
+ }
+ },
+ "supports-color": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
+ "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
+ "dev": true,
+ "requires": {
+ "has-flag": "2.0.0"
+ }
+ }
+ }
+ },
+ "webpack-fail-plugin": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/webpack-fail-plugin/-/webpack-fail-plugin-2.0.0.tgz",
+ "integrity": "sha512-yLeD5BQGtsJM910SXGaos7VbwbY90e/EboyGK1DXaV0+xw08BWDdjALqWcD3UP8yGeAmCBQUnqIE69Y9zwoqcw==",
+ "dev": true
+ },
+ "webpack-sources": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.0.1.tgz",
+ "integrity": "sha512-05tMxipUCwHqYaVS8xc7sYPTly8PzXayRCB4dTxLhWTqlKUiwH6ezmEe0OSreL1c30LAuA3Zqmc+uEBUGFJDjw==",
+ "dev": true,
+ "requires": {
+ "source-list-map": "2.0.0",
+ "source-map": "0.5.7"
+ }
+ },
+ "whatwg-fetch": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz",
+ "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=",
+ "dev": true
+ },
+ "which": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz",
+ "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==",
+ "dev": true,
+ "requires": {
+ "isexe": "2.0.0"
+ }
+ },
+ "which-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+ "dev": true
+ },
+ "window-size": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
+ "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
+ "dev": true
+ },
+ "wordwrap": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
+ "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
+ "dev": true
+ },
+ "wrap-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+ "dev": true,
+ "requires": {
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1"
+ },
+ "dependencies": {
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ }
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "xdg-basedir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-1.0.1.tgz",
+ "integrity": "sha1-FP+PY6T9vLBdW27qIrNvMDO58E4=",
+ "dev": true,
+ "requires": {
+ "user-home": "1.1.1"
+ }
+ },
+ "xmlhttprequest": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz",
+ "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=",
+ "dev": true
+ },
+ "xregexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz",
+ "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=",
+ "dev": true
+ },
+ "xtend": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+ "dev": true
+ },
+ "y18n": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
+ "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
+ "dev": true
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+ "dev": true
+ },
+ "yargs": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz",
+ "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=",
+ "dev": true,
+ "requires": {
+ "camelcase": "4.1.0",
+ "cliui": "3.2.0",
+ "decamelize": "1.2.0",
+ "get-caller-file": "1.0.2",
+ "os-locale": "2.1.0",
+ "read-pkg-up": "2.0.0",
+ "require-directory": "2.1.1",
+ "require-main-filename": "1.0.1",
+ "set-blocking": "2.0.0",
+ "string-width": "2.1.1",
+ "which-module": "2.0.0",
+ "y18n": "3.2.1",
+ "yargs-parser": "7.0.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+ "dev": true
+ },
+ "cliui": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+ "dev": true,
+ "requires": {
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1",
+ "wrap-ansi": "2.1.0"
+ },
+ "dependencies": {
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ }
+ }
+ }
+ }
+ },
+ "yargs-parser": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz",
+ "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=",
+ "dev": true,
+ "requires": {
+ "camelcase": "4.1.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+ "dev": true
+ }
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..082898e
--- /dev/null
+++ b/package.json
@@ -0,0 +1,56 @@
+{
+ "name": "coveo-search-ui-tests",
+ "version": "0.0.1",
+ "description": "Testing framework for the Coveo JavaScript Search Framework",
+ "main": "./bin/js/CoveoJsSearchTests.js",
+ "peerDependencies": {
+ "coveo-search-ui": "2.3477.x"
+ },
+ "scripts": {
+ "precommit": "lint-staged",
+ "build": "webpack",
+ "dts": "node declaration.js"
+ },
+ "lint-staged": {
+ "*.{js,ts,json,.scss}": [
+ "prettier --write",
+ "git add"
+ ]
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/francoislg/search-ui-tests.git"
+ },
+ "keywords": [
+ "coveo-search",
+ "typescript",
+ "javascript",
+ "coveo",
+ "coveo-search-ui",
+ "jsui"
+ ],
+ "author": "Coveo",
+ "license": "Apache-2.0",
+ "bugs": {
+ "url": "https://github.com/francoislg/search-ui-tests/issues"
+ },
+ "homepage": "https://github.com/francoislg/search-ui-tests#readme",
+ "devDependencies": {
+ "@types/jasmine": "^2.6.0",
+ "child-process-promise": "^2.2.1",
+ "colors": "^1.1.2",
+ "coveo-search-ui": "^2.3477.1",
+ "dts-webpack-plugin": "0.0.9",
+ "exports-loader": "^0.6.4",
+ "lint-staged": "^4.2.3",
+ "ts-loader": "^3.0.2",
+ "typescript": "^2.5.3",
+ "webpack": "^3.8.1",
+ "webpack-fail-plugin": "^2.0.0"
+ },
+ "dependencies": {
+ "jquery": "^3.2.1",
+ "underscore": "^1.8.3"
+ },
+ "types": "./bin/ts/coveo-search-ui-tests.d.ts"
+}
diff --git a/src/Fake.ts b/src/Fake.ts
new file mode 100644
index 0000000..282a111
--- /dev/null
+++ b/src/Fake.ts
@@ -0,0 +1,5 @@
+export * from "./Fake/FakeAnalyticsEvents";
+export * from "./Fake/FakeEventArgs";
+export * from "./Fake/FakeFields";
+export * from "./Fake/FakeGroupBy";
+export * from "./Fake/FakeResults";
diff --git a/src/Fake/FakeAnalyticsEvents.ts b/src/Fake/FakeAnalyticsEvents.ts
new file mode 100644
index 0000000..10658f3
--- /dev/null
+++ b/src/Fake/FakeAnalyticsEvents.ts
@@ -0,0 +1,54 @@
+import { IClickEvent, ISearchEvent } from "coveo-search-ui";
+
+export function createFakeSearchEvent(token: string = "foo"): ISearchEvent {
+ return {
+ actionCause: token + "actionCause",
+ actionType: token + "actionType",
+ device: token + "device",
+ mobile: false,
+ originLevel1: token + "originLevel1",
+ originLevel2: token + "originLevel2",
+ originContext: "context",
+ language: token + "language",
+ responseTime: 0,
+ searchQueryUid: token + "searchQueryUid",
+ queryPipeline: token + "queryPipeline",
+ splitTestRunName: token + "splitTestRunName",
+ splitTestRunVersion: token + "splitTestRunVersion",
+ queryText: token + "queryText",
+ numberOfResults: 0,
+ resultsPerPage: 0,
+ pageNumber: 0,
+ advancedQuery: token + "advancedQuery",
+ didYouMean: false,
+ contextual: false
+ };
+}
+
+export function createFakeClickEvent(token: string = "foo"): IClickEvent {
+ return {
+ actionCause: token + "actionCause",
+ actionType: token + "actionType",
+ device: token + "device",
+ mobile: false,
+ originLevel1: token + "originLevel1",
+ originLevel2: token + "originLevel2",
+ originContext: "context",
+ language: token + "language",
+ responseTime: 0,
+ searchQueryUid: token + "searchQueryUid",
+ queryPipeline: token + "queryPipeline",
+ splitTestRunName: token + "splitTestRunName",
+ splitTestRunVersion: token + "splitTestRunVersion",
+ documentUri: token + "documentUri",
+ documentUriHash: token + "documentUriHash",
+ documentUrl: token + "documentUrl",
+ documentTitle: token + "documentTitle",
+ documentCategory: token + "documentCategory",
+ collectionName: token + "collectionName",
+ sourceName: token + "sourceName",
+ documentPosition: 0,
+ viewMethod: token + "viewMethod",
+ rankingModifier: token + "rankingModifier"
+ };
+}
diff --git a/src/Fake/FakeEventArgs.ts b/src/Fake/FakeEventArgs.ts
new file mode 100644
index 0000000..79071af
--- /dev/null
+++ b/src/Fake/FakeEventArgs.ts
@@ -0,0 +1,26 @@
+import { IOmniboxDataRow, IPopulateOmniboxEventArgs } from "coveo-search-ui";
+export function createPopulateOmniboxEventArgs(
+ queryboxContent: string,
+ cursorPosition: number,
+ rows: IOmniboxDataRow[] = []
+): IPopulateOmniboxEventArgs {
+ return {
+ completeQueryExpression: {
+ word: queryboxContent,
+ regex: new RegExp(queryboxContent, "gi")
+ },
+ allQueryExpressions: undefined,
+ currentQueryExpression: {
+ word: queryboxContent,
+ regex: new RegExp(queryboxContent, "gi")
+ },
+ cursorPosition: cursorPosition,
+ rows: [],
+ clear: () => {},
+ clearCurrentExpression: () => {},
+ closeOmnibox: () => {},
+ insertAt: () => {},
+ replace: () => {},
+ replaceCurrentExpression: () => {}
+ };
+}
diff --git a/src/Fake/FakeFields.ts b/src/Fake/FakeFields.ts
new file mode 100644
index 0000000..461e651
--- /dev/null
+++ b/src/Fake/FakeFields.ts
@@ -0,0 +1,28 @@
+import { Assert, IIndexFieldValue } from "coveo-search-ui";
+export function createFakeFieldValue(
+ token: string,
+ count: number
+): IIndexFieldValue {
+ Assert.isNonEmptyString(token);
+
+ return {
+ value: token,
+ lookupValue: token,
+ numberOfResults: count
+ };
+}
+
+export function createFakeFieldValues(
+ token: string,
+ count: number
+): IIndexFieldValue[] {
+ Assert.isNonEmptyString(token);
+ Assert.isLargerOrEqualsThan(0, count);
+
+ const fieldValues: IIndexFieldValue[] = [];
+ for (var i = 0; i < count; ++i) {
+ fieldValues.push(createFakeFieldValue(token + i.toString(), i + 1));
+ }
+
+ return fieldValues;
+}
diff --git a/src/Fake/FakeGroupBy.ts b/src/Fake/FakeGroupBy.ts
new file mode 100644
index 0000000..25df346
--- /dev/null
+++ b/src/Fake/FakeGroupBy.ts
@@ -0,0 +1,141 @@
+import { Assert, IGroupByValue, IGroupByResult } from "coveo-search-ui";
+
+export function createFakeGroupByResult(
+ field: string,
+ token: string,
+ count: number,
+ includeComputedValues?: boolean
+): IGroupByResult {
+ Assert.isNonEmptyString(field);
+ Assert.isNonEmptyString(token);
+ Assert.isLargerOrEqualsThan(0, count);
+
+ const groupByValues: IGroupByValue[] = [];
+ for (var i = 0; i < count; ++i) {
+ groupByValues.push(
+ createFakeGroupByValue(
+ token + i.toString(),
+ i + 1,
+ 100 + i,
+ includeComputedValues ? 1000 + i : undefined
+ )
+ );
+ }
+
+ return {
+ field: field,
+ values: groupByValues
+ };
+}
+
+export function createFakeRangeGroupByResult(
+ field: string,
+ start: number = 1,
+ end: number = 100,
+ steps: number = 25
+): IGroupByResult {
+ const groupByValues: IGroupByValue[] = [];
+ for (let i = start; i <= end; i += steps) {
+ groupByValues.push(
+ createFakeGroupByRangeValue(
+ i,
+ i + (steps - 1),
+ "foobar" + i.toString(),
+ i
+ )
+ );
+ }
+ return {
+ field: field,
+ values: groupByValues
+ };
+}
+
+export function createFakeHierarchicalValue(
+ token: string,
+ currentLevel: number,
+ delimitingCharacter: string = "|"
+): string {
+ let value = `level:${currentLevel.toString()}--value:${token}`;
+ if (currentLevel !== 0) {
+ for (let i = currentLevel - 1; i >= 0; i--) {
+ value = `level:${i.toString()}--value:${token}${delimitingCharacter}${value}`;
+ }
+ }
+ return value;
+}
+
+export function createFakeHierarchicalGroupByResult(
+ field: string,
+ token: string,
+ numberOfLevel: number = 2,
+ countByLevel: number = 3,
+ delimitingCharacter: string = "|",
+ includeComputedValues: boolean = false,
+ weirdCasing: boolean = true
+): IGroupByResult {
+ const groupByValues: IGroupByValue[] = [];
+ // i == level
+ for (var i = 0; i < numberOfLevel; ++i) {
+ // j == values on current level
+ for (var j = 0; j < countByLevel; j++) {
+ let currentValue = createFakeHierarchicalValue(
+ `${token}${j.toString()}`,
+ i
+ );
+ if (weirdCasing) {
+ currentValue = _.map(
+ currentValue.split(delimitingCharacter),
+ (value, k) =>
+ (i + j + k) % 2 === 0 ? value.toLowerCase() : value.toUpperCase()
+ ).join(delimitingCharacter);
+ }
+ const currentGroupByValue = createFakeGroupByValue(
+ currentValue,
+ j + 1,
+ 100,
+ includeComputedValues ? 1000 : undefined
+ );
+ groupByValues.push(currentGroupByValue);
+ }
+ }
+
+ return {
+ field: field,
+ values: groupByValues
+ };
+}
+
+export function createFakeGroupByValue(
+ token: string,
+ count: number,
+ score?: number,
+ computedValue?: number
+): IGroupByValue {
+ Assert.isNonEmptyString(token);
+
+ return {
+ value: token,
+ lookupValue: token,
+ numberOfResults: count,
+ score: score || count * 2,
+ computedFieldResults: computedValue ? [computedValue] : undefined
+ };
+}
+
+export function createFakeGroupByRangeValue(
+ from: number,
+ to: number,
+ token: string,
+ count: number,
+ score?: number,
+ computedValue?: number
+): IGroupByValue {
+ return {
+ value: from + ".." + to,
+ lookupValue: token,
+ numberOfResults: count,
+ score: score || count * 2,
+ computedFieldResults: computedValue ? [computedValue] : undefined
+ };
+}
diff --git a/src/Fake/FakeResults.ts b/src/Fake/FakeResults.ts
new file mode 100644
index 0000000..696d486
--- /dev/null
+++ b/src/Fake/FakeResults.ts
@@ -0,0 +1,218 @@
+import { mockSearchInterface } from "../MockEnvironment";
+import { IQueryResult, QueryUtils, IQueryResults } from "coveo-search-ui";
+
+export function createFakeResults(
+ count: number = 10,
+ token: string = ""
+): IQueryResults {
+ const results: IQueryResult[] = [];
+ for (let i = 0; i < count; ++i) {
+ results.push(createFakeResult(token + i.toString()));
+ }
+
+ return {
+ searchUid: QueryUtils.createGuid(),
+ pipeline: "pipeline",
+ splitTestRun: "splitTestRunName",
+ totalCount: count !== 0 ? count + 1 : 0,
+ totalCountFiltered: count !== 0 ? count + 1 : 0,
+ duration: 321,
+ indexDuration: 123,
+ clientDuration: 456,
+ results: results,
+ groupByResults: [],
+ queryCorrections: [],
+ _folded: undefined,
+ termsToHighlight: undefined,
+ phrasesToHighlight: undefined,
+ triggers: []
+ };
+}
+
+export function createFakeResultsWithChildResults(
+ count: number = 10,
+ numberOfChildResults: number = 5,
+ totalNumberOfChildResult: number = 5
+): IQueryResults {
+ const results: IQueryResult[] = [];
+ for (let i = 0; i < count; ++i) {
+ results.push(
+ createFakeResultWithChildResult(
+ i.toString(),
+ numberOfChildResults,
+ totalNumberOfChildResult
+ )
+ );
+ }
+
+ return {
+ searchUid: QueryUtils.createGuid(),
+ totalCount: count !== 0 ? count + 1 : 0,
+ totalCountFiltered: count !== 0 ? count + 1 : 0,
+ duration: 321,
+ indexDuration: 123,
+ clientDuration: 456,
+ results: results,
+ groupByResults: [],
+ queryCorrections: [],
+ _folded: undefined,
+ termsToHighlight: undefined,
+ phrasesToHighlight: undefined,
+ triggers: []
+ };
+}
+
+export function createFakeResult(token: string = "foo"): IQueryResult {
+ return
{
+ title: "Title" + token,
+ titleHighlights: [],
+ uri: "http://uri." + token + ".com",
+ printableUri: "http://printable.uri." + token + ".com",
+ printableUriHighlights: [],
+ clickUri: "http://click.uri." + token + ".com",
+ uniqueId: "uniqueId" + token,
+ excerpt: "excerpt" + token,
+ excerptHighlights: [],
+ firstSentences: "firstSentences" + token,
+ firstSentencesHighlights: [],
+ hasHtmlVersion: true,
+ hasMobileHtmlVersion: true,
+ flags: "HasThumbnail",
+ summary: "summary" + token,
+ summaryHighlights: [],
+ rankingInfo: "",
+ raw: {
+ string: "string value",
+ date: new Date(1980, 2, 11, 8, 30).valueOf(),
+ number: 123,
+ emails: "mlaporte@coveo.com;dlavoie@coveo.com",
+ empty: "",
+ randomNumber: Math.random(),
+ urihash: QueryUtils.createGuid(),
+ source: "the source",
+ collection: "the collection",
+ author: "o.o"
+ },
+ childResults: [],
+ termsToHighlight: {},
+ phrasesToHighlight: {},
+ index: 0,
+ queryUid: "the uid",
+ rating: 3,
+ state: {},
+ isRecommendation: false,
+ searchInterface: mockSearchInterface()
+ };
+}
+
+export function createFakeResultWithChildResult(
+ token: string,
+ numberOfChildResult: number,
+ totalNumberOfChildResult: number = 5
+): IQueryResult {
+ const childResults: IQueryResult[] = [];
+ for (var i = 0; i < numberOfChildResult; i++) {
+ childResults.push(createFakeResult(token + "-child" + i));
+ }
+ let ret = createFakeResult(token);
+ ret.totalNumberOfChildResults = totalNumberOfChildResult;
+ ret = _.extend(ret, { childResults: childResults });
+ return ret;
+}
+
+export function createFakeResultWithAttachments(
+ token: string = "test",
+ numberOfAttachments: number = 3,
+ attachmentType: string[] = ["xml", "pdf", "txt"],
+ flags: string = "HasThumbnail",
+ attachmentsFlags: string[] = ["IsAttachment", "IsAttachment", "IsAttachment"],
+ withSubAttachments: boolean = false
+): IQueryResult {
+ const fake = createFakeResult(token);
+ fake.flags = flags;
+ if (withSubAttachments) {
+ const subAttachments = [];
+ for (var i = 0; i < numberOfAttachments; i++) {
+ subAttachments.push(
+ createFakeResultWithAttachments(
+ "test1",
+ 3,
+ undefined,
+ undefined,
+ undefined,
+ false
+ )
+ );
+ }
+ fake.attachments = subAttachments;
+ } else {
+ fake.attachments = createFakeResults(numberOfAttachments).results;
+ }
+ _.each(attachmentType, (type, index, list) => {
+ if (fake.attachments[index] !== undefined) {
+ fake.attachments[index].raw["filetype"] = type;
+ }
+ });
+ _.each(attachmentsFlags, (flag, index, list) => {
+ if (fake.attachments[index] !== undefined) {
+ fake.attachments[index].flags = flag;
+ }
+ });
+ return fake;
+}
+
+export function createFakeFeedItemResult(
+ token: string,
+ nbLikes: number = 0,
+ nbTopics: number = 0,
+ hasAttachment: boolean = false
+): IQueryResult {
+ const result = createFakeResult(token);
+ result.raw.sfparentid = "parentid";
+ result.raw.sfparentname = "parentname";
+ result.raw.sffeeditemid = token + "id";
+ result.clickUri = "myURI/" + result.raw.sffeeditemid;
+ result.raw.sfcreatedby = "createdby";
+ result.raw.sfcreatedbyname = "createdby";
+ result.raw.sfcreatedbyid = "createdbyid";
+ result.raw.sfinsertedbyid = "createdbyid";
+
+ // Generate likes
+ if (nbLikes > 0) {
+ result.raw.sflikecount = nbLikes;
+ result.raw.sflikedby = "";
+ result.raw.sflikedbyid = "";
+
+ for (let i = 1; i <= nbLikes; i++) {
+ result.raw.sflikedby += "LikeName" + i;
+ result.raw.sflikedbyid += "LikeId" + i;
+
+ if (i !== nbLikes) {
+ result.raw.sflikedby += ";";
+ result.raw.sflikedbyid += ";";
+ }
+ }
+ }
+
+ // Generate topics
+ if (nbTopics > 0) {
+ result.raw.coveochatterfeedtopics = "";
+
+ for (let i = 1; i <= nbTopics; i++) {
+ result.raw.coveochatterfeedtopics += "topic" + i;
+
+ if (i !== nbTopics) {
+ result.raw.coveochatterfeedtopics += ";";
+ }
+ }
+ }
+
+ // Generate post attachment
+ if (hasAttachment) {
+ result.raw.coveochatterfeedtopics = "PostAttachment";
+ result.raw.sfcontentfilename = "fileName";
+ result.raw.sfcontentversionid = token;
+ }
+
+ return result;
+}
diff --git a/src/Index.ts b/src/Index.ts
new file mode 100644
index 0000000..2958f2c
--- /dev/null
+++ b/src/Index.ts
@@ -0,0 +1,5 @@
+import * as Fake from "./Fake";
+import * as Mock from "./MockEnvironment";
+import * as Simulate from "./Simulate";
+
+export { Fake, Mock, Simulate };
diff --git a/src/MockEnvironment.ts b/src/MockEnvironment.ts
new file mode 100644
index 0000000..ad8965f
--- /dev/null
+++ b/src/MockEnvironment.ts
@@ -0,0 +1,6 @@
+export * from "./MockEnvironment/AdvancedComponentsSetup";
+export * from "./MockEnvironment/BasicComponentsSetup";
+export * from "./MockEnvironment/ComponentsSetup";
+export * from "./MockEnvironment/MockComponents";
+export * from "./MockEnvironment/MockEnvironmentBuilder";
+export * from "./MockEnvironment/OptionsComponentsSetup";
diff --git a/src/MockEnvironment/AdvancedComponentsSetup.ts b/src/MockEnvironment/AdvancedComponentsSetup.ts
new file mode 100644
index 0000000..b1da8bd
--- /dev/null
+++ b/src/MockEnvironment/AdvancedComponentsSetup.ts
@@ -0,0 +1,128 @@
+import {
+ IBasicComponentSetup,
+ IComponentConstructor,
+ IComponentConstructorWithModalBox,
+ IComponentConstructorWithResult,
+ IComponentConstructorWithResultAndModalBox,
+ ISearchInterfaceConstructor,
+ ISearchInterfaceSetup,
+ IBasicComponentSetupWithModalBox
+} from "./ComponentsSetup";
+import {
+ MockEnvironmentBuilder,
+ IMockEnvironment
+} from "./MockEnvironmentBuilder";
+import {
+ BaseComponent,
+ ModalBox,
+ IComponentBindings,
+ Component,
+ IQueryResult,
+ SearchInterface,
+ $$,
+ ISearchInterfaceOptions,
+ OS_NAME
+} from "coveo-search-ui";
+import * as Simulate from "../Simulate";
+
+export type EnvironmentBuilderModifier = (
+ env: MockEnvironmentBuilder
+) => MockEnvironmentBuilder;
+
+export interface IAdvancedComponentConstructor {
+ new (
+ element: HTMLElement,
+ options: any,
+ bindings: IComponentBindings,
+ result: IQueryResult,
+ os: OS_NAME
+ ): T;
+}
+
+export class AdvancedComponentSetupOptions {
+ constructor(
+ public element: HTMLElement = $$("div").el,
+ public cmpOptions: any = {},
+ public modifyBuilder: EnvironmentBuilderModifier = (
+ env: MockEnvironmentBuilder
+ ) => env
+ ) {}
+
+ public merge(toMerge: AdvancedComponentSetupOptions): this {
+ if (toMerge) {
+ this.element = toMerge.element ? toMerge.element : this.element;
+ this.cmpOptions = toMerge.cmpOptions
+ ? toMerge.cmpOptions
+ : this.cmpOptions;
+ this.modifyBuilder = toMerge.modifyBuilder
+ ? toMerge.modifyBuilder
+ : this.modifyBuilder;
+ }
+ return this;
+ }
+}
+
+export function advancedComponentSetup(
+ klass: IComponentConstructor,
+ options?: AdvancedComponentSetupOptions
+): IBasicComponentSetup {
+ const baseOptions = new AdvancedComponentSetupOptions();
+ const optsMerged = baseOptions.merge(options);
+
+ let envBuilder = new MockEnvironmentBuilder().withElement(optsMerged.element);
+ envBuilder = optsMerged.modifyBuilder(envBuilder);
+ return {
+ env: envBuilder.build(),
+ cmp: new klass(
+ envBuilder.getBindings().element,
+ optsMerged.cmpOptions,
+ envBuilder.getBindings()
+ )
+ };
+}
+
+export function advancedComponentSetupWithModalBox(
+ klass: IComponentConstructorWithModalBox,
+ options?: AdvancedComponentSetupOptions
+): IBasicComponentSetupWithModalBox {
+ const baseOptions = new AdvancedComponentSetupOptions();
+ const optsMerged = baseOptions.merge(options);
+ const modalBox = Simulate.modalBoxModule();
+
+ let envBuilder = new MockEnvironmentBuilder().withElement(optsMerged.element);
+ envBuilder = optsMerged.modifyBuilder(envBuilder);
+ return {
+ env: envBuilder.build(),
+ modalBox: modalBox,
+ cmp: new klass(
+ envBuilder.getBindings().element,
+ optsMerged.cmpOptions,
+ envBuilder.getBindings(),
+ modalBox
+ )
+ };
+}
+
+export function advancedResultComponentSetup(
+ klass: IAdvancedComponentConstructor,
+ result: IQueryResult,
+ options?: AdvancedComponentSetupOptions
+): IBasicComponentSetup {
+ const baseOptions = new AdvancedComponentSetupOptions();
+ const optsMerged = baseOptions.merge(options);
+
+ let envBuilder = new MockEnvironmentBuilder()
+ .withElement(optsMerged.element)
+ .withResult(result);
+ envBuilder = optsMerged.modifyBuilder(envBuilder);
+ return {
+ env: envBuilder.build(),
+ cmp: new klass(
+ envBuilder.getBindings().element,
+ optsMerged.cmpOptions,
+ envBuilder.getBindings(),
+ envBuilder.result,
+ envBuilder.os
+ )
+ };
+}
diff --git a/src/MockEnvironment/BasicComponentsSetup.ts b/src/MockEnvironment/BasicComponentsSetup.ts
new file mode 100644
index 0000000..6b3cd29
--- /dev/null
+++ b/src/MockEnvironment/BasicComponentsSetup.ts
@@ -0,0 +1,106 @@
+import {
+ IBasicComponentSetup,
+ IComponentConstructor,
+ IComponentConstructorWithModalBox,
+ IComponentConstructorWithResult,
+ IComponentConstructorWithResultAndModalBox,
+ ISearchInterfaceConstructor,
+ ISearchInterfaceSetup,
+ IBasicComponentSetupWithModalBox
+} from "./ComponentsSetup";
+import {
+ MockEnvironmentBuilder,
+ IMockEnvironment
+} from "./MockEnvironmentBuilder";
+import {
+ BaseComponent,
+ ModalBox,
+ IComponentBindings,
+ Component,
+ IQueryResult,
+ SearchInterface,
+ $$,
+ ISearchInterfaceOptions
+} from "coveo-search-ui";
+import * as Simulate from "../Simulate";
+
+export function basicComponentSetup(
+ klass: IComponentConstructor,
+ options: any = {}
+): IBasicComponentSetup {
+ const envBuilder = new MockEnvironmentBuilder();
+ return {
+ env: envBuilder.build(),
+ cmp: new klass(
+ envBuilder.getBindings().element,
+ options,
+ envBuilder.getBindings()
+ )
+ };
+}
+
+export function basicComponentSetupWithModalBox(
+ klass: IComponentConstructorWithModalBox,
+ options: any = {}
+): IBasicComponentSetupWithModalBox {
+ const envBuilder = new MockEnvironmentBuilder();
+ const modalBox = Simulate.modalBoxModule();
+ return {
+ env: envBuilder.build(),
+ modalBox: modalBox,
+ cmp: new klass(
+ envBuilder.getBindings().element,
+ options,
+ envBuilder.getBindings(),
+ modalBox
+ )
+ };
+}
+
+export function basicResultComponentSetup(
+ klass: IComponentConstructorWithResult,
+ options: any = {}
+): IBasicComponentSetup {
+ const envBuilder = new MockEnvironmentBuilder().withResult();
+ return {
+ env: envBuilder.build(),
+ cmp: new klass(
+ envBuilder.getBindings().element,
+ options,
+ envBuilder.getBindings(),
+ envBuilder.result
+ )
+ };
+}
+
+export function basicResultComponentSetupWithModalBox(
+ klass: IComponentConstructorWithResultAndModalBox,
+ options: any = {}
+): IBasicComponentSetupWithModalBox {
+ const envBuilder = new MockEnvironmentBuilder();
+ const modalBox = Simulate.modalBoxModule();
+ return {
+ env: envBuilder.build(),
+ modalBox: modalBox,
+ cmp: new klass(
+ envBuilder.getBindings().element,
+ options,
+ envBuilder.getBindings(),
+ envBuilder.result,
+ modalBox
+ )
+ };
+}
+
+export function basicSearchInterfaceSetup(
+ klass: ISearchInterfaceConstructor
+): ISearchInterfaceSetup {
+ const div = $$("div").el;
+ const envBuilder = new MockEnvironmentBuilder().withRoot(div);
+ const component = new klass(div);
+ envBuilder.searchInterface = component;
+ return {
+ env: envBuilder.build(),
+ cmp: component
+ };
+}
diff --git a/src/MockEnvironment/ComponentsSetup.ts b/src/MockEnvironment/ComponentsSetup.ts
new file mode 100644
index 0000000..98c7ffa
--- /dev/null
+++ b/src/MockEnvironment/ComponentsSetup.ts
@@ -0,0 +1,65 @@
+import {
+ Component,
+ IComponentBindings,
+ ModalBox,
+ IQueryResult,
+ ISearchInterfaceOptions,
+ SearchInterface
+} from "coveo-search-ui";
+import { IMockEnvironment } from "./MockEnvironmentBuilder";
+
+export interface IComponentConstructor {
+ new (element: HTMLElement, options: any, bindings: IComponentBindings): T;
+}
+
+export interface IBasicComponentSetup {
+ env: IMockEnvironment;
+ cmp: T;
+}
+
+export interface IComponentConstructorWithModalBox {
+ new (
+ element: HTMLElement,
+ options: any,
+ bindings: IComponentBindings,
+ modalBox: ModalBox.ModalBox
+ ): T;
+}
+
+export interface IBasicComponentSetupWithModalBox
+ extends IBasicComponentSetup {
+ modalBox: ModalBox.ModalBox;
+}
+
+export interface IComponentConstructorWithResult {
+ new (
+ element: HTMLElement,
+ options: any,
+ bindings: IComponentBindings,
+ result: IQueryResult
+ ): T;
+}
+
+export interface IComponentConstructorWithResultAndModalBox {
+ new (
+ element: HTMLElement,
+ options: any,
+ bindings: IComponentBindings,
+ result: IQueryResult,
+ modalBox: ModalBox.ModalBox
+ ): T;
+}
+
+export interface ISearchInterfaceConstructor {
+ new (
+ element: HTMLElement,
+ options?: ISearchInterfaceOptions,
+ analyticsOptions?: any,
+ _window?: Window
+ ): T;
+}
+
+export interface ISearchInterfaceSetup {
+ env: IMockEnvironment;
+ cmp: T;
+}
diff --git a/src/MockEnvironment/MockComponents.ts b/src/MockEnvironment/MockComponents.ts
new file mode 100644
index 0000000..600ce9d
--- /dev/null
+++ b/src/MockEnvironment/MockComponents.ts
@@ -0,0 +1,132 @@
+import {
+ BaseComponent,
+ SearchInterface,
+ QueryController,
+ SearchEndpoint,
+ QueryBuilder,
+ IAnalyticsClient,
+ NoopAnalyticsClient,
+ AnalyticsEndpoint
+} from "coveo-search-ui";
+
+export type ConstructorFunc = any;
+
+export interface IResponsiveComponentsMock {
+ windoh: Window;
+ setSmallScreenWidth(width: number): void;
+ setMediumScreenWidth(width: number): void;
+ getSmallScreenWidth(): number;
+ getMediumScreenWidth(): number;
+ isSmallScreenWidth(): boolean;
+ isMediumScreenWidth(): boolean;
+ isLargeScreenWidth(): boolean;
+}
+
+export function mock(
+ contructorFunc: ConstructorFunc,
+ name: string = "mock"
+): T {
+ const keys = [];
+ for (const key in contructorFunc.prototype) {
+ keys.push(key);
+ }
+ return keys.length > 0 ? jasmine.createSpyObj(name, keys) : {};
+}
+
+export function mockWindow(): Window {
+ const mockWindow = mock(Window.prototype);
+ mockWindow.location = {
+ href: "",
+ hash: ""
+ };
+ mockWindow.location.replace = (newHref: string) => {
+ newHref = newHref || "";
+
+ mockWindow.location.href = newHref;
+
+ // 'http://www.coveo.com/#foo' => 'foo'
+ // 'http://www.coveo.com/#' => ''
+ // 'http://www.coveo.com/' => ''
+ mockWindow.location.hash = newHref.substring(newHref.indexOf("#") + 1);
+
+ // 'foo' => '#foo'
+ // '' => ''
+ if (mockWindow.location.hash !== "") {
+ mockWindow.location.hash = "#" + mockWindow.location.hash;
+ }
+ };
+ mockWindow.addEventListener = jasmine.createSpy("addEventListener");
+ mockWindow.removeEventListener = jasmine.createSpy("removeEventListener");
+ mockWindow.dispatchEvent = jasmine.createSpy("dispatchEvent");
+ return mockWindow;
+}
+
+export function mockComponent(
+ constructorFunc: ConstructorFunc,
+ name: string = "mock"
+): T {
+ const m = mock(constructorFunc, name);
+ m.type = name;
+ return m;
+}
+
+export function mockSearchInterface(): SearchInterface {
+ const m = mockComponent(SearchInterface, SearchInterface.ID);
+ m.options = {};
+ m.options.originalOptionsObject = {};
+ m.responsiveComponents = mockResponsiveComponents();
+ return m;
+}
+
+export function mockResponsiveComponents(): IResponsiveComponentsMock {
+ return {
+ windoh: mockWindow(),
+ getMediumScreenWidth: () => 0,
+ getSmallScreenWidth: () => 0,
+ setMediumScreenWidth: () => 0,
+ setSmallScreenWidth: () => 0,
+ isSmallScreenWidth: () => false,
+ isMediumScreenWidth: () => false,
+ isLargeScreenWidth: () => true
+ };
+}
+
+export function mockQueryController(): QueryController {
+ const m = mockComponent(QueryController, QueryController.ID);
+ const spy = m;
+ spy.options = {};
+ spy.options.resultsPerPage = 10;
+ spy.fetchMore.and.returnValue(new Promise((resolve, reject) => { }));
+ spy.getLastQuery.and.returnValue(new QueryBuilder().build());
+ return m;
+}
+
+export function mockSearchEndpoint(): SearchEndpoint {
+ const m = mock(SearchEndpoint, "SearchEndpoint");
+ m.listFields.and.returnValue(new Promise((resolve, reject) => { }));
+ m.listFieldValues.and.returnValue(new Promise((resolve, reject) => { }));
+ m.search.and.returnValue(new Promise((resolve, reject) => { }));
+ m.getQuerySuggest.and.returnValue(new Promise((resolve, reject) => { }));
+ m.extensions.and.returnValue(new Promise((resolve, reject) => { }));
+ m.getViewAsDatastreamUri.and.returnValue("http://datastream.uri");
+ m.options = {
+ queryStringArguments: {
+ organizationId: "foobar"
+ }
+ };
+ return m;
+}
+
+export function mockUsageAnalytics(): IAnalyticsClient {
+ const m = mock(NoopAnalyticsClient, "AnalyticsClient");
+ m.getTopQueries.and.returnValue(new Promise((resolve, reject) => { }));
+ return m;
+}
+
+export function mockAnalyticsEndpoint(): AnalyticsEndpoint {
+ const m = mock(AnalyticsEndpoint, "AnalyticsEndpoint");
+ // Spy return Promise instead of void in order to chain Promises
+ m.sendCustomEvent.and.returnValue(Promise.resolve(null));
+ m.sendDocumentViewEvent.and.returnValue(Promise.resolve(null));
+ return m;
+}
diff --git a/src/MockEnvironment/MockEnvironmentBuilder.ts b/src/MockEnvironment/MockEnvironmentBuilder.ts
new file mode 100644
index 0000000..92af3a2
--- /dev/null
+++ b/src/MockEnvironment/MockEnvironmentBuilder.ts
@@ -0,0 +1,161 @@
+import {
+ mockSearchInterface,
+ mockSearchEndpoint,
+ mockQueryController,
+ mockComponent,
+ mockUsageAnalytics
+} from "./MockComponents";
+
+import {
+ ModalBox,
+ IComponentBindings,
+ IQueryResult,
+ SearchInterface,
+ QueryStateModel,
+ IAnalyticsClient,
+ $$,
+ ComponentStateModel,
+ ComponentOptionsModel,
+ OS_NAME,
+ Component,
+ BaseComponent,
+ NoopAnalyticsClient,
+ AnalyticsEndpoint,
+ SearchEndpoint,
+ QueryController,
+ QueryBuilder
+} from "coveo-search-ui";
+import * as FakeResults from "../Fake";
+
+export interface IMockEnvironment extends IComponentBindings {
+ root: HTMLElement;
+ element: HTMLElement;
+ result: IQueryResult;
+ searchEndpoint: SearchEndpoint;
+ searchInterface: SearchInterface;
+ queryController: QueryController;
+ queryStateModel: QueryStateModel;
+ usageAnalytics: IAnalyticsClient;
+}
+
+export interface IMockEnvironmentWithData extends IMockEnvironment {
+ data: T;
+}
+
+export class MockEnvironmentBuilder {
+ public root: HTMLElement = $$("div").el;
+ public element: HTMLElement = $$("div").el;
+ public result: IQueryResult = undefined;
+ public searchEndpoint = mockSearchEndpoint();
+ public searchInterface = mockSearchInterface();
+ public queryController = mockQueryController();
+ public queryStateModel = mockComponent(
+ QueryStateModel,
+ QueryStateModel.ID
+ );
+ public componentStateModel = mockComponent(
+ ComponentStateModel,
+ ComponentStateModel.ID
+ );
+ public usageAnalytics = mockUsageAnalytics();
+ public componentOptionsModel = mockComponent(
+ ComponentOptionsModel,
+ ComponentOptionsModel.ID
+ );
+ public os: OS_NAME;
+ private built = false;
+
+ public withRoot(root: HTMLElement): this {
+ this.root = root ? root : this.root;
+ return this;
+ }
+
+ public withElement(element: HTMLElement): this {
+ this.element = element ? element : this.element;
+ return this;
+ }
+
+ public withLiveQueryStateModel(): this {
+ this.queryStateModel = new QueryStateModel(this.root);
+ return this;
+ }
+
+ public withQueryStateModel(model: QueryStateModel): this {
+ this.queryStateModel = model;
+ return this;
+ }
+
+ public withCollaborativeRating(): this {
+ this.searchInterface.options.enableCollaborativeRating = true;
+ return this;
+ }
+
+ public withOs(os: OS_NAME): this {
+ this.os = os;
+ return this;
+ }
+
+ public withResult(
+ result: IQueryResult = FakeResults.createFakeResult()
+ ): this {
+ this.result = result;
+ return this;
+ }
+
+ public withEndpoint(endpoint: SearchEndpoint = mockSearchEndpoint()): this {
+ this.searchEndpoint = endpoint;
+ return this;
+ }
+
+ public build(): IMockEnvironment {
+ if (this.built) {
+ return this.getBindings();
+ }
+ if (this.element.parentNode === undefined) {
+ this.root.appendChild(this.element);
+ }
+
+ Component.bindComponentToElement(this.root, this.searchInterface);
+ Component.bindComponentToElement(this.root, this.queryController);
+ Component.bindComponentToElement(this.root, this.queryStateModel);
+ Component.bindComponentToElement(this.root, this.componentStateModel);
+ Component.bindComponentToElement(this.root, this.componentOptionsModel);
+
+ this.searchInterface.queryController = this.queryController;
+ this.searchInterface.queryStateModel = this.queryStateModel;
+ this.searchInterface.componentStateModel = this.componentStateModel;
+ this.searchInterface.componentOptionsModel = this.componentOptionsModel;
+
+ if (!this.searchEndpoint) {
+ this.searchEndpoint = mockSearchEndpoint();
+ }
+
+ this.queryController.getEndpoint = () => {
+ return this.searchEndpoint;
+ };
+
+ if (this.result) {
+ Component.bindResultToElement(this.element, this.result);
+ }
+ this.built = true;
+ return this.getBindings();
+ }
+
+ public getBindings(): IMockEnvironment {
+ if (!this.built) {
+ return this.build();
+ }
+ return {
+ root: this.root,
+ element: this.element,
+ result: this.result,
+ searchEndpoint: this.searchEndpoint,
+ searchInterface: this.searchInterface,
+ queryController: this.queryController,
+ queryStateModel: this.queryStateModel,
+ usageAnalytics: this.usageAnalytics,
+ componentStateModel: this.componentStateModel,
+ componentOptionsModel: this.componentOptionsModel
+ };
+ }
+}
diff --git a/src/MockEnvironment/OptionsComponentsSetup.ts b/src/MockEnvironment/OptionsComponentsSetup.ts
new file mode 100644
index 0000000..bcd53cb
--- /dev/null
+++ b/src/MockEnvironment/OptionsComponentsSetup.ts
@@ -0,0 +1,105 @@
+import { MockEnvironmentBuilder } from "./MockEnvironmentBuilder";
+import {
+ ISearchInterfaceSetup,
+ ISearchInterfaceConstructor,
+ IComponentConstructorWithResult,
+ IComponentConstructorWithResultAndModalBox,
+ IBasicComponentSetupWithModalBox,
+ IBasicComponentSetup,
+ IComponentConstructor,
+ IComponentConstructorWithModalBox
+} from "./ComponentsSetup";
+import {
+ SearchInterface,
+ $$,
+ IQueryResult,
+ ISearchInterfaceOptions,
+ Component
+} from "coveo-search-ui";
+import * as Simulate from "../Simulate";
+
+export function optionsSearchInterfaceSetup<
+ T extends SearchInterface,
+ U extends ISearchInterfaceOptions
+>(klass: ISearchInterfaceConstructor, options: U): ISearchInterfaceSetup {
+ const div = $$("div").el;
+ const envBuilder = new MockEnvironmentBuilder().withRoot(div);
+ const component = new klass(div, options);
+ envBuilder.searchInterface = component;
+ return {
+ env: envBuilder.build(),
+ cmp: component
+ };
+}
+
+export function optionsResultComponentSetup(
+ klass: IComponentConstructorWithResult,
+ options: U,
+ result: IQueryResult
+): IBasicComponentSetup {
+ const envBuilder = new MockEnvironmentBuilder().withResult(result);
+ return {
+ env: envBuilder.build(),
+ cmp: new klass(
+ envBuilder.getBindings().element,
+ options,
+ envBuilder.getBindings(),
+ envBuilder.result
+ )
+ };
+}
+
+export function optionsResultComponentSetupWithModalBox(
+ klass: IComponentConstructorWithResultAndModalBox,
+ options: U,
+ result: IQueryResult
+): IBasicComponentSetupWithModalBox {
+ const envBuilder = new MockEnvironmentBuilder().withResult(result);
+ const modalBox = Simulate.modalBoxModule();
+
+ return {
+ env: envBuilder.build(),
+ modalBox: modalBox,
+ cmp: new klass(
+ envBuilder.getBindings().element,
+ options,
+ envBuilder.getBindings(),
+ envBuilder.result,
+ modalBox
+ )
+ };
+}
+
+export function optionsComponentSetup(
+ klass: IComponentConstructor,
+ options: U
+): IBasicComponentSetup {
+ const envBuilder = new MockEnvironmentBuilder();
+ return {
+ env: envBuilder.build(),
+ cmp: new klass(
+ envBuilder.getBindings().element,
+ options,
+ envBuilder.getBindings()
+ )
+ };
+}
+
+export function optionsComponentSetupWithModalBox(
+ klass: IComponentConstructorWithModalBox,
+ options: U
+): IBasicComponentSetupWithModalBox {
+ const envBuilder = new MockEnvironmentBuilder();
+ const modalBox = Simulate.modalBoxModule();
+
+ return {
+ env: envBuilder.build(),
+ modalBox: modalBox,
+ cmp: new klass(
+ envBuilder.getBindings().element,
+ options,
+ envBuilder.getBindings(),
+ modalBox
+ )
+ };
+}
diff --git a/src/Simulate.ts b/src/Simulate.ts
new file mode 100644
index 0000000..6007534
--- /dev/null
+++ b/src/Simulate.ts
@@ -0,0 +1,5 @@
+export * from "./Simulate/Actions";
+export * from "./Simulate/Components";
+export * from "./Simulate/Environment";
+export * from "./Simulate/Modules";
+export * from "./Simulate/Query";
diff --git a/src/Simulate/Actions.ts b/src/Simulate/Actions.ts
new file mode 100644
index 0000000..19048a9
--- /dev/null
+++ b/src/Simulate/Actions.ts
@@ -0,0 +1,21 @@
+import { Defer } from "coveo-search-ui";
+
+export function keyUp(
+ element: HTMLElement,
+ key: number,
+ shiftKey?: boolean
+): void {
+ const event = new KeyboardEvent("keyup", { shiftKey: shiftKey });
+ Object.defineProperty(event, "keyCode", {
+ get: () => {
+ return key;
+ }
+ });
+ Object.defineProperty(event, "which", {
+ get: () => {
+ return key;
+ }
+ });
+ element.dispatchEvent(event);
+ Defer.flush();
+}
diff --git a/src/Simulate/Components.ts b/src/Simulate/Components.ts
new file mode 100644
index 0000000..ba9d27a
--- /dev/null
+++ b/src/Simulate/Components.ts
@@ -0,0 +1,47 @@
+import { IMockEnvironment } from "../MockEnvironment";
+import {
+ $$,
+ IOmniboxData,
+ OmniboxEvents,
+ IBreadcrumbItem,
+ IPopulateBreadcrumbEventArgs,
+ BreadcrumbEvents
+} from "coveo-search-ui";
+
+export function omnibox(env: IMockEnvironment, options?: any): IOmniboxData {
+ const expression = {
+ word: "foo",
+ regex: /foo/
+ };
+
+ const fakeOmniboxArgs = _.extend(
+ {},
+ {
+ rows: [],
+ completeQueryExpression: expression,
+ allQueryExpression: expression,
+ currentQueryExpression: expression,
+ cursorPosition: 3,
+ clear: jasmine.createSpy("clear"),
+ clearCurrentExpression: jasmine.createSpy("clearCurrent"),
+ replace: jasmine.createSpy("replace"),
+ replaceCurrentExpression: jasmine.createSpy("replaceCurrentExpression"),
+ insertAt: jasmine.createSpy("insertAt"),
+ closeOmnibox: jasmine.createSpy("closeOmnibox")
+ },
+ options
+ );
+
+ $$(env.root).trigger(OmniboxEvents.populateOmnibox, fakeOmniboxArgs);
+
+ return fakeOmniboxArgs;
+}
+
+export function breadcrumb(
+ env: IMockEnvironment,
+ options?: any
+): IBreadcrumbItem[] {
+ const args = { breadcrumbs: [] };
+ $$(env.root).trigger(BreadcrumbEvents.populateBreadcrumb, args);
+ return args.breadcrumbs;
+}
diff --git a/src/Simulate/Environment.ts b/src/Simulate/Environment.ts
new file mode 100644
index 0000000..43c7529
--- /dev/null
+++ b/src/Simulate/Environment.ts
@@ -0,0 +1,21 @@
+import { IMockEnvironment } from "../MockEnvironment";
+import { ISimulateQueryData } from "../Simulate";
+import * as Fake from "../Fake";
+import { JQuery } from "./JQueryModule";
+
+export function isPhantomJs(): boolean {
+ return navigator.userAgent.indexOf("PhantomJS") !== -1;
+}
+
+export function isChromeHeadless(): boolean {
+ return navigator.userAgent.indexOf("HeadlessChrome") !== -1;
+}
+
+export function addJQuery(): any {
+ window["Coveo"]["$"] = JQuery;
+ return JQuery;
+}
+
+export function removeJQuery(): void {
+ window["Coveo"]["$"] = null;
+}
diff --git a/src/Simulate/JQueryModule.ts b/src/Simulate/JQueryModule.ts
new file mode 100644
index 0000000..293617d
--- /dev/null
+++ b/src/Simulate/JQueryModule.ts
@@ -0,0 +1,4 @@
+declare function require(moduleName: string): any;
+export const JQuery = require("exports-loader?window.$!../../lib/jquery.js").noConflict(
+ true
+);
diff --git a/src/Simulate/Modules.ts b/src/Simulate/Modules.ts
new file mode 100644
index 0000000..5042d4f
--- /dev/null
+++ b/src/Simulate/Modules.ts
@@ -0,0 +1,36 @@
+import { ModalBox, $$, IQuery } from "coveo-search-ui";
+
+export function modalBoxModule(): ModalBox.ModalBox {
+ const modalBox = {};
+ modalBox.open = jasmine.createSpy("open");
+ modalBox.close = jasmine.createSpy("close");
+ modalBox.open.and.returnValue({
+ modalBox: $$("div", undefined, $$("div", { className: "coveo-wrapper" }))
+ .el,
+ wrapper: $$(
+ "div",
+ undefined,
+ $$("div", { className: "coveo-quickview-close-button" })
+ ).el,
+ overlay: $$("div").el,
+ content: $$("div").el,
+ close: modalBox.close
+ });
+ return modalBox;
+}
+
+export function analyticsStoreModule(
+ actionsHistory: CoveoAnalytics.HistoryElement[] = []
+): CoveoAnalytics.HistoryStore {
+ return {
+ addElement: (query: IQuery) => {},
+ getHistory: () => {
+ return actionsHistory;
+ },
+ setHistory: (history: any[]) => {},
+ clear: () => {},
+ getMostRecentElement: () => {
+ return null;
+ }
+ };
+}
diff --git a/src/Simulate/Query.ts b/src/Simulate/Query.ts
new file mode 100644
index 0000000..1c51e82
--- /dev/null
+++ b/src/Simulate/Query.ts
@@ -0,0 +1,172 @@
+import { IMockEnvironment } from "../MockEnvironment";
+import * as Fake from "../Fake";
+import {
+ QueryBuilder,
+ NoopComponent,
+ INewQueryEventArgs,
+ $$,
+ QueryEvents,
+ IBuildingQueryEventArgs,
+ IDuringQueryEventArgs,
+ IQueryErrorEventArgs,
+ Utils,
+ IPreprocessResultsEventArgs,
+ INoResultsEventArgs,
+ IQuerySuccessEventArgs,
+ Defer,
+ IQuery,
+ IQueryCorrection,
+ IEndpointError,
+ IQueryResults,
+ IGroupByResult,
+ Component
+} from "coveo-search-ui";
+
+export interface ISimulateQueryData {
+ query?: IQuery;
+ queryBuilder?: QueryBuilder;
+ searchAsYouType?: boolean;
+ promise?: Promise;
+ error?: IEndpointError;
+ results?: IQueryResults;
+ queryCorrections?: IQueryCorrection[];
+ groupByResults?: IGroupByResult[];
+ callbackDuringQuery?(): void;
+ callbackAfterNoResults?(): void;
+ callbackAfterQuery?(): void;
+ doNotFlushDefer?: boolean;
+ deferSuccess?: boolean;
+ cancel?: boolean;
+ origin?: Component;
+}
+
+export function query(
+ env: IMockEnvironment,
+ options?: ISimulateQueryData
+): ISimulateQueryData {
+ options = _.extend(
+ {},
+ {
+ query: new QueryBuilder().build(),
+ queryBuilder: new QueryBuilder(),
+ searchAsYouType: false,
+ promise: new Promise(() => {}),
+ results: Fake.createFakeResults(),
+ callbackDuringQuery: () => {},
+ callbackAfterNoResults: () => {},
+ callbackAfterQuery: () => {},
+ deferSuccess: false,
+ cancel: false,
+ origin: NoopComponent
+ },
+ options
+ );
+
+ if (options.queryCorrections) {
+ options.results.queryCorrections = options.queryCorrections;
+ }
+ if (options.groupByResults) {
+ options.results.groupByResults = options.groupByResults;
+ }
+
+ const newQueryEventArgs: INewQueryEventArgs = {
+ searchAsYouType: options.searchAsYouType,
+ cancel: options.cancel,
+ origin: options.origin,
+ shouldRedirectStandaloneSearchbox: true
+ };
+ $$(env.root).trigger(QueryEvents.newQuery, newQueryEventArgs);
+
+ const buildingQueryEventArgs: IBuildingQueryEventArgs = {
+ queryBuilder: options.queryBuilder,
+ searchAsYouType: false,
+ cancel: false
+ };
+ $$(env.root).trigger(QueryEvents.buildingQuery, buildingQueryEventArgs);
+ $$(env.root).trigger(QueryEvents.doneBuildingQuery, buildingQueryEventArgs);
+
+ const duringQueryEventArgs: IDuringQueryEventArgs = {
+ query: options.query,
+ queryBuilder: options.queryBuilder,
+ promise: options.promise,
+ searchAsYouType: options.searchAsYouType
+ };
+ $$(env.root).trigger(QueryEvents.duringQuery, duringQueryEventArgs);
+ options.callbackDuringQuery();
+
+ const success = () => {
+ if (Utils.exists(options.error)) {
+ const queryErrorEventArgs: IQueryErrorEventArgs = {
+ queryBuilder: options.queryBuilder,
+ query: options.query,
+ endpoint: env.searchEndpoint,
+ error: options.error,
+ searchAsYouType: options.searchAsYouType
+ };
+ Promise.reject(options.promise).catch(e => {});
+ $$(env.root).trigger(QueryEvents.queryError, queryErrorEventArgs);
+ } else {
+ const preprocessResultsEventArgs: IPreprocessResultsEventArgs = {
+ queryBuilder: options.queryBuilder,
+ query: options.query,
+ results: options.results,
+ searchAsYouType: options.searchAsYouType
+ };
+ $$(env.root).trigger(
+ QueryEvents.preprocessResults,
+ preprocessResultsEventArgs
+ );
+ Promise.resolve(
+ new Promise((resolve, reject) => {
+ resolve(options.results);
+ })
+ );
+
+ const noResultsEventArgs: INoResultsEventArgs = {
+ query: options.query,
+ queryBuilder: options.queryBuilder,
+ results: options.results,
+ searchAsYouType: options.searchAsYouType,
+ retryTheQuery: false
+ };
+
+ if (
+ options.results.totalCount === 0 ||
+ options.results.results.length === 0
+ ) {
+ $$(env.root).trigger(QueryEvents.noResults, noResultsEventArgs);
+ options.callbackAfterNoResults();
+ }
+
+ if (noResultsEventArgs.retryTheQuery) {
+ // do nothing, as this could cause test to loop endlessly if they do not handle the query being retried.
+ } else {
+ const querySuccessEventArgs: IQuerySuccessEventArgs = {
+ query: options.query,
+ queryBuilder: options.queryBuilder,
+ results: options.results,
+ searchAsYouType: options.searchAsYouType
+ };
+ $$(env.root).trigger(QueryEvents.querySuccess, querySuccessEventArgs);
+ $$(env.root).trigger(
+ QueryEvents.deferredQuerySuccess,
+ querySuccessEventArgs
+ );
+ }
+ }
+
+ if (!options.doNotFlushDefer) {
+ Defer.flush();
+ }
+
+ options.callbackAfterQuery();
+ };
+
+ if (options.deferSuccess) {
+ Defer.defer(success);
+ } else {
+ success();
+ }
+
+ return options;
+}
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000..9560579
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,10 @@
+{
+ "compilerOptions": {
+ "module": "commonjs",
+ "target": "es5",
+ "noImplicitAny": false,
+ "sourceMap": false
+ },
+ "include": ["./src/Index.ts"],
+ "exclude": ["node_modules"]
+}
diff --git a/tsfmt.json b/tsfmt.json
new file mode 100644
index 0000000..e0d7ad1
--- /dev/null
+++ b/tsfmt.json
@@ -0,0 +1,10 @@
+{
+ "indentSize": 4,
+ "tabSize": 4,
+ "newLineCharacter": "\r\n",
+ "convertTabsToSpaces": true,
+ "insertSpaceAfterFunctionKeywordForAnonymousFunctions": true,
+ "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false,
+ "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false,
+ "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false
+}
diff --git a/tslint.json b/tslint.json
new file mode 100644
index 0000000..c5d6ff7
--- /dev/null
+++ b/tslint.json
@@ -0,0 +1,81 @@
+{
+ "rules": {
+ "align": [true, "statements", "parameters"],
+ "arrow-parens": [true, "ban-single-arg-parens"],
+ "ban": [false],
+ "class-name": true,
+ "comment-format": [true, "check-space"],
+ "curly": true,
+ "eofline": true,
+ "indent": [true, 4],
+ "interface-name": [true, "always-prefix"],
+ "jsdoc-format": true,
+ "max-line-length": [false, 140],
+ "semicolon": [true, "always"],
+ "member-access": false,
+ "member-ordering": [false, { "order": "fields-first" }],
+ "new-parens": true,
+ "no-arg": false,
+ "no-default-export": true,
+ "no-duplicate-variable": true,
+ "no-inferrable-types": [false],
+ "no-shadowed-variable": false,
+ "no-trailing-whitespace": true,
+ "no-unused-variable": true,
+ "no-unused-expression": true,
+ "no-use-before-declare": false,
+ "one-line": [
+ true,
+ "check-open-brace",
+ "check-catch",
+ "check-else",
+ "check-finally",
+ "check-whitespace"
+ ],
+ "one-variable-per-declaration": [false, "ignore-for-loop"],
+ "prefer-const": true,
+ "prefer-method-signature": true,
+ "quotemark": [true, "double"],
+ "trailing-comma": [
+ false,
+ {
+ "multiline": "always",
+ "singleline": "never"
+ }
+ ],
+ "triple-equals": [true],
+ "typedef": [true, "property-declaration", "call-signature", "parameter"],
+ "typedef-whitespace": [
+ true,
+ {
+ "call-signature": "nospace",
+ "index-signature": "nospace",
+ "parameter": "nospace",
+ "property-declaration": "nospace",
+ "variable-declaration": "nospace"
+ },
+ {
+ "call-signature": "space",
+ "index-signature": "space",
+ "parameter": "space",
+ "property-declaration": "space",
+ "variable-declaration": "space"
+ }
+ ],
+ "use-isnan": true,
+ "variable-name": [
+ false,
+ "check-format",
+ "allow-leading-underscore",
+ "ban-keywords"
+ ],
+ "whitespace": [
+ true,
+ "check-branch",
+ "check-decl",
+ "check-operator",
+ "check-separator",
+ "check-type"
+ ]
+ }
+}
diff --git a/webpack.config.js b/webpack.config.js
new file mode 100644
index 0000000..be1d6fb
--- /dev/null
+++ b/webpack.config.js
@@ -0,0 +1,55 @@
+const webpack = require("webpack");
+const minimize = process.argv.indexOf("--optimize-minimize") !== -1;
+const colors = require("colors");
+const failPlugin = require("webpack-fail-plugin");
+if (minimize) {
+ console.log("Building minified version of the library".bgGreen.red);
+} else {
+ console.log("Building non minified version of the library".bgGreen.red);
+}
+
+const packageName = "CoveoJsSearchTests";
+
+// Fail plugin will allow the webpack ts-loader to fail correctly when the TS compilation fails.
+var plugins = [failPlugin];
+
+if (minimize) {
+ plugins.push(
+ new webpack.optimize.UglifyJsPlugin({
+ sourceMap: true
+ })
+ );
+}
+
+module.exports = {
+ entry: "./src/Index.ts",
+ output: {
+ path: require("path").resolve("./bin/js"),
+ filename: minimize ? `${packageName}.min.js` : `${packageName}.js`,
+ chunkFilename: minimize ? `${packageName}.min.js` : `${packageName}.js`,
+ libraryTarget: "umd",
+ library: "CoveoJsSearchTests",
+ publicPath: "js/",
+ devtoolModuleFilenameTemplate: "[resource-path]"
+ },
+ resolve: {
+ extensions: [".ts", ".js"]
+ },
+ devtool: "source-map",
+ externals: [
+ {
+ "coveo-search-ui": "Coveo"
+ }
+ ],
+ module: {
+ rules: [
+ {
+ test: /\.ts$/,
+ loader: "ts-loader",
+ options: {}
+ }
+ ]
+ },
+ plugins: plugins,
+ bail: true
+};